When Skribe produces a document in a given format, it uses a
specialize engine. For instance, when a Web page is made from a Skribe
document, the HTML engine is used. The engines provided by Skribe are
given below:
9.1 Functions dealing with engines
|
The function make-engine
creates a brand new engine.
prototype |
(make-engine [:version #unspecified ] [:format "raw" ] [:filter] [:delegate] [:symbol-table '() ] [:custom '() ] [:info '() ] ident ) |
version | | The version number. |
format | | The output format (a string) of this engine. |
filter | | A string filter (a function). |
delegate | | A delegate engine. |
symbol-table | | The engine symbol table. |
custom | | The engine custom list. |
info | | Miscellaneous. |
ident | The name (a symbol) of the new engine. |
The function copy-engine
duplicates an existing engine.
prototype |
(copy-engine [:version #unspecified ] [:filter] [:delegate] [:symbol-table] [:custom] ident e ) |
version | | The version number. |
filter | | A string filter (a function). |
delegate | | A delegate engine. |
symbol-table | | The engine symbol table. |
custom | | The engine custom list. |
ident | The name (a symbol) of the new engine. |
e | The old engine to be duplicated. |
The find-engine
function searches in the list of defined
engines. It returns an engine
object on success and #f
on failure.
prototype |
(find-engine [:version #unspecified ] id ) |
version | | An optional version number for the searched engine. |
id | The name (a symbol) of the engine to be searched. |
The predicate engine?
returns #t
if its
argument is an engine. Otherwise, it returns #f
. In other words,
engine?
returns #t
for objects created by
make-engine
, copy-engine
, and find-engine
.
prototype |
(engine? obj ) |
obj | The checked object. |
The following functions return information about engines.
prototype |
(engine-ident obj ) |
(engine-format obj ) |
(engine-customs obj ) |
(engine-filter obj ) |
(engine-symbol-table obj ) |
obj | The engine. |
Engine customs are locations where dynamic informations relative
to engines can be stored. Engine custom can be seen a global variables that
are specific to engines. The function engine-custom
returns the
value of a custom or #f
if that custom is not defined. The
function engine-custom-set!
defines or sets a new value for
a custom.
prototype |
(engine-custom e id ) |
e | The engine (as returned by
find-engine ). |
id | The name of the custom. |
prototype |
(engine-custom-set! e id val ) |
e | The engine (as returned by
find-engine ). |
id | The name of the custom. |
val | The new value of the custom. |