0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-29 20:37:51 +00:00

org-html: add divs for pre/postamble defined in a new variable.

`org-export-html-divs' contains '("preamble" "content" "postamble")
and is used to define the <div "%s"> for this parts of the HTML file.

This commit also obsolete some variables that are not useful anymore
as the file time-stamp can (should) be inserted through the postamble
or the preamble instead.

Thanks to Sébastian Vauban for a preliminary version of this patch!

* org-html.el (org-export-html-with-timestamp)
(org-export-html-html-helper-timestamp): These are obsolete
variables as of Org version 7.7 as you can already export the
timestamp from the preamble or the postamble.
(org-export-html-before-content-div): Delete variable.
(org-export-html-content-div): obsolete variable as of 7.7.
(org-export-html-divs): New variable to define divs used in
HTML export.
(org-export-as-html): Now the preamble and the postamble are
surrounded by a <div ...>.  The name of the div is defined
through `org-export-html-divs'.
This commit is contained in:
Bastien Guerry 2011-07-23 19:09:07 +02:00
parent 4a6a317443
commit 2f1fbc58be

View file

@ -548,19 +548,15 @@ When nil, also column one will use data tags."
:group 'org-export-html
:type 'string)
(defcustom org-export-html-with-timestamp nil
"If non-nil, write timestamp into the exported HTML text.
If non-nil, write `org-export-html-html-helper-timestamp' into the
exported HTML text. Otherwise, the buffer will just be saved to
a file."
:group 'org-export-html
:type 'boolean)
;; FIXME Obsolete since Org 7.7
;; Use the :timestamp option or `org-export-time-stamp-file' instead
(defvar org-export-html-with-timestamp nil
"If non-nil, write container for HTML-helper-mode timestamp.")
(defcustom org-export-html-html-helper-timestamp
"<br/><br/><hr/><p><!-- hhmts start --> <!-- hhmts end --></p>\n"
"The HTML tag used as timestamp delimiter for HTML-helper-mode."
:group 'org-export-html
:type 'string)
;; FIXME Obsolete since Org 7.7
(defvar org-export-html-html-helper-timestamp
"\n<p><br/><br/>\n<!-- hhmts start --> <!-- hhmts end --></p>\n"
"The HTML tag used as timestamp delimiter for HTML-helper-mode.")
(defcustom org-export-html-protect-char-alist
'(("&" . "&amp;")
@ -614,15 +610,22 @@ with a link to this URL."
(const :tag "Keep internal css" nil)
(string :tag "URL or local href")))
(defcustom org-export-html-before-content-div ""
"Arbitrary HTML code placed before <div id=\"content\">."
:group 'org-export-html
:type 'string)
;; FIXME: The following variable is obsolete since Org 7.7 but is
;; still declared and checked within code for compatibility reasons.
;; Use the custom variables `org-export-html-divs' instead.
(defvar org-export-html-content-div "content"
"The name of the container DIV that holds all the page contents.
(defcustom org-export-html-content-div "content"
"The name of the container DIV that holds all the page contents."
This variable is obsolete since Org version 7.7.
Please set `org-export-html-divs' instead.")
(defcustom org-export-html-divs '("preamble" "content" "postamble")
"The name of the main divs for HTML export."
:group 'org-export-html
:type 'string)
:type '(list
(string :tag " Div for the preamble:")
(string :tag " Div for the content:")
(string :tag "Div for the postamble:")))
;;; Hooks
@ -1300,8 +1303,6 @@ lang=\"%s\" xml:lang=\"%s\">
</head>
<body>
%s
<div id=\"%s\">
%s
"
(format
(or (and (stringp org-export-html-xml-declaration)
@ -1317,8 +1318,6 @@ lang=\"%s\" xml:lang=\"%s\">
date author description keywords
style
mathjax
org-export-html-before-content-div
org-export-html-content-div
(if (or link-up link-home)
(concat
(format org-export-html-home/up-format
@ -1330,6 +1329,7 @@ lang=\"%s\" xml:lang=\"%s\">
;; insert html preamble
(when (plist-get opt-plist :html-preamble)
(let ((html-pre (plist-get opt-plist :html-preamble)))
(insert "<div id=\"" (nth 0 org-export-html-divs) "\">\n")
(cond ((stringp html-pre)
(insert
(format-spec html-pre `((?t . ,title) (?a . ,author)
@ -1343,8 +1343,15 @@ 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 "\n</div>\n")))
;; begin wrap around body
(insert (format "\n<div id=\"%s\">"
(or org-export-html-content-div ; <= FIXME obsolete since 7.7
(nth 1 org-export-html-divs)))))
;; insert body
(if (and org-export-with-toc (not body-only))
(progn
(push (format "<h%d>%s</h%d>\n"
@ -1748,8 +1755,11 @@ lang=\"%s\" xml:lang=\"%s\">
(when bib
(insert "\n" bib "\n")))
;; export html postamble
(unless body-only
;; end wrap around body
(insert "</div>\n")
;; export html postamble
(let ((html-post (plist-get opt-plist :html-postamble))
(email
(mapconcat (lambda(e)
@ -1759,19 +1769,18 @@ lang=\"%s\" xml:lang=\"%s\">
(creator-info
(concat "Org version " org-version " with Emacs version "
(number-to-string emacs-major-version))))
(when (plist-get opt-plist :html-postamble)
(insert "\n<div id=\"" (nth 2 org-export-html-divs) "\">\n")
(cond ((stringp html-post)
(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>"))
(?v . ,html-validation-link)))))
((functionp html-post)
(funcall html-post))
((eq html-post 'auto)
;; fall back on default postamble
(insert "<div id=\"postamble\">\n")
(when (plist-get opt-plist :time-stamp-file)
(insert "<p class=\"date\">" (nth 2 lang-words) ": " date "</p>\n"))
(when (and (plist-get opt-plist :author-info) author)
@ -1782,22 +1791,23 @@ lang=\"%s\" xml:lang=\"%s\">
(insert "<p class=\"creator\">"
(concat "Org version " org-version " with Emacs version "
(number-to-string emacs-major-version) "</p>\n")))
(insert html-validation-link "\n</div>"))
(insert html-validation-link "\n"))
(t
(insert "<div id=\"postamble\">\n")
(insert (format-spec
(or (cadr (assoc (nth 0 lang-words)
org-export-html-postamble-format))
(cadr (assoc "en" org-export-html-postamble-format)))
`((?a . ,author) (?e . ,email)
(?d . ,date) (?c . ,creator-info)
(?v . ,html-validation-link))))
(insert "</div>"))))))
(?v . ,html-validation-link))))))
(insert "\n</div>"))))
;; FIXME `org-export-html-with-timestamp' has been declared
;; obsolete since Org 7.7 -- don't forget to remove this.
(if org-export-html-with-timestamp
(insert org-export-html-html-helper-timestamp))
(unless body-only (insert "\n</div>\n</body>\n</html>\n"))
(unless body-only (insert "\n</body>\n</html>\n"))
(unless (plist-get opt-plist :buffer-will-be-killed)
(normal-mode)