emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: sand@blarg.net
To: emacs-orgmode@gnu.org
Subject: Bugfix for org-export-format-source-code-or-example
Date: Fri, 19 Jun 2009 22:29:59 -0700	[thread overview]
Message-ID: <19004.29655.513168.584209@priss.frightenedpiglet.com> (raw)

[-- Attachment #1: message body text --]
[-- Type: text/plain, Size: 1565 bytes --]

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

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.

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 Upham

[-- Attachment #2: Patch to remove incorrect newline when generating "pre" --]
[-- Type: text/plain, Size: 897 bytes --]

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."
 				     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)))

[-- Attachment #3: Type: text/plain, Size: 204 bytes --]

Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.

             reply	other threads:[~2009-06-20  5:31 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-20  5:29 sand [this message]
2009-06-20 18:40 ` Bugfix for org-export-format-source-code-or-example Carsten Dominik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19004.29655.513168.584209@priss.frightenedpiglet.com \
    --to=sand@blarg.net \
    --cc=emacs-orgmode@gnu.org \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).