emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <n.goaziou@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: [New Exporter] deriving from derived backends?
Date: Fri, 15 Mar 2013 21:26:28 +0100	[thread overview]
Message-ID: <874ngc5s0b.fsf@gmail.com> (raw)
In-Reply-To: <20130311183317.GA64866@BigDog.local> (Rick Frankel's message of "Mon, 11 Mar 2013 14:33:17 -0400")

Hello,

Rick Frankel <rick@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

      parent reply	other threads:[~2013-03-15 20:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-11 18:33 [New Exporter] deriving from derived backends? Rick Frankel
2013-03-12 13:15 ` Bastien
2013-03-12 19:38   ` Rick Frankel
2013-03-15 20:26 ` Nicolas Goaziou [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874ngc5s0b.fsf@gmail.com \
    --to=n.goaziou@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).