Hello, Rick Frankel <r...@rickster.com> writes:
> I am trying to derive a backend from another derived backend (i want > to override certain entries in the options-alist), but it does not > seem to work. The menu entries are created, but the in the > second-level derived backend are not being picked up. > > Should this work? Or do i need a different approach? > > here's abbreviated code: > > (org-export-define-derived-backend s5 html > :menu-entry > (?s "Export to S5 HTML Presentation" > ((?H "To temporary buffer" org-s5-export-as-html) > (?h "To file" org-s5-export-to-html) > (?o "To file and open" > (lambda (a s v b) > (if a (org-s5-export-to-html t s v b) > (org-open-file (org-s5-export-to-html nil s v b))))))) > :options-alist > [...] > > > ;; this is the full exporter definition > (org-export-define-derived-backend s5-xoxo s5 > :menu-entry > (?s "Export to S5 HTML Presentation" > ((?X "To temporary buffer (XOXO)" org-s5-export-as-html) > (?x "To file (XOXO)" org-s5-export-to-html) > (?O "To file and open (XOXO)" > (lambda (a s v b) > (if a (org-s5-export-to-html t s v b) > (org-open-file (org-s5-export-to-html nil s v b))))))) > :options-alist > ((:html-container nil nil "li") ;; this is defined in the html backend > ;; this is new to this backend > (:s5-xoxo-root "S5_XOXO_ROOT" nil org-s5-xoxo-root-element))) > > If i use e.g., s-X or s-x in the exporter menu, > in exporter functions, :html-container == "div" (which is set in the > html exporter), and :s5-xoxo-root is nil. You are using the same key: ?s for both back-ends in the menu. You need to use different keys, or install one of them as a sub-menu of the previous one (notice the "1" instead of the description): (org-export-define-derived-backend s5-xoxo s5 :menu-entry (?s 1 ((?X "To temporary buffer (XOXO)" org-s5-export-as-html) (?x "To file (XOXO)" org-s5-export-to-html) (?O "To file and open (XOXO)" (lambda (a s v b) (if a (org-s5-export-to-html t s v b) (org-open-file (org-s5-export-to-html nil s v b))))))) :options-alist ((:html-container nil nil "li") ;; this is defined in the html backend ;; this is new to this backend (:s5-xoxo-root "S5_XOXO_ROOT" nil org-s5-xoxo-root-element))) Regards, -- Nicolas Goaziou