This is the official manual for the latest Org-mode release.
Next: Key bindings and useful functions, Previous: Results of evaluation, Up: Working with source code
Org supports named blocks in Noweb style syntax. For Noweb literate programming details, see http://www.cs.tufts.edu/~nr/noweb/).
<<code-block-name>>
For the header argument :noweb yes, Org expands Noweb style references
in the ‘src’ code block before evaluation.
For the header argument :noweb no, Org does not expand Noweb style
references in the ‘src’ code block before evaluation.
The default is :noweb no. Org defaults to :noweb no so as not
to cause errors in languages where Noweb syntax is ambiguous. Change Org's
default to :noweb yes for languages where there is no risk of
confusion.
Org offers a more flexible way to resolve Noweb style references (see noweb-ref).
Org can include the results of a code block rather than its body. To that effect, append parentheses, possibly including arguments, to the code block name, as show below.
<<code-block-name(optional arguments)>>
Note that when using the above approach to a code block's results, the code
block name set by #+NAME keyword is required; the reference set by
:noweb-ref will not work.
Here is an example that demonstrates how the exported content changes when Noweb style references are used with parentheses versus without.
With:
#+NAME: some-code
#+BEGIN_SRC python :var num=0 :results output :exports none
print(num*10)
#+END_SRC
this code block:
#+BEGIN_SRC text :noweb yes
<<some-code>>
#+END_SRC
expands to:
print(num*10)
Below, a similar Noweb style reference is used, but with parentheses, while
setting a variable num to 10:
#+BEGIN_SRC text :noweb yes
<<some-code(num=10)>>
#+END_SRC
Note that now the expansion contains the results of the code block
some-code, not the code block itself:
100
For faster tangling of large Org mode files, set
org-babel-use-quick-and-dirty-noweb-expansion variable to t.
The speedup comes at the expense of not correctly resolving inherited values
of the :noweb-ref header argument.