Hello Olaf, I've just added a new hook through which you will be able to expand regular Org-mode style macros in code block bodies during export. The following org-mode snippet demonstrates its use.
First, add macro expansion to the new `org-babel-tangle-body-hook'. #+begin_src emacs-lisp :results silent (add-hook 'org-babel-tangle-body-hook (lambda () (org-export-preprocess-apply-macros))) #+end_src Then define the macro. Note: you may need to export the buffer before tangling so that the macro definition is noticed and processed by Org-mode. #+MACRO: CONFIG_PARAM01 45 Then on both export and tangling the macro in the following code block will be replaced. #+begin_src sh :tangle yes echo org-mode set CONFIG_PARAMETER to: {{{CONFIG_PARAM01}}} #+end_src Cheers -- Eric "Olaf.Hamann" <o.ham...@gmx.net> writes: > Hello all, > > is there a way to do so or are there plans to integrate > a macro expansion mechanism into org-babel-tangle > like that one org-mode already provides? > > #+MACRO: name replacement > {{{name}}} > > > I would like to replace config parameter in begin_src...end_src blocks. > Change at one place in org-file shall change values in tangled code-files. > > I helped myself with an ugly hack in org-babel-tangle, > so that following lines work for me at the moment. > > #+MACRO CONFIG_PARAM01 45 > > #+begin_src sh :tangle file1.sh > echo org-mode set CONFIG_PARAMETER to: {{{CONFIG_PARAM01}}} > #+end_src > #+begin_src sh :tangle file2.sh > echo org-mode set CONFIG_PARAMETER to: {{{CONFIG_PARAM01}}} > #+end_src > > (this is an example only - the language which I tangle to is not good at > local vars support, > so using $CONFIG_PARAMETER inside tangled code is no solution to me) > > But this is no solution, so I ask whether there is already some > functionality to do like this, > which will nicely fit into the aspects of different languages to be used > in src blocks. > Work of org-babel-detangle will be harder when using such a macro > functionality > (supported languages need inline comments, what to do with other? ). > > Regards, > Olaf