0.131 → 0.132 — qm-* elements and definition lists leave the content¶
A qm-<name> element and a definition list are no longer content. An
element such as <qm-keep> or <qm-sig></qm-sig> imports as what it wraps,
its tags dropped, and a definition list as the paragraph CommonMark reads. The
qm-* carrier keeps qm-span and qm-anchor. A plate that registered a
renderer on the helper's elements state no longer compiles until the
registration goes. The table closing the guide lists every break.
Stored rows¶
A row holding an element or description container or a term line
loads as what it held. A term line reads as a paragraph and either
container leaves its line's path, so the text stays and the wrapper does not.
The row's first save writes it without them, under the tag it would take
anyway, so a hash over its bytes recomputes once. A 0.131 build reads every
row this build writes. A richtext field or $seed value holding one reads
the same way, and still projects as markdown.
The authored lanes refuse element and
description as unknown container names: a Content built by hand with
either, passed to an op or fromContent, fails as it would with any name
outside the vocabulary. A term line reads as a paragraph on both lanes.
Markdown¶
A qm-<name> tag other than qm-span and qm-anchor drops and warns
parse::dropped_construct under its tag name, such as qm-keep, its
attributes with it. Its close tag drops without a report, and the blocks
between the tags import as written. A tag line still reads as one wherever it
stands, so <qm-keep> tight above a paragraph keeps the paragraph, and a tag
line under a paragraph's text ends that paragraph. Where 0.131 reported a refused attribute as
qm-keep[onclick], the open tag's one qm-keep warning covers it.
A definition list reads as one paragraph: Term and : description on
the line under it import as Term : description, as CommonMark reads them.
Export writes a paragraph line opening : as it stands, where it wrote \:.
A footnote no longer reports a block footnote[definition list].
Rendering¶
The Typst helper drops the elements registry and the _qm-element
dispatcher, and with them the typst::unregistered_element warning and the
<__qm_element__> metadata. A plate calling qm.elements.update(..) fails to
compile: delete the call. Nothing in a document reaches such a renderer any
more. Typst's terms show rules no longer meet document content.
PDF title¶
Every Typst PDF carries a title, in /Info /Title and XMP dc:title, where 0.131 wrote none unless the plate set one. It is the render's new title option, else the plate's set document(title: ..), else the quill's description, so a viewer's title bar and a screen reader show the description where they showed the file name. A quill whose description is catalog copy sets a title in its plate; an app that names its documents passes title on each render. A plate that sets document(author: ..) and no title now shares one PDF /ID across that author's documents, since Typst derives it from the title and authors when both are set.
RenderOptions gains title, so Rust that builds it as a struct literal without ..Default::default() fails to compile.
Every break¶
| Break | Surface | Action |
|---|---|---|
A qm-<name> element imports as what it wraps, its open tag warning qm-<name> |
imported content, rendered output, Parsed.warnings, doc.warnings, revise warnings |
Write what the element drew in the quill's own fields or layout |
| A definition list imports as one paragraph | imported content, rendered output | Write the term and description as paragraphs, or a table |
A stored element or description container or term line loads as what it held, and saves without it |
stored documents | None to load; a hash over stored bytes recomputes |
The authored lanes refuse an element or description container as an unknown name |
WASM Content inputs, Python content dicts, content ops |
Remove the container |
parse::dropped_construct no longer names qm-<name>[<attr>] for an element attribute, nor footnote[definition list] |
Parsed.warnings, doc.warnings, revise warnings |
Match qm-<name> |
typst::unregistered_element is gone |
Typst session warnings, RenderResult.warnings |
Stop matching it |
The helper's elements state and _qm-element are gone |
Typst plates | Delete qm.elements.update(..) |
A paragraph line opening : exports as written, where it exported \: |
exported markdown | None |
LineKind::Term, Container::Description, Container::Element, model::ELEMENT_NAME, carrier::Element::wrap_block, quill::element_runs and BlockConstruct::Definition are gone; BlockConstruct::tally returns [usize; 9]; serial::container_from_value returns Option<Container>, None for a container the stored lane drops |
Rust | Drop the arms; read the Option |
A Typst PDF's title is the render's title, else the plate's, else the quill's description, where it had none |
rendered PDF metadata | Pass title on render, or set one in the plate |
RenderOptions gains title |
Rust | Add ..Default::default() to a struct literal |
ContentLineKind loses term, ContentContainer loses description and element, and ElementAttrs is gone |
WASM | Drop the cases |