Ditaa Code Blocks in Org
Org support for ditaa
Introduction
Ditaa
is a command-line utility that converts diagrams drawn using
ASCII art into bitmap graphics.
Requirements and Setup
Ditaa
is no longer distributed with Org. Now, you will need to install ditaa
and store the path to the executable in the variable ob-ditaa-jar-path
. Often, this is all that is needed to set up ditaa
in Babel. Nevertheless, Org offers several other variables designed to accommodate non-standard Java setups. These include org-babel-ditaa-java-cmd
, org-ditaa-eps-jar-path
, and org-ditaa-jar-option
.
Activate evaluation of ditaa
source code blocks by adding ditaa
to
org-babel-load-languages
.
(org-babel-do-load-languages 'org-babel-load-languages '((ditaa . t))) ; this line activates ditaa
Customization Options
Org needs to know a few things about ditaa
and the java
executable in order to function. The following is a list of variables that can be customized.
- org-ditaa-jar-path
- The path to the
ditaa
jar file. - org-babel-ditaa-java-cmd
- The name or path to the Java executable used to run the
ditaa
jar file. - org-ditaa-eps-jar-path
- The path to the
ditaaeps
jar file. DitaaEps is maintained as part of the ditaa-addons project. - org-ditaa-jar-option
- The prefix used before the
ditaa
jar path. The default is-jar
.
Babel Features for ditaa Code Blocks
Header Arguments
- file
- the output filename (mandatory)
- cmdline
- command line arguments for
ditaa
- java
- arguments for the
java
runtimes (JRE) - eps
- produce an
eps
output file usingditaaeps
- produce a
pdf
output file usingditaaeps
followed byepstopdf
Sessions
ditaa
does not support sessions.
Result Types
Ditaa
source code blocks return a link to a png bitmap file.
Examples of Use
Hello World
The obligatory Hello World! example in ditaa
:
#+BEGIN_SRC ditaa :file images/hello-world.png +--------------+ | | | Hello World! | | | +--------------+ #+END_SRC
Passing command-line options to ditaa
Now, round all corners by passing ditaa
the -r,--round-corners
command line switch.
#+BEGIN_SRC ditaa :file images/hello-world-round.png :cmdline -r +--------------+ | | | Hello World! | | | +--------------+ #+END_SRC