From a13b19e384a992d5acdbc6c8ee94bac5faba4a6d Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Tue, 19 Mar 2013 16:24:40 +0100 Subject: [PATCH] ox.el (org-export-define-backend, org-export-define-derived-backend): Use defuns * ox.el (org-export-define-backend) (org-export-define-derived-backend): Make defuns and update docstrings. * ox-texinfo.el (texinfo): * ox-org.el (org): * ox-odt.el (odt): * ox-md.el (md): * ox-man.el (man): * ox-latex.el (latex): * ox-icalendar.el (icalendar): * ox-html.el (html): * ox-beamer.el (beamer): * ox-ascii.el (ascii): Use the defuns. --- lisp/ox-ascii.el | 180 +++++++++++++++++++++---------------------- lisp/ox-beamer.el | 54 ++++++------- lisp/ox-html.el | 154 ++++++++++++++++++------------------ lisp/ox-icalendar.el | 44 +++++------ lisp/ox-latex.el | 138 ++++++++++++++++----------------- lisp/ox-man.el | 122 ++++++++++++++--------------- lisp/ox-md.el | 72 ++++++++--------- lisp/ox-odt.el | 124 ++++++++++++++--------------- lisp/ox-org.el | 102 ++++++++++++------------ lisp/ox-texinfo.el | 120 ++++++++++++++--------------- lisp/ox.el | 76 ++++++++---------- 11 files changed, 589 insertions(+), 597 deletions(-) diff --git a/lisp/ox-ascii.el b/lisp/ox-ascii.el index 6eb96b3fe..37e1b039a 100644 --- a/lisp/ox-ascii.el +++ b/lisp/ox-ascii.el @@ -54,83 +54,83 @@ ;; We also install a filter for headlines and sections, in order to ;; control blank lines separating them in output string. -(org-export-define-backend ascii - ((bold . org-ascii-bold) - (center-block . org-ascii-center-block) - (clock . org-ascii-clock) - (code . org-ascii-code) - (comment . (lambda (&rest args) "")) - (comment-block . (lambda (&rest args) "")) - (drawer . org-ascii-drawer) - (dynamic-block . org-ascii-dynamic-block) - (entity . org-ascii-entity) - (example-block . org-ascii-example-block) - (export-block . org-ascii-export-block) - (export-snippet . org-ascii-export-snippet) - (fixed-width . org-ascii-fixed-width) - (footnote-definition . org-ascii-footnote-definition) - (footnote-reference . org-ascii-footnote-reference) - (headline . org-ascii-headline) - (horizontal-rule . org-ascii-horizontal-rule) - (inline-src-block . org-ascii-inline-src-block) - (inlinetask . org-ascii-inlinetask) - (inner-template . org-ascii-inner-template) - (italic . org-ascii-italic) - (item . org-ascii-item) - (keyword . org-ascii-keyword) - (latex-environment . org-ascii-latex-environment) - (latex-fragment . org-ascii-latex-fragment) - (line-break . org-ascii-line-break) - (link . org-ascii-link) - (paragraph . org-ascii-paragraph) - (plain-list . org-ascii-plain-list) - (plain-text . org-ascii-plain-text) - (planning . org-ascii-planning) - (quote-block . org-ascii-quote-block) - (quote-section . org-ascii-quote-section) - (radio-target . org-ascii-radio-target) - (section . org-ascii-section) - (special-block . org-ascii-special-block) - (src-block . org-ascii-src-block) - (statistics-cookie . org-ascii-statistics-cookie) - (strike-through . org-ascii-strike-through) - (subscript . org-ascii-subscript) - (superscript . org-ascii-superscript) - (table . org-ascii-table) - (table-cell . org-ascii-table-cell) - (table-row . org-ascii-table-row) - (target . org-ascii-target) - (template . org-ascii-template) - (timestamp . org-ascii-timestamp) - (underline . org-ascii-underline) - (verbatim . org-ascii-verbatim) - (verse-block . org-ascii-verse-block)) +(org-export-define-backend 'ascii + '((bold . org-ascii-bold) + (center-block . org-ascii-center-block) + (clock . org-ascii-clock) + (code . org-ascii-code) + (comment . (lambda (&rest args) "")) + (comment-block . (lambda (&rest args) "")) + (drawer . org-ascii-drawer) + (dynamic-block . org-ascii-dynamic-block) + (entity . org-ascii-entity) + (example-block . org-ascii-example-block) + (export-block . org-ascii-export-block) + (export-snippet . org-ascii-export-snippet) + (fixed-width . org-ascii-fixed-width) + (footnote-definition . org-ascii-footnote-definition) + (footnote-reference . org-ascii-footnote-reference) + (headline . org-ascii-headline) + (horizontal-rule . org-ascii-horizontal-rule) + (inline-src-block . org-ascii-inline-src-block) + (inlinetask . org-ascii-inlinetask) + (inner-template . org-ascii-inner-template) + (italic . org-ascii-italic) + (item . org-ascii-item) + (keyword . org-ascii-keyword) + (latex-environment . org-ascii-latex-environment) + (latex-fragment . org-ascii-latex-fragment) + (line-break . org-ascii-line-break) + (link . org-ascii-link) + (paragraph . org-ascii-paragraph) + (plain-list . org-ascii-plain-list) + (plain-text . org-ascii-plain-text) + (planning . org-ascii-planning) + (quote-block . org-ascii-quote-block) + (quote-section . org-ascii-quote-section) + (radio-target . org-ascii-radio-target) + (section . org-ascii-section) + (special-block . org-ascii-special-block) + (src-block . org-ascii-src-block) + (statistics-cookie . org-ascii-statistics-cookie) + (strike-through . org-ascii-strike-through) + (subscript . org-ascii-subscript) + (superscript . org-ascii-superscript) + (table . org-ascii-table) + (table-cell . org-ascii-table-cell) + (table-row . org-ascii-table-row) + (target . org-ascii-target) + (template . org-ascii-template) + (timestamp . org-ascii-timestamp) + (underline . org-ascii-underline) + (verbatim . org-ascii-verbatim) + (verse-block . org-ascii-verse-block)) :export-block "ASCII" :menu-entry - (?t "Export to Plain Text" - ((?A "As ASCII buffer" - (lambda (a s v b) - (org-ascii-export-as-ascii a s v b '(:ascii-charset ascii)))) - (?a "As ASCII file" - (lambda (a s v b) - (org-ascii-export-to-ascii a s v b '(:ascii-charset ascii)))) - (?L "As Latin1 buffer" - (lambda (a s v b) - (org-ascii-export-as-ascii a s v b '(:ascii-charset latin1)))) - (?l "As Latin1 file" - (lambda (a s v b) - (org-ascii-export-to-ascii a s v b '(:ascii-charset latin1)))) - (?U "As UTF-8 buffer" - (lambda (a s v b) - (org-ascii-export-as-ascii a s v b '(:ascii-charset utf-8)))) - (?u "As UTF-8 file" - (lambda (a s v b) - (org-ascii-export-to-ascii a s v b '(:ascii-charset utf-8)))))) - :filters-alist ((:filter-headline . org-ascii-filter-headline-blank-lines) - (:filter-parse-tree org-ascii-filter-paragraph-spacing - org-ascii-filter-comment-spacing) - (:filter-section . org-ascii-filter-headline-blank-lines)) - :options-alist ((:ascii-charset nil nil org-ascii-charset))) + '(?t "Export to Plain Text" + ((?A "As ASCII buffer" + (lambda (a s v b) + (org-ascii-export-as-ascii a s v b '(:ascii-charset ascii)))) + (?a "As ASCII file" + (lambda (a s v b) + (org-ascii-export-to-ascii a s v b '(:ascii-charset ascii)))) + (?L "As Latin1 buffer" + (lambda (a s v b) + (org-ascii-export-as-ascii a s v b '(:ascii-charset latin1)))) + (?l "As Latin1 file" + (lambda (a s v b) + (org-ascii-export-to-ascii a s v b '(:ascii-charset latin1)))) + (?U "As UTF-8 buffer" + (lambda (a s v b) + (org-ascii-export-as-ascii a s v b '(:ascii-charset utf-8)))) + (?u "As UTF-8 file" + (lambda (a s v b) + (org-ascii-export-to-ascii a s v b '(:ascii-charset utf-8)))))) + :filters-alist '((:filter-headline . org-ascii-filter-headline-blank-lines) + (:filter-parse-tree org-ascii-filter-paragraph-spacing + org-ascii-filter-comment-spacing) + (:filter-section . org-ascii-filter-headline-blank-lines)) + :options-alist '((:ascii-charset nil nil org-ascii-charset))) @@ -239,8 +239,8 @@ Possible values are: (const :tag "UTF-8" utf-8))) (defcustom org-ascii-underline '((ascii ?= ?~ ?-) - (latin1 ?= ?~ ?-) - (utf-8 ?═ ?─ ?╌ ?┄ ?┈)) + (latin1 ?= ?~ ?-) + (utf-8 ?═ ?─ ?╌ ?┄ ?┈)) "Characters for underlining headings in ASCII export. Alist whose key is a symbol among `ascii', `latin1' and `utf-8' @@ -1895,15 +1895,15 @@ is non-nil." (interactive) (if async (org-export-async-start - (lambda (output) - (with-current-buffer (get-buffer-create "*Org ASCII Export*") - (erase-buffer) - (insert output) - (goto-char (point-min)) - (text-mode) - (org-export-add-to-stack (current-buffer) 'ascii))) - `(org-export-as 'ascii ,subtreep ,visible-only ,body-only - ',ext-plist)) + (lambda (output) + (with-current-buffer (get-buffer-create "*Org ASCII Export*") + (erase-buffer) + (insert output) + (goto-char (point-min)) + (text-mode) + (org-export-add-to-stack (current-buffer) 'ascii))) + `(org-export-as 'ascii ,subtreep ,visible-only ,body-only + ',ext-plist)) (let ((outbuf (org-export-to-buffer 'ascii "*Org ASCII Export*" subtreep visible-only body-only ext-plist))) @@ -1944,10 +1944,10 @@ Return output file's name." (let ((outfile (org-export-output-file-name ".txt" subtreep))) (if async (org-export-async-start - (lambda (f) (org-export-add-to-stack f 'ascii)) - `(expand-file-name - (org-export-to-file - 'ascii ,outfile ,subtreep ,visible-only ,body-only ',ext-plist))) + (lambda (f) (org-export-add-to-stack f 'ascii)) + `(expand-file-name + (org-export-to-file + 'ascii ,outfile ,subtreep ,visible-only ,body-only ',ext-plist))) (org-export-to-file 'ascii outfile subtreep visible-only body-only ext-plist)))) diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index f0f5ef04d..dc427deb4 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -293,36 +293,36 @@ Return overlay specification, as a string, or nil." ;;; Define Back-End -(org-export-define-derived-backend beamer latex +(org-export-define-derived-backend 'beamer 'latex :export-block "BEAMER" :menu-entry - (?l 1 - ((?B "As LaTeX buffer (Beamer)" org-beamer-export-as-latex) - (?b "As LaTeX file (Beamer)" org-beamer-export-to-latex) - (?P "As PDF file (Beamer)" org-beamer-export-to-pdf) - (?O "As PDF file and open (Beamer)" - (lambda (a s v b) - (if a (org-beamer-export-to-pdf t s v b) - (org-open-file (org-beamer-export-to-pdf nil s v b))))))) + '(?l 1 + ((?B "As LaTeX buffer (Beamer)" org-beamer-export-as-latex) + (?b "As LaTeX file (Beamer)" org-beamer-export-to-latex) + (?P "As PDF file (Beamer)" org-beamer-export-to-pdf) + (?O "As PDF file and open (Beamer)" + (lambda (a s v b) + (if a (org-beamer-export-to-pdf t s v b) + (org-open-file (org-beamer-export-to-pdf nil s v b))))))) :options-alist - ((:beamer-theme "BEAMER_THEME" nil org-beamer-theme) - (:beamer-color-theme "BEAMER_COLOR_THEME" nil nil t) - (:beamer-font-theme "BEAMER_FONT_THEME" nil nil t) - (:beamer-inner-theme "BEAMER_INNER_THEME" nil nil t) - (:beamer-outer-theme "BEAMER_OUTER_THEME" nil nil t) - (:beamer-header-extra "BEAMER_HEADER" nil nil newline) - (:headline-levels nil "H" org-beamer-frame-level)) - :translate-alist ((bold . org-beamer-bold) - (export-block . org-beamer-export-block) - (export-snippet . org-beamer-export-snippet) - (headline . org-beamer-headline) - (item . org-beamer-item) - (keyword . org-beamer-keyword) - (link . org-beamer-link) - (plain-list . org-beamer-plain-list) - (radio-target . org-beamer-radio-target) - (target . org-beamer-target) - (template . org-beamer-template))) + '((:beamer-theme "BEAMER_THEME" nil org-beamer-theme) + (:beamer-color-theme "BEAMER_COLOR_THEME" nil nil t) + (:beamer-font-theme "BEAMER_FONT_THEME" nil nil t) + (:beamer-inner-theme "BEAMER_INNER_THEME" nil nil t) + (:beamer-outer-theme "BEAMER_OUTER_THEME" nil nil t) + (:beamer-header-extra "BEAMER_HEADER" nil nil newline) + (:headline-levels nil "H" org-beamer-frame-level)) + :translate-alist '((bold . org-beamer-bold) + (export-block . org-beamer-export-block) + (export-snippet . org-beamer-export-snippet) + (headline . org-beamer-headline) + (item . org-beamer-item) + (keyword . org-beamer-keyword) + (link . org-beamer-link) + (plain-list . org-beamer-plain-list) + (radio-target . org-beamer-radio-target) + (target . org-beamer-target) + (template . org-beamer-template))) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index 09eeb9031..046de9b2b 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -49,86 +49,86 @@ ;;; Define Back-End -(org-export-define-backend html - ((bold . org-html-bold) - (center-block . org-html-center-block) - (clock . org-html-clock) - (code . org-html-code) - (drawer . org-html-drawer) - (dynamic-block . org-html-dynamic-block) - (entity . org-html-entity) - (example-block . org-html-example-block) - (export-block . org-html-export-block) - (export-snippet . org-html-export-snippet) - (fixed-width . org-html-fixed-width) - (footnote-definition . org-html-footnote-definition) - (footnote-reference . org-html-footnote-reference) - (headline . org-html-headline) - (horizontal-rule . org-html-horizontal-rule) - (inline-src-block . org-html-inline-src-block) - (inlinetask . org-html-inlinetask) - (inner-template . org-html-inner-template) - (italic . org-html-italic) - (item . org-html-item) - (keyword . org-html-keyword) - (latex-environment . org-html-latex-environment) - (latex-fragment . org-html-latex-fragment) - (line-break . org-html-line-break) - (link . org-html-link) - (paragraph . org-html-paragraph) - (plain-list . org-html-plain-list) - (plain-text . org-html-plain-text) - (planning . org-html-planning) - (property-drawer . org-html-property-drawer) - (quote-block . org-html-quote-block) - (quote-section . org-html-quote-section) - (radio-target . org-html-radio-target) - (section . org-html-section) - (special-block . org-html-special-block) - (src-block . org-html-src-block) - (statistics-cookie . org-html-statistics-cookie) - (strike-through . org-html-strike-through) - (subscript . org-html-subscript) - (superscript . org-html-superscript) - (table . org-html-table) - (table-cell . org-html-table-cell) - (table-row . org-html-table-row) - (target . org-html-target) - (template . org-html-template) - (timestamp . org-html-timestamp) - (underline . org-html-underline) - (verbatim . org-html-verbatim) - (verse-block . org-html-verse-block)) +(org-export-define-backend 'html + '((bold . org-html-bold) + (center-block . org-html-center-block) + (clock . org-html-clock) + (code . org-html-code) + (drawer . org-html-drawer) + (dynamic-block . org-html-dynamic-block) + (entity . org-html-entity) + (example-block . org-html-example-block) + (export-block . org-html-export-block) + (export-snippet . org-html-export-snippet) + (fixed-width . org-html-fixed-width) + (footnote-definition . org-html-footnote-definition) + (footnote-reference . org-html-footnote-reference) + (headline . org-html-headline) + (horizontal-rule . org-html-horizontal-rule) + (inline-src-block . org-html-inline-src-block) + (inlinetask . org-html-inlinetask) + (inner-template . org-html-inner-template) + (italic . org-html-italic) + (item . org-html-item) + (keyword . org-html-keyword) + (latex-environment . org-html-latex-environment) + (latex-fragment . org-html-latex-fragment) + (line-break . org-html-line-break) + (link . org-html-link) + (paragraph . org-html-paragraph) + (plain-list . org-html-plain-list) + (plain-text . org-html-plain-text) + (planning . org-html-planning) + (property-drawer . org-html-property-drawer) + (quote-block . org-html-quote-block) + (quote-section . org-html-quote-section) + (radio-target . org-html-radio-target) + (section . org-html-section) + (special-block . org-html-special-block) + (src-block . org-html-src-block) + (statistics-cookie . org-html-statistics-cookie) + (strike-through . org-html-strike-through) + (subscript . org-html-subscript) + (superscript . org-html-superscript) + (table . org-html-table) + (table-cell . org-html-table-cell) + (table-row . org-html-table-row) + (target . org-html-target) + (template . org-html-template) + (timestamp . org-html-timestamp) + (underline . org-html-underline) + (verbatim . org-html-verbatim) + (verse-block . org-html-verse-block)) :export-block "HTML" - :filters-alist ((:filter-options . org-html-infojs-install-script) - (:filter-final-output . org-html-final-function)) + :filters-alist '((:filter-options . org-html-infojs-install-script) + (:filter-final-output . org-html-final-function)) :menu-entry - (?h "Export to HTML" - ((?H "As HTML buffer" org-html-export-as-html) - (?h "As HTML file" org-html-export-to-html) - (?o "As HTML file and open" - (lambda (a s v b) - (if a (org-html-export-to-html t s v b) - (org-open-file (org-html-export-to-html nil s v b))))))) + '(?h "Export to HTML" + ((?H "As HTML buffer" org-html-export-as-html) + (?h "As HTML file" org-html-export-to-html) + (?o "As HTML file and open" + (lambda (a s v b) + (if a (org-html-export-to-html t s v b) + (org-open-file (org-html-export-to-html nil s v b))))))) :options-alist - ((:html-extension nil nil org-html-extension) - (:html-doctype "HTML_DOCTYPE" nil org-html-doctype) - (:html-container "HTML_CONTAINER" nil org-html-container-element) - (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) - (:html-link-up "HTML_LINK_UP" nil org-html-link-up) - (:html-mathjax "HTML_MATHJAX" nil "" space) - (:html-postamble nil "html-postamble" org-html-postamble) - (:html-preamble nil "html-preamble" org-html-preamble) - (:html-head "HTML_HEAD" nil org-html-head newline) - (:html-head-extra "HTML_HEAD_EXTRA" nil org-html-head-extra newline) - (:html-head-include-default-style "HTML_INCLUDE_STYLE" nil org-html-head-include-default-style newline) - (:html-head-include-scripts "HTML_INCLUDE_SCRIPTS" nil org-html-head-include-scripts newline) - (:html-table-tag nil nil org-html-table-tag) - ;; Redefine regular options. - (:creator "CREATOR" nil org-html-creator-string) - (:with-latex nil "tex" org-html-with-latex) - ;; Leave room for "ox-infojs.el" extension. - (:infojs-opt "INFOJS_OPT" nil nil))) + '((:html-extension nil nil org-html-extension) + (:html-doctype "HTML_DOCTYPE" nil org-html-doctype) + (:html-container "HTML_CONTAINER" nil org-html-container-element) + (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) + (:html-link-up "HTML_LINK_UP" nil org-html-link-up) + (:html-mathjax "HTML_MATHJAX" nil "" space) + (:html-postamble nil "html-postamble" org-html-postamble) + (:html-preamble nil "html-preamble" org-html-preamble) + (:html-head "HTML_HEAD" nil org-html-head newline) + (:html-head-extra "HTML_HEAD_EXTRA" nil org-html-head-extra newline) + (:html-head-include-default-style "HTML_INCLUDE_STYLE" nil org-html-head-include-default-style newline) + (:html-head-include-scripts "HTML_INCLUDE_SCRIPTS" nil org-html-head-include-scripts newline) + (:html-table-tag nil nil org-html-table-tag) + ;; Redefine regular options. + (:creator "CREATOR" nil org-html-creator-string) + (:with-latex nil "tex" org-html-with-latex) + ;; Leave room for "ox-infojs.el" extension. + (:infojs-opt "INFOJS_OPT" nil nil))) ;;; Internal Variables diff --git a/lisp/ox-icalendar.el b/lisp/ox-icalendar.el index 0f0e7b99e..5626a01fa 100644 --- a/lisp/ox-icalendar.el +++ b/lisp/ox-icalendar.el @@ -255,31 +255,31 @@ re-read the iCalendar file.") ;;; Define Back-End -(org-export-define-derived-backend icalendar ascii - :translate-alist ((clock . ignore) - (headline . org-icalendar-entry) - (inlinetask . ignore) - (planning . ignore) - (section . ignore) - (template . org-icalendar-template)) +(org-export-define-derived-backend 'icalendar 'ascii + :translate-alist '((clock . ignore) + (headline . org-icalendar-entry) + (inlinetask . ignore) + (planning . ignore) + (section . ignore) + (template . org-icalendar-template)) :options-alist - ((:exclude-tags - "ICALENDAR_EXCLUDE_TAGS" nil org-icalendar-exclude-tags split) - (:with-timestamps nil "<" org-icalendar-with-timestamps) - (:with-vtodo nil nil org-icalendar-include-todo) - ;; The following property will be non-nil when export has been - ;; started from org-agenda-mode. In this case, any entry without - ;; a non-nil "ICALENDAR_MARK" property will be ignored. - (:icalendar-agenda-view nil nil nil)) + '((:exclude-tags + "ICALENDAR_EXCLUDE_TAGS" nil org-icalendar-exclude-tags split) + (:with-timestamps nil "<" org-icalendar-with-timestamps) + (:with-vtodo nil nil org-icalendar-include-todo) + ;; The following property will be non-nil when export has been + ;; started from org-agenda-mode. In this case, any entry without + ;; a non-nil "ICALENDAR_MARK" property will be ignored. + (:icalendar-agenda-view nil nil nil)) :filters-alist - ((:filter-headline . org-icalendar-clear-blank-lines)) + '((:filter-headline . org-icalendar-clear-blank-lines)) :menu-entry - (?c "Export to iCalendar" - ((?f "Current file" org-icalendar-export-to-ics) - (?a "All agenda files" - (lambda (a s v b) (org-icalendar-export-agenda-files a))) - (?c "Combine all agenda files" - (lambda (a s v b) (org-icalendar-combine-agenda-files a)))))) + '(?c "Export to iCalendar" + ((?f "Current file" org-icalendar-export-to-ics) + (?a "All agenda files" + (lambda (a s v b) (org-icalendar-export-agenda-files a))) + (?c "Combine all agenda files" + (lambda (a s v b) (org-icalendar-combine-agenda-files a)))))) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 262fd2099..715212b4e 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -115,76 +115,76 @@ ;;; Define Back-End -(org-export-define-backend latex - ((bold . org-latex-bold) - (center-block . org-latex-center-block) - (clock . org-latex-clock) - (code . org-latex-code) - (comment . (lambda (&rest args) "")) - (comment-block . (lambda (&rest args) "")) - (drawer . org-latex-drawer) - (dynamic-block . org-latex-dynamic-block) - (entity . org-latex-entity) - (example-block . org-latex-example-block) - (export-block . org-latex-export-block) - (export-snippet . org-latex-export-snippet) - (fixed-width . org-latex-fixed-width) - (footnote-definition . org-latex-footnote-definition) - (footnote-reference . org-latex-footnote-reference) - (headline . org-latex-headline) - (horizontal-rule . org-latex-horizontal-rule) - (inline-src-block . org-latex-inline-src-block) - (inlinetask . org-latex-inlinetask) - (italic . org-latex-italic) - (item . org-latex-item) - (keyword . org-latex-keyword) - (latex-environment . org-latex-latex-environment) - (latex-fragment . org-latex-latex-fragment) - (line-break . org-latex-line-break) - (link . org-latex-link) - (paragraph . org-latex-paragraph) - (plain-list . org-latex-plain-list) - (plain-text . org-latex-plain-text) - (planning . org-latex-planning) - (property-drawer . (lambda (&rest args) "")) - (quote-block . org-latex-quote-block) - (quote-section . org-latex-quote-section) - (radio-target . org-latex-radio-target) - (section . org-latex-section) - (special-block . org-latex-special-block) - (src-block . org-latex-src-block) - (statistics-cookie . org-latex-statistics-cookie) - (strike-through . org-latex-strike-through) - (subscript . org-latex-subscript) - (superscript . org-latex-superscript) - (table . org-latex-table) - (table-cell . org-latex-table-cell) - (table-row . org-latex-table-row) - (target . org-latex-target) - (template . org-latex-template) - (timestamp . org-latex-timestamp) - (underline . org-latex-underline) - (verbatim . org-latex-verbatim) - (verse-block . org-latex-verse-block)) - :export-block ("LATEX" "TEX") +(org-export-define-backend 'latex + '((bold . org-latex-bold) + (center-block . org-latex-center-block) + (clock . org-latex-clock) + (code . org-latex-code) + (comment . (lambda (&rest args) "")) + (comment-block . (lambda (&rest args) "")) + (drawer . org-latex-drawer) + (dynamic-block . org-latex-dynamic-block) + (entity . org-latex-entity) + (example-block . org-latex-example-block) + (export-block . org-latex-export-block) + (export-snippet . org-latex-export-snippet) + (fixed-width . org-latex-fixed-width) + (footnote-definition . org-latex-footnote-definition) + (footnote-reference . org-latex-footnote-reference) + (headline . org-latex-headline) + (horizontal-rule . org-latex-horizontal-rule) + (inline-src-block . org-latex-inline-src-block) + (inlinetask . org-latex-inlinetask) + (italic . org-latex-italic) + (item . org-latex-item) + (keyword . org-latex-keyword) + (latex-environment . org-latex-latex-environment) + (latex-fragment . org-latex-latex-fragment) + (line-break . org-latex-line-break) + (link . org-latex-link) + (paragraph . org-latex-paragraph) + (plain-list . org-latex-plain-list) + (plain-text . org-latex-plain-text) + (planning . org-latex-planning) + (property-drawer . (lambda (&rest args) "")) + (quote-block . org-latex-quote-block) + (quote-section . org-latex-quote-section) + (radio-target . org-latex-radio-target) + (section . org-latex-section) + (special-block . org-latex-special-block) + (src-block . org-latex-src-block) + (statistics-cookie . org-latex-statistics-cookie) + (strike-through . org-latex-strike-through) + (subscript . org-latex-subscript) + (superscript . org-latex-superscript) + (table . org-latex-table) + (table-cell . org-latex-table-cell) + (table-row . org-latex-table-row) + (target . org-latex-target) + (template . org-latex-template) + (timestamp . org-latex-timestamp) + (underline . org-latex-underline) + (verbatim . org-latex-verbatim) + (verse-block . org-latex-verse-block)) + :export-block '("LATEX" "TEX") :menu-entry - (?l "Export to LaTeX" - ((?L "As LaTeX buffer" org-latex-export-as-latex) - (?l "As LaTeX file" org-latex-export-to-latex) - (?p "As PDF file" org-latex-export-to-pdf) - (?o "As PDF file and open" - (lambda (a s v b) - (if a (org-latex-export-to-pdf t s v b) - (org-open-file (org-latex-export-to-pdf nil s v b))))))) - :options-alist ((:date-format nil nil org-latex-date-timestamp-format) - (:latex-class "LATEX_CLASS" nil org-latex-default-class t) - (:latex-class-options "LATEX_CLASS_OPTIONS" nil nil t) - (:latex-header "LATEX_HEADER" nil nil newline) - (:latex-header-extra "LATEX_HEADER_EXTRA" nil nil newline) - (:latex-hyperref-p nil "texht" org-latex-with-hyperref t) - ;; Redefine regular options. - (:date "DATE" nil "\\today" t) - (:with-smart-quotes nil "'" t))) + '(?l "Export to LaTeX" + ((?L "As LaTeX buffer" org-latex-export-as-latex) + (?l "As LaTeX file" org-latex-export-to-latex) + (?p "As PDF file" org-latex-export-to-pdf) + (?o "As PDF file and open" + (lambda (a s v b) + (if a (org-latex-export-to-pdf t s v b) + (org-open-file (org-latex-export-to-pdf nil s v b))))))) + :options-alist '((:date-format nil nil org-latex-date-timestamp-format) + (:latex-class "LATEX_CLASS" nil org-latex-default-class t) + (:latex-class-options "LATEX_CLASS_OPTIONS" nil nil t) + (:latex-header "LATEX_HEADER" nil nil newline) + (:latex-header-extra "LATEX_HEADER_EXTRA" nil nil newline) + (:latex-hyperref-p nil "texht" org-latex-with-hyperref t) + ;; Redefine regular options. + (:date "DATE" nil "\\today" t) + (:with-smart-quotes nil "'" t))) diff --git a/lisp/ox-man.el b/lisp/ox-man.el index 7fc7f0220..a98182bb0 100644 --- a/lisp/ox-man.el +++ b/lisp/ox-man.el @@ -49,70 +49,70 @@ ;;; Define Back-End -(org-export-define-backend man - ((babel-call . org-man-babel-call) - (bold . org-man-bold) - (center-block . org-man-center-block) - (clock . org-man-clock) - (code . org-man-code) - (comment . (lambda (&rest args) "")) - (comment-block . (lambda (&rest args) "")) - (drawer . org-man-drawer) - (dynamic-block . org-man-dynamic-block) - (entity . org-man-entity) - (example-block . org-man-example-block) - (export-block . org-man-export-block) - (export-snippet . org-man-export-snippet) - (fixed-width . org-man-fixed-width) - (footnote-definition . org-man-footnote-definition) - (footnote-reference . org-man-footnote-reference) - (headline . org-man-headline) - (horizontal-rule . org-man-horizontal-rule) - (inline-babel-call . org-man-inline-babel-call) - (inline-src-block . org-man-inline-src-block) - (inlinetask . org-man-inlinetask) - (italic . org-man-italic) - (item . org-man-item) - (keyword . org-man-keyword) - (line-break . org-man-line-break) - (link . org-man-link) - (paragraph . org-man-paragraph) - (plain-list . org-man-plain-list) - (plain-text . org-man-plain-text) - (planning . org-man-planning) - (property-drawer . (lambda (&rest args) "")) - (quote-block . org-man-quote-block) - (quote-section . org-man-quote-section) - (radio-target . org-man-radio-target) - (section . org-man-section) - (special-block . org-man-special-block) - (src-block . org-man-src-block) - (statistics-cookie . org-man-statistics-cookie) - (strike-through . org-man-strike-through) - (subscript . org-man-subscript) - (superscript . org-man-superscript) - (table . org-man-table) - (table-cell . org-man-table-cell) - (table-row . org-man-table-row) - (target . org-man-target) - (template . org-man-template) - (timestamp . org-man-timestamp) - (underline . org-man-underline) - (verbatim . org-man-verbatim) - (verse-block . org-man-verse-block)) +(org-export-define-backend 'man + '((babel-call . org-man-babel-call) + (bold . org-man-bold) + (center-block . org-man-center-block) + (clock . org-man-clock) + (code . org-man-code) + (comment . (lambda (&rest args) "")) + (comment-block . (lambda (&rest args) "")) + (drawer . org-man-drawer) + (dynamic-block . org-man-dynamic-block) + (entity . org-man-entity) + (example-block . org-man-example-block) + (export-block . org-man-export-block) + (export-snippet . org-man-export-snippet) + (fixed-width . org-man-fixed-width) + (footnote-definition . org-man-footnote-definition) + (footnote-reference . org-man-footnote-reference) + (headline . org-man-headline) + (horizontal-rule . org-man-horizontal-rule) + (inline-babel-call . org-man-inline-babel-call) + (inline-src-block . org-man-inline-src-block) + (inlinetask . org-man-inlinetask) + (italic . org-man-italic) + (item . org-man-item) + (keyword . org-man-keyword) + (line-break . org-man-line-break) + (link . org-man-link) + (paragraph . org-man-paragraph) + (plain-list . org-man-plain-list) + (plain-text . org-man-plain-text) + (planning . org-man-planning) + (property-drawer . (lambda (&rest args) "")) + (quote-block . org-man-quote-block) + (quote-section . org-man-quote-section) + (radio-target . org-man-radio-target) + (section . org-man-section) + (special-block . org-man-special-block) + (src-block . org-man-src-block) + (statistics-cookie . org-man-statistics-cookie) + (strike-through . org-man-strike-through) + (subscript . org-man-subscript) + (superscript . org-man-superscript) + (table . org-man-table) + (table-cell . org-man-table-cell) + (table-row . org-man-table-row) + (target . org-man-target) + (template . org-man-template) + (timestamp . org-man-timestamp) + (underline . org-man-underline) + (verbatim . org-man-verbatim) + (verse-block . org-man-verse-block)) :export-block "MAN" :menu-entry - (?m "Export to MAN" - ((?m "As MAN file" org-man-export-to-man) - (?p "As PDF file" org-man-export-to-pdf) - (?o "As PDF file and open" - (lambda (a s v b) - (if a (org-man-export-to-pdf t s v b) - (org-open-file (org-man-export-to-pdf nil s v b))))))) + '(?m "Export to MAN" + ((?m "As MAN file" org-man-export-to-man) + (?p "As PDF file" org-man-export-to-pdf) + (?o "As PDF file and open" + (lambda (a s v b) + (if a (org-man-export-to-pdf t s v b) + (org-open-file (org-man-export-to-pdf nil s v b))))))) :options-alist - ((:man-class "MAN_CLASS" nil nil t) - (:man-class-options "MAN_CLASS_OPTIONS" nil nil t) - (:man-header-extra "MAN_HEADER" nil nil newline))) + '((:man-class "MAN_CLASS" nil nil t) + (:man-class-options "MAN_CLASS_OPTIONS" nil nil t) + (:man-header-extra "MAN_HEADER" nil nil newline))) diff --git a/lisp/ox-md.el b/lisp/ox-md.el index 959ecd127..6b621a07c 100644 --- a/lisp/ox-md.el +++ b/lisp/ox-md.el @@ -55,43 +55,43 @@ This variable can be set to either `atx' or `setext'." ;;; Define Back-End -(org-export-define-derived-backend md html - :export-block ("MD" "MARKDOWN") - :filters-alist ((:filter-parse-tree . org-md-separate-elements)) +(org-export-define-derived-backend 'md 'html + :export-block '("MD" "MARKDOWN") + :filters-alist '((:filter-parse-tree . org-md-separate-elements)) :menu-entry - (?m "Export to Markdown" - ((?M "To temporary buffer" - (lambda (a s v b) (org-md-export-as-markdown a s v))) - (?m "To file" (lambda (a s v b) (org-md-export-to-markdown a s v))) - (?o "To file and open" - (lambda (a s v b) - (if a (org-md-export-to-markdown t s v) - (org-open-file (org-md-export-to-markdown nil s v))))))) - :translate-alist ((bold . org-md-bold) - (code . org-md-verbatim) - (underline . org-md-verbatim) - (comment . (lambda (&rest args) "")) - (comment-block . (lambda (&rest args) "")) - (example-block . org-md-example-block) - (fixed-width . org-md-example-block) - (footnote-definition . ignore) - (footnote-reference . ignore) - (headline . org-md-headline) - (horizontal-rule . org-md-horizontal-rule) - (inline-src-block . org-md-verbatim) - (italic . org-md-italic) - (item . org-md-item) - (line-break . org-md-line-break) - (link . org-md-link) - (paragraph . org-md-paragraph) - (plain-list . org-md-plain-list) - (plain-text . org-md-plain-text) - (quote-block . org-md-quote-block) - (quote-section . org-md-example-block) - (section . org-md-section) - (src-block . org-md-example-block) - (template . org-md-template) - (verbatim . org-md-verbatim))) + '(?m "Export to Markdown" + ((?M "To temporary buffer" + (lambda (a s v b) (org-md-export-as-markdown a s v))) + (?m "To file" (lambda (a s v b) (org-md-export-to-markdown a s v))) + (?o "To file and open" + (lambda (a s v b) + (if a (org-md-export-to-markdown t s v) + (org-open-file (org-md-export-to-markdown nil s v))))))) + :translate-alist '((bold . org-md-bold) + (code . org-md-verbatim) + (underline . org-md-verbatim) + (comment . (lambda (&rest args) "")) + (comment-block . (lambda (&rest args) "")) + (example-block . org-md-example-block) + (fixed-width . org-md-example-block) + (footnote-definition . ignore) + (footnote-reference . ignore) + (headline . org-md-headline) + (horizontal-rule . org-md-horizontal-rule) + (inline-src-block . org-md-verbatim) + (italic . org-md-italic) + (item . org-md-item) + (line-break . org-md-line-break) + (link . org-md-link) + (paragraph . org-md-paragraph) + (plain-list . org-md-plain-list) + (plain-text . org-md-plain-text) + (quote-block . org-md-quote-block) + (quote-section . org-md-example-block) + (section . org-md-section) + (src-block . org-md-example-block) + (template . org-md-template) + (verbatim . org-md-verbatim))) diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el index cf008e82f..32d6f663e 100644 --- a/lisp/ox-odt.el +++ b/lisp/ox-odt.el @@ -34,71 +34,71 @@ ;;; Define Back-End -(org-export-define-backend odt - ((bold . org-odt-bold) - (center-block . org-odt-center-block) - (clock . org-odt-clock) - (code . org-odt-code) - (drawer . org-odt-drawer) - (dynamic-block . org-odt-dynamic-block) - (entity . org-odt-entity) - (example-block . org-odt-example-block) - (export-block . org-odt-export-block) - (export-snippet . org-odt-export-snippet) - (fixed-width . org-odt-fixed-width) - (footnote-definition . org-odt-footnote-definition) - (footnote-reference . org-odt-footnote-reference) - (headline . org-odt-headline) - (horizontal-rule . org-odt-horizontal-rule) - (inline-src-block . org-odt-inline-src-block) - (inlinetask . org-odt-inlinetask) - (italic . org-odt-italic) - (item . org-odt-item) - (keyword . org-odt-keyword) - (latex-environment . org-odt-latex-environment) - (latex-fragment . org-odt-latex-fragment) - (line-break . org-odt-line-break) - (link . org-odt-link) - (paragraph . org-odt-paragraph) - (plain-list . org-odt-plain-list) - (plain-text . org-odt-plain-text) - (planning . org-odt-planning) - (property-drawer . org-odt-property-drawer) - (quote-block . org-odt-quote-block) - (quote-section . org-odt-quote-section) - (radio-target . org-odt-radio-target) - (section . org-odt-section) - (special-block . org-odt-special-block) - (src-block . org-odt-src-block) - (statistics-cookie . org-odt-statistics-cookie) - (strike-through . org-odt-strike-through) - (subscript . org-odt-subscript) - (superscript . org-odt-superscript) - (table . org-odt-table) - (table-cell . org-odt-table-cell) - (table-row . org-odt-table-row) - (target . org-odt-target) - (template . org-odt-template) - (timestamp . org-odt-timestamp) - (underline . org-odt-underline) - (verbatim . org-odt-verbatim) - (verse-block . org-odt-verse-block)) +(org-export-define-backend 'odt + '((bold . org-odt-bold) + (center-block . org-odt-center-block) + (clock . org-odt-clock) + (code . org-odt-code) + (drawer . org-odt-drawer) + (dynamic-block . org-odt-dynamic-block) + (entity . org-odt-entity) + (example-block . org-odt-example-block) + (export-block . org-odt-export-block) + (export-snippet . org-odt-export-snippet) + (fixed-width . org-odt-fixed-width) + (footnote-definition . org-odt-footnote-definition) + (footnote-reference . org-odt-footnote-reference) + (headline . org-odt-headline) + (horizontal-rule . org-odt-horizontal-rule) + (inline-src-block . org-odt-inline-src-block) + (inlinetask . org-odt-inlinetask) + (italic . org-odt-italic) + (item . org-odt-item) + (keyword . org-odt-keyword) + (latex-environment . org-odt-latex-environment) + (latex-fragment . org-odt-latex-fragment) + (line-break . org-odt-line-break) + (link . org-odt-link) + (paragraph . org-odt-paragraph) + (plain-list . org-odt-plain-list) + (plain-text . org-odt-plain-text) + (planning . org-odt-planning) + (property-drawer . org-odt-property-drawer) + (quote-block . org-odt-quote-block) + (quote-section . org-odt-quote-section) + (radio-target . org-odt-radio-target) + (section . org-odt-section) + (special-block . org-odt-special-block) + (src-block . org-odt-src-block) + (statistics-cookie . org-odt-statistics-cookie) + (strike-through . org-odt-strike-through) + (subscript . org-odt-subscript) + (superscript . org-odt-superscript) + (table . org-odt-table) + (table-cell . org-odt-table-cell) + (table-row . org-odt-table-row) + (target . org-odt-target) + (template . org-odt-template) + (timestamp . org-odt-timestamp) + (underline . org-odt-underline) + (verbatim . org-odt-verbatim) + (verse-block . org-odt-verse-block)) :export-block "ODT" - :filters-alist ((:filter-parse-tree - . (org-odt--translate-latex-fragments - org-odt--translate-description-lists - org-odt--translate-list-tables))) + :filters-alist '((:filter-parse-tree + . (org-odt--translate-latex-fragments + org-odt--translate-description-lists + org-odt--translate-list-tables))) :menu-entry - (?o "Export to ODT" - ((?o "As ODT file" org-odt-export-to-odt) - (?O "As ODT file and open" - (lambda (a s v b) - (if a (org-odt-export-to-odt t s v) - (org-open-file (org-odt-export-to-odt nil s v) 'system)))))) + '(?o "Export to ODT" + ((?o "As ODT file" org-odt-export-to-odt) + (?O "As ODT file and open" + (lambda (a s v b) + (if a (org-odt-export-to-odt t s v) + (org-open-file (org-odt-export-to-odt nil s v) 'system)))))) :options-alist - ((:odt-styles-file "ODT_STYLES_FILE" nil nil t) - ;; Redefine regular option. - (:with-latex nil "tex" org-odt-with-latex))) + '((:odt-styles-file "ODT_STYLES_FILE" nil nil t) + ;; Redefine regular option. + (:with-latex nil "tex" org-odt-with-latex))) ;;; Dependencies diff --git a/lisp/ox-org.el b/lisp/ox-org.el index 9bdc72625..7cb90c29b 100644 --- a/lisp/ox-org.el +++ b/lisp/ox-org.el @@ -52,57 +52,57 @@ setting of `org-html-htmlize-output-type' is 'css." (const :tag "Don't include external stylesheet link" nil) (string :tag "URL or local href"))) -(org-export-define-backend org - ((babel-call . org-org-identity) - (bold . org-org-identity) - (center-block . org-org-identity) - (clock . org-org-identity) - (code . org-org-identity) - (comment . (lambda (&rest args) "")) - (comment-block . (lambda (&rest args) "")) - (diary-sexp . org-org-identity) - (drawer . org-org-identity) - (dynamic-block . org-org-identity) - (entity . org-org-identity) - (example-block . org-org-identity) - (fixed-width . org-org-identity) - (footnote-definition . org-org-identity) - (footnote-reference . org-org-identity) - (headline . org-org-headline) - (horizontal-rule . org-org-identity) - (inline-babel-call . org-org-identity) - (inline-src-block . org-org-identity) - (inlinetask . org-org-identity) - (italic . org-org-identity) - (item . org-org-identity) - (keyword . org-org-keyword) - (latex-environment . org-org-identity) - (latex-fragment . org-org-identity) - (line-break . org-org-identity) - (link . org-org-identity) - (node-property . org-org-identity) - (paragraph . org-org-identity) - (plain-list . org-org-identity) - (planning . org-org-identity) - (property-drawer . org-org-identity) - (quote-block . org-org-identity) - (quote-section . org-org-identity) - (radio-target . org-org-identity) - (section . org-org-identity) - (special-block . org-org-identity) - (src-block . org-org-identity) - (statistics-cookie . org-org-identity) - (strike-through . org-org-identity) - (subscript . org-org-identity) - (superscript . org-org-identity) - (table . org-org-identity) - (table-cell . org-org-identity) - (table-row . org-org-identity) - (target . org-org-identity) - (timestamp . org-org-identity) - (underline . org-org-identity) - (verbatim . org-org-identity) - (verse-block . org-org-identity))) +(org-export-define-backend 'org + '((babel-call . org-org-identity) + (bold . org-org-identity) + (center-block . org-org-identity) + (clock . org-org-identity) + (code . org-org-identity) + (comment . (lambda (&rest args) "")) + (comment-block . (lambda (&rest args) "")) + (diary-sexp . org-org-identity) + (drawer . org-org-identity) + (dynamic-block . org-org-identity) + (entity . org-org-identity) + (example-block . org-org-identity) + (fixed-width . org-org-identity) + (footnote-definition . org-org-identity) + (footnote-reference . org-org-identity) + (headline . org-org-headline) + (horizontal-rule . org-org-identity) + (inline-babel-call . org-org-identity) + (inline-src-block . org-org-identity) + (inlinetask . org-org-identity) + (italic . org-org-identity) + (item . org-org-identity) + (keyword . org-org-keyword) + (latex-environment . org-org-identity) + (latex-fragment . org-org-identity) + (line-break . org-org-identity) + (link . org-org-identity) + (node-property . org-org-identity) + (paragraph . org-org-identity) + (plain-list . org-org-identity) + (planning . org-org-identity) + (property-drawer . org-org-identity) + (quote-block . org-org-identity) + (quote-section . org-org-identity) + (radio-target . org-org-identity) + (section . org-org-identity) + (special-block . org-org-identity) + (src-block . org-org-identity) + (statistics-cookie . org-org-identity) + (strike-through . org-org-identity) + (subscript . org-org-identity) + (superscript . org-org-identity) + (table . org-org-identity) + (table-cell . org-org-identity) + (table-row . org-org-identity) + (target . org-org-identity) + (timestamp . org-org-identity) + (underline . org-org-identity) + (verbatim . org-org-identity) + (verse-block . org-org-identity))) (defun org-org-identity (blob contents info) "Transcode BLOB element or object back into Org syntax." diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el index 3c63fe569..3323c3133 100644 --- a/lisp/ox-texinfo.el +++ b/lisp/ox-texinfo.el @@ -65,70 +65,70 @@ ;;; Define Back-End -(org-export-define-backend texinfo - ((bold . org-texinfo-bold) - (center-block . org-texinfo-center-block) - (clock . org-texinfo-clock) - (code . org-texinfo-code) - (comment . org-texinfo-comment) - (comment-block . org-texinfo-comment-block) - (drawer . org-texinfo-drawer) - (dynamic-block . org-texinfo-dynamic-block) - (entity . org-texinfo-entity) - (example-block . org-texinfo-example-block) - (export-block . org-texinfo-export-block) - (export-snippet . org-texinfo-export-snippet) - (fixed-width . org-texinfo-fixed-width) - (footnote-definition . org-texinfo-footnote-definition) - (footnote-reference . org-texinfo-footnote-reference) - (headline . org-texinfo-headline) - (inline-src-block . org-texinfo-inline-src-block) - (inlinetask . org-texinfo-inlinetask) - (italic . org-texinfo-italic) - (item . org-texinfo-item) - (keyword . org-texinfo-keyword) - (line-break . org-texinfo-line-break) - (link . org-texinfo-link) - (paragraph . org-texinfo-paragraph) - (plain-list . org-texinfo-plain-list) - (plain-text . org-texinfo-plain-text) - (planning . org-texinfo-planning) - (property-drawer . org-texinfo-property-drawer) - (quote-block . org-texinfo-quote-block) - (quote-section . org-texinfo-quote-section) - (radio-target . org-texinfo-radio-target) - (section . org-texinfo-section) - (special-block . org-texinfo-special-block) - (src-block . org-texinfo-src-block) - (statistics-cookie . org-texinfo-statistics-cookie) - (subscript . org-texinfo-subscript) - (superscript . org-texinfo-superscript) - (table . org-texinfo-table) - (table-cell . org-texinfo-table-cell) - (table-row . org-texinfo-table-row) - (target . org-texinfo-target) - (template . org-texinfo-template) - (timestamp . org-texinfo-timestamp) - (verbatim . org-texinfo-verbatim) - (verse-block . org-texinfo-verse-block)) +(org-export-define-backend 'texinfo + '((bold . org-texinfo-bold) + (center-block . org-texinfo-center-block) + (clock . org-texinfo-clock) + (code . org-texinfo-code) + (comment . org-texinfo-comment) + (comment-block . org-texinfo-comment-block) + (drawer . org-texinfo-drawer) + (dynamic-block . org-texinfo-dynamic-block) + (entity . org-texinfo-entity) + (example-block . org-texinfo-example-block) + (export-block . org-texinfo-export-block) + (export-snippet . org-texinfo-export-snippet) + (fixed-width . org-texinfo-fixed-width) + (footnote-definition . org-texinfo-footnote-definition) + (footnote-reference . org-texinfo-footnote-reference) + (headline . org-texinfo-headline) + (inline-src-block . org-texinfo-inline-src-block) + (inlinetask . org-texinfo-inlinetask) + (italic . org-texinfo-italic) + (item . org-texinfo-item) + (keyword . org-texinfo-keyword) + (line-break . org-texinfo-line-break) + (link . org-texinfo-link) + (paragraph . org-texinfo-paragraph) + (plain-list . org-texinfo-plain-list) + (plain-text . org-texinfo-plain-text) + (planning . org-texinfo-planning) + (property-drawer . org-texinfo-property-drawer) + (quote-block . org-texinfo-quote-block) + (quote-section . org-texinfo-quote-section) + (radio-target . org-texinfo-radio-target) + (section . org-texinfo-section) + (special-block . org-texinfo-special-block) + (src-block . org-texinfo-src-block) + (statistics-cookie . org-texinfo-statistics-cookie) + (subscript . org-texinfo-subscript) + (superscript . org-texinfo-superscript) + (table . org-texinfo-table) + (table-cell . org-texinfo-table-cell) + (table-row . org-texinfo-table-row) + (target . org-texinfo-target) + (template . org-texinfo-template) + (timestamp . org-texinfo-timestamp) + (verbatim . org-texinfo-verbatim) + (verse-block . org-texinfo-verse-block)) :export-block "TEXINFO" :filters-alist - ((:filter-headline . org-texinfo-filter-section-blank-lines) - (:filter-section . org-texinfo-filter-section-blank-lines)) + '((:filter-headline . org-texinfo-filter-section-blank-lines) + (:filter-section . org-texinfo-filter-section-blank-lines)) :menu-entry - (?i "Export to Texinfo" - ((?t "As TEXI file" org-texinfo-export-to-texinfo) - (?i "As INFO file" org-texinfo-export-to-info))) + '(?i "Export to Texinfo" + ((?t "As TEXI file" org-texinfo-export-to-texinfo) + (?i "As INFO file" org-texinfo-export-to-info))) :options-alist - ((:texinfo-filename "TEXINFO_FILENAME" nil org-texinfo-filename t) - (:texinfo-class "TEXINFO_CLASS" nil org-texinfo-default-class t) - (:texinfo-header "TEXINFO_HEADER" nil nil newline) - (:texinfo-post-header "TEXINFO_POST_HEADER" nil nil newline) - (:subtitle "SUBTITLE" nil nil newline) - (:subauthor "SUBAUTHOR" nil nil newline) - (:texinfo-dircat "TEXINFO_DIR_CATEGORY" nil nil t) - (:texinfo-dirtitle "TEXINFO_DIR_TITLE" nil nil t) - (:texinfo-dirdesc "TEXINFO_DIR_DESC" nil nil t))) + '((:texinfo-filename "TEXINFO_FILENAME" nil org-texinfo-filename t) + (:texinfo-class "TEXINFO_CLASS" nil org-texinfo-default-class t) + (:texinfo-header "TEXINFO_HEADER" nil nil newline) + (:texinfo-post-header "TEXINFO_POST_HEADER" nil nil newline) + (:subtitle "SUBTITLE" nil nil newline) + (:subauthor "SUBAUTHOR" nil nil newline) + (:texinfo-dircat "TEXINFO_DIR_CATEGORY" nil nil t) + (:texinfo-dirtitle "TEXINFO_DIR_TITLE" nil nil t) + (:texinfo-dirdesc "TEXINFO_DIR_DESC" nil nil t))) diff --git a/lisp/ox.el b/lisp/ox.el index 60f61e0c0..5e1d2e756 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -842,7 +842,7 @@ mode." ;; Eventually `org-export-barf-if-invalid-backend' returns an error ;; when a given back-end hasn't been registered yet. -(defmacro org-export-define-backend (backend translators &rest body) +(defun org-export-define-backend (backend translators &rest body) "Define a new back-end BACKEND. TRANSLATORS is an alist between object or element types and @@ -905,7 +905,7 @@ keywords are understood: Menu entry for the export dispatcher. It should be a list like: - \(KEY DESCRIPTION-OR-ORDINAL ACTION-OR-MENU) + '(KEY DESCRIPTION-OR-ORDINAL ACTION-OR-MENU) where : @@ -929,17 +929,17 @@ keywords are understood: If it is an alist, associations should follow the pattern: - \(KEY DESCRIPTION ACTION) + '(KEY DESCRIPTION ACTION) where KEY, DESCRIPTION and ACTION are described above. Valid values include: - \(?m \"My Special Back-end\" my-special-export-function) + '(?m \"My Special Back-end\" my-special-export-function) or - \(?l \"Export to LaTeX\" + '(?l \"Export to LaTeX\" \(?p \"As PDF file\" org-latex-export-to-pdf) \(?o \"As PDF file and open\" \(lambda (a s v b) @@ -950,7 +950,7 @@ keywords are understood: or the following, which will be added to the previous sub-menu, - \(?l 1 + '(?l 1 \((?B \"As TEX buffer (Beamer)\" org-beamer-export-as-latex) \(?P \"As PDF file (Beamer)\" org-beamer-export-to-pdf))) @@ -960,8 +960,7 @@ keywords are understood: communication channel and how their value are acquired. See `org-export-options-alist' for more information about structure of the values." - (declare (debug (&define name sexp [&rest [keywordp sexp]] defbody)) - (indent 1)) + (declare (indent 1)) (let (export-block filters menu-entry options contents) (while (keywordp (car body)) (case (pop body) @@ -977,22 +976,19 @@ keywords are understood: (and filters (list :filters-alist filters)) (and options (list :options-alist options)) (and menu-entry (list :menu-entry menu-entry)))) - `(progn - ;; Register back-end. - (let ((registeredp (assq ',backend org-export-registered-backends))) - (if registeredp (setcdr registeredp ',contents) - (push (cons ',backend ',contents) org-export-registered-backends))) - ;; Tell parser to not parse EXPORT-BLOCK blocks. - ,(when export-block - `(mapc - (lambda (name) - (add-to-list 'org-element-block-name-alist - `(,name . org-element-export-block-parser))) - ',export-block)) - ;; Splice in the body, if any. - ,@body))) + ;; Register back-end. + (let ((registeredp (assq backend org-export-registered-backends))) + (if registeredp (setcdr registeredp contents) + (push (cons backend contents) org-export-registered-backends))) + ;; Tell parser to not parse EXPORT-BLOCK blocks. + (when export-block + (mapc + (lambda (name) + (add-to-list 'org-element-block-name-alist + `(,name . org-element-export-block-parser))) + export-block)))) -(defmacro org-export-define-derived-backend (child parent &rest body) +(defun org-export-define-derived-backend (child parent &rest body) "Create a new back-end as a variant of an existing one. CHILD is the name of the derived back-end. PARENT is the name of @@ -1038,14 +1034,13 @@ keywords are understood: As an example, here is how one could define \"my-latex\" back-end as a variant of `latex' back-end with a custom template function: - \(org-export-define-derived-backend my-latex latex - :translate-alist ((template . my-latex-template-fun))) + \(org-export-define-derived-backend 'my-latex 'latex + :translate-alist '((template . my-latex-template-fun))) The back-end could then be called with, for example: \(org-export-to-buffer 'my-latex \"*Test my-latex*\")" - (declare (debug (&define name sexp [&rest [keywordp sexp]] def-body)) - (indent 2)) + (declare (indent 2)) (let (export-block filters menu-entry options translators contents) (while (keywordp (car body)) (case (pop body) @@ -1067,21 +1062,18 @@ The back-end could then be called with, for example: (let ((p-options (org-export-backend-options parent))) (list :options-alist (append options p-options))) (and menu-entry (list :menu-entry menu-entry)))) - `(progn - (org-export-barf-if-invalid-backend ',parent) - ;; Register back-end. - (let ((registeredp (assq ',child org-export-registered-backends))) - (if registeredp (setcdr registeredp ',contents) - (push (cons ',child ',contents) org-export-registered-backends))) - ;; Tell parser to not parse EXPORT-BLOCK blocks. - ,(when export-block - `(mapc - (lambda (name) - (add-to-list 'org-element-block-name-alist - `(,name . org-element-export-block-parser))) - ',export-block)) - ;; Splice in the body, if any. - ,@body))) + (org-export-barf-if-invalid-backend parent) + ;; Register back-end. + (let ((registeredp (assq child org-export-registered-backends))) + (if registeredp (setcdr registeredp contents) + (push (cons child contents) org-export-registered-backends))) + ;; Tell parser to not parse EXPORT-BLOCK blocks. + (when export-block + (mapc + (lambda (name) + (add-to-list org-element-block-name-alist + `(,name . org-element-export-block-parser))) + export-block)))) (defun org-export-backend-parent (backend) "Return back-end from which BACKEND is derived, or nil."