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]idente) | 
| 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 eid) | 
| e | The engine (as returned by find-engine). | 
| id | The name of the custom. | 
| prototype | 
|---|
| (engine-custom-set! eidval) | 
| e | The engine (as returned by find-engine). | 
| id | The name of the custom. | 
| val | The new value of the custom. |