[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] [PATCH] Markup on same line as text
From: |
Roland Kaufmann |
Subject: |
[Orgmode] [PATCH] Markup on same line as text |
Date: |
Thu, 06 Jan 2011 23:12:11 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 |
I just discovered a problem with colorization and references in code
snippets due to the way org-mode and htmlize interact. Consider the
org-mode fragment:
#+BEGIN_SRC emacs-lisp
(let ((x 42)) ; meaning of l.u.e.
(print x)) ; (ref:2)
#+END_SRC
Without the reference on line 2, doing an org-export-as-html would
generate markup like this:
(let ((x 42)) <span style="comment">; meaning of l.u.e.
</span> (print x))
Note that htmlize put the newline character on the end of the first line
together with the text of the comment, both which is put inside the
span. The closing tag of the span to colorize the comment thus ends up
on the next line.
When a reference is put on the next line, org-mode will subsequently add
markup to highlight each line, so the markup ends up like this:
(let ((x 42)) <span style="comment">; meaning of l.u.e.
<span id="ref-2"></span> (print x))</span>
^^^^^^^
The first closing tag is really the end of the comment which is spilled
to the next line, but it erraneously closes the id span. The color of
the comment then proceeds to the end of the second line, where the id
span was to close.
To remedy this, I wrote a patch which postpone writing the newline to
the html buffer until after the closing tag has been emitted. The patch
is attached and should be applicable to the current Git repository.
It should be applicable to version 1.37 of htmlize.el as well, with the
command `patch -p3 < 0001-Markup-on-same-line-as-text.patch`.
I refactored the insert-text functions so that they return the markup
that should be applied instead of doing the insertion itself, and then
let this go through a new function add-markup which puts the tags around
the text, putting any trailing newline in the text at the very end,
before the main htmlize-buffer-1 does the actual insertion in the buffer.
I have tested this with all three kinds of htmlize-output-type, and it
seems to give the expected result.
--
Roland.
0001-Markup-on-same-line-as-text.patch
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Orgmode] [PATCH] Markup on same line as text,
Roland Kaufmann <=