This chapter introduces the Skribilo compiler, i.e., the tool that
turns input documents into various output formats.
Synopsis
skribilo [options] [input]...
Description
The skribilo compiler turns Skribilo input documents into
one of a variety of output formats, including HTML, LaTeX and Lout. The
input format is specified using the --reader command-line
option, while the output format is specified using the --target
option. These options and others are described below.
Suffixes
A number of file name extensions are used by convention:
- .skb
- a Skribilo or Skribe source file.
- .html
- an HTML target file.
- .lout
- a Lout target file.
- .tex
- a TeX, LaTeX or ConTeXt target file.
- .sui
- a Skribe URL index file.
Options
The options supported by the skribilo compiler are listed
below. They follow the usual GNU convention, i.e., each option can have
both a short name (a hyphen followed by a single character) and a long
name (two hyphens followed by a name).
- -h, --help
- Produce a help message.
- -V, --version
- Show program version.
- -R, --reader=reader
- Use reader to read the input file,
i.e., as the format of the input file. Currently, two formats are
supported: skribe, which corresponds to the Skribe syntax (see
Chapter 2), or outline, which
corresponds to plain text (markup-less) following the structuring
conventions of Emacs' Outline mode (see Section 2.2).
- -t, --target=engine
- Use engine as the engine, i.e., as
the output format. For details on engines and for a list of supported
engines, see Chapter 13.
- -c, --custom=custom=value
- Set engine
custom custom to value, a constant. See Section Engine Customs for more information on customs.
- -o, --output=file
- Write output to file.
- --compat=compat
- Use compat as the compatibility
mode. This defaults to skribilo. Specifying skribe
enables the Skribe compatibility mode,
making it possible to compile most Skribe documents. Technically, the
skribe compatibility mode populates the name space of Skribilo
documents with bindings available to Skribe documents and that are not
available by default to Skribilo documents1 (e.g.,
SRFI-1 functions, Bigloo's hash table API, etc.); for Skribe
functions not available in Skribilo, such as skribe-load, a
compatible implementation is provided.
- -I, --doc-path=dir
- Prepend dir to the document include path.
- -B, --bib-path=dir
- Prepend dir to the bibliography include path.
- -S, --source-path=dir
- Prepend dir to the source include path.
- -P, --image-path=dir
- Prepend dir to the image include path.
- -U, --sui-path=dir
- Prepend dir to the Skribe URL Index (SUI)
search path (see Section 4.4 for details).
- -b, --base=base
- Strip base (an arbitrary string,
typically an URL) from all hyperlinks when producing HTML files.
- -e, --eval=expr
- Prepend expr to the list of expressions
to be evaluated before the input document is processed. expr is
evaluated in the document's environment/module; thus, this option can be
used to pass parameters to the document, e.g., with -e '(define
chbouib-enabled? "yes")'.
- -p, --preload=file
- Pre-load file before processing the input
document. file is evaluated in the document's name space and
should be a regular Scheme file, i.e., it cannot use the Skribe syntax.
- -v, --verbose[=level]
- Be verbose, unless level is 0.
- -w, --warning[=level]
- Issue warnings, unless level is 0.
- -g, --debug[=arg]
- Issue debugging output, unless arg is 0. If arg is not a number, it is interpreted as a symbol to
be watched.
- --no-color
- By default, debugging output is colored on
capable terminals such as xterm or the Linux console (check your
TERM environment variable). This option turns coloring off.
Environment Variables
The skribilo command does not pay attention to any
specific environment variable. In particular, it does not honor the
SKRIBEPATH variable that is recognized by Skribe. Instead, you
should use the -I command-line option to specify the load path
of documents (see include
), or, alternatively,
change the value of the GUILE_LOAD_PATH variable, which affects
Guile's own module load path.