emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Bugfix for org-export-format-source-code-or-example


From: Carsten Dominik
Subject: Re: [Orgmode] Bugfix for org-export-format-source-code-or-example
Date: Sat, 20 Jun 2009 20:40:24 +0200

Applied, thanks, in particular for the extensive explanations.

- Carsten

On Jun 20, 2009, at 7:29 AM, address@hidden wrote:

I switched my 'org-export-html-extension' variable from "html" to
"xhtml" and found that code examples are being formatted
incorrectly.  I use Firefox, and when Firefox has (what it thinks is)
HTML-in-XML, it uses Standards Mode.  This happens:

 - if you get the document from a server and its MIME type is
   "application/xhtml+xml", or

 - if you get the document from a file, and its extension is
   ".xhtml".

Otherwise it uses Quirks mode.  In Standards mode, Firefox attempts to
render everything per the spec.  In Quirks mode, Firefox is being
backwards compatible with legacy browsers.  (I'm ignoring Almost
Standards mode here.)

The current master repo generates HTML like

 <pre class="example">
 Quote paragraph 1.

 Quote paragraph 2.

 Quote paragraph 3.
 </pre>

which Firefox displays as we expect in Quirks mode.  In Standards
mode, Firefox adds an extra blank line before the "Quote paragraph 1."
This comes from Firefox presenting the newline that Org Mode has
inserted between the first ">" and the text.  This blank line is very
obvious in the browser, because the sample has an enclosing box.

When I manually remove the newlines, both XHTML and HTML modes look
correct, so I have created a patch (attached) to remove the newlines
after the "pre".  This fixes the XHTML display problem.  The ASCII
exporter looks fine after the change, and I can't see any difference
in what the LaTeX and Docbook exporters generate.

(Why am I bothering with XHTML in the first place?
To embed SVG elements.)

Derek

--
Derek Upham
address@hidden


diff --git a/lisp/org-exp.el b/lisp/org-exp.el
index 6d8dd4a..5412e1b 100644
--- a/lisp/org-exp.el
+++ b/lisp/org-exp.el
@@ -2228,7 +2228,7 @@ INDENT was the original indentation of the block."
                             (point-min) (point-max))))
                    (if (string-match "<pre\\([^>]*\\)>\n?" rtn)
                        (setq rtn (replace-match
-                                  (format "<pre class=\"src src-%s\">\n" lang)
+                                  (format "<pre class=\"src src-%s\">" lang)
                                   t t rtn))))
                (if textareap
                    (setq rtn (concat
@@ -2243,7 +2243,7 @@ INDENT was the original indentation of the block."
                                                
'((?&."&amp;")(?<."&lt;")(?>."&gt;"))))
                                     t t))
                    (setq rtn (buffer-string)))
-                 (setq rtn (concat "<pre class=\"example\">\n" rtn 
"</pre>\n"))))
+                 (setq rtn (concat "<pre class=\"example\">" rtn "</pre>\n"))))
              (unless textareap
                (setq rtn (org-export-number-lines rtn 'html 1 1 num
                                                   cont rpllbl fmt)))
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode





reply via email to

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