emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Macros [was: Re: ATTR_HTML for a clickable image, howto?]


From: Yagnesh Raghava Yakkala
Subject: Re: [O] Macros [was: Re: ATTR_HTML for a clickable image, howto?]
Date: Sun, 20 May 2012 17:34:49 +0900
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux)

Hello Nicolas,

Nicolas Goaziou <address@hidden> 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 "address@hidden" 
: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 "address@hidden" 
: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 "address@hidden" 
: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 "address@hidden" :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 
"address@hidden" :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 "address@hidden" :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 "address@hidden" :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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]