From 2f1fbc58be1dc48621217d666da7bc46c3c5d84e Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Sat, 23 Jul 2011 19:09:07 +0200 Subject: [PATCH] org-html: add divs for pre/postamble defined in a new variable. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit `org-export-html-divs' contains '("preamble" "content" "postamble") and is used to define the
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
. The name of the div is defined through `org-export-html-divs'. --- lisp/org-html.el | 80 ++++++++++++++++++++++++++++++----------------------- 1 files changed, 45 insertions(+), 35 deletions(-) diff --git a/lisp/org-html.el b/lisp/org-html.el index 7bb8b61..cb04067 100644 --- a/lisp/org-html.el +++ b/lisp/org-html.el @@ -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 - "


\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



\n

\n" + "The HTML tag used as timestamp delimiter for HTML-helper-mode.") (defcustom org-export-html-protect-char-alist '(("&" . "&") @@ -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
." - :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. + +This variable is obsolete since Org version 7.7. +Please set `org-export-html-divs' instead.") -(defcustom org-export-html-content-div "content" - "The name of the container DIV that holds all the page contents." +(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\"> %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 "
\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
\n"))) + + ;; begin wrap around body + (insert (format "\n
" + (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 "%s\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 "
\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
\n") (cond ((stringp html-post) - (insert "
\n") (insert (format-spec html-post `((?a . ,author) (?e . ,email) (?d . ,date) (?c . ,creator-info) - (?v . ,html-validation-link)))) - (insert "
")) + (?v . ,html-validation-link))))) ((functionp html-post) (funcall html-post)) ((eq html-post 'auto) ;; fall back on default postamble - (insert "
\n") (when (plist-get opt-plist :time-stamp-file) (insert "

" (nth 2 lang-words) ": " date "

\n")) (when (and (plist-get opt-plist :author-info) author) @@ -1782,22 +1791,23 @@ lang=\"%s\" xml:lang=\"%s\"> (insert "

" (concat "Org version " org-version " with Emacs version " (number-to-string emacs-major-version) "

\n"))) - (insert html-validation-link "\n
")) + (insert html-validation-link "\n")) (t - (insert "
\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 "
")))))) - + (?v . ,html-validation-link)))))) + (insert "\n
")))) + + ;; 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
\n\n\n")) + (unless body-only (insert "\n\n\n")) (unless (plist-get opt-plist :buffer-will-be-killed) (normal-mode) -- 1.7.2.5