mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-08-25 14:02:51 +00:00
Changes to source block section in o-b-worg.org
This commit is contained in:
parent
b10b07c475
commit
03dda6644a
|
@ -101,7 +101,7 @@
|
|||
:CUSTOM_ID: source-code-blocks
|
||||
:END:
|
||||
|
||||
Org-babel is all about *source blocks* in org mode. These are
|
||||
Org-babel is all about *source code blocks* in org mode. These are
|
||||
blocks of code (in whatever language), surrounded by special
|
||||
starting and ending lines. For example, the following is a source
|
||||
block containing [[http://www.ruby-lang.org/][ruby]] code:
|
||||
|
@ -110,12 +110,13 @@
|
|||
: "This file was last evaluated on #{Date.today}"
|
||||
: #+end_src
|
||||
|
||||
If you are unfamiliar with the notion of source blocks in org-mode,
|
||||
please have a look at the [[http://orgmode.org/manual/Literal-examples.html][relevant manual section]] before proceding.
|
||||
If you are unfamiliar with the notion of source code blocks in
|
||||
org-mode, please have a look at the [[http://orgmode.org/manual/Literal-examples.html][relevant manual section]] before
|
||||
proceding.
|
||||
|
||||
Note that above is what the source block looks like in the org-mode
|
||||
file. We had to take [[FIXME:link to manual section][special steps]] to make it look that way in the
|
||||
HTML output; normally, when exported to HTML, source blocks are
|
||||
file. We had to take [[http://orgmode.org/manual/Literal-examples.html#Literal-examples][special steps]] to make it look that way in the
|
||||
HTML output. Normally, when exported to HTML, source blocks are
|
||||
fontified according to their language, and the begin_src...end_src
|
||||
mark-up is omitted, like this:
|
||||
|
||||
|
@ -139,31 +140,29 @@ allows the plain text version to be viewed (non-interactively) in a web browser.
|
|||
:END:
|
||||
For interpreted languages such as shell, python, R, etc, org-babel
|
||||
allows source blocks to be executed: the code is passed to the
|
||||
interpreter and you have control over what is done with the
|
||||
results of excecution. E.g. place point anywhere in the following
|
||||
block and use =C-c C-c= to run the code:
|
||||
|
||||
*Note:* calling =C-c C-o= on a source-code block will open the
|
||||
block's results.
|
||||
interpreter and you have control over what is done with the results of
|
||||
excecution. E.g. place point anywhere in the following blocks and use
|
||||
=C-c C-c= to run the code[fn:1]. In each case the code comes first,
|
||||
followed by the results of evlauting the block.
|
||||
|
||||
**** Ruby
|
||||
Here's the result of evaluating the ruby block above
|
||||
#+begin_src ruby
|
||||
"This file was last evaluated on #{Date.today}"
|
||||
#+end_src
|
||||
|
||||
#+resname:
|
||||
: This file was last evaluated on 2009-08-09
|
||||
|
||||
**** [[http://www.r-project.org/][R]]
|
||||
Source block:
|
||||
#+begin_src R :results value
|
||||
matrix(rnorm(6), nrow=2)
|
||||
#+end_src
|
||||
|
||||
Results of R evaluation:
|
||||
#+resname:
|
||||
| "-0.0519932008632584" | "-0.226627055077931" | 0.117163647485067 |
|
||||
| 0.61982500448072 | "-1.47733875944235" | 0.482345264970892 |
|
||||
| 0.496600061063252 | "-1.44355317891110" | 0.106411785870013 |
|
||||
| "-1.81619611674921" | "-1.25542979009380" | 0.00969467528507845 |
|
||||
|
||||
**** [[http://ditaa.sourceforge.net/][ditaa]]
|
||||
Source block:
|
||||
#+begin_src ditaa :file images/blue.png :cmdline -r
|
||||
+---------+
|
||||
| cBLU |
|
||||
|
@ -174,33 +173,50 @@ Results of R evaluation:
|
|||
+----+----+
|
||||
#+end_src
|
||||
|
||||
Results of ditaa evaluation:
|
||||
#+resname:
|
||||
[[file:images/blue.png]]
|
||||
|
||||
*** New source block syntax
|
||||
Org-babel adds some new syntactical elements to source blocks in
|
||||
org-mode, illustrated here:
|
||||
|
||||
: #+srcname: source-block-name(arg1=value1, arg2=value2)
|
||||
: #+begin_src language :var1 var1-value :var2 var2-value ...
|
||||
:
|
||||
: <code goes here>
|
||||
:
|
||||
: #+end_src
|
||||
|
||||
Note the following two new features
|
||||
**** =srcname= with optional arguments
|
||||
The optional =srcname= line allows a name to be given to the
|
||||
source block, together with any arguments to the source block
|
||||
(see [[#arguments-to-source-code-blocks][below]])
|
||||
**** Header arguments
|
||||
An arbitrary series of :variable value pairs can be specified
|
||||
after the language, controlling various aspects of org-babel
|
||||
operation. The available header arguments are documented [[#header-arguments][below.]]
|
||||
*** What happens to the results?
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: results
|
||||
:END:
|
||||
Org-babel provides two fundamentally different modes for capturing
|
||||
the results of code evaluation, specified by the :results header
|
||||
the results of code evaluation, specified by the =:results= header
|
||||
argument:
|
||||
**** :results value
|
||||
**** =:results value= (functional mode)
|
||||
This means that the 'result' of code evaluation is defined to be
|
||||
the *value* of the last statement in the block. Thus with this
|
||||
setting, one can view the code block as a function with a return
|
||||
value. And not only can one view it that way, but you can
|
||||
value. And not only can you view it that way, but you can
|
||||
actually use the return value of one source block as input for
|
||||
another (see later). This setting is the default.
|
||||
**** :results output
|
||||
**** =:results output= (scripting mode)
|
||||
With this setting, org-babel captures all the text output of the
|
||||
code block and places it in the org buffer. One can think of this
|
||||
as a 'scripting' mode: the code block contains a series of
|
||||
commands, and you get the output of all the commands. Unlike in
|
||||
the 'functional' mode specified by =:results value=, the code
|
||||
block has no return value. (This mode will be familiar to Sweave
|
||||
users).
|
||||
**** Additional :results settings
|
||||
the 'functional' mode, the code block has no return value. (This
|
||||
mode will be familiar to Sweave users).
|
||||
|
||||
*** Arguments to source code blocks
|
||||
:PROPERTIES:
|
||||
|
|
Loading…
Reference in a new issue