14. Skribilo User Manual — Skribilo Compiler
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.3).
-
-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 documents
1
(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.