forked from mirrors/org-mode
org-export: Allow variable arity in `org-export-with-backend'
* contrib/lisp/org-export.el (org-export-with-backend): Allow to ignore contents and info, if necessary. Also fix code typo.
This commit is contained in:
parent
cc998ccbad
commit
d1a075e6bb
|
@ -2983,15 +2983,17 @@ Caption lines are separated by a white space."
|
||||||
;; back-end, it may be used as a fall-back function once all specific
|
;; back-end, it may be used as a fall-back function once all specific
|
||||||
;; cases have been treated.
|
;; cases have been treated.
|
||||||
|
|
||||||
(defun org-export-with-backend (back-end data &rest args)
|
(defun org-export-with-backend (back-end data &optional contents info)
|
||||||
"Call a transcoder from BACK-END on DATA."
|
"Call a transcoder from BACK-END on DATA.
|
||||||
|
CONTENTS, when non-nil, is the transcoded contents of DATA
|
||||||
|
element, as a string. INFO, when non-nil, is the communication
|
||||||
|
channel used for export, as a plist.."
|
||||||
(org-export-barf-if-invalid-backend back-end)
|
(org-export-barf-if-invalid-backend back-end)
|
||||||
(let ((type (org-element-type data)))
|
(let ((type (org-element-type data)))
|
||||||
(if (or (memq type '(nil org-data)))
|
(if (memq type '(nil org-data)) (error "No foreign transcoder available")
|
||||||
(error "No foreign transcoder available")
|
|
||||||
(let ((transcoder
|
(let ((transcoder
|
||||||
(cdr (assq type (org-export-backend-translate-table back-end)))))
|
(cdr (assq type (org-export-backend-translate-table back-end)))))
|
||||||
(if (functionp transcoder) (apply transcoder data args)
|
(if (functionp transcoder) (funcall transcoder contents info)
|
||||||
(error "No foreign transcoder available"))))))
|
(error "No foreign transcoder available"))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue