Hi,
"Sebastien Vauban" wrote:
> Sébastien Vauban wrote:
>> Jonathan BISSON wrote:
>>> Sébastien Vauban <wxhgmqzgwmuf@...> writes:
>>>> After a couple of tests, I've observed that the postamble is forced to be
>>>> included *inside* the div "content".
>>>>
>>>> Proof on Line 1764... These are the ending tags of every HTML page:
>>>>
>>>> #+begin_src emacs-lisp
>>>> (unless body-only (insert "\n</div>\n</body>\n</html>\n"))
>>>> #+end_src
>>>>
>>>> ... the closing </div> referring to the opening of "content".
>>>>
>>>> Shouldn't it make sense to be able to insert something *out of* the
>>>> "content" div?
>>>
>>> I think so (and the same for preamble)!
>>>
>>> I rewrote org-export-as-html and did a custom org-publish-org-to-html to
>>> call it, in order to get them out off the content div (you can look at a
>>> first test on my webpage http://www.bjonnh.net). It's easy to do it I can
>>> send you my file if you are interested.
>>
>> I think sharing the code here is always a good idea.
>>
>> However, I'd favor an approach commonly shared by others, ie by either:
>>
>> - moving the postamble out of the content DIV
>>
>> - adding an extra "environment" next to the content DIV, if the postamble
>> must
>> stay where it currently is -- for historical or compliance reasons?
>>
>> (same applies for preamble)
>
> I'm hijacking my own thread, as it received little support, and as the new
> question is quite related to that:
>
> - if we customize the preamble, our string will be inserted as is;
>
> - if we customize the postamble, our string will be inserted as is... between
> a wrapping div called "postamble".
>
> Shouldn't it be normal to apply the same reasoning for both cases: either
> impose a wrapper, either not?
>
>> Any comment for others?
Except for the reply of Jonathan, I received no answer on this. Here is thus
my proposition for a better div-structured HTML.
There are only four parts required in the HTML for all the magic to work with
the CSS:
- The first part is a container div ("content", by default) that surrounds
everything.
- Inside that are three more parts:
+ a preamble (in a div, if the user wants it),
+ a div "body" and
+ a postamble (in a div, if the user wants it).
The patch is attached.
Best regards,
Seb
--
Sebastien Vauban
diff --git a/lisp/org-html.el b/lisp/org-html.el
index f6108fc..daf61d2 100644
--- a/lisp/org-html.el
+++ b/lisp/org-html.el
@@ -1325,7 +1325,10 @@ lang=\"%s\" xml:lang=\"%s\">
org-export-html-preamble-format))
(cadr (assoc "en" org-export-html-preamble-format)))
`((?t . ,title) (?a . ,author)
- (?d . ,date) (?e . ,email)))))))))
+ (?d . ,date) (?e . ,email))))))))
+
+ ;; insert opening tag for body
+ (insert "\n<div id=\"body\">\n"))
(if (and org-export-with-toc (not body-only))
(progn
@@ -1721,6 +1724,8 @@ lang=\"%s\" xml:lang=\"%s\">
;; export html postamble
(unless body-only
+ ;; insert closing tag for body
+ (insert "</div>")
(let ((html-post (plist-get opt-plist :html-postamble))
(email
(mapconcat (lambda(e)
@@ -1732,12 +1737,13 @@ lang=\"%s\" xml:lang=\"%s\">
(number-to-string emacs-major-version))))
(when (plist-get opt-plist :html-postamble)
(cond ((stringp html-post)
- (insert "<div id=\"postamble\">\n")
+ ;; (insert "<div id=\"postamble\">\n")
(insert (format-spec html-post
`((?a . ,author) (?e . ,email)
(?d . ,date) (?c . ,creator-info)
(?v . ,html-validation-link))))
- (insert "</div>"))
+ ;; (insert "</div>")
+ )
((functionp html-post)
(funcall html-post opt-plist))
((eq html-post 'auto)