Hi,

I'm working on a Leanpub Markua exporter (not quite complete yet but
already usable, if you are interested:
https://github.com/zzamboni/ox-leanpub/tree/book-and-markua)

I would like to include the value of :noweb-ref for code blocks in exported
output, like noweb originally did, e.g. something like this:

#begin_src emacs_lisp :noweb-ref super-duper-code
...
#end_src

to produce something like this in the export:

<<super-duper-code>>=
 ...

After much poking around, I figured that the :noweb and :noweb-ref header
args are removed by org-babel *before* the src block makes it to the
exporter. I also discovered that by setting org-export-use-babel to nil I
could disable this behavior, which means that my exporter can access the
:noweb-ref argument by parsing the :parameters property (see
https://github.com/zzamboni/ox-leanpub/blob/book-and-markua/ox-leanpub-markua.el#L388
).

This was good for my original purpose, but I just realized that this also
disables other useful org-babel features on export, such as the processing
of the :exports header argument, which means that both code and results are
always included in the export regardless of what :exports says :)

I have tried using org-babel-exp-code-template, but unfortunately if I try
to use "%noweb-ref" as a key in its value, it gets replaced by the value of
:noweb followed by "-ref" in every case.

Is there some other way of accessing org-babel header arguments like
:noweb-ref from the exporter, but without having to disable org-babel
processing completely? Any other ideas for achieving what I want?

Thanks for any ideas,
--Diego

Reply via email to