* Cannot expand macros through included org file [not found] <7d032f82-9d16-edff-b548-3c01f6ea68cb@housseini.me> @ 2023-02-15 20:34 ` reza 2023-02-15 20:44 ` Ihor Radchenko 0 siblings, 1 reply; 8+ messages in thread From: reza @ 2023-02-15 20:34 UTC (permalink / raw) To: emacs-orgmode@gnu.org [-- Attachment #1: Type: text/plain, Size: 846 bytes --] Hi List I have the following setup: In "template.org" is the structure of a report defined which I need to generate for several years, e.g: #+TITLE: Report * My headline #+BEGIN_SRC bash :file log_{{{year}}}.csv ./get_log_file --start={{{year}}}-01-01 --end={{{year}}}-12-31 #+END_SRC #+BEGIN_SRC python log = pd.read_csv("log_{{{year}}}.csv") #END_SRC Now I want to generate a report for different years, my approach was now to have a file "report_2019.org" like: #+TITLE: Report 2019 #+MACRO: year 2019 #+INCLUDE: "template.org" :lines "2-" But that does not seem to work. It looks like the macro expansion does not happen for included content. Is this a bug or correct behavior, what would be the approach to not repeat the content for several reports? Thanks for your inputs. Cheers, Reza [-- Attachment #2: OpenPGP_0xC375C6AF05125C52.asc --] [-- Type: application/pgp-keys, Size: 15557 bytes --] [-- Attachment #3: OpenPGP_signature --] [-- Type: application/pgp-signature, Size: 499 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Cannot expand macros through included org file 2023-02-15 20:34 ` Cannot expand macros through included org file reza @ 2023-02-15 20:44 ` Ihor Radchenko [not found] ` <ecd7d8ae-81de-5bb8-f66f-6bfc2152480b@housseini.me> 0 siblings, 1 reply; 8+ messages in thread From: Ihor Radchenko @ 2023-02-15 20:44 UTC (permalink / raw) To: reza; +Cc: emacs-orgmode@gnu.org reza <reza@housseini.me> writes: > #+BEGIN_SRC bash :file log_{{{year}}}.csv > ./get_log_file --start={{{year}}}-01-01 --end={{{year}}}-12-31 > #+END_SRC > > #+BEGIN_SRC python > log = pd.read_csv("log_{{{year}}}.csv") > #END_SRC > ... > But that does not seem to work. It looks like the macro expansion does > not happen for included content. Is this a bug or correct behavior, what > would be the approach to not repeat the content for several reports? Macro expansion only works inside Org proper markup. Macros are only recognized withing non-verbatim contexts. Src blocks are considered verbatim and macros are not expanded there. Otherwise, Org would risk interfering with proper programming language syntax. What you can do instead is creating a named Org paragraph with macro, like #+name: year {{{year}}} and then refer to it via variable assignments. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <ecd7d8ae-81de-5bb8-f66f-6bfc2152480b@housseini.me>]
* Re: Cannot expand macros through included org file [not found] ` <ecd7d8ae-81de-5bb8-f66f-6bfc2152480b@housseini.me> @ 2023-02-15 20:53 ` reza 2023-02-15 21:10 ` Ihor Radchenko 2023-02-15 21:51 ` Nick Dokos 0 siblings, 2 replies; 8+ messages in thread From: reza @ 2023-02-15 20:53 UTC (permalink / raw) To: emacs-orgmode@gnu.org [-- Attachment #1: Type: text/plain, Size: 618 bytes --] Hi Ihor Thanks for your quick reply > What you can do instead is creating a named Org paragraph with macro, > like > > #+name: year > {{{year}}} I tried this approach but it does not seem to work either: "template.org": #+TITLE: Report #+NAME: year {{{year}}} * My headline #+BEGIN_SRC bash :var year=year ./get_log_file --start=$year-01-01 --end=$year-12-31 #+END_SRC #+BEGIN_SRC python :var year=year log = pd.read_csv(f"log_{year}.csv") #END_SRC "report_2019.org": #+TITLE: Report 2019 #+MACRO: year 2019 #+INCLUDE: "template.org" :lines "2-" Cheers, Reza [-- Attachment #2: OpenPGP_0xC375C6AF05125C52.asc --] [-- Type: application/pgp-keys, Size: 15557 bytes --] [-- Attachment #3: OpenPGP_signature --] [-- Type: application/pgp-signature, Size: 499 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Cannot expand macros through included org file 2023-02-15 20:53 ` reza @ 2023-02-15 21:10 ` Ihor Radchenko [not found] ` <2b6f1944-66e1-c491-40f5-420018411312@housseini.me> 2023-02-15 21:51 ` Nick Dokos 1 sibling, 1 reply; 8+ messages in thread From: Ihor Radchenko @ 2023-02-15 21:10 UTC (permalink / raw) To: reza; +Cc: emacs-orgmode@gnu.org reza <reza@housseini.me> writes: >> What you can do instead is creating a named Org paragraph with macro, >> like >> >> #+name: year >> {{{year}}} > > I tried this approach but it does not seem to work either: It works, but Org does not include variable assignments to exported code by default. See org-babel-exp-code-template. The assignment would be done if you execute the blocks though. Note that year will have a value of "2019\n" with trailing newline. Yet another approach is including common :var year=2009 header arg. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <2b6f1944-66e1-c491-40f5-420018411312@housseini.me>]
* Re: Cannot expand macros through included org file [not found] ` <2b6f1944-66e1-c491-40f5-420018411312@housseini.me> @ 2023-02-15 21:26 ` reza 2023-02-17 13:02 ` Ihor Radchenko 0 siblings, 1 reply; 8+ messages in thread From: reza @ 2023-02-15 21:26 UTC (permalink / raw) To: emacs-orgmode@gnu.org [-- Attachment #1: Type: text/plain, Size: 490 bytes --] > It works, but Org does not include variable assignments to exported code > by default. See org-babel-exp-code-template. The assignment would be > done if you execute the blocks though. So I have to set this variable to true? > Note that year will have a value of "2019\n" with trailing newline. hm this is unfortunate... > Yet another approach is including common :var year=2009 header arg. what do you mean by common? I want to have a report for the years 2019-2022 for example. [-- Attachment #2: OpenPGP_0xC375C6AF05125C52.asc --] [-- Type: application/pgp-keys, Size: 15557 bytes --] [-- Attachment #3: OpenPGP_signature --] [-- Type: application/pgp-signature, Size: 499 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Cannot expand macros through included org file 2023-02-15 21:26 ` reza @ 2023-02-17 13:02 ` Ihor Radchenko [not found] ` <fc618f97-e272-5773-7143-4a1381f242e6@housseini.me> 0 siblings, 1 reply; 8+ messages in thread From: Ihor Radchenko @ 2023-02-17 13:02 UTC (permalink / raw) To: reza; +Cc: emacs-orgmode@gnu.org reza <reza@housseini.me> writes: >> It works, but Org does not include variable assignments to exported code >> by default. See org-babel-exp-code-template. The assignment would be >> done if you execute the blocks though. > > So I have to set this variable to true? Check out the docstring. <F1> v org-babel-exp-code-template <RET> >> Yet another approach is including common :var year=2009 header arg. > > what do you mean by common? I want to have a report for the years > 2019-2022 for example. report_2019.org: #+TITLE: Report 2019 #+property: header-args :var year=2019 #+INCLUDE: "template.org" :lines "2-" template.org: #+TITLE: Report * My headline #+begin_src emacs-lisp :exports both :results value :eval yes year #+end_src #+BEGIN_SRC bash ./get_log_file --start=$year-01-01 --end=$year-12-31 #+END_SRC #+BEGIN_SRC python log = pd.read_csv(f"log_{year}.csv") #+END_SRC -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <fc618f97-e272-5773-7143-4a1381f242e6@housseini.me>]
* Re: Cannot expand macros through included org file [not found] ` <fc618f97-e272-5773-7143-4a1381f242e6@housseini.me> @ 2023-02-17 13:05 ` reza 0 siblings, 0 replies; 8+ messages in thread From: reza @ 2023-02-17 13:05 UTC (permalink / raw) To: Ihor Radchenko; +Cc: emacs-orgmode@gnu.org [-- Attachment #1: Type: text/plain, Size: 841 bytes --] > report_2019.org: > > #+TITLE: Report 2019 > #+property: header-args :var year=2019 > > #+INCLUDE: "template.org" :lines "2-" > > template.org: > > #+TITLE: Report > > * My headline > > #+begin_src emacs-lisp :exports both :results value :eval yes > year > #+end_src > > #+BEGIN_SRC bash > ./get_log_file --start=$year-01-01 --end=$year-12-31 > #+END_SRC > > #+BEGIN_SRC python > log = pd.read_csv(f"log_{year}.csv") > #+END_SRC Thank you, I got it to work by only using report_2019.org: #+TITLE: Report 2019 #+property: header-args :var year=2019 #+INCLUDE: "template.org" :lines "2-" template.org: #+TITLE: Report * My headline #+BEGIN_SRC bash ./get_log_file --start=$year-01-01 --end=$year-12-31 #+END_SRC #+BEGIN_SRC python log = pd.read_csv(f"log_{year}.csv") #+END_SRC [-- Attachment #2: OpenPGP_0xC375C6AF05125C52.asc --] [-- Type: application/pgp-keys, Size: 15557 bytes --] [-- Attachment #3: OpenPGP_signature --] [-- Type: application/pgp-signature, Size: 499 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Cannot expand macros through included org file 2023-02-15 20:53 ` reza 2023-02-15 21:10 ` Ihor Radchenko @ 2023-02-15 21:51 ` Nick Dokos 1 sibling, 0 replies; 8+ messages in thread From: Nick Dokos @ 2023-02-15 21:51 UTC (permalink / raw) To: emacs-orgmode reza <reza@housseini.me> writes: > Hi Ihor > > Thanks for your quick reply > >> What you can do instead is creating a named Org paragraph with macro, >> like >> >> #+name: year >> {{{year}}} > > I tried this approach but it does not seem to work either: > > "template.org": > > #+TITLE: Report > #+NAME: year > > {{{year}}} > There should be no empty line between `#+NAME: year' and `{{{year}}}'. There is a `+' missing at the end of the python code block. -- Nick "There are only two hard problems in computer science: cache invalidation, naming things, and off-by-one errors." -Martin Fowler ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-02-17 13:06 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <7d032f82-9d16-edff-b548-3c01f6ea68cb@housseini.me> 2023-02-15 20:34 ` Cannot expand macros through included org file reza 2023-02-15 20:44 ` Ihor Radchenko [not found] ` <ecd7d8ae-81de-5bb8-f66f-6bfc2152480b@housseini.me> 2023-02-15 20:53 ` reza 2023-02-15 21:10 ` Ihor Radchenko [not found] ` <2b6f1944-66e1-c491-40f5-420018411312@housseini.me> 2023-02-15 21:26 ` reza 2023-02-17 13:02 ` Ihor Radchenko [not found] ` <fc618f97-e272-5773-7143-4a1381f242e6@housseini.me> 2023-02-17 13:05 ` reza 2023-02-15 21:51 ` Nick Dokos
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).