pub enum Block {
Show 24 variants
Heading {
level: u8,
lemma: String,
},
Paragraph {
text: String,
},
Dialogue {
lemma: String,
text: String,
lit: bool,
},
Speech {
text: String,
genoses: Vec<String>,
fields: Vec<(String, String)>,
},
Span {
kind: String,
lo: u32,
hi: u32,
genoses: Vec<String>,
fields: Vec<(String, String)>,
},
Milestone {
scheme: String,
value: String,
at: u32,
},
Annotate {
fields: Vec<(String, String)>,
},
Parsed {
lo: u32,
hi: u32,
onym: Option<String>,
parsings: Vec<Parsing>,
},
Periodos {
lo: u32,
hi: u32,
id: String,
},
Character {
lemma: String,
onym: Option<String>,
text: String,
genoses: Vec<String>,
},
Wear {
genoses: Vec<String>,
},
Text {
text: String,
},
Open {
kind: Container,
lemma: Option<String>,
},
Close {
hypograph: Option<String>,
},
Verbatim {
lang: Option<String>,
text: String,
},
NoteRef {
onym: String,
family: Option<NoteFamily>,
margin: bool,
at: Option<u32>,
},
IndexMark {
term: String,
},
Ref {
target: String,
text: Option<String>,
internal: bool,
},
Anchor {
onym: String,
},
Cite {
target: String,
locator: Option<String>,
},
Bib {
key: String,
text: String,
fields: Vec<(String, String)>,
genus: Option<String>,
},
Label {
onym: String,
},
Verse {
lemma: Option<String>,
strophes: Vec<Vec<String>>,
hypograph: Option<String>,
},
Table {
lemma: Option<String>,
headers: Option<Vec<String>>,
rows: Vec<Vec<Cell>>,
},
}Expand description
A block-level event in the text-level vocabulary — what a format adapter emits. Headings arrive flat; the section tree is derived here, once, for every adapter.
Variants§
Heading
A flat heading: level is the source level (h2 → 2, a
LaTeX \section → its depth), lemma its text.
Paragraph
A plain paragraph — the implicit, lemma-less block.
Dialogue
A speech: a paragraph whose lemma names the speaker (TEI’s
<said who> / <sp><speaker>, litogramma’s dialogue sim).
The reader sees a paragraph; ::lemma answers the speaker
and the text stays the words spoken.
Fields
Speech
The literary reading (lit:): a prose block that is a
speech — litogramma’s dialogue-line (at-drama @:-),
TEI’s whole-paragraph <said> — with the unseen metadata
its aphanes monosims carry (prosopon, the speaker) as
fields and its genoses as traits.
Span
The literary reading: an inline span of the preceding flow block — a quotation, an annotation (a name), an emphasis, a stage direction — named by its litogramma sim, at byte offsets into the block’s normalized text, with its genoses as traits and its aphanes monosims as fields. Spans nest by containment of offsets: a name inside a speech is the speech’s child.
Milestone
The literary reading: a milestone (@("page:12")) at an
offset into the preceding flow block — ::scheme,
::value.
Annotate
The literary reading: unseen metadata on the preceding
block itself (a paragraph’s eidos).
Parsed
The parsing pack (ruling #80): a token the source itself
parsed — litogramma’s at-epimerismos diaphane, which TEI’s
w/pc, the Russian National Corpus, OpenCorpora and
PROIEL import to — at byte offsets into the preceding flow
block, with its parsings (the first is the reading’s; the
rest are alternatives) and the onym a head may point at.
Periodos
The parsing pack: a sentence the source declared (the
periodos diaphane, TEI’s s), at byte offsets into the
preceding flow block, with the source’s id.
Character
The literary reading: a cast entry the source declares
(at-drama’s @:!! name … !!:@(id), a dramatis-persona
line, TEI’s cast list) — the name, the id when the source
gives one, the description as the node’s text.
Wear
The literary reading: genoses the preceding block wears as
traits — the sim of a paragraph-level simmere that has no
reading of its own (a block stage direction’s paragraphs
read paragraph<stage-direction>).
Text
Inline content belonging directly to the open container (a list item’s own text, a bare-text blockquote). With no open container it is read as a paragraph.
Open
Open a nesting container. Items take their unordered- /
ordered- flavor (and taxis) from the enclosing list.
Close
Close the innermost open container, optionally with its hypograph (footer or attribution).
Verbatim
A verbatim block — code or other preformatted lines, kept as authored.
NoteRef
An in-text note callout (the deixis, ruling #35): onym
names the body it cites within its family. Emitted after
the flow block it sits in; it becomes that block’s child,
in order, and the block’s own text stays clean of markers.
family: None means the source declares none (an HTML
noteref): the callout takes its resolved body’s family,
and a dangling one defaults to footnote.
Fields
family: Option<NoteFamily>IndexMark
An index mark (ruling #36): an invisible anchor declaring
this place concerns term. The back-of-book index is a
query over these, never a stored structure.
Ref
A reference mark — the text-level mention (html’s in-prose
<a href>, markdown’s [text](url), LaTeX’s \ref):
target is the identifier as written, text the authored
link text (LaTeX \ref has none), and internal is the
producer’s declaration that the target names a label in
this document (#fragment, a \ref key) rather than
another document. A mention, not an attachment: refs do
not carry <deixis>.
Anchor
A point anchor — an invisible in-flow node bearing an
onym at this position (LaTeX’s mid-flow \label, an
inline html id=). The IndexMark construction: child of
its flow block, document order.
Cite
A citation mark — the bibliography’s mention (LaTeX’s
\cite, koine’s cite monosim): target is the authored
key, resolved against the bib bearers — a namespace of
its own, separate from labels (LaTeX precedent). The
locator is the mark’s own pinpoint (\cite[I.1]{key},
[@key, I.1]), kept as written.
Bib
One bibliographic entry: a block bearing its authored
key. Unstructured sources (\bibitem) carry the full
reference as text; structured ones (bibliogramma,
BibTeX/BibLaTeX through it) carry fields — canonical
campus name → value, Latin per the bibliogramma
vocabulary — and the entry’s genus (liber,
commentarius, …).
Label
A block label: the innermost open section takes onym as
the name it bears (a heading’s id; a \label attached
to a sectioning command — the promotion rule). With no
open section it degrades to a point Block::Anchor.
Verse
A verse block (ruling #37 — litogramma’s stichoi model):
strophes of lines, denormalized like Block::Table.
Lines arrive flattened by the adapter and are kept as
authored; the stichos ::taxis numbers lines 1-based,
CONTINUOUSLY across strophes — the citation coordinate.
Table
A table, denormalized here into nested lists (rows =
ordered items with the <row> trait, cells = unordered
items with the <cell> trait and the column name as
::lemma). Header detection is the adapter’s job; the
lowering rule lives here. A cell’s own label (a row’s
th) wins over the positional headers entry.