Next: , Previous: , Up: Using header arguments   [Contents][Index]

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

Next: , Previous: , Up: Using header arguments   [Contents][Index]