Hi Carsten, During the weekend, I found and fixed two bugs that exist in HTML/DocBook exporters (see the following descriptions). I am attaching a patch for the fixes at the end of this email.
1. Bug One: two consecutive lists with different list types at the same level are exported as *one* list. For example, the following two lists 1. Ordered List Item 1 2. Ordered List Item 2 - Itemized List Item 1 - Itemized List Item 2 - Itemized List Item 3 are exported as one ordered list in HTML (see below, similar problem also exist in DocBook). : <ol> : <li> : Ordered List Item 1 : </li> : <li> : Ordered List Item 2 : : </li> : <li> : Itemized List Item 1 : </li> : <li> : Itemized List Item 2 : </li> : <li> : Itemized List Item 3 : : </li> : </ol> 2. Bug Two: a paragraph *immediately* after a block like quote, verse, centered block, example, etc. is not wrapped into paragraph tags (<p>...</p> in HTML or <para>...</para> in DocBook). While it is not a big deal for HTML exporter, this bug makes exported DocBook XML document invalid. The following lines can reproduce this bug: : Code line one : Code line two This is a paragraph immediately after the above code block without an empty line before it, and it is NOT wrapped in a paragraph (<p> in HTML or <para> in DocBook) in exported format. Please let me know if you see any problems in the fix. Thanks, Baoqiu
diff --git a/lisp/org-docbook.el b/lisp/org-docbook.el index 3739181..0b87ada 100644 --- a/lisp/org-docbook.el +++ b/lisp/org-docbook.el @@ -606,6 +606,7 @@ publishing directory." ;; End of quote section? (when (and inquote (string-match "^\\*+ " line)) (insert "]]>\n</programlisting>\n") + (org-export-docbook-open-para) (setq inquote nil)) ;; Inside a quote section? (when inquote @@ -624,7 +625,8 @@ publishing directory." (not (string-match "^[ \t]*\\(:.*\\)" (car lines)))) (setq infixed nil) - (insert "]]>\n</programlisting>\n")) + (insert "]]>\n</programlisting>\n") + (org-export-docbook-open-para)) (throw 'nextline nil)) ;; Protected HTML @@ -681,12 +683,14 @@ publishing directory." (when (equal "ORG-BLOCKQUOTE-END" line) (org-export-docbook-close-para-maybe) (insert "</blockquote>\n") + (org-export-docbook-open-para) (throw 'nextline nil)) ;; End of verses (when (equal "ORG-VERSE-END" line) (insert "</literallayout>\n</blockquote>\n") (setq inverse nil) + (org-export-docbook-open-para) (throw 'nextline nil)) ;; Text centering. Element <para role="centered"> does not @@ -704,6 +708,7 @@ publishing directory." (org-export-docbook-close-para-maybe) (insert "</entry></row></tbody>\n" "</tgroup>\n</informaltable>\n") + (org-export-docbook-open-para) (throw 'nextline nil)) ;; Make targets to anchors. Note that currently FOP does not @@ -969,7 +974,9 @@ publishing directory." (setq didclose nil) (while (and in-local-list (or (and (= ind (car local-list-indent)) - (not starter)) + (or (not starter) + (not (equal item-type + (car local-list-type))))) (< ind (car local-list-indent)))) (setq didclose t) (let ((listtype (car local-list-type))) diff --git a/lisp/org-exp.el b/lisp/org-exp.el index df5c6a5..a8a3dfc 100644 --- a/lisp/org-exp.el +++ b/lisp/org-exp.el @@ -3687,6 +3687,7 @@ lang=\"%s\" xml:lang=\"%s\"> ;; end of quote section? (when (and inquote (string-match "^\\*+ " line)) (insert "</pre>\n") + (org-open-par) (setq inquote nil)) ;; inside a quote section? (when inquote @@ -3706,7 +3707,8 @@ lang=\"%s\" xml:lang=\"%s\"> (not (string-match "^[ \t]*:\\(\\([ \t]\\|$\\)\\(.*\\)\\)" (car lines)))) (setq infixed nil) - (insert "</pre>\n")) + (insert "</pre>\n") + (org-open-par)) (throw 'nextline nil)) ;; Protected HTML @@ -3740,6 +3742,7 @@ lang=\"%s\" xml:lang=\"%s\"> (when (equal "ORG-BLOCKQUOTE-END" line) (org-close-par-maybe) (insert "\n</blockquote>\n") + (org-open-par) (throw 'nextline nil)) (when (equal "ORG-VERSE-START" line) (org-close-par-maybe) @@ -3749,6 +3752,7 @@ lang=\"%s\" xml:lang=\"%s\"> (when (equal "ORG-VERSE-END" line) (insert "</p>\n") (setq inverse nil) + (org-open-par) (throw 'nextline nil)) (when (equal "ORG-CENTER-START" line) (org-close-par-maybe) @@ -3758,6 +3762,7 @@ lang=\"%s\" xml:lang=\"%s\"> (when (equal "ORG-CENTER-END" line) (org-close-par-maybe) (insert "\n</div>") + (org-open-par) (throw 'nextline nil)) (when inverse (let ((i (org-get-string-indentation line))) @@ -4066,7 +4071,9 @@ lang=\"%s\" xml:lang=\"%s\"> (setq didclose nil) (while (and in-local-list (or (and (= ind (car local-list-indent)) - (not starter)) + (or (not starter) + (not (equal item-type + (car local-list-type))))) (< ind (car local-list-indent)))) (setq didclose t) (org-close-li (car local-list-type))
_______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode