org: Code block specific header arguments
Code block specific header arguments
....................................
The most common way to assign values to header arguments is at the code
block level. This can be done by listing a sequence of header arguments
and their values as part of the ‘#+BEGIN_SRC’ line. Properties set in
this way override both the values of ‘org-babel-default-header-args’ and
header arguments specified as properties. In the following example, the
‘:results’ header argument is set to ‘silent’, meaning the results of
execution will not be inserted in the buffer, and the ‘:exports’ header
argument is set to ‘code’, meaning only the body of the code block will
be preserved on export to HTML or LaTeX.
#+NAME: factorial
#+BEGIN_SRC haskell :results silent :exports code :var n=0
fac 0 = 1
fac n = n * fac (n-1)
#+END_SRC
Similarly, it is possible to set header arguments for inline code
blocks
src_haskell[:exports both]{fac 5}
Code block header arguments can span multiple lines using ‘#+HEADER:’
or ‘#+HEADERS:’ lines preceding a code block or nested between the
‘#+NAME:’ line and the ‘#+BEGIN_SRC’ line of a named code block.
Multi-line header arguments on an un-named code block:
#+HEADERS: :var data1=1
#+BEGIN_SRC emacs-lisp :var data2=2
(message "data1:%S, data2:%S" data1 data2)
#+END_SRC
#+RESULTS:
: data1:1, data2:2
Multi-line header arguments on a named code block:
#+NAME: named-block
#+HEADER: :var data=2
#+BEGIN_SRC emacs-lisp
(message "data:%S" data)
#+END_SRC
#+RESULTS: named-block
: data:2