>From b24e403030ea76febc3fecb0ba9db56b3c39d5aa Mon Sep 17 00:00:00 2001 From: Rasmus
Date: Sun, 16 Mar 2014 00:01:35 +0100 Subject: [PATCH] Support for level-based containers in ox-html * ox-html.el (org-html-container-element): List of cons of section-level containers. (org-html--container): Redefine to consider org-html-container-element. --- lisp/ox-html.el | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index a8c924f..f1a4cb1 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -940,17 +940,23 @@ versions 8 and below." :package-version '(Org . "8.0") :type 'boolean) -(defcustom org-html-container-element "div" - "HTML element to use for wrapping top level sections. +(defcustom org-html-container-element '(("div" . "section") + ("div" . "article") + ("div" . "div")) + "HTML elements to use for wrapping sections. Can be set with the in-buffer HTML_CONTAINER property or for publishing, with :html-container. -Note that changing the default will prevent you from using -org-info.js for your website." +Should be a list of cons cells with positions corresponding to a +section. If `org-html-html5-fancy' is t the cdr is used +otherwise the car. + +Note that changing the default will prevent you from +using org-info.js for your website." :group 'org-export-html :version "24.4" :package-version '(Org . "8.0") - :type 'string) + :type '(repeat (cons string string))) (defcustom org-html-divs '((preamble "div" "preamble") @@ -2412,9 +2418,14 @@ holding contextual information." (defun org-html--container (headline info) (or (org-element-property :HTML_CONTAINER headline) - (if (= 1 (org-export-get-relative-level headline info)) - (plist-get info :html-container) - "div"))) + (let* ((hc (plist-get info :html-container)) + (n (org-export-get-relative-level headline info))) + (cond ((listp hc) + (or (funcall (if org-html-html5-fancy 'cdr-safe 'car-safe) + (nth (1- (min n (length hc))) hc)) "div")) + ((and (stringp hc) (= 1 n)) + (plist-get info :html-container)) + (t "div"))))) ;;;; Horizontal Rule -- 1.9.0