Changelog
User-facing changes follow Keep a Changelog and Semantic Versioning.
[Unreleased]
Documentation
- Document a shorter Touying setup: wrap the theme once with
deixis-setup-notes.with(page-overlays: false)and reset numbering throughconfig-common(page-preamble: deixis-update-note-counter(0)), so plain#slide[...]works. It renders identically to the per-slidesetting:recipe on Touying 0.6.3 and 0.8.0; that recipe remains documented for per-slide control. The guides note the setup order, whysubslide-preambledoes not fit, and themes such as aqua that replace the page background.
[0.2.0] - 2026-10-21
The 0.2.0 overhaul requires Typst 0.15.0+. See the compatibility and migration guide before updating from 0.1.1.
Breaking
-
Rename
deixis-default-render-single/deixis-default-render-grouptodeixis-aligned-render-single/deixis-aligned-render-group(short names:aligned-render-single/aligned-render-group), without compatibility aliases. -
Remove
deixis-set-pin-pattern; set attachmentprefix:/postfix:per call or bind adeixis-attach.with(...)preset. Default delimiters stay unchanged. -
Make
deixis-group-layout,deixis-default-footnote-styleanddeixis-show-refsprivate. Chooserender-group, supply abody-stylecallback, and letdeixis-setup-notesinstall the reference bridge. -
Remove
internal-id:fromdeixis-place-anchored; use publicpin:targets. -
Remove
deixis-highlight-rect-region/deixis-highlight-ellipse-region. Use region marks withstroke: none; addregion-shape: deixis-ellipse-regionfor an elliptical highlight. -
Use
id:to create an annotation andof:to attach its body or reuse its mark. Removedlabel:and positional reuse targets. The original owns numbering; the body adapter owns placement and formatting. -
Import only the public package facade. Internal modules, state and underscore helpers are private.
-
Configure connections with
connector:(a route string or a record), including theconnectorstyle component. Removed the flatlink,link-ports,link-waypoints,link-marks, andlink-headsoptions. -
Use
deixis-query-notes(page: ...)instead ofdeixis-page-notes, andinclude-unpairedinstead ofinclude-celibates. Query/outline callbacks receive semantic records and safe summaries rather than executable bodies. -
Put native container arguments in
container-args:. Unknown options, unresolved attachments and invalid scope/geometry selections now produce diagnostics. -
Page footnotes default to paginating native flow and native footer typography. Configure separators and spacing with
set footnote.entry(...);override-page-footnotes: truerestores the overlay default.
Added
-
Opt-in
shortmodule of direct function aliases.configurealso has the prefixed aliasdeixis-configure;deixis-setremains supported. The scoped container isnote-block, preserving nativeblock. -
Unnumbered notes: a resolved
numbering: nonetakes no counter value, sodeixis-set(numbering: (margin-note: none, inset-note: none))turns margin and inset notes into asides while footnotes keep counting 1, 2, 3. -
deixis-chicago-render-singlefor Chicago Notes & Bibliography endnotes:deixis-print-endnotes(render-single: deixis-chicago-render-single). Based on a contribution by bluelightspirit (#2). The grid group renderer now stacks notes that use a custom single renderer. -
Named body containers:
container-func: "stripe"(accent rule over a tint) or"tinted", alongside"plain","rect"and"alert". The new presets follow the note’s accent; explicit styles override their defaults. -
Named palettes:
deixis-set(palette: "okabe-ito"), plus"tol-bright","tol-muted","tableau"and the house"deixis"set. -
Per-family numbering such as
deixis-set(numbering: (footnote: "*", endnote: "i")); a wrapper’s family key precedes mark-type keys andrest. -
Opt-in page-local display numbering with
numbering: (restart: "page", pattern: "1")(including symbol patterns). Assigned counters remain stable; shared notes, references, outlines and split bodies keep their original marker. -
Scoped
deixis-set(omit: (series: ("todo",)))for draft/final builds. Preserves passages while skipping annotations, counting, bodies, and connections; references to omitted IDs report a clear diagnostic. -
Unified original/reused inline, region and phantom marks, forward attachments, named occurrences, standalone bodies, references and return links.
-
deixis-inline-note[passage][explanation]for a one-call inline aside;inline: falseselects a callout.deixis-plainrepeats marked content without creating annotations; native outlines apply this automatically. -
Scoped/threaded numbering, counter resets, local table/figure collections, paginated blocks, annotation data, queries and custom catalogue/outline views.
-
Opt-in automatic color palettes, native containers and custom body renderers, component layers and
z-index, plus native-hide and Touying reveal support. -
Independent connections between marks, bodies, pins and attached objects; native line/curve routes, heads, ports, exact waypoints, cuts, crossing gaps, continuation markers, and custom connector painters.
-
Numeric route/scene/group APIs and scoped document routing with bounded obstacle avoidance and group separation. Explicit geometry stays constrained; failed searches never paint an unchecked fallback.
-
Task guides, editable examples, an illustrated PDF manual, a local searchable mdBook website, and an agent skill with checked document recipes. API reference material is generated from source. Editorial recipes cover a critical apparatus, author/status review lists and first-use glossaries.
-
A scripted README hero and focused reading, equation and editorial-review showcases replace the legacy gallery.
-
Experimental HTML export keeps every note body with linked markers and backlinks; margin, inset and comment bodies follow the document as one list, while connectors and other page paint are omitted (#1).
Changed
deixis-minipage(margin: ...)retains 0.1.1’s internal padding semantics (inset: margin,outset: 0pt); its documentation now describes that behavior.- Default decoration uses muted blue-gray with a light tint. Inline, margin and inset marker-to-body spacing is 0.25em. Explicit styles retain precedence.
- Connector records merge field by field with scoped defaults. Connector layers are independent of body layers and default to foreground.
- Faster registration, reference lookup and margin planning in documents with hundreds of notes, preserving rendered output.
- Bodies preserve authored content and explicit breaks; inline decoration can wrap and paginate. Collections retain per-note typography and grouping rules.
Fixed
- Outline and running-header replays duplicating annotations, shifting numbers or reporting duplicate IDs.
- Footnote reservation, migration, spacing and typography mismatches, including orphan separators and heading styles leaking into page footers.
- Anonymous nested regions oscillating during layout; deferred declarations, measurement and repeated output creating late or duplicate effects.
- Scope/thread collisions, forward-attachment ownership, incorrect references, reused-mark page lists and missing native PDF destinations.
- Multi-page margin/region geometry, cross-page relay bounds and peer links, hidden annotations escaping slide reveals, and repeated setup composition.
- Curve/orthogonal endpoint constraints, route trimming and bounded-search correctness. The migration guide records remaining native/routing limits.
- Boxed, underlined and highlighted marks breaking their frame or fill around a superscript marker.
- Custom margin renderers whose measured size depends on their location could be placed twice or not at all: every page now plans earlier notes with the same measurement.
- Named marks and note wrappers printing a stray space before the marked passage, or between the surrounding words for named phantom marks.
- Notes nested in endnote bodies and margin notes nested in margin bodies exceeding Typst’s layout-pass budget. These layouts converge in PDF and HTML; notes inside a Deixis footnote body retain an HTML convergence limit.
[0.1.1] - 2026-06-04
Added
- Added a geometric path pullback calculation for routed links when
link-marksis enabled, ensuring thick lines stay hidden inside the arrowheads.
Changed
- Improved the
#deixis-note-outlinerendering engine. It now allows multi-line note bodies to wrap naturally without clipping, and aligns page numbers to the bottom.
Fixed
- Fixed a panic caused by backlinks on celibate (mark-only) endnotes.
- Fixed an issue where multi-page region marks would calculate incorrect vertical boundaries on non-A4 paper sizes by dynamically resolving Typst’s native
automargins.
[0.1.0] - 2026-06-01
Added
- Initial public release of
deixisto the Typst Universe.