Browse Source

Export back-ends: add entry in `org-export-dispatch' when loaded

* contrib/lisp/org-e-ascii.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-beamer.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-groff.el (e-groff): Use
  `org-export-define-backend'.  Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-html.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-latex.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-man.el: Use `org-export-define-backend'.  Add an
  entry for `org-export-dispatch'.
* contrib/lisp/org-e-odt.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-texinfo.el: Use `org-export-define-backend'.  Add an
  entry for `org-export-dispatch'.
* contrib/lisp/org-md.el: Add an entry for `org-export-dispatch'.
Nicolas Goaziou 12 years ago
parent
commit
6b8276ce76

+ 20 - 0
contrib/lisp/org-e-ascii.el

@@ -100,6 +100,26 @@
    (verbatim . org-e-ascii-verbatim)
    (verse-block . org-e-ascii-verse-block))
   :export-block "ASCII"
+  :menu-entry
+  (?t "Export to Plain Text"
+      ((?A "As ASCII buffer"
+	   (lambda (s v b)
+	     (org-e-ascii-export-as-ascii s v b '(:ascii-charset ascii))))
+       (?a "As ASCII file"
+	   (lambda (s v b)
+	     (org-e-ascii-export-to-ascii s v b '(:ascii-charset ascii))))
+       (?L "As Latin1 buffer"
+	   (lambda (s v b)
+	     (org-e-ascii-export-as-ascii s v b '(:ascii-charset latin1))))
+       (?l "As Latin1 file"
+	   (lambda (s v b)
+	     (org-e-ascii-export-to-ascii s v b '(:ascii-charset latin1))))
+       (?U "As UTF-8 buffer"
+	   (lambda (s v b)
+	     (org-e-ascii-export-as-ascii s v b '(:ascii-charset utf-8))))
+       (?u "As UTF-8 file"
+	   (lambda (s v b)
+	     (org-e-ascii-export-to-ascii s v b '(:ascii-charset utf-8))))))
   :filters-alist ((:filter-headline . org-e-ascii-filter-headline-blank-lines)
 		  (:filter-section . org-e-ascii-filter-headline-blank-lines))
   :options-alist ((:ascii-charset nil nil org-e-ascii-charset)))

+ 7 - 0
contrib/lisp/org-e-beamer.el

@@ -262,6 +262,13 @@ brackets.  Return overlay specification, as a string, or nil."
 
 (org-export-define-derived-backend e-beamer e-latex
   :export-block "BEAMER"
+  :sub-menu-entry
+  (?l (?B "As TEX buffer (Beamer)" org-e-beamer-export-as-latex)
+      (?b "As TEX file (Beamer)" org-e-beamer-export-to-latex)
+      (?P "As PDF file (Beamer)" org-e-beamer-export-to-pdf)
+      (?O "As PDF file and open (Beamer)"
+	  (lambda (s v b)
+	    (org-open-file (org-e-beamer-export-to-pdf s v b)))))
   :options-alist
   ((:beamer-theme "BEAMER_THEME" nil org-e-beamer-theme)
    (:beamer-color-theme "BEAMER_COLOR_THEME" nil nil t)

+ 13 - 17
contrib/lisp/org-e-groff.el

@@ -47,7 +47,7 @@
 
 ;;; Define Back-End
 
-(defvar org-e-groff-translate-alist
+(org-export-define-backend e-groff
   '((babel-call . org-e-groff-babel-call)
     (bold . org-e-groff-bold)
     (center-block . org-e-groff-center-block)
@@ -100,16 +100,19 @@
     (underline . org-e-groff-underline)
     (verbatim . org-e-groff-verbatim)
     (verse-block . org-e-groff-verse-block))
-  "Alist between element or object types and translators.")
+  :export-block "GROFF"
+  :menu-entry
+  (?g "Export to GROFF"
+      ((?g "As GROFF file" org-e-groff-export-to-groff)
+       (?p "As PDF file" org-e-groff-export-to-pdf)
+       (?o "As PDF file and open"
+	   (lambda (s v b) (org-open-file (org-e-groff-export-to-pdf s v b))))))
+  :options-alist
+  ((:date "DATE" nil org-e-groff-date-format t)
+   (:groff-class "GROFF_CLASS" nil org-e-groff-default-class t)
+   (:groff-class-options "GROFF_CLASS_OPTIONS" nil nil t)
+   (:groff-header-extra "GROFF_HEADER" nil nil newline)))
 
-(defconst org-e-groff-options-alist
-  '((:date "DATE" nil org-e-groff-date-format t)
-    (:groff-class "GROFF_CLASS" nil org-e-groff-default-class t)
-    (:groff-class-options "GROFF_CLASS_OPTIONS" nil nil t)
-    (:groff-header-extra "GROFF_HEADER" nil nil newline))
-"Alist between Groff export properties and ways to set them.
-See `org-export-options-alist' for more information on the
-structure of the values.")
 
 
 ;;; User Configurable Variables
@@ -530,13 +533,6 @@ These are the .aux, .log, .out, and .toc files."
          (const :tag "NetPNM"  "a=%s;b=%s;pngtopnm ${a} | pnmtops -noturn > ${b}" )
          (const :tag "None" nil)))
 
-
-;; Adding GROFF as a block parser to make sure that its contents
-;; does not execute
-
-(add-to-list 'org-element-block-name-alist
-             '("GROFF" . org-element-export-block-parser))
-
 (defvar org-e-groff-registered-references nil)
 (defvar org-e-groff-special-content nil)
 

+ 6 - 0
contrib/lisp/org-e-html.el

@@ -102,6 +102,12 @@
    (verse-block . org-e-html-verse-block))
   :export-block "HTML"
   :filters-alist ((:filter-final-output . org-e-html-final-function))
+  :menu-entry
+  (?h "Export to HTML"
+      ((?H "To temporary buffer" org-e-html-export-as-html)
+       (?h "To file" org-e-html-export-to-html)
+       (?o "To file and open"
+	   (lambda (s v b) (org-open-file (org-e-html-export-to-html s v b))))))
   :options-alist
   ;; FIXME: Prefix KEYWORD and OPTION with "HTML_".  Prefix
   ;; corresponding properties with `:html-".  If such a renaming is

+ 9 - 2
contrib/lisp/org-e-latex.el

@@ -95,7 +95,14 @@
    (underline . org-e-latex-underline)
    (verbatim . org-e-latex-verbatim)
    (verse-block . org-e-latex-verse-block))
-  :export-block "LATEX"
+  :export-block ("LATEX" "TEX")
+  :menu-entry
+  (?l "Export to LaTeX"
+      ((?L "As TEX buffer" org-e-latex-export-as-latex)
+       (?l "As TEX file" org-e-latex-export-to-latex)
+       (?p "As PDF file" org-e-latex-export-to-pdf)
+       (?o "As PDF file and open"
+	   (lambda (s v b) (org-open-file (org-e-latex-export-to-pdf s v b))))))
   :options-alist ((:date "DATE" nil org-e-latex-date-format t)
 		  (:latex-class "LATEX_CLASS" nil org-e-latex-default-class t)
 		  (:latex-class-options "LATEX_CLASS_OPTIONS" nil nil t)
@@ -1202,7 +1209,7 @@ information."
 (defun org-e-latex-export-block (export-block contents info)
   "Transcode a EXPORT-BLOCK element from Org to LaTeX.
 CONTENTS is nil.  INFO is a plist holding contextual information."
-  (when (string= (org-element-property :type export-block) "LATEX")
+  (when (member (org-element-property :type export-block) ("LATEX" "TEX"))
     (org-remove-indentation (org-element-property :value export-block))))
 
 

+ 65 - 75
contrib/lisp/org-e-man.el

@@ -45,73 +45,74 @@
 (defvar org-export-man-packages-alist)
 
 
-
 
 ;;; Define Back-End
 
-(defvar org-e-man-translate-alist
-  '((babel-call . org-e-man-babel-call)
-    (bold . org-e-man-bold)
-    (center-block . org-e-man-center-block)
-    (clock . org-e-man-clock)
-    (code . org-e-man-code)
-    (comment . org-e-man-comment)
-    (comment-block . org-e-man-comment-block)
-    (drawer . org-e-man-drawer)
-    (dynamic-block . org-e-man-dynamic-block)
-    (entity . org-e-man-entity)
-    (example-block . org-e-man-example-block)
-    (export-block . org-e-man-export-block)
-    (export-snippet . org-e-man-export-snippet)
-    (fixed-width . org-e-man-fixed-width)
-    (footnote-definition . org-e-man-footnote-definition)
-    (footnote-reference . org-e-man-footnote-reference)
-    (headline . org-e-man-headline)
-    (horizontal-rule . org-e-man-horizontal-rule)
-    (inline-babel-call . org-e-man-inline-babel-call)
-    (inline-src-block . org-e-man-inline-src-block)
-    (inlinetask . org-e-man-inlinetask)
-    (italic . org-e-man-italic)
-    (item . org-e-man-item)
-    (keyword . org-e-man-keyword)
-    (man-environment . org-e-man-man-environment)
-    (man-fragment . org-e-man-man-fragment)
-    (line-break . org-e-man-line-break)
-    (link . org-e-man-link)
-    (paragraph . org-e-man-paragraph)
-    (plain-list . org-e-man-plain-list)
-    (plain-text . org-e-man-plain-text)
-    (planning . org-e-man-planning)
-    (property-drawer . org-e-man-property-drawer)
-    (quote-block . org-e-man-quote-block)
-    (quote-section . org-e-man-quote-section)
-    (radio-target . org-e-man-radio-target)
-    (section . org-e-man-section)
-    (special-block . org-e-man-special-block)
-    (src-block . org-e-man-src-block)
-    (statistics-cookie . org-e-man-statistics-cookie)
-    (strike-through . org-e-man-strike-through)
-    (subscript . org-e-man-subscript)
-    (superscript . org-e-man-superscript)
-    (table . org-e-man-table)
-    (table-cell . org-e-man-table-cell)
-    (table-row . org-e-man-table-row)
-    (target . org-e-man-target)
-    (template . org-e-man-template)
-    (timestamp . org-e-man-timestamp)
-    (underline . org-e-man-underline)
-    (verbatim . org-e-man-verbatim)
-    (verse-block . org-e-man-verse-block))
-  "Alist between element or object types and translators.")
-
-(defconst org-e-man-options-alist
-  '((:date "DATE" nil nil t)
-    (:man-class "MAN_CLASS" nil nil t)
-    (:man-class-options "MAN_CLASS_OPTIONS" nil nil t)
-    (:man-header-extra "MAN_HEADER" nil nil newline))
-  "Alist between Man export properties and ways to set them.
-See `org-export-options-alist' for more information on the
-structure of the values.")
+(org-export-define-backend e-man
+  ((babel-call . org-e-man-babel-call)
+   (bold . org-e-man-bold)
+   (center-block . org-e-man-center-block)
+   (clock . org-e-man-clock)
+   (code . org-e-man-code)
+   (comment . org-e-man-comment)
+   (comment-block . org-e-man-comment-block)
+   (drawer . org-e-man-drawer)
+   (dynamic-block . org-e-man-dynamic-block)
+   (entity . org-e-man-entity)
+   (example-block . org-e-man-example-block)
+   (export-block . org-e-man-export-block)
+   (export-snippet . org-e-man-export-snippet)
+   (fixed-width . org-e-man-fixed-width)
+   (footnote-definition . org-e-man-footnote-definition)
+   (footnote-reference . org-e-man-footnote-reference)
+   (headline . org-e-man-headline)
+   (horizontal-rule . org-e-man-horizontal-rule)
+   (inline-babel-call . org-e-man-inline-babel-call)
+   (inline-src-block . org-e-man-inline-src-block)
+   (inlinetask . org-e-man-inlinetask)
+   (italic . org-e-man-italic)
+   (item . org-e-man-item)
+   (keyword . org-e-man-keyword)
+   (man-environment . org-e-man-man-environment)
+   (man-fragment . org-e-man-man-fragment)
+   (line-break . org-e-man-line-break)
+   (link . org-e-man-link)
+   (paragraph . org-e-man-paragraph)
+   (plain-list . org-e-man-plain-list)
+   (plain-text . org-e-man-plain-text)
+   (planning . org-e-man-planning)
+   (property-drawer . org-e-man-property-drawer)
+   (quote-block . org-e-man-quote-block)
+   (quote-section . org-e-man-quote-section)
+   (radio-target . org-e-man-radio-target)
+   (section . org-e-man-section)
+   (special-block . org-e-man-special-block)
+   (src-block . org-e-man-src-block)
+   (statistics-cookie . org-e-man-statistics-cookie)
+   (strike-through . org-e-man-strike-through)
+   (subscript . org-e-man-subscript)
+   (superscript . org-e-man-superscript)
+   (table . org-e-man-table)
+   (table-cell . org-e-man-table-cell)
+   (table-row . org-e-man-table-row)
+   (target . org-e-man-target)
+   (template . org-e-man-template)
+   (timestamp . org-e-man-timestamp)
+   (underline . org-e-man-underline)
+   (verbatim . org-e-man-verbatim)
+   (verse-block . org-e-man-verse-block))
+  :export-block "MAN"
+  :menu-entry
+  (?m "Export to MAN"
+      ((?m "As MAN file" org-e-man-export-to-man)
+       (?p "As PDF file" org-e-man-export-to-pdf)
+       (?o "As PDF file and open"
+	   (lambda (s v b) (org-open-file (org-e-man-export-to-pdf s v b))))))
+  :options-alist
+  ((:date "DATE" nil nil t)
+   (:man-class "MAN_CLASS" nil nil t)
+   (:man-class-options "MAN_CLASS_OPTIONS" nil nil t)
+   (:man-header-extra "MAN_HEADER" nil nil newline)))
 
 
 
@@ -124,7 +125,6 @@ structure of the values.")
 
 ;;; Tables
 
-
 (defcustom org-e-man-tables-centered t
   "When non-nil, tables are exported in a center environment."
   :group 'org-export-e-man
@@ -286,16 +286,6 @@ These are the .aux, .log, .out, and .toc files."
   :group 'org-export-e-man
   :type 'boolean)
 
-
-
-;; Preamble
-
-;; Adding MAN as a block parser to make sure that its contents
-;; does not execute
-
-(add-to-list 'org-element-block-name-alist
-             '("MAN" . org-element-export-block-parser))
-
 
 
 ;;; Internal Functions

+ 6 - 0
contrib/lisp/org-e-odt.el

@@ -86,6 +86,12 @@
   :filters-alist ((:filter-parse-tree
 		   . (org-e-odt--translate-description-lists
 		      org-e-odt--translate-list-tables)))
+  :menu-entry
+  (?o "Export to ODT"
+      ((?o "As ODT file" org-e-odt-export-to-odt)
+       (?O "As ODT file and open"
+	   (lambda (s v b)
+	     (org-open-file (org-e-odt-export-to-odt s v b) 'system)))))
   :options-alist
   ((:odt-styles-file "ODT_STYLES_FILE" nil nil t)
    (:LaTeX-fragments nil "LaTeX" org-export-with-LaTeX-fragments)))

+ 69 - 79
contrib/lisp/org-e-texinfo.el

@@ -61,90 +61,80 @@
 
 (defvar orgtbl-exp-regexp)
 
+
 
 ;;; Define Back-End
 
-(defvar org-e-texinfo-translate-alist
-  '((bold . org-e-texinfo-bold)
-    (center-block . org-e-texinfo-center-block)
-    (clock . org-e-texinfo-clock)
-    (code . org-e-texinfo-code)
-    (comment . org-e-texinfo-comment)
-    (comment-block . org-e-texinfo-comment-block)
-    (drawer . org-e-texinfo-drawer)
-    (dynamic-block . org-e-texinfo-dynamic-block)
-    (entity . org-e-texinfo-entity)
-    (example-block . org-e-texinfo-example-block)
-    (export-block . org-e-texinfo-export-block)
-    (export-snippet . org-e-texinfo-export-snippet)
-    (fixed-width . org-e-texinfo-fixed-width)
-    (footnote-definition . org-e-texinfo-footnote-definition)
-    (footnote-reference . org-e-texinfo-footnote-reference)
-    (headline . org-e-texinfo-headline)
-    (horizontal-rule . org-e-texinfo-horizontal-rule)
-    (inline-src-block . org-e-texinfo-inline-src-block)
-    (inlinetask . org-e-texinfo-inlinetask)
-    (italic . org-e-texinfo-italic)
-    (item . org-e-texinfo-item)
-    (keyword . org-e-texinfo-keyword)
-    (latex-environment . org-e-texinfo-latex-environment)
-    (latex-fragment . org-e-texinfo-latex-fragment)
-    (line-break . org-e-texinfo-line-break)
-    (link . org-e-texinfo-link)
-    (paragraph . org-e-texinfo-paragraph)
-    (plain-list . org-e-texinfo-plain-list)
-    (plain-text . org-e-texinfo-plain-text)
-    (planning . org-e-texinfo-planning)
-    (property-drawer . org-e-texinfo-property-drawer)
-    (quote-block . org-e-texinfo-quote-block)
-    (quote-section . org-e-texinfo-quote-section)
-    (radio-target . org-e-texinfo-radio-target)
-    (section . org-e-texinfo-section)
-    (special-block . org-e-texinfo-special-block)
-    (src-block . org-e-texinfo-src-block)
-    (statistics-cookie . org-e-texinfo-statistics-cookie)
-    (strike-through . org-e-texinfo-strike-through)
-    (subscript . org-e-texinfo-subscript)
-    (superscript . org-e-texinfo-superscript)
-    (table . org-e-texinfo-table)
-    (table-cell . org-e-texinfo-table-cell)
-    (table-row . org-e-texinfo-table-row)
-    (target . org-e-texinfo-target)
-    (template . org-e-texinfo-template)
-    (timestamp . org-e-texinfo-timestamp)
-    (underline . org-e-texinfo-underline)
-    (verbatim . org-e-texinfo-verbatim)
-    (verse-block . org-e-texinfo-verse-block))
-  "Alist between element or object types and translators.")
-
-(defconst org-e-texinfo-options-alist
-  '((:texinfo-filename "TEXINFO_FILENAME" nil org-e-texinfo-filename t)
-    (:texinfo-class "TEXINFO_CLASS" nil org-e-texinfo-default-class t)
-    (:texinfo-header "TEXINFO_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))
-  "Alist between Texinfo export properties and ways to set them.
-See `org-export-options-alist' for more information on the
-structure of the values.
-
-SUBAUTHOR and SUBTITLE are for the inclusion of additional author
-and title information beyond the initial variable.")
-
-(defconst org-e-texinfo-filters-alist
-  '((:filter-headline . org-e-texinfo-filter-section-blank-lines)
-    (:filter-section . org-e-texinfo-filter-section-blank-lines))
-  "Alist between filters keywords and back-end specific filters.
-  See `org-export-filters-alist' for more information")
+(org-export-define-backend e-texinfo
+  ((bold . org-e-texinfo-bold)
+   (center-block . org-e-texinfo-center-block)
+   (clock . org-e-texinfo-clock)
+   (code . org-e-texinfo-code)
+   (comment . org-e-texinfo-comment)
+   (comment-block . org-e-texinfo-comment-block)
+   (drawer . org-e-texinfo-drawer)
+   (dynamic-block . org-e-texinfo-dynamic-block)
+   (entity . org-e-texinfo-entity)
+   (example-block . org-e-texinfo-example-block)
+   (export-block . org-e-texinfo-export-block)
+   (export-snippet . org-e-texinfo-export-snippet)
+   (fixed-width . org-e-texinfo-fixed-width)
+   (footnote-definition . org-e-texinfo-footnote-definition)
+   (footnote-reference . org-e-texinfo-footnote-reference)
+   (headline . org-e-texinfo-headline)
+   (horizontal-rule . org-e-texinfo-horizontal-rule)
+   (inline-src-block . org-e-texinfo-inline-src-block)
+   (inlinetask . org-e-texinfo-inlinetask)
+   (italic . org-e-texinfo-italic)
+   (item . org-e-texinfo-item)
+   (keyword . org-e-texinfo-keyword)
+   (latex-environment . org-e-texinfo-latex-environment)
+   (latex-fragment . org-e-texinfo-latex-fragment)
+   (line-break . org-e-texinfo-line-break)
+   (link . org-e-texinfo-link)
+   (paragraph . org-e-texinfo-paragraph)
+   (plain-list . org-e-texinfo-plain-list)
+   (plain-text . org-e-texinfo-plain-text)
+   (planning . org-e-texinfo-planning)
+   (property-drawer . org-e-texinfo-property-drawer)
+   (quote-block . org-e-texinfo-quote-block)
+   (quote-section . org-e-texinfo-quote-section)
+   (radio-target . org-e-texinfo-radio-target)
+   (section . org-e-texinfo-section)
+   (special-block . org-e-texinfo-special-block)
+   (src-block . org-e-texinfo-src-block)
+   (statistics-cookie . org-e-texinfo-statistics-cookie)
+   (strike-through . org-e-texinfo-strike-through)
+   (subscript . org-e-texinfo-subscript)
+   (superscript . org-e-texinfo-superscript)
+   (table . org-e-texinfo-table)
+   (table-cell . org-e-texinfo-table-cell)
+   (table-row . org-e-texinfo-table-row)
+   (target . org-e-texinfo-target)
+   (template . org-e-texinfo-template)
+   (timestamp . org-e-texinfo-timestamp)
+   (underline . org-e-texinfo-underline)
+   (verbatim . org-e-texinfo-verbatim)
+   (verse-block . org-e-texinfo-verse-block))
+  :export-block "TEXINFO"
+  :filters-alist
+  ((:filter-headline . org-e-texinfo-filter-section-blank-lines)
+   (:filter-section . org-e-texinfo-filter-section-blank-lines))
+  :menu-entry
+  (?i "Export to Texinfo"
+      ((?t "As TEXI file" org-e-texinfo-export-to-texinfo)
+       (?i "As INFO file" org-e-texinfo-export-to-info)))
+  :options-alist
+  ((:texinfo-filename "TEXINFO_FILENAME" nil org-e-texinfo-filename t)
+   (:texinfo-class "TEXINFO_CLASS" nil org-e-texinfo-default-class t)
+   (:texinfo-header "TEXINFO_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)))
 
-
-;;; Internal Variables
 
-;; Add TEXINFO to the list of available of available export blocks.
-(add-to-list 'org-element-block-name-alist
-	     '("TEXINFO" . org-element-export-block-parser))
 
 ;;; User Configurable Variables
 

+ 6 - 0
contrib/lisp/org-md.el

@@ -56,6 +56,12 @@ This variable can be set to either `atx' or `setext'."
 (org-export-define-derived-backend md e-html
   :export-block ("MD" "MARKDOWN")
   :filters-alist ((:filter-parse-tree . org-md-separate-elements))
+  :menu-entry
+  (?m "Export to Markdown"
+      ((?M "To temporary buffer" org-md-export-as-markdown)
+       (?m "To file" org-md-export-to-markdown)
+       (?o "To file and open"
+	   (lambda (s v b) (org-open-file (org-md-export-to-markdown s v b))))))
   :translate-alist ((bold . org-md-bold)
 		    (code . org-md-verbatim)
 		    (example-block . org-md-example-block)