emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] HTML Export of Links to Source Blocks seems broken


From: timor
Subject: Re: [O] HTML Export of Links to Source Blocks seems broken
Date: Mon, 20 Jun 2016 10:18:51 +0200

Ok, if I understand you correctly, implementing the mechanism akin to
the latex one, setting a new variable `org-html-prefer-user-labels` would
change the relevant exported HTML for the following piece of org:

----------------------
#+NAME: test_fun
#+BEGIN_SRC js :exports code
function test_fun() {

}
#+END_SRC

Link to [[test_fun]]

#+CAPTION: Caption of Another Test Fun
#+NAME: another_test_fun
#+BEGIN_SRC js
function another_test_fun() {

}
#+END_SRC

Link to [[another_test_fun]]
-----------------------

from

#+BEGIN_EXAMPLE html

  <pre class="src src-js" id="orgsrcblock1">
  ...
  </pre>

  <pre class="src src-js" id="orgsrcblock2">
  ...
  </pre>

  Link to <a href="#orgsrcblock1">1</a>

  Link to <a href="#orgsrcblock2">1</a>

#+END_EXAMPLE

to

#+BEGIN_EXAMPLE html

  <pre class="src src-js" id="test_fun">
  ...
  </pre>

  <pre class="src src-js" id="another_test_fun">
  ...
  </pre>

  Link to <a href="#test_fun">1</a>

  Link to <a href="#another_test_fun">1</a>

#+END_EXAMPLE

Looking at `org-html-link`, `org-export-get-reference` is only called
to get the _internal_ reference.  That works perfectly fine already, and I am
quite happy with the way org mode generates labels/ids for the exported
code.  That should, however, have no influence of the link description
(called `desc` in the code in `org-html-link`), which is the thing
that I actually want to change?

In summary, my exported output is supposed to look like that:

#+BEGIN_EXAMPLE html

  <pre class="src src-js" id="orgsrcblock1">
  ...
  </pre>

  <pre class="src src-js" id="orgsrcblock2">
  ...
  </pre>

  Link to <a href="#orgsrcblock1">test_fun</a>

  Link to <a href="#orgsrcblock2">another_test_fun</a>

#+END_EXAMPLE

Regards,
timor

2016-06-17 13:56 GMT+02:00 Nicolas Goaziou <address@hidden>:
> Hello,
>
> timor <address@hidden> writes:
>
>> Why is the link text set to "1" in both cases?
>
> This is just a nonsensical number because Org does not know what to
> number. If you want to number source blocks, you need to add a caption
> to them.
>
>> Thanks for the pointer.  I tried to see the effect of that variable,
>> but I noticed that for latex export, a \ref{orgsrcblock1} tag is
>> created, although the listing in the exported latex code does not
>> provide a "target" to link to at all.
>
> If `org-latex-prefer-user-labels' is non-nil, no \ref{orgsrcblock1} is
> created.
>
>> I was more thinking along the lines of treating internal links to
>> named blocks in the same way that external links in HTML export are
>> treated:
>> For [[http://some/url]], the link text is simply set to the target,
>> the target being the external web page.
>> For [[some_named_block]] the link text should then also be the name of
>> the target, in that case the target being the source block.
>
> I think the way to go is to create an equivalent to
> `org-latex-prefer-user-labels' and to turn it off by default.
>
> It boils down to creating a wrapper around `org-export-get-reference',
> e.g. `org-html--reference' and replace it in the file.
>
> It should also be tested when cross-referencing data in a published
> project.
>
> Regards,
>
> --
> Nicolas Goaziou



reply via email to

[Prev in Thread] Current Thread [Next in Thread]