14. Skribilo User Manual — Skribilo Compiler
Contents↑ Skribilo User Manual

This chapter introduces the Skribilo compiler, i.e., the tool that turns input documents into various output formats.


skribilo [options] [input]...


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.


A number of file name extensions are used by convention:

a Skribilo or Skribe source file.
an HTML target file.
a Lout target file.
a TeX, LaTeX or ConTeXt target file.
a Skribe URL index file.


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.
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.
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.

1 Skribe uses a single name space for all the code of packages, documents, in addition to bindings provided by the underlying Scheme implementation.
(made with skribilo)