From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rick Frankel Subject: Re: [patch][ox-html] Support for level based containers Date: Mon, 17 Mar 2014 13:31:58 -0400 Message-ID: <20140317173158.GB75979@eyeBook> References: <87ha6z3vbi.fsf@gmx.us> <87vbveqofg.fsf@gmail.com> <87iordk1t5.fsf@bzg.ath.cx> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="rwEMma7ioTxnRzrJ" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WPbOS-00042o-AT for emacs-orgmode@gnu.org; Mon, 17 Mar 2014 13:32:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WPbOM-0005YL-5f for emacs-orgmode@gnu.org; Mon, 17 Mar 2014 13:32:08 -0400 Content-Disposition: inline In-Reply-To: <87iordk1t5.fsf@bzg.ath.cx> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Bastien Cc: emacs-orgmode@gnu.org, Nicolas Goaziou , Rasmus --rwEMma7ioTxnRzrJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Mar 17, 2014 at 03:15:50AM +0100, Bastien wrote: > Hi Rasmus and Nicolas, > > Nicolas Goaziou writes: > > >> Let me know if you find you'd be willing to merge something like this > > > > I don't know enough HTML to have an opinion here. > I don't think it's a bad change, but i have a couple of concerns: 1. It's a breaking change. 2. The default should mimic the current functionality: ='((div . div))= 3. The customization should be more structured, not just a string (see e.g., =org-html-text-markup-alist=.) Attached is a modification of the patch which fixes 2 & 3. #1 is a question more for Nicolas & Bastien... rick --rwEMma7ioTxnRzrJ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-Support-for-heading-level-based-containers-in-ox-htm.patch" >From 21aed5d34613f9f922c2d1c8f5f67caac918c9cf Mon Sep 17 00:00:00 2001 From: Rick Frankel Date: Mon, 17 Mar 2014 13:27:12 -0400 Subject: [PATCH] Support for heading level based containers in ox-html. * ox-html.el (org-html-container-element): Change to list of cons cells for heading level containers. (org-html--container): Use heading level entries from 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 cb95161..b51a746 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -938,17 +938,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" . "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 +heading levels. 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 '(alist :key-type (string :tag "HTML4") + :value-type (string :tag "HTML5"))) (defcustom org-html-divs '((preamble "div" "preamble") @@ -2410,9 +2416,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.8.5.2 (Apple Git-48) --rwEMma7ioTxnRzrJ--