|
@@ -1881,6 +1881,8 @@ Return a string."
|
|
|
(cond
|
|
|
;; Ignored element/object.
|
|
|
((memq data (plist-get info :ignore-list)) nil)
|
|
|
+ ;; Raw code.
|
|
|
+ ((eq type 'raw) (car (org-element-contents data)))
|
|
|
;; Plain text.
|
|
|
((eq type 'plain-text)
|
|
|
(org-export-filter-apply-functions
|
|
@@ -1947,7 +1949,7 @@ Return a string."
|
|
|
data
|
|
|
(cond
|
|
|
((not results) "")
|
|
|
- ((memq type '(org-data plain-text nil)) results)
|
|
|
+ ((memq type '(nil org-data plain-text raw)) results)
|
|
|
;; Append the same white space between elements or objects
|
|
|
;; as in the original buffer, and call appropriate filters.
|
|
|
(t
|
|
@@ -3668,7 +3670,8 @@ the communication channel used for export, as a plist."
|
|
|
(when (symbolp backend) (setq backend (org-export-get-backend backend)))
|
|
|
(org-export-barf-if-invalid-backend backend)
|
|
|
(let ((type (org-element-type data)))
|
|
|
- (when (memq type '(nil org-data)) (error "No foreign transcoder available"))
|
|
|
+ (when (memq type '(nil org-data raw))
|
|
|
+ (error "No foreign transcoder available"))
|
|
|
(let* ((all-transcoders (org-export-get-all-transcoders backend))
|
|
|
(transcoder (cdr (assq type all-transcoders))))
|
|
|
(unless (functionp transcoder) (error "No foreign transcoder available"))
|
|
@@ -4562,6 +4565,17 @@ objects of the same type."
|
|
|
((funcall predicate el info) (cl-incf counter) nil)))
|
|
|
info 'first-match)))))
|
|
|
|
|
|
+;;;; For Raw objects
|
|
|
+;;
|
|
|
+;; `org-export-raw-string' builds a pseudo-object out of a string
|
|
|
+;; that any export back-end returns as-is.
|
|
|
+
|
|
|
+(defun org-export-raw-string (s)
|
|
|
+ "Return a raw object containing string S.
|
|
|
+A raw string is exported as-is, with no additional processing
|
|
|
+from the export back-end."
|
|
|
+ (unless (stringp s) (error "Wrong raw contents type: %S" s))
|
|
|
+ (org-element-create 'raw nil s))
|
|
|
|
|
|
;;;; For Src-Blocks
|
|
|
;;
|