Version: 4.1.3
5 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.
5.1 Base Renderer
The
scribble/base-render module provides render%,
which implements the core of a renderer. This rendering class must be
refined with a mixin from scribble/text-render,
scribble/html-render, or
scribble/latex-render.
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.ss" 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 collect pass. See render for
information on the dests argument.
Performs the resolve pass. See render for
information on the dests argument.
Produces the final output.
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.
5.2 Text Renderer
Specializes a render% class for generating plain text.
5.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.
5.4 Latex Renderer
Specializes a render% class for generating Latex input.