Provided by: yodl_3.00.0-6ubuntu1_i386
yodl - main Yodl converter
yodl [OPTION]... [FILE]...
Yodl is a package that implements a pre-document language and tools to
process it. The idea of Yodl is that you write up a document in a
pre-language, then use the tools (e.g. yodl2html(1)) to convert it to
some final document language. Current converters are for HTML, man,
LaTeX, text and an experimental xml converter. Main document types are
"article", "report", "book" "manpage" and "letter". The Yodl document
language is designed to be easy to use and extensible.
NOTE: Starting with Yodl version 3.00.0 Yodl's default file inclusion
behavior has changed. The current working directory no longer remains
fixed at the directory in which Yodl is called, but is volatile,
changing to the directory in which a yodl-file is located. This has the
advantage that Yodl's file inclusion behavior now matches the way C's
#include directive operates; it has the disadvantage that it may break
some current documents. Conversion, however is simple but can be
avoided altogether if the -L (--legacy-include) option is used (see
o -D, --define=NAME[=VALUE]: Defines name as a symbol. This option
is acts like DEFINESYMBOL(NAME)(). If =VALUE is added, NAME is
initialized to VALUE (identically to DEFINESYMBOL(NAME)(VALUE)).
o -d, --definemacro=NAME=EXPANSION: Defines NAME as macro
expanding to EXPANSION
o -h, --help: usage information is written to the standard error
stream, describing all of Yodl's options.
o -i, --index[=file]: `file' is the name of the index file. By
default <outputbase>.idx is used. No default when output is
written to stdout. The index file is processed by Yodl's
o -I, --include=DIR: This defines the system-wide include
directory where YODL searches for its input files. E.g. a
statement to include a given file, like:
will cause Yodl to search for the file latex in the current
directory, and when that fails, in the system-wide include
directory. The system-wide include directory is typically the
place where the maintainer of a system stores macro-files for
Yodl. This searching process applies to files that are included
inside a document but also applies to filenames on the command
line when invoking the YODL program.
The name of the included file (latex in the above example) is
the bare name, the YODL program will supply a default extension
(.yo), if necessary.
The -I option overrules Yodl's built-in name for the system-wide
include directory. The built-in name is defined when compiling
Yodl, and is, e.g., /usr/share/yodl. Furthermore, the definition
may contain $HOME, which will be replaced by the user's home
directory if the `home' or `HOME' environment variable is
defined. It may also contain $STD_INCLUDE, which will be
replaced by the compilation defined standard include path. The
standard includepath may be overruled by either (in that order)
the command line switch -I or the YODL_INCLUDE_PATH environment
variable. By default, the current directory is added to the
standard include path. Hewver, when -I or YODL_INCLUDE_PATH is
used, the current directory must be mentioned explicitly. The
individual directories need not be terminated by a /-character.
In distributed .deb archives, the standard directory is defined
as /usr/share/yodl (prefixed by the current working directory).
o -k, --keep-ws: Since YODL version 2.00 blanks at the begin and
end of lines are ignored, even without a trailing \, when the
`white space level' is non-zero. Earlier versions kept these
blanks. The legacy handling of white space at end of lines can
by obtained using the -k flag. Note that white space are always
kept when using verbatim copying, and when the white-space level
o -l, --live-data=HOW: This option controls the policy for
executing SYSTEM or PIPETHROUGH commands; HOW being none (0) by
default. The HOW argument can have the following values:
o none or 0: (the default): No macros calling system programs are
o confirm or 1: The macros can be executed, but only after user
confirmation is obtained. The macros in question are shown while
the Yodl document is processed, and the user must either accept
or reject the call.
o report or 2: The macros are executed, but what is called is
shown during the Yodl run (if the WARNING message level is
o ok or 3: The macros are executed, and not shown during the run.
Be careful when using --live-data ok. It should be used only
when a document is clearly `unharmful'.
o -m, --messages=SET: Set the so-called `message level' to a
combination of the SET acdeinw. The letters of this set have the
o a: alert. When an alert-error occurs, Yodl terminates. Here Yodl
requests something of the system (like a get_cwd()), but the
o c: critical. When a critical error occurs, Yodl terminates. The
message itself can be suppressed, but exiting can't. A critical
condition is, e.g., the omission of an open parenthesis at a
location where a parameter list should appear, or a non-existing
file in an INCLUDEFILE specification (as this file should be
parsed). A non-existing file with a NOEXPANDINCLUDE
specification is a plain (non-critical) error.
o d: debug. Probably too much info, like getting information about
each character that was read by Yodl.
o e: error. An error (like doubly defined symbols). Error messages
will not stop the parsing of the input (up to a maximum number
of errors), but no output is generated.
o i: info. Not as detailed as `debug', but still very much info,
like information about media switches.
o n: notice. Information about, e.g., calls to the builtin
o w: warning. Something you should know about, but probably not
affecting Yodl's proper functioning Non-configurable is the
handling of an emergency message. These messages can't be
suppressed, but shouldn't happen, as they point to some internal
error. It would be appreciated to receive information about
these messages if they ever occur.
o -n, --max-nested-files=NR: This option causes Yodl to abort when
the number of nested input files exceeds NR, which is 20 by
default. Exceeding this number usually means a circular
definition somewhere in the document. This is the case when, a
file a.yo includes b.yo, while b.yo includes a.yo etc.. It does
not prevent recursive macro- or subst-replacements. For that the
-r (--max-replacements) option is available.
o -o, --output=FILE: This option causes Yodl to write its output
to FILE. By default, the output goes to the standard output
stream. E.g., you can use YODL to read a file input and to write
to output with the following two commands:
yodl input > output
yodl -ooutput input
The difference being that in the latter case an index file is
generated, but not in the former case. Notice that writing an
index file can be forced when the --index option is specified.
o -p, --preload=CMD: This option `pre-loads' the string cmd. It
acts as though cmd was the first command in the first input file
that is processed by YODL.
More than one --preload=CMD options may be present on the
command line. Each of the commands is then processed in turn,
before reading any file.
o -r, --max-replacements=NR: This option causes Yodl to abort when
the number of macro calls or subst-replacements exceeds NR *
10,000. By default, NR equals 1. Setting --max-replacements=0
implies that no macro- or subst-replacement checks are
o -t, --trace: This option enables tracing: while parsing, Yodl
writes its output to the standard error stream. As is the case
with the -k option, this option is defined for debugging
o -V, --version. This option will show YODL's actual version.
o -v, --verbose: This option increases Yodl's `verbosity level'
and may occur more than once. By default yodl will show
alerting, critical, emergency and error messages. Each --verbose
option will add a next message level. In order, warning, notice,
info and debug messages will be added to this set. It is also
possible to suppress messages. The VERBOSITY builtin can be used
o -W, --warranty. This option will show a warranty disclaimer and
a copyright notice.
o -w, --warn: The presence of this option caused Yodl to warn
when, e.g., symbols are redefined.
The yodl program requires no files, but `normal' usage of the Yodl
package requires macro files, by default installed in /usr/share/yodl.
The files in this directory are included by the converters yodl2txt(1)
yodlstriproff(1), yodl(1), yodlbuiltins(7), yodlconverters(1),
yodlletter(7), yodlmacros(7), yodlmanpage(7), yodlpost(1),
Frank B. Brokken (firstname.lastname@example.org),