emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Sebastien Vauban" <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org>
To: emacs-orgmode-mXXj517/zsQ@public.gmane.org
Subject: Re: HTML Postamble is inside Content DIV
Date: Tue, 28 Jun 2011 23:45:18 +0200	[thread overview]
Message-ID: <808vslr5ox.fsf@somewhere.org> (raw)
In-Reply-To: 801uzeu2b6.fsf@somewhere.org

[-- Attachment #1: Type: text/plain, Size: 2377 bytes --]

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

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: org-html-new-structure.patch --]
[-- Type: text/x-patch, Size: 1395 bytes --]

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)

  reply	other threads:[~2011-06-28 21:45 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-29 22:15 HTML Postamble is inside Content DIV Sébastien Vauban
2011-04-30 18:41 ` Jonathan BISSON
2011-05-03 11:17   ` Sébastien Vauban
2011-05-31 18:56     ` Sebastien Vauban
2011-06-28 21:45       ` Sebastien Vauban [this message]
2011-06-29 13:26         ` Pierre de Buyl
2011-07-01 14:06           ` Sebastien Vauban
2011-07-06  6:49             ` Pierre de Buyl
2011-07-08  7:36               ` Sebastien Vauban
2011-07-08  9:28                 ` Pierre de Buyl
2011-07-21 20:47                   ` [patch] " Sebastien Vauban
2011-07-21 23:35                     ` Jambunathan K
2011-07-24 18:56                       ` Bastien
2011-07-23 17:11                     ` Bastien
2011-07-23 21:58                       ` Sebastien Vauban

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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  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=808vslr5ox.fsf@somewhere.org \
    --to=wxhgmqzgwmuf-genee64ty+gs+fvcfc7uqw@public.gmane.org \
    --cc=emacs-orgmode-mXXj517/zsQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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