Merge branch 'maint'

This commit is contained in:
Nicolas Goaziou 2013-10-07 17:06:10 +02:00
commit 21b11071d3
3 changed files with 27 additions and 9 deletions

View File

@ -445,8 +445,7 @@ INFO is a plist used as a communication channel."
CONTENTS holds the contents of the headline. INFO is a plist
used as a communication channel."
(let ((latex-headline
(org-export-data-with-backend
headline
(org-export-with-backend
;; We create a temporary export back-end which behaves the
;; same as current one, but adds "\protect" in front of the
;; output of some objects.
@ -461,8 +460,10 @@ used as a communication channel."
(if (org-string-nw-p code) (concat "\\protect" code)
code))))))
(mapcar #'(lambda (type) (cons type protected-output))
'(bold footnote-reference italic strike-through
timestamp underline))))
'(bold footnote-reference italic strike-through timestamp
underline))))
headline
contents
info))
(mode-specs (org-element-property :BEAMER_ACT headline)))
(if (and mode-specs

View File

@ -3481,10 +3481,16 @@ the communication channel used for export, as a plist."
(org-export-barf-if-invalid-backend backend)
(let ((type (org-element-type data)))
(if (memq type '(nil org-data)) (error "No foreign transcoder available")
(let ((transcoder
(cdr (assq type (org-export-get-all-transcoders backend)))))
(if (functionp transcoder) (funcall transcoder data contents info)
(error "No foreign transcoder available"))))))
(let* ((all-transcoders (org-export-get-all-transcoders backend))
(transcoder (cdr (assq type all-transcoders))))
(if (not (functionp transcoder))
(error "No foreign transcoder available")
(funcall
transcoder data contents
(org-combine-plists
info (list :back-end backend
:translate-alist all-transcoders
:exported-data (make-hash-table :test 'eq :size 401)))))))))
;;;; For Export Snippets

View File

@ -1115,7 +1115,18 @@ body\n")))
'((plain-text . (lambda (text contents info) "Failure"))))
(org-export-define-backend 'test2
'((plain-text . (lambda (text contents info) "Success"))))
(org-export-with-backend 'test2 "Test")))))
(org-export-with-backend 'test2 "Test"))))
;; Provide correct back-end if transcoder needs to use recursive
;; calls anyway.
(should
(equal "Success"
(let (org-export--registered-backends)
(org-export-define-backend 'test
'((plain-text . (lambda (bold contents info) "Success"))
(headline . (lambda (headline contents info)
(org-export-data
(org-element-property :title headline))))))
(org-export-with-backend 'test "* Test")))))
(ert-deftest test-org-export/data-with-backend ()
"Test `org-export-data-with-backend' specifications."