Glossary
Every load-bearing term in the ScriptPub format, defined precisely. Links point to the page where each is covered in full.
Adapter — the bridge for one syntax: { parse, serialize } between a file in
that syntax and the canonical model. Additive; a new adapter needs
no version bump. See Syntaxes.
Asset — a media file (image, audio, video) a document references by path —
conventionally in the work folder’s assets/ — but never contains: the format
stores references, the store holds bytes. See
Media.
Attribute — a value from a fixed vocabulary carried by a block or mark (id,
href, src, list, lang, origin, rev, data, …). Persistence is tiered. See
Attributes.
Binding — the app-local, per-machine location an export target actually syncs to (a folder, a mounted drive). Never stored in the format — a target is policy only. See Devices.
Block — one paragraph-level unit of the content stream, a ContentBlock. Its
content follows its kind’s shape. See Document model.
BlockDef — a block type declaration in config.blocks — id, label, shape,
behavior, indexes, editor flow, style, per-syntax spelling. See Blocks.
Canonical model — the { config, content, sections } data structure every
syntax parses into and serializes from. The format’s single contract. See
Document model.
Catalog document — a document whose body is references (list blocks with
href marks, divisions as groups): a collection, a library’s index, or a
multi-file work’s index (its spine). The typed entries derive
via docCatalog, never stored. See Collections.
CatalogEntry — one derived entry of a catalog document: { href, title, group, depth, ordered, blockIndex, lang?, meta? }. See
Collections.
Collection — a curated catalog document that references works but never owns them; an ordered collection is a ranking (and subsumes the old “series”). See Collections.
Cell — a grid cell: { blocks, attrs? }, optionally spanning / a header /
aligned. See Document model.
Config / FormatConfig — a script’s format: its sections, blocks, marks, styling, editor behavior, per-syntax spelling, and meta. See Configuration.
Default Text block — the one block type (default: true) that is the fallback
for content matching no other kind; the implicit final fallback of inference, never
in match precedence. See Blocks.
Device profile — a named description of reading hardware: { id, label, class, screen, color } — the form-factor class (phone · tablet · desktop · ereader) is normative selection vocabulary; profile ids are an informative
registry. See Devices.
Division — a repeating, ranked structural heading (Act / Sequence / Scene /
Chapter) that forms the outline. A block type becomes a division via
behavior.outline + rank. Distinct from a section. See
Sections & divisions.
Edge block — a block covered by no section span — before the first section point, or after a trailing wrapper close with no further point. Rendered normally, but belongs to no section. See Sections.
Export target — per-library policy in library.targets: which works go
to which device, rendered through which view, in which
package format. Portable intent — never a location; the
binding is app-local. See
Devices.
Grid — a block shape whose content is rows of cells, each cell a
leaf-block stream. Covers tables, side-by-side / dual dialogue, card grids, and
single-cell wrappers (<figure>, <details>, <blockquote>); one bounded nesting
level (a grid never nests in a grid). See Document model.
Index — a navigator sidebar group (Characters, Locations, …) collected from
block text by a regex pattern. Speaker identity derives from an index, not a flag.
See Blocks.
Index card — the generated card a catalog surface shows for a work with no
cover: meta fields per the library’s display.card template, themed by the
work’s own view roles. Step 3 of the
entry-rendering chain.
Inline object / object run — a run carrying one atomic inline object (an inline image) instead of text: one caret position, never split; projects as its alt text in plain-text syntaxes and as empty for inference. See Media.
Kind — a block’s identity — a config.blocks[].id, or the default Text kind.
In every syntax but JSON it is inferred from spelling. See
Kind inference. (Distinct from the config-root kind,
the document kind.)
Library — a catalog document (kind: "library") plus the store of works it
describes: index.html with the embedded config, an optional
library.spub.json companion, and the work files. Its index is generated
by Reindex; a library folder is a working website with no tooling.
See Libraries.
Mark — inline formatting applied to a run (bold, italic, link, ruby, …). Marks nest freely. See Marks & links.
Media block — a void-shaped block whose attributes carry a
media src — an image, audio, or video block. What it is resolves from its
html write tag, its type, or its extension — never its kind id. See
Media.
Narration clip — a block’s slice of the work’s narration audio:
attrs.narration = { src?, start, end } (seconds), defaulting to
meta.narration — the EPUB media-overlay granularity. See
Media.
MarkUse — a mark on a run: a bare id, or { id, attrs } when it carries
attributes (a link’s href). Stacked outermost-first. See
Document model.
Match rule — a conjunction of predicates recognizing a kind from its spelling in
one syntax; a kind lists several as a disjunction; first match wins in blocks
order. See Kind inference.
Meta — title-page metadata (title, author, language, translationOf, …) —
the one place in the format with no fixed vocabulary. See Configuration.
Package format — a serialize-only output encoding (epub, folder;
pdf reserved) — writes bytes/files, never parses back. A separate registry
from syntaxes; a package encoder degrades like any renderer. See
Devices.
Part — one file of a multi-file work: a config-less content fragment in any syntax, parsed under the work’s config as companion. See Multi-file works.
Preset — a reusable format: an all-header ScriptPub document, identified by a
PresetRef, optionally carrying a sample body. See
Format presets.
PresetRef — a preset’s identity / a script’s provenance: { name?, uri? }. The
uri scheme (scriptpub:preset/…, :curated/…, :local/…, URL) says where it
comes from. See Format presets.
Reindex — the pure function that rebuilds a library’s index document from
its config + the scanned works’ heads, regenerating only the catalog
section’s span when one exists. See Libraries.
Run — a stretch of text — or one atomic inline object —
under one mark stack: { text?, object?, marks }, exactly one of text /
object present. See Document model.
Spine — a multi-file work’s ordered part list: the body of its work index, in the ordinary catalog shape; the authoritative membership + order for assembly. See Multi-file works.
Section — a unique, named point in the stream (Title page, Body, Notes) — never nesting, at most once each. Membership is stored as a SectionSpan. Distinct from a division. See Sections & divisions.
SectionSpan — a resolved half-open range { section, start, end } over the
content, giving each section’s block membership. See
Document model.
Shape — a block type’s content form: text (runs) · void (attrs only) ·
grid (rows). Exactly three. See
Document model.
Spelling / write form — a kind’s one canonical serialization in a syntax, applied to a block’s existing runs; changing a block’s kind rewrites its spelling. See Kind inference.
Syntax — a storage format a script can live in (html, md, fountain,
fdx, txt, json), each served by an adapter. See
Syntaxes.
Translation — a sibling document in another language, bound by
meta.translationOf + meta.language, block-aligned via origin. See
Translations.
Work index — the index document of a multi-file work: an
ordinary work-kind document with a parts config group, whose body is the
spine. It claims its folder in a library’s scan. See
Multi-file works.
View (historical) — per-surface render profiles in config.views,
replaced by real CSS conditions in the CSS-native rework (as were “Looks”,
the named alternative stylings that briefly succeeded them). See
Conditions.