Hello Nicolas, Nicolas Goaziou <n.goaz...@gmail.com> writes: > #+TITLE: Macro test > #+MACRO: test2 recursive $1 > #+MACRO: test A {{{test2(inner)}}} macro, $1. > #+MACRO: html-builder (eval (+ $1 $2)) > > > {{{test(and an outer one)}}} > > Some complex macro {{{html-builder(1,2)}}}.
out of curiosity I tried to export above snippet. it is working nice except for new exporter latex option. (org-export-dispatch and d option) here is the back trace: --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (void-variable \1) (+ \1 \2) (eval (+ \1 \2)) eval((eval (+ \1 \2))) (setq value (eval (read value))) (progn (setq value (eval (read value)))) (if (string-match "\\`(eval\\>" value) (progn (setq value (eval (read value))))) (when (string-match "\\`(eval\\>" value) (setq value (eval (read value)))) (let* ((key (org-element-property :key macro)) (args (org-element-property :args macro)) (value (org-export-data (plist-get info (intern (format ":macro-%s" key))) info))) (let ((s 0) n) (while (string-match "\\$\\([0-9]+\\)" value s) (setq s (1+ (match-beginning 0)) n (string-to-number (match-string 1 value))) (and (>= (length args) n) (setq value (replace-match (nth (1- n) args) t t value))))) (when (string-match "\\`(eval\\>" value) (setq value (eval (read value)))) (format "%s" (or value ""))) org-export-expand-macro((macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) org-e-latex-macro((macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) nil (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) funcall(org-e-latex-macro (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) nil (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) (and (fboundp transcoder) (funcall transcoder data nil info)) (let ((transcoder (org-export-transcoder data info))) (and (fboundp transcoder) (funcall transcoder data nil info))) (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let ((transcoder (org-export-transcoder data info))) (if transcoder (funcall transcoder data info) data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat (lambda (blob) (org-export-data blob info)) (org-element-contents data) "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type (quote headline)) (eq (plist-get info :with-archived-trees) (quote headline)) (org-element-property :archivedp data))) (let ((transcoder (org-export-transcoder data info))) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and ... ...)) (contents (mapconcat ... ... ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))))) (let* ((type (org-element-type data)) (results (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let (...) (if transcoder ... data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat ... ... "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type ...) (eq ... ...) (org-element-property :archivedp data))) (let ((transcoder ...)) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder ...)) (when transcoder (let* ... ...))))))) (cond ((not results) nil) ((memq type (quote (org-data plain-text nil))) results) (t (let ((results (org-export-filter-apply-functions (plist-get info ...) (let ... ...) info))) results)))) org-export-data((macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) (lambda (element) (org-export-data element info))((macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0))) mapconcat((lambda (element) (org-export-data element info)) ("Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) ".") "") (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data (when ... ...)))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)) (progn (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data ...))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info))) (if transcoder (progn (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if ... data ...)) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data ...))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info))) (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if ... data ...)) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))) (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let ((transcoder (org-export-transcoder data info))) (if transcoder (funcall transcoder data info) data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat (lambda (blob) (org-export-data blob info)) (org-element-contents data) "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type (quote headline)) (eq (plist-get info :with-archived-trees) (quote headline)) (org-element-property :archivedp data))) (let ((transcoder (org-export-transcoder data info))) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and ... ...)) (contents (mapconcat ... ... ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))))) (let* ((type (org-element-type data)) (results (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let (...) (if transcoder ... data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat ... ... "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type ...) (eq ... ...) (org-element-property :archivedp data))) (let ((transcoder ...)) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder ...)) (when transcoder (let* ... ...))))))) (cond ((not results) nil) ((memq type (quote (org-data plain-text nil))) results) (t (let ((results (org-export-filter-apply-functions (plist-get info ...) (let ... ...) info))) results)))) org-export-data((paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) ".") (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) (lambda (element) (org-export-data element info))((paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) ".")) mapconcat((lambda (element) (org-export-data element info)) ((keyword (:key "TITLE" :value "Macro test" :begin 1 :end 21 :post-blank 0)) (keyword (:key "MACRO" :value "test2 recursive $1" :begin 21 :end 49 :post-blank 0)) (keyword (:key "MACRO" :value "test A {{{test2(inner)}}} macro, $1." :begin 49 :end 95 :post-blank 0)) (keyword (:key "MACRO" :value "html-builder (eval (+ $1 $2))" :begin 95 :end 136 :post-blank 2)) (paragraph (:begin 136 :end 166 :contents-begin 136 :contents-end 164 :post-blank 1) (macro (:key "test" :value "{{{test(and an outer one)}}}" :args ("and an outer one") :begin 136 :end 164 :post-blank 0))) (paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) ".")) "") (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data (when ... ...)))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)) (progn (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data ...))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info))) (if transcoder (progn (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if ... data ...)) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data ...))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info))) (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if ... data ...)) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))) (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let ((transcoder (org-export-transcoder data info))) (if transcoder (funcall transcoder data info) data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat (lambda (blob) (org-export-data blob info)) (org-element-contents data) "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type (quote headline)) (eq (plist-get info :with-archived-trees) (quote headline)) (org-element-property :archivedp data))) (let ((transcoder (org-export-transcoder data info))) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and ... ...)) (contents (mapconcat ... ... ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))))) (let* ((type (org-element-type data)) (results (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let (...) (if transcoder ... data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat ... ... "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type ...) (eq ... ...) (org-element-property :archivedp data))) (let ((transcoder ...)) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder ...)) (when transcoder (let* ... ...))))))) (cond ((not results) nil) ((memq type (quote (org-data plain-text nil))) results) (t (let ((results (org-export-filter-apply-functions (plist-get info ...) (let ... ...) info))) results)))) org-export-data((section (:begin 1 :end 210 :contents-begin 1 :contents-end 210 :post-blank 0) (keyword (:key "TITLE" :value "Macro test" :begin 1 :end 21 :post-blank 0)) (keyword (:key "MACRO" :value "test2 recursive $1" :begin 21 :end 49 :post-blank 0)) (keyword (:key "MACRO" :value "test A {{{test2(inner)}}} macro, $1." :begin 49 :end 95 :post-blank 0)) (keyword (:key "MACRO" :value "html-builder (eval (+ $1 $2))" :begin 95 :end 136 :post-blank 2)) (paragraph (:begin 136 :end 166 :contents-begin 136 :contents-end 164 :post-blank 1) (macro (:key "test" :value "{{{test(and an outer one)}}}" :args ("and an outer one") :begin 136 :end 164 :post-blank 0))) (paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) ".")) (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) (lambda (element) (org-export-data element info))((section (:begin 1 :end 210 :contents-begin 1 :contents-end 210 :post-blank 0) (keyword (:key "TITLE" :value "Macro test" :begin 1 :end 21 :post-blank 0)) (keyword (:key "MACRO" :value "test2 recursive $1" :begin 21 :end 49 :post-blank 0)) (keyword (:key "MACRO" :value "test A {{{test2(inner)}}} macro, $1." :begin 49 :end 95 :post-blank 0)) (keyword (:key "MACRO" :value "html-builder (eval (+ $1 $2))" :begin 95 :end 136 :post-blank 2)) (paragraph (:begin 136 :end 166 :contents-begin 136 :contents-end 164 :post-blank 1) (macro (:key "test" :value "{{{test(and an outer one)}}}" :args ("and an outer one") :begin 136 :end 164 :post-blank 0))) (paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) "."))) mapconcat((lambda (element) (org-export-data element info)) ((section (:begin 1 :end 210 :contents-begin 1 :contents-end 210 :post-blank 0) (keyword (:key "TITLE" :value "Macro test" :begin 1 :end 21 :post-blank 0)) (keyword (:key "MACRO" :value "test2 recursive $1" :begin 21 :end 49 :post-blank 0)) (keyword (:key "MACRO" :value "test A {{{test2(inner)}}} macro, $1." :begin 49 :end 95 :post-blank 0)) (keyword (:key "MACRO" :value "html-builder (eval (+ $1 $2))" :begin 95 :end 136 :post-blank 2)) (paragraph (:begin 136 :end 166 :contents-begin 136 :contents-end 164 :post-blank 1) (macro (:key "test" :value "{{{test(and an outer one)}}}" :args ("and an outer one") :begin 136 :end 164 :post-blank 0))) (paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) "."))) "") (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data (when ... ...)))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)) (progn (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data ...))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info))) (if transcoder (progn (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if ... data ...)) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if (or greaterp objectp) data (org-element-normalize-contents data ...))) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info))) (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and (not greaterp) (memq type org-element-recursive-objects))) (contents (mapconcat (lambda (element) (org-export-data element info)) (org-element-contents (if ... data ...)) ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))) (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let ((transcoder (org-export-transcoder data info))) (if transcoder (funcall transcoder data info) data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat (lambda (blob) (org-export-data blob info)) (org-element-contents data) "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type (quote headline)) (eq (plist-get info :with-archived-trees) (quote headline)) (org-element-property :archivedp data))) (let ((transcoder (org-export-transcoder data info))) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder (org-export-transcoder data info))) (when transcoder (let* ((greaterp (memq type org-element-greater-elements)) (objectp (and ... ...)) (contents (mapconcat ... ... ""))) (funcall transcoder data (if greaterp (org-element-normalize-string contents) contents) info)))))) (let* ((type (org-element-type data)) (results (cond ((member data (plist-get info :ignore-list)) nil) ((eq type (quote plain-text)) (org-export-filter-apply-functions (plist-get info :filter-plain-text) (let (...) (if transcoder ... data)) info)) ((not (org-export-interpret-p data info)) (org-export-data (org-export-expand data (mapconcat ... ... "")) info)) ((not type) (mapconcat (lambda (obj) (org-export-data obj info)) data "")) ((or (not (org-element-contents data)) (and (eq type ...) (eq ... ...) (org-element-property :archivedp data))) (let ((transcoder ...)) (and (fboundp transcoder) (funcall transcoder data nil info)))) (t (let ((transcoder ...)) (when transcoder (let* ... ...))))))) (cond ((not results) nil) ((memq type (quote (org-data plain-text nil))) results) (t (let ((results (org-export-filter-apply-functions (plist-get info ...) (let ... ...) info))) results)))) org-export-data((org-data nil (section (:begin 1 :end 210 :contents-begin 1 :contents-end 210 :post-blank 0) (keyword (:key "TITLE" :value "Macro test" :begin 1 :end 21 :post-blank 0)) (keyword (:key "MACRO" :value "test2 recursive $1" :begin 21 :end 49 :post-blank 0)) (keyword (:key "MACRO" :value "test A {{{test2(inner)}}} macro, $1." :begin 49 :end 95 :post-blank 0)) (keyword (:key "MACRO" :value "html-builder (eval (+ $1 $2))" :begin 95 :end 136 :post-blank 2)) (paragraph (:begin 136 :end 166 :contents-begin 136 :contents-end 164 :post-blank 1) (macro (:key "test" :value "{{{test(and an outer one)}}}" :args ("and an outer one") :begin 136 :end 164 :post-blank 0))) (paragraph (:begin 166 :end 210 :contents-begin 166 :contents-end 209 :post-blank 0) "Some complex macro " (macro (:key "html-builder" :value "{{{html-builder(1,2)}}}" :args ("1" "2") :begin 185 :end 208 :post-blank 0)) "."))) (:author "Yagnesh Raghava Yakkala" :creator "Generated by Org mode 7.8.10 in Emacs 24.1.50.5." :date "\\today" :description nil :email "yagn...@okhotsk19.lowtem.hokudai.ac.jp" :exclude-tags ("noexport") :headline-levels 3 :keywords nil :language "en" :preserve-breaks nil :section-numbers t :select-tags ("export") :time-stamp-file t :title ("Macro test") :with-archived-trees headline :with-author t :with-clocks nil :with-creator comment :with-drawers t :with-email nil :with-emphasize t :with-entities t :with-fixed-width t :with-footnotes t :with-plannings nil ...)) (org-element-normalize-string (org-export-data tree info)) (let* ((body (org-element-normalize-string (org-export-data tree info))) (template (intern (format "org-%s-template" backend))) (output (org-export-filter-apply-functions (plist-get info :filter-final-output) (if (or (not (fboundp template)) body-only) body (funcall template body info)) info))) (when org-export-copy-to-kill-ring (org-kill-new output)) output) (let ((info (org-export-install-filters (org-export-store-footnote-definitions (org-export-get-environment backend subtreep ext-plist)))) (tree (let ((buf (or (buffer-file-name ...) (current-buffer)))) (org-export-with-current-buffer-copy (unless noexpand (org-export-expand-include-keyword) (let (...) (org-export-blocks-preprocess))) (goto-char (point-min)) (let ((org-export-current-backend backend)) (run-hooks (quote org-export-before-parsing-hook))) (org-element-parse-buffer nil visible-only))))) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-combine-plists info (org-export-collect-tree-properties tree info))) (let* ((body (org-element-normalize-string (org-export-data tree info))) (template (intern (format "org-%s-template" backend))) (output (org-export-filter-apply-functions (plist-get info :filter-final-output) (if (or (not ...) body-only) body (funcall template body info)) info))) (when org-export-copy-to-kill-ring (org-kill-new output)) output)) (save-restriction (cond ((org-region-active-p) (narrow-to-region (region-beginning) (region-end))) (subtreep (org-narrow-to-subtree) (goto-char (point-min)) (forward-line) (narrow-to-region (point) (point-max)))) (let ((info (org-export-install-filters (org-export-store-footnote-definitions (org-export-get-environment backend subtreep ext-plist)))) (tree (let ((buf (or ... ...))) (org-export-with-current-buffer-copy (unless noexpand (org-export-expand-include-keyword) (let ... ...)) (goto-char (point-min)) (let (...) (run-hooks ...)) (org-element-parse-buffer nil visible-only))))) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-combine-plists info (org-export-collect-tree-properties tree info))) (let* ((body (org-element-normalize-string (org-export-data tree info))) (template (intern (format "org-%s-template" backend))) (output (org-export-filter-apply-functions (plist-get info :filter-final-output) (if (or ... body-only) body (funcall template body info)) info))) (when org-export-copy-to-kill-ring (org-kill-new output)) output))) (save-excursion (save-restriction (cond ((org-region-active-p) (narrow-to-region (region-beginning) (region-end))) (subtreep (org-narrow-to-subtree) (goto-char (point-min)) (forward-line) (narrow-to-region (point) (point-max)))) (let ((info (org-export-install-filters (org-export-store-footnote-definitions (org-export-get-environment backend subtreep ext-plist)))) (tree (let ((buf ...)) (org-export-with-current-buffer-copy (unless noexpand ... ...) (goto-char ...) (let ... ...) (org-element-parse-buffer nil visible-only))))) (setq tree (org-export-filter-apply-functions (plist-get info :filter-parse-tree) tree info)) (setq info (org-combine-plists info (org-export-collect-tree-properties tree info))) (let* ((body (org-element-normalize-string (org-export-data tree info))) (template (intern (format "org-%s-template" backend))) (output (org-export-filter-apply-functions (plist-get info :filter-final-output) (if ... body ...) info))) (when org-export-copy-to-kill-ring (org-kill-new output)) output)))) org-export-as(e-latex nil nil nil nil nil) (let ((out (org-export-as backend subtreep visible-only body-only ext-plist noexpand))) (with-temp-buffer (insert out) (let ((coding-system-for-write org-export-coding-system)) (write-file file)))) org-export-to-file(e-latex "/tmp/org-scratch.tex" nil nil nil nil) (let ((outfile (org-export-output-file-name ".tex" subtreep pub-dir))) (org-export-to-file (quote e-latex) outfile subtreep visible-only body-only ext-plist)) org-e-latex-export-to-latex(nil nil nil nil nil) (org-e-latex-compile (org-e-latex-export-to-latex subtreep visible-only body-only ext-plist pub-dir)) org-e-latex-export-to-pdf(nil nil nil) (org-open-file (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (cond ((eql --cl-var-- (quote 113)) nil) ((member* --cl-var-- (quote (65 78 85))) (let ((outbuf (org-export-to-buffer (quote e-ascii) "*Org E-ASCII Export*" (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns) (\` (:ascii-charset ...))))) (with-current-buffer outbuf (text-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((member* --cl-var-- (quote (97 110 117))) (org-e-ascii-export-to-ascii (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns) (\` (:ascii-charset (\, (case raw-key (97 ...) (110 ...) (t ...))))))) ((eql --cl-var-- (quote 76)) (let ((outbuf (org-export-to-buffer (quote e-latex) "*Org E-LaTeX Export*" (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (with-current-buffer outbuf (latex-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((eql --cl-var-- (quote 108)) (org-e-latex-export-to-latex (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 112)) (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 100)) (org-open-file (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) ((eql --cl-var-- (quote 72)) (let ((outbuf (org-export-to-buffer (quote e-html) "*Org E-HTML Export*" (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (with-current-buffer outbuf (if (featurep (quote nxhtml-mode)) (nxhtml-mode) (nxml-mode))) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((eql --cl-var-- (quote 104)) (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 98)) (org-open-file (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) ((eql --cl-var-- (quote 111)) (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 79)) (org-open-file (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) ((eql --cl-var-- (quote 70)) (org-e-publish-current-file (memq (quote force) optns))) ((eql --cl-var-- (quote 80)) (org-e-publish-current-project (memq (quote force) optns))) ((eql --cl-var-- (quote 88)) (let ((project (assoc (org-icompleting-read "Publish project: " org-e-publish-project-alist nil t) org-e-publish-project-alist))) (org-e-publish project (memq (quote force) optns)))) ((eql --cl-var-- (quote 69)) (org-e-publish-all (memq (quote force) optns))) (t (error "No command associated with key %s" (char-to-string raw-key)))) (let ((--cl-var-- (if (< raw-key 27) (+ raw-key 96) raw-key))) (cond ((eql --cl-var-- (quote 113)) nil) ((member* --cl-var-- (quote (65 78 85))) (let ((outbuf (org-export-to-buffer (quote e-ascii) "*Org E-ASCII Export*" (memq ... optns) (memq ... optns) (memq ... optns) (\` ...)))) (with-current-buffer outbuf (text-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((member* --cl-var-- (quote (97 110 117))) (org-e-ascii-export-to-ascii (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns) (\` (:ascii-charset (\, (case raw-key ... ... ...)))))) ((eql --cl-var-- (quote 76)) (let ((outbuf (org-export-to-buffer (quote e-latex) "*Org E-LaTeX Export*" (memq ... optns) (memq ... optns) (memq ... optns)))) (with-current-buffer outbuf (latex-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((eql --cl-var-- (quote 108)) (org-e-latex-export-to-latex (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 112)) (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 100)) (org-open-file (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) ((eql --cl-var-- (quote 72)) (let ((outbuf (org-export-to-buffer (quote e-html) "*Org E-HTML Export*" (memq ... optns) (memq ... optns) (memq ... optns)))) (with-current-buffer outbuf (if (featurep (quote nxhtml-mode)) (nxhtml-mode) (nxml-mode))) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((eql --cl-var-- (quote 104)) (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 98)) (org-open-file (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) ((eql --cl-var-- (quote 111)) (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) ((eql --cl-var-- (quote 79)) (org-open-file (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) ((eql --cl-var-- (quote 70)) (org-e-publish-current-file (memq (quote force) optns))) ((eql --cl-var-- (quote 80)) (org-e-publish-current-project (memq (quote force) optns))) ((eql --cl-var-- (quote 88)) (let ((project (assoc (org-icompleting-read "Publish project: " org-e-publish-project-alist nil t) org-e-publish-project-alist))) (org-e-publish project (memq (quote force) optns)))) ((eql --cl-var-- (quote 69)) (org-e-publish-all (memq (quote force) optns))) (t (error "No command associated with key %s" (char-to-string raw-key))))) (case (if (< raw-key 27) (+ raw-key 96) raw-key) (113 nil) ((65 78 85) (let ((outbuf (org-export-to-buffer (quote e-ascii) "*Org E-ASCII Export*" (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns) (\` (:ascii-charset ...))))) (with-current-buffer outbuf (text-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((97 110 117) (org-e-ascii-export-to-ascii (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns) (\` (:ascii-charset (\, (case raw-key (97 ...) (110 ...) (t ...))))))) (76 (let ((outbuf (org-export-to-buffer (quote e-latex) "*Org E-LaTeX Export*" (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (with-current-buffer outbuf (latex-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) (108 (org-e-latex-export-to-latex (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (112 (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (100 (org-open-file (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (72 (let ((outbuf (org-export-to-buffer (quote e-html) "*Org E-HTML Export*" (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (with-current-buffer outbuf (if (featurep (quote nxhtml-mode)) (nxhtml-mode) (nxml-mode))) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) (104 (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (98 (org-open-file (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (111 (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (79 (org-open-file (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (70 (org-e-publish-current-file (memq (quote force) optns))) (80 (org-e-publish-current-project (memq (quote force) optns))) (88 (let ((project (assoc (org-icompleting-read "Publish project: " org-e-publish-project-alist nil t) org-e-publish-project-alist))) (org-e-publish project (memq (quote force) optns)))) (69 (org-e-publish-all (memq (quote force) optns))) (t (error "No command associated with key %s" (char-to-string raw-key)))) (let* ((input (org-export-dispatch-ui (if (listp org-export-initial-scope) org-export-initial-scope (list org-export-initial-scope)) org-export-dispatch-use-expert-ui)) (raw-key (car input)) (optns (cdr input))) (case (if (< raw-key 27) (+ raw-key 96) raw-key) (113 nil) ((65 78 85) (let ((outbuf (org-export-to-buffer (quote e-ascii) "*Org E-ASCII Export*" (memq ... optns) (memq ... optns) (memq ... optns) (\` ...)))) (with-current-buffer outbuf (text-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) ((97 110 117) (org-e-ascii-export-to-ascii (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns) (\` (:ascii-charset (\, (case raw-key ... ... ...)))))) (76 (let ((outbuf (org-export-to-buffer (quote e-latex) "*Org E-LaTeX Export*" (memq ... optns) (memq ... optns) (memq ... optns)))) (with-current-buffer outbuf (latex-mode)) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) (108 (org-e-latex-export-to-latex (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (112 (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (100 (org-open-file (org-e-latex-export-to-pdf (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (72 (let ((outbuf (org-export-to-buffer (quote e-html) "*Org E-HTML Export*" (memq ... optns) (memq ... optns) (memq ... optns)))) (with-current-buffer outbuf (if (featurep (quote nxhtml-mode)) (nxhtml-mode) (nxml-mode))) (when org-export-show-temporary-export-buffer (switch-to-buffer-other-window outbuf)))) (104 (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (98 (org-open-file (org-e-html-export-to-html (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (111 (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns))) (79 (org-open-file (org-e-odt-export-to-odt (memq (quote subtree) optns) (memq (quote visible) optns) (memq (quote body) optns)))) (70 (org-e-publish-current-file (memq (quote force) optns))) (80 (org-e-publish-current-project (memq (quote force) optns))) (88 (let ((project (assoc (org-icompleting-read "Publish project: " org-e-publish-project-alist nil t) org-e-publish-project-alist))) (org-e-publish project (memq (quote force) optns)))) (69 (org-e-publish-all (memq (quote force) optns))) (t (error "No command associated with key %s" (char-to-string raw-key))))) org-export-dispatch() call-interactively(org-export-dispatch record nil) command-execute(org-export-dispatch record) execute-extended-command(nil "org-export-dispatch") call-interactively(execute-extended-command nil nil) --8<---------------cut here---------------end--------------->8--- org version: pulled a while ago. Org-mode version 7.8.10 (release_7.8.10-574-g57cfa6 @ /home/yagnesh/.emacs.d/el-get/org-mode/lisp/) -- ఎందరో మహానుభావులు అందరికి వందనములు YYR