|
@@ -777,7 +777,7 @@ structure of the values.")))
|
|
|
;;; The Communication Channel
|
|
|
;;
|
|
|
;; During export process, every function has access to a number of
|
|
|
-;; properties. They are of three types:
|
|
|
+;; properties. They are of two types:
|
|
|
;;
|
|
|
;; 1. Environment options are collected once at the very beginning of
|
|
|
;; the process, out of the original buffer and configuration.
|
|
@@ -790,10 +790,6 @@ structure of the values.")))
|
|
|
;; 2. Tree properties are extracted directly from the parsed tree,
|
|
|
;; just before export, by `org-export-collect-tree-properties'.
|
|
|
;;
|
|
|
-;; 3. Local options are updated during parsing, and their value
|
|
|
-;; depends on the level of recursion. For now, only `:ignore-list'
|
|
|
-;; belongs to that category.
|
|
|
-;;
|
|
|
;; Here is the full list of properties available during transcode
|
|
|
;; process, with their category (option, tree or local) and their
|
|
|
;; value type.
|
|
@@ -861,7 +857,7 @@ structure of the values.")))
|
|
|
;;
|
|
|
;; + `:ignore-list' :: List of elements and objects that should be
|
|
|
;; ignored during export.
|
|
|
-;; - category :: local
|
|
|
+;; - category :: tree
|
|
|
;; - type :: list of elements and objects
|
|
|
;;
|
|
|
;; + `:input-file' :: Full path to input file, if any.
|
|
@@ -878,7 +874,7 @@ structure of the values.")))
|
|
|
;;
|
|
|
;; + `:parse-tree' :: Whole parse tree, available at any time during
|
|
|
;; transcoding.
|
|
|
-;; - category :: global
|
|
|
+;; - category :: option
|
|
|
;; - type :: list (as returned by `org-element-parse-buffer')
|
|
|
;;
|
|
|
;; + `:preserve-breaks' :: Non-nil means transcoding should preserve
|
|
@@ -909,6 +905,12 @@ structure of the values.")))
|
|
|
;; - category :: option
|
|
|
;; - type :: symbol (nil, t)
|
|
|
;;
|
|
|
+;; + `:translate-alist' :: Alist between element and object types and
|
|
|
+;; transcoding functions relative to the current back-end.
|
|
|
+;; Special keys `template' and `plain-text' are also possible.
|
|
|
+;; - category :: option
|
|
|
+;; - type :: alist (SYMBOL . FUNCTION)
|
|
|
+;;
|
|
|
;; + `:with-archived-trees' :: Non-nil when archived subtrees should
|
|
|
;; also be transcoded. If it is set to the `headline' symbol,
|
|
|
;; only the archived headline's name is retained.
|
|
@@ -1056,24 +1058,25 @@ inferior to file-local settings."
|
|
|
;; First install #+BIND variables.
|
|
|
(org-export-install-letbind-maybe)
|
|
|
;; Get and prioritize export options...
|
|
|
- (let ((options (org-combine-plists
|
|
|
- ;; ... from global variables...
|
|
|
- (org-export-get-global-options backend)
|
|
|
- ;; ... from buffer's attributes...
|
|
|
- (org-export-get-buffer-attributes)
|
|
|
- ;; ... from an external property list...
|
|
|
- ext-plist
|
|
|
- ;; ... from in-buffer settings...
|
|
|
- (org-export-get-inbuffer-options
|
|
|
- backend
|
|
|
- (and buffer-file-name
|
|
|
- (org-remove-double-quotes buffer-file-name)))
|
|
|
- ;; ... and from subtree, when appropriate.
|
|
|
- (and subtreep (org-export-get-subtree-options))
|
|
|
- ;; Also install back-end symbol.
|
|
|
- `(:back-end ,backend))))
|
|
|
- ;; Return plist.
|
|
|
- options))
|
|
|
+ (org-combine-plists
|
|
|
+ ;; ... from global variables...
|
|
|
+ (org-export-get-global-options backend)
|
|
|
+ ;; ... from buffer's attributes...
|
|
|
+ (org-export-get-buffer-attributes)
|
|
|
+ ;; ... from an external property list...
|
|
|
+ ext-plist
|
|
|
+ ;; ... from in-buffer settings...
|
|
|
+ (org-export-get-inbuffer-options
|
|
|
+ backend
|
|
|
+ (and buffer-file-name (org-remove-double-quotes buffer-file-name)))
|
|
|
+ ;; ... and from subtree, when appropriate.
|
|
|
+ (and subtreep (org-export-get-subtree-options))
|
|
|
+ ;; Also install back-end symbol and its translation table.
|
|
|
+ `(:back-end
|
|
|
+ ,backend
|
|
|
+ :translate-alist
|
|
|
+ ,(let ((trans-alist (intern (format "org-%s-translate-alist" backend))))
|
|
|
+ (when (boundp trans-alist) (symbol-value trans-alist))))))
|
|
|
|
|
|
(defun org-export-parse-option-keyword (options &optional backend)
|
|
|
"Parse an OPTIONS line and return values as a plist.
|
|
@@ -1641,12 +1644,8 @@ INFO is a plist containing export directives."
|
|
|
(let ((type (org-element-type blob)))
|
|
|
;; Return contents only for complete parse trees.
|
|
|
(if (eq type 'org-data) (lambda (blob contents info) contents)
|
|
|
- (let ((translate-alist
|
|
|
- (intern (format "org-%s-translate-alist"
|
|
|
- (plist-get info :back-end)))))
|
|
|
- (when (boundp translate-alist)
|
|
|
- (let ((transcoder (cdr (assq type (symbol-value translate-alist)))))
|
|
|
- (and (fboundp transcoder) transcoder)))))))
|
|
|
+ (let ((transcoder (cdr (assq type (plist-get info :translate-alist)))))
|
|
|
+ (and (fboundp transcoder) transcoder)))))
|
|
|
|
|
|
(defun org-export-data (data info)
|
|
|
"Convert DATA into current back-end format.
|