7.4 Renderer
A renderer is an object that provides two main methods:
collect and render. The first method is called to
collect global information about the document, including information
that spans multiple documents rendered together; the collection pass
tends to be format-independent, and it usually implemented completely
by the base renderer. The latter method generates the actual output,
which is naturally specific to a particular format.
7.4.1 Base Renderer
The mixin structure is meant to support document-specific extensions
to the renderers. For example, the scribble command-line tool
might, in the future, extract rendering mixins from a document module
(in addition to the document proper).
See the "base-render.rkt" source for more information about
the methods of the renderer. Documents built with higher layers, such
as scribble/manual, generally do not call the render
object’s methods directly.
Represents a renderer.
Creates a renderer whose output will go to dest-dir. For
example, dest-dir could name the directory containing the
output Latex file, the HTML file for a single-file output, or the
output sub-directory for multi-file HTML output.
If root-path is not #f, it is normally the same as
dest-dir or a parent of dest-dir. It causes
cross-reference information to record destination files relative to
root-path; when cross-reference information is serialized, it
can be deserialized via deserialize-info with a
different root path (indicating that the destination files have
moved).
Performs the
traverse pass, producing a hash table that
contains the replacements for and
traverse-blocks and
traverse-elementss. See
render for
information on the
dests argument.
Performs the
collect pass. See
render for
information on the
dests argument. The
fp argument
is a result from the
traverse method.
Performs the
resolve pass. See
render for
information on the
dests argument. The
ci argument
is a result from the
collect method.
Produces the final output. The
ri argument is a result from
the
render method.
The dests provide names of files for Latex or single-file
HTML output, or names of sub-directories for multi-file HTML output.
If the dests are relative, they’re relative to the current
directory; normally, they should indicates a path within the
dest-dir supplied on initialization of the render%
object.
Serializes the collected info in ri.
Adds the deserialized form of v to ci.
If root-path is not #f, then file paths that are
recorded in ci as relative to an instantiation-supplied
root-path are deserialized as relative instead to the given
root-path.
7.4.2 Text Renderer
Specializes a
render% class for generating plain text.
7.4.3 HTML Renderer
Specializes a
render% class for generating HTML output.
Configures the renderer to redirect links to external via
url, adding a
tag query element to the end of the
URL that contains the Base64-encoded,
printed, serialized
original tag (in the sense of
link-element) for the link.
Further specializes a rendering class produced by
render-mixin for generating multiple HTML
files.
7.4.4 Latex Renderer
Specializes a
render% class for generating Latex input.