Browse Source

Merge branch 'master' of orgmode.org:org-mode

Bastien Guerry 12 years ago
parent
commit
35b67a74d7
2 changed files with 20 additions and 0 deletions
  1. 4 0
      contrib/lisp/org-e-publish.el
  2. 16 0
      contrib/lisp/org-export.el

+ 4 - 0
contrib/lisp/org-e-publish.el

@@ -579,6 +579,7 @@ is the property list for the given project.  PUB-DIR is the
 publishing directory.
 
 Return output file name."
+  (require 'org-e-latex nil t)
   (org-e-publish-org-to 'e-latex filename ".tex" plist pub-dir))
 
 (defun org-e-publish-org-to-pdf (plist filename pub-dir)
@@ -589,6 +590,7 @@ is the property list for the given project.  PUB-DIR is the
 publishing directory.
 
 Return output file name."
+  (require 'org-e-latex nil t)
   (org-e-latex-compile
    (org-e-publish-org-to 'e-latex filename ".tex" plist pub-dir)))
 
@@ -600,6 +602,7 @@ is the property list for the given project.  PUB-DIR is the
 publishing directory.
 
 Return output file name."
+  (require 'org-e-html nil t)
   (org-e-publish-org-to 'e-html filename ".html" plist pub-dir))
 
 ;; TODO: Not implemented yet.
@@ -621,6 +624,7 @@ is the property list for the given project.  PUB-DIR is the
 publishing directory.
 
 Return output file name."
+  (require 'org-e-ascii nil t)
   (org-e-publish-org-to
    'e-ascii filename ".txt" `(:ascii-charset ascii ,@plist) pub-dir))
 

+ 16 - 0
contrib/lisp/org-export.el

@@ -700,6 +700,15 @@ standard mode."
 
 
 ;;; Defining New Back-ends
+;;
+;; `org-export-define-backend' is the standard way to define an export
+;; back-end.  It allows to specify translators, filters, buffer
+;; options and a menu entry.  If the new back-end shares translators
+;; with another back-end, `org-export-define-derived-backend' may be
+;; used instead.
+;;
+;; 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)
   "Define a new back-end BACKEND.
@@ -985,6 +994,11 @@ structure of the values."
        ;; Splice in the body, if any.
        ,@body)))
 
+(defun org-export-barf-if-invalid-backend (backend)
+  "Signal an error if BACKEND isn't defined."
+  (unless (boundp (intern (format "org-%s-translate-alist" backend)))
+    (error "Unknown \"%s\" back-end: Aborting export" backend)))
+
 
 
 ;;; The Communication Channel
@@ -2527,6 +2541,8 @@ Optional argument NOEXPAND, when non-nil, prevents included files
 to be expanded and Babel code to be executed.
 
 Return code as a string."
+  ;; Barf if BACKEND isn't registered.
+  (org-export-barf-if-invalid-backend backend)
   (save-excursion
     (save-restriction
       ;; Narrow buffer to an appropriate region or subtree for