[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: Eric Schulte
Subject: Re: [O][Babel] tangle - kind of macro expansion inside src blocks?
Date: Mon, 14 Mar 2011 09:35:07 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

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
> {{{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.
> #+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

reply via email to

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