In this chapter, the syntax of a Skribilo text is presented informally. In particular, the Skribilo syntax is compared to the HTML
syntax. Then, it is presented how one can use Skribilo to make dynamic
text (i.e texts which are generated by the system rather than entered-in
by hand). Finally, It is also presented how Skribilo source files can be
processed.
1.1 Hello World!
In this section we show how to produce very simple electronic documents
with Skribilo. Suppose that we want to produce the following Web document:
Hello World!
This is a very simple text. |
|
The HTML source file for such a page should look like:
In Skribilo, the very same document must be written:
1.2 Adding Colors and Fonts
Let us suppose that we want now to colorize and change the face of some
words such as:
Hello World!
This is a very simple text. |
|
The HTML source file for such a document should look like:
In Skribilo, the very same document must be written:
As one may notice the Skribilo version is much more compact than the HTML one.
1.3 Structured Documents
For large documents there is an obvious need of structure. Skribilo
documents may contain chapters, sections,
subsections, itemize, ... For instance, if we want to
extend our previous example to:
Hello World!
1. A first Section
This is a very simple text.
2. A second Section
That contains an itemize construction:
. first item
. second item
. third item
|
|
The Skribilo source for that text is:
1.4 Hyperlinks
A Skribilo document may contain links to chapters, to sections, to other
Skribilo documents or web pages. The following Skribilo source
code illustrates these various kinds of links:
1.5 Dynamic Documents
Since Skribilo is a programming language, rather than just a markup language,
it is easy to use it to generate some parts of a document. This section
presents here the kind of documents that can be created with Skribilo.
1.5.1 Simple Computations
In this section we present how to introduce a simple
computation into a document. For instance, the following sentence
| Document creation date: Wed May 30 00:11:46+0200 2012 |
|
is generated with the following piece of code (using
SRFI-19):
Here, we use the Skribilo function
date to compute the date to
be inserted in the document. In general, any valid Scheme expression
is authorized inside a
,(...) construct
1.
Another example of
such a computation is given below.
When evaluated, this form produces the following output:
|
The value of π is 3.14159265358979. |
|
1.5.2 Text Generation
When building a document, one
often need to generate some repetitive text. Skribilo programming skills
can be used to ease the construction of such documents as illustrated below.
-
The square of 1 is 1
-
The square of 2 is 4
-
The square of 3 is 9
-
The square of 4 is 16
-
The square of 5 is 25
-
The square of 6 is 36
-
The square of 7 is 49
-
The square of 8 is 64
-
The square of 9 is 81
|
|
This text has been generated with the following piece of code
1.5.3 Introspection
In Skribilo, a document is represented by a tree which is
available to the user. So, it is easy to perform introspective tasks on
the current document. For instance the following code displays as an
enumeration the sections titles of the current chapter:
Without entering too much into the details here, the resolve
function is called at the end of the document processing. This function
searches the node representing the chapter to which belongs the current
node and from it finds all its sections. The titles of these sections
are put in italics in an itemize.
The execution of this code yield the following text:
-
Hello World!
-
Adding Colors and Fonts
-
Structured Documents
-
Hyperlinks
-
Dynamic Documents
-
Compiling Skribilo Documents
|
|
1.6 Compiling Skribilo Documents
There are several ways to render a Skribilo document. It can be
statically compiled by the skribilo compiler to various formats
such as HTML, LaTeX, Lout and so on. In this section we only present
static ``document compilation''.
Let us suppose a Skribilo text located in a file file.skb.
In order to compile to various formats one must type in:
$ skribilo --target=html file.skb -o file.html # This produces an HTML file.
$ skribilo -t latex file.skb -o file.tex # This produces a TeX file.
$ skribilo -t lout file.skb -o file.lout # This produces a Lout file.
|
|
The reference of the
skribilo compiler is given in
Chapter 14.