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.