From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Exporter: Derived backend options-alist Date: Mon, 02 Mar 2015 17:52:38 +0100 Message-ID: <87twy3bauh.fsf@nicolasgoaziou.fr> References: <87d24rv5ph.wl-jamshark70@qq.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45713) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YSTZ8-0004Me-12 for emacs-orgmode@gnu.org; Mon, 02 Mar 2015 11:51:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YSTZ3-0003c3-SW for emacs-orgmode@gnu.org; Mon, 02 Mar 2015 11:51:33 -0500 Received: from relay3-d.mail.gandi.net ([2001:4b98:c:538::195]:47442) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YSTZ3-0003bW-N5 for emacs-orgmode@gnu.org; Mon, 02 Mar 2015 11:51:29 -0500 In-Reply-To: <87d24rv5ph.wl-jamshark70@qq.com> (James Harkins's message of "Mon, 02 Mar 2015 22:23:22 +0800") 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: James Harkins Cc: orgmode Hello, James Harkins writes: > I'm trying to derive an exporter backend from ASCII. I need to add some export options, so I have: > > #+BEGIN_SRC {emacs-lisp} > (org-export-define-derived-backend 'scdoc 'ascii > :translate-alist ... omitted for brevity... > :options-alist > '((:categories "CATEGORIES" nil nil t) > (:related "RELATED" nil nil t) > (:summary "SUMMARY" nil nil t) > (:redirect "REDIRECT" nil nil t)) > ) > > ... snip snip... > > (defun org-scdoc-template (contents info) > "Return complete document string after SCDoc conversion. > CONTENTS is the transcoded contents string. INFO is a plist > holding export options." > (let* ((title (org-export-data (plist-get info :title) info)) > (categories (org-export-data (plist-get info :categories) info)) > (related (org-export-data (plist-get info :related) info)) > (summary (org-export-data (plist-get info :summary) info)) > (redirect (org-export-data (plist-get info :redirect) info)) > (output (format "TITLE:: %s\n" title))) > (if categories (setq output (concat output (format "CATEGORIES:: %s\n" categories)))) > (if related (setq output (concat output (format "RELATED:: %s\n" categories)))) > (if summary (setq output (concat output (format "SUMMARY:: %s\n" categories)))) > (if redirect (setq output (concat output (format "REDIRECT:: %s\n" categories)))) > (concat output "\n\n" contents))) > #+END_SRC > > (Pardon the un-idiomatic Emacs-lisp.) > > Then I created an org file that begins: > > #+BEGIN_SRC org > ,#+title:: PulseCount > ,#+summary:: Pulse counter. > ,#+related:: Classes/Stepper > ,#+categories:: UGens>Triggers It should be #+title: PulseCount ... #+categories: UGens>Triggers > > ,* Description > Each trigger increments a counter which is output as a signal. > #+END_SRC > > Then I run org-scdoc-export-as-scdoc, and I get as the first few lines: > > TITLE:: > CATEGORIES:: > RELATED:: > SUMMARY:: > REDIRECT:: > > ... telling me that the template function retrieved empty strings for > all the export options. `org-export-data' always returns a string, even with a nil first argument. If categories, related, etc. values are not parsed, just use (categories (plist-get info :categories)) Regards, -- Nicolas Goaziou