API Reference
deixis-note-outline
Ready-made linked list over the annotation catalogue; custom callbacks can replace summaries or presentation.
Setup Required
Returns: content.
Example
deixis-note-outline()
One entry per annotation, with links to all marked pages. Use query-notes for cards/tables or occurrence indexes. data can supply a custom title/status.
deixis-note-outline
deixis-note-outline(title: [List of Notes], heading-level: 1, target: auto, thread: auto, include-types: auto, exclude-types: (), series: auto, include-unpaired: false, after: none, before: none, group-by: none, fill: none, gap: auto, summary: auto, ..args)
A dynamically styled outline (Table of Contents) for your annotations.
The outline extracts static text from note bodies without executing them again. Each entry features a dynamic visual badge that inherits the styling of the specific note it represents. They act as clickable hyperlinks, returning the reader to the mark’s location. Entries follow original mark order, or body declaration order for standalone bodies. Bounds select those source locations; scope filters use body rendering ownership when a body exists. Target and thread filters combine. Reused marks stay in the same entry. Page links list distinct physical pages in mark source order and use native page numbering at each painted destination. Standalone bodies link to their live destination, or declaration if unprinted. For custom layouts or one row per occurrence, use deixis-query-notes.
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: red)[This is a note!]
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: green)[This is another note!]
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: blue)[This is yet another note!]
// `target: 0` restricts the search to notes inside this example block.
#deixis-note-outline(target: 0)
- title (content, none): The heading content to display above the outline. Set to
noneto disable the heading. - heading-level (int): The heading level for the outline’s main title. Any dynamically generated group sub-headings will be rendered at
heading-level + 1. - target (auto, label, str, int): Filters the outline to notes belonging to a specific target block or minipage.
- thread (auto, str, label): Filters the outline to only show notes belonging to a specific thread of minipages.
- include-types (auto, str, array): One note type or a union of types. Auto includes all; an empty array includes none.
- exclude-types (str, array): One note type or a union of types to exclude.
- series (auto, str, array): Filters the outline to notes belonging to a specific series or array of series.
- include-unpaired (bool, str): Also include marks without bodies, standalone bodies, or both. Values: false, true, “mark”, “body”.
- after (none, location, label, str, dictionary, selector, function): Exclusive source boundary: a native location/label/selector or a pin name/target.
- before (none, location, label, str, dictionary, selector, function): Exclusive source boundary, with the same selection rules as after.
- group-by (none, str, function): Categorizes the notes under sub-headings. Accepts
"type"(e.g., “Margin Notes”),"series", or a customfunction(note) => string. - fill (none, content): Fills the space between the excerpt and the page number. Commonly set to
repeat[.]for standard TOC styling. - gap (auto, length): The vertical spacing between individual note rows in the outline.
- summary (auto, function): A callback
(note) => contentfor each excerpt. By default, extracts up to 160 characters of static text without executing contextual content.
Parameters
| Name | Default | Types |
|---|---|---|
title | [List of Notes] | content, none |
heading-level | 1 | int |
target | auto | auto, label, str, int |
thread | auto | auto, str, label |
include-types | auto | auto, str, array |
exclude-types | () | str, array |
series | auto | auto, str, array |
include-unpaired | false | bool, str |
after | none | none, location, label, str, dictionary, selector, function |
before | none | none, location, label, str, dictionary, selector, function |
group-by | none | none, str, function |
fill | none | none, content |
gap | auto | auto, length |
summary | auto | auto, function |
..args | variadic | arguments |
title
The heading content to display above the outline. Set to none to disable the heading.
#deixis-note-outline(target: 0, title: [Liste des Notes])
heading-level
The heading level for the outline’s main title. Any dynamically generated group sub-headings will be rendered at heading-level + 1.
#deixis-note-outline(target: 0, heading-level: 3)
target
Filters by rendering scope (body scope when attached, original scope for marks without bodies). Combines with thread if both are supplied.
thread
Filters the outline to only show notes belonging to a specific thread of minipages.
include-types
One note type or an array of types to include. Auto includes all; an empty array includes none. Unknown names select no matching records.
exclude-types
One note type or an array of types to exclude. An empty array excludes none.
series
Filters the outline to notes belonging to a specific series or array of series.
include-unpaired
Also include unpaired marks or bodies. False includes paired notes only; true includes both unpaired kinds; mark or body adds that kind.
after
Only includes notes after this location, label, pin name, or structured name/scope/select/page pin target. A pin boundary needs one occurrence. Native selectors use their first match, as native labels do.
before
Only includes notes before this location, label, pin name, or structured name/scope/select/page pin target. Forward pin declarations work. Native selectors use their first match, as native labels do.
group-by
Categorizes the notes under sub-headings. Accepts "type", "series", or a custom function(note) => string.
//| margin: (right: 0.6in, rest: 0.05in)
#deixis-footnote(stroke: red)[This is a footnote!]
#deixis-margin-note(stroke: green)[This is a margin note!]
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: blue)[This is an inset note!]
#deixis-note-outline(target: 0, group-by: "type")
fill
Fills the space between the excerpt and the page number. Commonly set to repeat[.] for standard TOC styling.
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: red)[This is a note!]
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: green)[This is another note!]
#deixis-inset-note(dx: 10pt, dy: 0pt, stroke: blue)[This is yet another note!]
#deixis-note-outline(target: 0, fill: repeat[.])
gap
The vertical spacing between individual note rows in the outline.
summary
A callback (note) => content for each excerpt. The default extracts static
text without running the body; contextual-only notes get a placeholder.
Receives the structured query record plus its presentation badge. Use
note.summary for the safe default excerpt; note.body is a location record.
..args
Unknown options are rejected; include-celibates was renamed to include-unpaired.