Next: Header arguments in function calls, Previous: Language-specific header arguments in Org mode properties, Up: Using header arguments [Contents][Index]

#### 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: Header arguments in function calls, Previous: Language-specific header arguments in Org mode properties, Up: Using header arguments [Contents][Index]