Skip to content

Commit

Permalink
ob-core.el: Improve org-babel-default-header-args docstring
Browse files Browse the repository at this point in the history
* lisp/ob-core.el (org-babel-default-header-args): Provide an example
illustrating one benefit of using closures as default header
arguments.  Additionally, explain how to provide the same type of
header argument multiple times in the default alist.
  • Loading branch information
matthuszagh authored and yantar92 committed Jul 9, 2022
1 parent e8dd98d commit 8be689f
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions lisp/ob-core.el
Original file line number Diff line number Diff line change
Expand Up @@ -482,12 +482,14 @@ For the format of SAFE-LIST, see `org-babel-safe-header-args'."
This is a list in which each element is an alist. Each key
corresponds to a header argument, and each value to that header's
value. The value can either be a string or a closure that
evaluates to a string. The closure is evaluated when the source
block is being evaluated (e.g. during execution or export), with
point at the source block. It is not possible to use an
arbitrary function symbol (e.g. \\='some-func), since org uses
lexical binding. To achieve the same functionality, call the
function within a closure (e.g. (lambda () (some-func))).
evaluates to a string.
A closure is evaluated when the source block is being
evaluated (e.g. during execution or export), with point at the
source block. It is not possible to use an arbitrary function
symbol (e.g. 'some-func), since org uses lexical binding. To
achieve the same functionality, call the function within a
closure (e.g. (lambda () (some-func))).
To understand how closures can be used as default header
arguments, imagine you'd like to set the file name output of a
Expand All @@ -504,7 +506,16 @@ this with:
Because the closure is evaluated with point at the source block,
the call to `org-element-at-point' above will always retrieve
information about the current source block.")
information about the current source block.
Some header arguments can be provided multiple times for a source
block. An example of such a header argument is :var. This
functionality is also supported for default header arguments by
providing the header argument multiple times in the alist. For
example:
'((:var . \"foo=\\\"bar\\\"\")
(:var . \"bar=\\\"foo\\\"\"))")

(put 'org-babel-default-header-args 'safe-local-variable
(org-babel-header-args-safe-fn org-babel-safe-header-args))
Expand Down

0 comments on commit 8be689f

Please sign in to comment.