summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Schulte <schulte.eric@gmail.com>2011-11-10 10:23:10 -0700
committerEric Schulte <schulte.eric@gmail.com>2011-11-15 08:56:24 -0700
commita3f781be127f3065acb2ae137796d0723d588338 (patch)
treeb6957edc7ea172b0890d259c4d1058a301e24a1c
parent1ed12cac1accb4011fc54e4ffbccd6023b2d3a01 (diff)
downloadorg-mode-a3f781be127f3065acb2ae137796d0723d588338.tar.gz
Tom's documentation updates for the new code block syntax
-rw-r--r--doc/org.texi480
1 files changed, 275 insertions, 205 deletions
diff --git a/doc/org.texi b/doc/org.texi
index c796f6a..c363ad7 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -11651,19 +11651,26 @@ The following sections describe Org-mode's code block handling facilities.
@section Structure of code blocks
@cindex code block, structure
@cindex source code, block structure
+@cindex #+NAME
+@ciindex #+BEGIN_SRC
-The structure of code blocks is as follows (empty code blocks may be inserted
-using Org-mode's @ref{Easy Templates} system):
+Live code blocks can be specified with a @samp{src} block or
+inline@footnote{Note that @samp{src} blocks may be inserted using Org-mode's
+@ref{Easy Templates} system}. The structure of a @samp{src} block is
@example
-#+srcname: <name>
-#+begin_src <language> <switches> <header arguments>
+#+NAME: <name>
+#+BEGIN_SRC <language> <switches> <header arguments>
<body>
-#+end_src
+#+END_SRC
@end example
-Switches and header arguments are optional. Code can also be embedded in text
-inline using
+The @code{#+NAME:} line is optional, and can be used to name the code
+block. Live code blocks require that a language be specified on the
+@code{#+BEGIN_SRC} line. Switches and header arguments are optional.
+@cindex source code, inline
+
+Live code blocks can also be specified inline using
@example
src_<language>@{<body>@}
@@ -11676,26 +11683,30 @@ src_<language>[<header arguments>]@{<body>@}
@end example
@table @code
-@item <name>
-This name is associated with the code block. This is similar to the
-@samp{#+tblname} lines that can be used to name tables in Org-mode files.
-Referencing the name of a code block makes it possible to evaluate the
-block from other places in the file, other files, or from Org-mode table
-formulas (see @ref{The spreadsheet}). Names are assumed to be unique by
-evaluation functions and the behavior of multiple blocks of the same name is
+@item <#+NAME: name>
+This line associates a name with the code block. This is similar to the
+@code{#+TBLNAME: NAME} lines that can be used to name tables in Org-mode
+files. Referencing the name of a code block makes it possible to evaluate
+the block from other places in the file, from other files, or from Org-mode
+table formulas (see @ref{The spreadsheet}). Names are assumed to be unique
+and the behavior of Org-mode when two or more blocks share the same name is
undefined.
+@cindex #+NAME
@item <language>
-The language of the code in the block.
+The language of the code in the block (see @ref{Languages}).
+@cindex source code, language
@item <switches>
-Optional switches controlling exportation of the code block (see switches discussion in
+Optional switches control code block export (see the discussion of switches in
@ref{Literal examples})
+@cindex source code, switches
@item <header arguments>
Optional header arguments control many aspects of evaluation, export and
-tangling of code blocks. See the @ref{Header arguments}.
+tangling of code blocks (see @ref{Header arguments}).
Header arguments can also be set on a per-buffer or per-subtree
basis using properties.
+@item source code, header arguments
@item <body>
-The source code.
+Source code in the specified language.
@end table
@comment node-name, next, previous, up
@@ -11744,12 +11755,12 @@ variable @code{org-src-fontify-natively}.
@cindex code block, exporting
@cindex source code, exporting
-It is possible to export the @emph{contents} of code blocks, the
-@emph{results} of code block evaluation, @emph{neither}, or @emph{both}. For
-most languages, the default exports the contents of code blocks. However, for
-some languages (e.g.@: @code{ditaa}) the default exports the results of code
-block evaluation. For information on exporting code block bodies, see
-@ref{Literal examples}.
+It is possible to export the @emph{code} of code blocks, the @emph{results}
+of code block evaluation, @emph{both} the code and the results of code block
+evaluation, or @emph{none}. For most languages, the default exports code.
+However, for some languages (e.g.@: @code{ditaa}) the default exports the
+results of code block evaluation. For information on exporting code block
+bodies, see @ref{Literal examples}.
The @code{:exports} header argument can be used to specify export
behavior:
@@ -11827,14 +11838,15 @@ of tangled code files.
@cindex source code, evaluating
Code blocks can be evaluated@footnote{Whenever code is evaluated there is a
-potential for that code to do harm. Org-mode provides a number of safeguards
-to ensure that it only evaluates code with explicit confirmation from the
-user. For information on these safeguards (and on how to disable them) see
-@ref{Code evaluation security}.} and the results placed in the Org-mode
-buffer. By default, evaluation is only turned on for @code{emacs-lisp} code
-blocks, however support exists for evaluating blocks in many languages. See
-@ref{Languages} for a list of supported languages. See @ref{Structure of
-code blocks} for information on the syntax used to define a code block.
+potential for that code to do harm. Org-mode provides safeguards to ensure
+that code is only evaluated after explicit confirmation from the user. For
+information on these safeguards (and on how to disable them) see @ref{Code
+evaluation security}.} and the results of evaluation optionally placed in the
+Org-mode buffer. By default, the evaluation facility is only enabled for
+Lisp code blocks specified as @code{emacs-lisp}. However, souce code blocks
+in many languages can be evaluated within Org-mode (see @ref{Languages} for a
+list of supported languages and @ref{Structure of code blocks} for
+information on the syntax used to define a code block).
@kindex C-c C-c
There are a number of ways to evaluate code blocks. The simplest is to press
@@ -11843,63 +11855,51 @@ There are a number of ways to evaluate code blocks. The simplest is to press
evaluation from the @kbd{C-c C-c} key binding.}. This will call the
@code{org-babel-execute-src-block} function to evaluate the block and insert
its results into the Org-mode buffer.
+@cindex #+CALL
It is also possible to evaluate named code blocks from anywhere in an
-Org-mode buffer or an Org-mode table. @code{#+call} (or synonymously
-@code{#+function} or @code{#+lob}) lines can be used to remotely execute code
-blocks located in the current Org-mode buffer or in the ``Library of Babel''
-(see @ref{Library of Babel}). These lines use the following syntax to place
-a call on a line by itself.
+Org-mode buffer or an Org-mode table. Live code blocks located in the current
+Org-mode buffer or in the ``Library of Babel'' (see @ref{Library of Babel})
+can be executed. Named code blocks can be executed with a separate
+@code{#+CALL:} line or inline within a block of text.
+
+The syntax of the @code{#+CALL:} line is
@example
-#+call: <name>(<arguments>)
-#+call: <name>[<header args>](<arguments>) <header args>
+#+CALL: <name>(<arguments>)
+#+CALL: <name>[<inside header arguments>](<arguments>) <end header arguments>
@end example
-The following syntax can be used to place these calls within a block of
-prose.
+The syntax for inline evaluation of named code blocks is
@example
-...prose... call_<name>(<arguments>) ...prose...
-...prose... call_<name>[<header args>](<arguments>)[<header args>] ...prose...
+... call_<name>(<arguments>) ...
+... call_<name>[<inside header arguments>](<arguments>)[<end header arguments>] ...
@end example
@table @code
@item <name>
-The name of the code block to be evaluated.
+The name of the code block to be evaluated (see @ref{Structure of code blocks}).
@item <arguments>
Arguments specified in this section will be passed to the code block. These
-arguments should relate to @code{:var} header arguments in the called code
-block expressed using standard function call syntax. For example if the
-original code block named @code{double} has the header argument @code{:var
-n=2}, then the call line passing the number four to that block would be
-written as @code{#+call: double(n=2)}.
-@item <header args>
-Header arguments can be placed either inside the call to the code block or at
-the end of the line as shown below.
-
-@example
-#+call: code_bloc_name[XXXX](arguments) YYYY
-@end example
-
-Header arguments located in these two locations are treated differently.
-
-@table @code
-@item XXXX
-Those placed in the @code{XXXX} location are passed through and applied to
-the code block being called. These header arguments affect how the code
-block is evaluated, for example @code{[:results output]} will collect the
-results from @code{STDOUT} of the called code block.
-@item YYYY
-Those placed in the @code{YYYY} location are applied to the call line and do
-not affect the code block being called. These header arguments affect how
-the results are incorporated into the Org-mode buffer when the call line is
-evaluated, and how the call line is exported. For example @code{:results
-org} at the end of the call line will insert the results of the call line
-inside of an Org-mode block.
-@end table
-
-For more examples of passing header arguments to @code{#+call:} lines see
+arguments use standard function call syntax, rather than
+header argument syntax. For example, a @code{#+CALL:} line that passes the
+number four to a code block named @code{double}, which declares the header
+argument @code{:var n=2}, would be written as @code{#+CALL: double(n=4)}.
+@item <inside header arguments>
+Inside header arguments are passed through and applied to the named code
+block. These arguments use header argument syntax rather than standard
+function call syntax. Inside header arguments affect how the code block is
+evaluated. For example, @code{[:results output]} will collect the results of
+everything printed to @code{STDOUT} during execution of the code block.
+@item <end header arguments>
+End header arguments are applied to the calling instance and do not affect
+evaluation of the named code block. They affect how the results are
+incorporated into the Org-mode buffer and how the call line is exported. For
+example, @code{:results html} will insert the results of the call line
+evaluation in the Org buffer, wrapped in a @code{BEGIN_HTML:} block.
+
+For more examples of passing header arguments to @code{#+CALL:} lines see
@ref{Header arguments in function calls}.
@end table
@@ -11909,15 +11909,19 @@ For more examples of passing header arguments to @code{#+call:} lines see
@cindex source code, library
@cindex code block, library
-The ``Library of Babel'' is a library of code blocks
-that can be called from any Org-mode file. The library is housed in an
-Org-mode file located in the @samp{contrib} directory of Org-mode.
-Org-mode users can deposit functions they believe to be generally
-useful in the library.
+The ``Library of Babel'' consists of code blocks that can be called from any
+Org-mode file. Code blocks defined in the ``Library of Babel'' can be called
+remotely as if they were in the current Org-mode buffer (see @ref{Evaluating
+code blocks} for information on the syntax of remote code block evaluation).
+
+
+The central repository of code blocks in the ``Library of Babel'' is housed
+in an Org-mode file located in the @samp{contrib} directory of Org-mode.
+
+Users can add code blocks they believe to be generally useful to their
+``Library of Babel.'' The code blocks can be stored in any Org-mode file and
+then loaded into the library with @code{org-babel-lob-ingest}.
-Code blocks defined in the ``Library of Babel'' can be called remotely as if
-they were in the current Org-mode buffer (see @ref{Evaluating code blocks}
-for information on the syntax of remote code block evaluation).
@kindex C-c C-v i
Code blocks located in any Org-mode file can be loaded into the ``Library of
@@ -12111,7 +12115,7 @@ in Org-mode documents.
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 @code{#+begin_src} line.
+arguments and their values as part of the @code{#+BEGIN_SRC} line.
Properties set in this way override both the values of
@code{org-babel-default-header-args} and header arguments specified as
properties. In the following example, the @code{:results} header argument
@@ -12121,28 +12125,30 @@ inserted in the buffer, and the @code{:exports} header argument is set to
preserved on export to HTML or LaTeX.
@example
-#+source: factorial
-#+begin_src haskell :results silent :exports code :var n=0
+#+NAME: factorial
+#+BEGIN_SRC haskell :results silent :exports code :var n=0
fac 0 = 1
fac n = n * fac (n-1)
-#+end_src
+#+END_SRC
@end example
-Similarly, it is possible to set header arguments for inline code blocks:
+Similarly, it is possible to set header arguments for inline code blocks
@example
src_haskell[:exports both]@{fac 5@}
@end example
-Code block header arguments can span multiple lines using =#+header:= or
-=#+headers:= lines preceding a code block or nested in between the name and
-body of a named code block.
+Code block header arguments can span multiple lines using @code{#+HEADER:} or
+@code{#+HEADERS:} lines preceding a code block or nested between the
+@code{#+NAME:} line and the @code{#+BEGIN_SRC} line of a named code block.
+@cindex #+HEADER:
+@cindex #+HEADERS:
Multi-line header arguments on an un-named code block:
@example
- #+headers: :var data1=1
- #+begin_src emacs-lisp :var data2=2
+ #+HEADERS: :var data1=1
+ #+BEGIN_SRC emacs-lisp :var data2=2
(message "data1:%S, data2:%S" data1 data2)
- #+end_src
+ #+END_SRC
#+results:
: data1:1, data2:2
@@ -12150,11 +12156,11 @@ Multi-line header arguments on an un-named code block:
Multi-line header arguments on a named code block:
@example
- #+source: named-block
- #+header: :var data=2
- #+begin_src emacs-lisp
+ #+NAME: named-block
+ #+HEADER: :var data=2
+ #+BEGIN_SRC emacs-lisp
(message "data:%S" data)
- #+end_src
+ #+END_SRC
#+results: named-block
: data:2
@@ -12165,20 +12171,20 @@ Multi-line header arguments on a named code block:
@subsubheading Header arguments in function calls
At the most specific level, header arguments for ``Library of Babel'' or
-function call lines can be set as shown in the two examples below. For more
-information on the structure of @code{#+call:} lines see @ref{Evaluating code
+@code{#+CALL:} lines can be set as shown in the two examples below. For more
+information on the structure of @code{#+CALL:} lines see @ref{Evaluating code
blocks}.
The following will apply the @code{:exports results} header argument to the
-evaluation of the @code{#+call:} line.
+evaluation of the @code{#+CALL:} line.
@example
-#+call: factorial(n=5) :exports results
+#+CALL: factorial(n=5) :exports results
@end example
The following will apply the @code{:session special} header argument to the
evaluation of the @code{factorial} code block.
@example
-#+call: factorial[:session special](n=5)
+#+CALL: factorial[:session special](n=5)
@end example
@node Specific header arguments, , Using header arguments, Header arguments
@@ -12223,14 +12229,18 @@ Additional header arguments are defined on a language-specific basis, see
The @code{:var} header argument is used to pass arguments to code blocks.
The specifics of how arguments are included in a code block vary by language;
these are addressed in the language-specific documentation. However, the
-syntax used to specify arguments is the same across all languages. The
-values passed to arguments can be literal values, values from org-mode tables
-and literal example blocks, the results of other code blocks, or Emacs Lisp
-code---see the ``Emacs Lisp evaluation of variables'' heading below. In
-every case, variables require a default value when they are declared.
+syntax used to specify arguments is the same across all languages. In every
+case, variables require a default value when they are declared.
-These values can be indexed in a manner similar to arrays---see the
-``indexable variable values'' heading below.
+The values passed to arguments can either be literal values, references, or
+Emacs Lisp code (see @ref{Emacs Lisp evaluation of variables}). References
+include anything in the Org-mode file that takes a @code{#+NAME:},
+@code{#+TBLNAME:}, or @code{#+RESULTS:} line. This includes tables, lists,
+@code{#+BEGIN_EXAMPLE} blocks, other code blocks, and the results of other
+code blocks.
+
+Argument values can be indexed in a manner similar to arrays (see
+@ref{Indexable variable values}).
The following syntax is used to pass arguments to code blocks using the
@code{:var} header argument.
@@ -12241,74 +12251,134 @@ The following syntax is used to pass arguments to code blocks using the
where @code{assign} can take one of the following forms
-@itemize @bullet
+@table @asis
@item literal value
-either a string @code{"string"} or a number @code{9}.
+either a string @samp{"string"} or a number @samp{9}.
@item reference
-a table name:
+tables, lists, literal examples, other code blocks, and results blocks can
+all be passed by reference
+@table @asis
+@item table
@example
-#+tblname: example-table
+#+TBLNAME: example-table
| 1 |
| 2 |
| 3 |
| 4 |
-#+source: table-length
-#+begin_src emacs-lisp :var table=example-table
+#+NAME: table-length
+#+BEGIN_SRC emacs-lisp :var table=example-table
(length table)
-#+end_src
+#+END_SRC
#+results: table-length
: 4
@end example
-a code block name, as assigned by @code{#+srcname:}, followed by
+@item list
+a named, simple list. Nesting is not carried through to the source code
+block.
+
+@example
+#+NAME: example-list
+ - simple
+ - not
+ - nested
+ - lists
+
+#+BEGIN_SRC emacs-lisp :var x=example-list
+ (print x)
+#+END_SRC
+
+#+RESULTS:
+| simple | lists |
+@end example
+
+@item code block
+a code block name, as assigned by @code{#+NAME:}, followed by
parentheses:
@example
-#+begin_src emacs-lisp :var length=table-length()
+#+BEGIN_SRC emacs-lisp :var length=table-length()
(* 2 length)
-#+end_src
+#+END_SRC
#+results:
: 8
@end example
-In addition, an argument can be passed to the code block referenced
-by @code{:var}. The argument is passed within the parentheses following the
-code block name:
+In addition, an argument can be passed to the code block referenced by
+@code{:var}. The argument is passed within the parentheses following the
+code block name using standard function call syntax:
@example
-#+source: double
-#+begin_src emacs-lisp :var input=8
+#+NAME: double
+#+BEGIN_SRC emacs-lisp :var input=8
(* 2 input)
-#+end_src
+#+END_SRC
#+results: double
: 16
-#+source: squared
-#+begin_src emacs-lisp :var input=double(input=1)
+#+NAME: squared
+#+BEGIN_SRC emacs-lisp :var input=double(input=1)
(* input input)
-#+end_src
+#+END_SRC
#+results: squared
: 4
@end example
-@end itemize
+
+@item literal example
+named literal examples are passed intact
+
+@example
+#+NAME: literal-example
+#+BEGIN_EXAMPLE
+A literal example
+on two lines
+#+END_EXAMPLE
+
+#+NAME: read-literal-example
+#+BEGIN_SRC emacs-lisp :var x=literal-example
+ (concatenate 'string x " for you.")
+#+END_SRC
+
+#+results: read-literal-example
+: A literal example
+: on two lines for you.
+
+@end example
+
+@item results block
+
+named results blocks are passed intact. Referring to the results of the last
+example
+
+@example
+#+BEGIN_SRC emacs-lisp :var x=read-literal-example
+ (concatenate 'string x "\nAgain.")
+#+END_SRC
+
+#+results:
+: A literal example
+: on two lines for you.
+: Again.
+@end example
+@end table
@subsubheading Alternate argument syntax
It is also possible to specify arguments in a potentially more natural way
-using the @code{#+source:} line of a code block. As in the following
-example arguments can be packed inside of parenthesis, separated by commas,
+using the @code{#+NAME:} line of a code block. As in the following
+example, arguments can be packed inside of parenthesis, separated by commas,
following the source name.
@example
-#+source: double(input=0, x=2)
-#+begin_src emacs-lisp
+#+NAME: double(input=0, x=2)
+#+BEGIN_SRC emacs-lisp
(* 2 (+ input x))
-#+end_src
+#+END_SRC
@end example
@subsubheading Indexable variable values
@@ -12322,15 +12392,15 @@ following example assigns the last cell of the first row the table
@code{example-table} to the variable @code{data}:
@example
-#+results: example-table
+#+NAME: example-table
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
-#+begin_src emacs-lisp :var data=example-table[0,-1]
+#+BEGIN_SRC emacs-lisp :var data=example-table[0,-1]
data
-#+end_src
+#+END_SRC
#+results:
: a
@@ -12342,16 +12412,16 @@ example the following assigns the middle three rows of @code{example-table}
to @code{data}.
@example
-#+results: example-table
+#+NAME: example-table
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | 3 |
-#+begin_src emacs-lisp :var data=example-table[1:3]
+#+BEGIN_SRC emacs-lisp :var data=example-table[1:3]
data
-#+end_src
+#+END_SRC
#+results:
| 2 | b |
@@ -12365,15 +12435,15 @@ interpreted to mean the entire range and as such are equivalent to
column is referenced.
@example
-#+results: example-table
+#+NAME: example-table
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
-#+begin_src emacs-lisp :var data=example-table[,0]
+#+BEGIN_SRC emacs-lisp :var data=example-table[,0]
data
-#+end_src
+#+END_SRC
#+results:
| 1 | 2 | 3 | 4 |
@@ -12384,16 +12454,16 @@ Any number of dimensions can be indexed. Dimensions are separated from one
another by commas, as shown in the following example.
@example
-#+source: 3D
-#+begin_src emacs-lisp
+#+NAME: 3D
+#+BEGIN_SRC emacs-lisp
'(((1 2 3) (4 5 6) (7 8 9))
((10 11 12) (13 14 15) (16 17 18))
((19 20 21) (22 23 24) (25 26 27)))
-#+end_src
+#+END_SRC
-#+begin_src emacs-lisp :var data=3D[1,,1]
+#+BEGIN_SRC emacs-lisp :var data=3D[1,,1]
data
-#+end_src
+#+END_SRC
#+results:
| 11 | 14 | 17 |
@@ -12402,31 +12472,31 @@ another by commas, as shown in the following example.
@subsubheading Emacs Lisp evaluation of variables
Emacs lisp code can be used to initialize variable values. When a variable
-value starts with @code{(}, @code{[}, @code{'} or @code{`} it will be evaluated as
-Emacs Lisp and the result of the evaluation will be assigned as the variable
-value. The following example demonstrates use of this evaluation to reliably
-pass the file-name of the org-mode buffer to a code block---note that
-evaluation of header arguments is guaranteed to take place in the original
-org-mode file, while there is no such guarantee for evaluation of the code
-block body.
+value starts with @code{(}, @code{[}, @code{'} or @code{`} it will be
+evaluated as Emacs Lisp and the result of the evaluation will be assigned as
+the variable value. The following example demonstrates use of this
+evaluation to reliably pass the file-name of the org-mode buffer to a code
+block---note that evaluation of header arguments is guaranteed to take place
+in the original Org-mode file, while there is no such guarantee for
+evaluation of the code block body.
@example
-#+begin_src sh :var filename=(buffer-file-name) :exports both
+#+BEGIN_SRC sh :var filename=(buffer-file-name) :exports both
wc -w $filename
-#+end_src
+#+END_SRC
@end example
Note that values read from tables and lists will not be evaluated as
Emacs Lisp, as shown in the following example.
@example
-#+results: table
+#+NAME: table
| (a b c) |
-#+headers: :var data=table[0,0]
-#+begin_src perl
+#+HEADERS: :var data=table[0,0]
+#+BEGIN_SRC perl
$data
-#+end_src
+#+END_SRC
#+results:
: (a b c)
@@ -12569,9 +12639,9 @@ In other words, if you want your plot to go into a folder called @file{Work}
in your home directory, you could use
@example
-#+begin_src R :file myplot.png :dir ~/Work
+#+BEGIN_SRC R :file myplot.png :dir ~/Work
matplot(matrix(rnorm(100), 10), type="l")
-#+end_src
+#+END_SRC
@end example
@subsubheading Remote execution
@@ -12579,9 +12649,9 @@ A directory on a remote machine can be specified using tramp file syntax, in
which case the code will be evaluated on the remote machine. An example is
@example
-#+begin_src R :file plot.png :dir /dand@@yakuba.princeton.edu:
+#+BEGIN_SRC R :file plot.png :dir /dand@@yakuba.princeton.edu:
plot(1:10, main=system("hostname", intern=TRUE))
-#+end_src
+#+END_SRC
@end example
Text results will be returned to the local Org-mode buffer as usual, and file
@@ -12612,7 +12682,7 @@ currently made to alter the directory associated with an existing session.
@code{:dir} should typically not be used to create files during export with
@code{:exports results} or @code{:exports both}. The reason is that, in order
to retain portability of exported material between machines, during export
-links inserted into the buffer will *not* be expanded against @code{default
+links inserted into the buffer will @emph{not} be expanded against @code{default
directory}. Therefore, if @code{default-directory} is altered using
@code{:dir}, it is probable that the file will be created in a location to
which the link does not point.
@@ -12786,33 +12856,33 @@ following Org-mode file, the bodies of code blocks will be concatenated into
the resulting pure code file.
@example
- #+begin_src sh :tangle yes :noweb yes :shebang #!/bin/sh
+ #+BEGIN_SRC sh :tangle yes :noweb yes :shebang #!/bin/sh
<<fullest-disk>>
- #+end_src
+ #+END_SRC
* the mount point of the fullest disk
:PROPERTIES:
:noweb-ref: fullest-disk
:END:
** query all mounted disks
- #+begin_src sh
+ #+BEGIN_SRC sh
df \
- #+end_src
+ #+END_SRC
** strip the header row
- #+begin_src sh
+ #+BEGIN_SRC sh
|sed '1d' \
- #+end_src
+ #+END_SRC
** sort by the percent full
- #+begin_src sh
+ #+BEGIN_SRC sh
|awk '@{print $5 " " $6@}'|sort -n |tail -1 \
- #+end_src
+ #+END_SRC
** extract the mount point
- #+begin_src sh
+ #+BEGIN_SRC sh
|awk '@{print $2@}'
- #+end_src
+ #+END_SRC
@end example
@node cache, sep, noweb-ref, Specific header arguments
@@ -12842,18 +12912,18 @@ invalidated and the code block is re-run. In the following example,
changed since it was last run.
@example
- #+srcname: random
- #+begin_src R :cache yes
+ #+NAME: random
+ #+BEGIN_SRC R :cache yes
runif(1)
- #+end_src
+ #+END_SRC
#+results[a2a72cd647ad44515fab62e144796432793d68e1]: random
0.4659510825295
- #+srcname: caller
- #+begin_src emacs-lisp :var x=random :cache yes
+ #+NAME: caller
+ #+BEGIN_SRC emacs-lisp :var x=random :cache yes
x
- #+end_src
+ #+END_SRC
#+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller
0.254227238707244
@@ -12887,17 +12957,17 @@ variable and raises an error. Setting @code{:hlines no} or relying on the
default value yields the following results.
@example
-#+tblname: many-cols
+#+TBLNAME: many-cols
| a | b | c |
|---+---+---|
| d | e | f |
|---+---+---|
| g | h | i |
-#+source: echo-table
-#+begin_src python :var tab=many-cols
+#+NAME: echo-table
+#+BEGIN_SRC python :var tab=many-cols
return tab
-#+end_src
+#+END_SRC
#+results: echo-table
| a | b | c |
@@ -12909,17 +12979,17 @@ default value yields the following results.
Leaves hlines in the table. Setting @code{:hlines yes} has this effect.
@example
-#+tblname: many-cols
+#+TBLNAME: many-cols
| a | b | c |
|---+---+---|
| d | e | f |
|---+---+---|
| g | h | i |
-#+source: echo-table
-#+begin_src python :var tab=many-cols :hlines yes
+#+NAME: echo-table
+#+BEGIN_SRC python :var tab=many-cols :hlines yes
return tab
-#+end_src
+#+END_SRC
#+results: echo-table
| a | b | c |
@@ -12944,16 +13014,16 @@ names will be removed from the table before
processing, then reapplied to the results.
@example
-#+tblname: less-cols
+#+TBLNAME: less-cols
| a |
|---|
| b |
| c |
-#+srcname: echo-table-again
-#+begin_src python :var tab=less-cols
+#+NAME: echo-table-again
+#+BEGIN_SRC python :var tab=less-cols
return [[val + '*' for val in row] for row in tab]
-#+end_src
+#+END_SRC
#+results: echo-table-again
| a |
@@ -12989,14 +13059,14 @@ The first column of the table is removed from the table before processing,
and is then reapplied to the results.
@example
-#+tblname: with-rownames
+#+TBLNAME: with-rownames
| one | 1 | 2 | 3 | 4 | 5 |
| two | 6 | 7 | 8 | 9 | 10 |
-#+srcname: echo-table-once-again
-#+begin_src python :var tab=with-rownames :rownames yes
+#+NAME: echo-table-once-again
+#+BEGIN_SRC python :var tab=with-rownames :rownames yes
return [[val + 10 for val in row] for row in tab]
-#+end_src
+#+END_SRC
#+results: echo-table-once-again
| one | 11 | 12 | 13 | 14 | 15 |
@@ -13093,26 +13163,26 @@ were passed to a non-interactive interpreter running as an external
process. For example, compare the following two blocks:
@example
-#+begin_src python :results output
+#+BEGIN_SRC python :results output
print "hello"
2
print "bye"
-#+end_src
+#+END_SRC
-#+resname:
+#+results:
: hello
: bye
@end example
In non-session mode, the `2' is not printed and does not appear.
@example
-#+begin_src python :results output :session
+#+BEGIN_SRC python :results output :session
print "hello"
2
print "bye"
-#+end_src
+#+END_SRC
-#+resname:
+#+results:
: hello
: 2
: bye