[Top][All Lists]

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

Re: [O][Babel] tangle - kind of macro expansion inside src blocks?

From: Olaf.Hamann
Subject: Re: [O][Babel] tangle - kind of macro expansion inside src blocks?
Date: Mon, 14 Mar 2011 19:06:13 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de; rv: Gecko/20110303 Thunderbird/3.1.9

Hi Eric,

thank you very much, it works as announced.

I have probs with replacing/overlaying the built-in org-mode in my Emacs (w32-binary),
but that's not issue here.

After an eval-buffer of ob-tangle.el I can reproduce the expected result.

Exporting the buffer first is necessary, but that could be done by the pre-tangle-hook I hope.

Thank you very much for that quick feature patch.



Am 14.03.2011 16:35, schrieb Eric Schulte:
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)))

Then define the macro.  Note: you may need to export the buffer before
tangling so that the macro definition is noticed and processed by


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}}}

Cheers -- Eric

"Olaf.Hamann"<address@hidden>  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

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.


#+begin_src sh :tangle file1.sh
      echo org-mode set CONFIG_PARAMETER to: {{{CONFIG_PARAM01}}}
#+begin_src sh :tangle file2.sh
      echo org-mode set CONFIG_PARAMETER to: {{{CONFIG_PARAM01}}}

(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
(supported languages need inline comments, what to do with other? ).


reply via email to

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