emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Possible bug with coderef highlighting in HTML export


From: Nicolas Goaziou
Subject: Re: [O] Possible bug with coderef highlighting in HTML export
Date: Sun, 03 Dec 2017 15:08:56 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Hello,

Thibault Marin <address@hidden> writes:

> I am using Org mode version 9.1.3 (release_9.1.3-216-g259656 @
> /.../org-mode/lisp/) and I am experiencing an issue with the exported
> HTML of the following org file:
>
> ,----
> | this links get highlighted [[(link0)]].
> | 
> | this link does not get highlighted [[(link1)]].
> | 
> | #+begin_src emacs-lisp -r
> | 0(ref:link0)
> | #+end_src
> | 
> | #+begin_src emacs-lisp -r
> | 
> | 1(ref:link1)
> | #+end_src
> `----
>
> The relevant HTML output is:
>
> ,----
> | <p>
> | this links get highlighted <a href="#coderef-link0" class="coderef" 
> onmouseover="CodeHighlightOn(this, 'coderef-link0');" 
> onmouseout="CodeHighlightOff(this, 'coderef-link0');">1</a>.
> | </p>
> | 
> | <p>
> | this link does not get highlighted <a href="#coderef-link1" class="coderef" 
> onmouseover="CodeHighlightOn(this, 'coderef-link1');" 
> onmouseout="CodeHighlightOff(this, 'coderef-link1');">1</a>.
> | </p>
> | 
> | <div class="org-src-container">
> | <pre class="src src-emacs-lisp"><span id="coderef-link0" 
> class="coderef-off">0</span>
> | </pre>
> | </div>
> | 
> | <div class="org-src-container">
> | <pre class="src src-emacs-lisp">1
> | </pre>
> | </div>
> `----
>
> The issue is that the link to the line in the second source block is not
> highlighted (it does not get the "coderef-off" span markup).

Indeed.

> I tried to dig a little and it appears that `org-html-do-format-code'
> does not handle empty lines at the beginning of a block.
> `(org-split-string "\n1")' returns '("1") which looses the first empty
> line. The line reference received via the `refs' variable (which has
> value ((2 . link1))) then becomes out of sync with the `code' variable
> (split by lines) used for formatting of the code block.
>
> I am not sure what is the best way to handle this:
>
> 1. Should the `refs' variable be built accounting for the top empty lines?
> 2. Alternatively, should the `org-html-do-format-code' and
>    `org-export-format-code' functions count the number of top empty lines and
>    adjust the line number accordingly?
> 3. Should top empty lines be completely deleted, before the `refs' array is
>    built?
>
> I can try to propose a patch if the best option can be decided.  Option 2 
> seems
> relatively simple but feels like a hack.
>
> I would appreciate any suggestions on how to best fix this.

Option 1 seems the best way to go. Replacing `org-split-string' with
`split-string' is straightforward in this case. However, some issues
remain in `org-html-fontify-code'.

Thank you.

Regards,

-- 
Nicolas Goaziou



reply via email to

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