Citations
A Cite is an inline node (cite) that names one Bibliographic record of the Document by its citation key. The Bibliographic record is the CSL-JSON in meta.bib of a Typed block (a paper, a document, a report). The Cite shows the short form of that record, (Autor Jahr), and, when it has a locator, (Autor Jahr, S. 12).
A Cite is not a reference chip. The reference chip ([@<block id>]) points at a Block and shows its title or short citation; a Cite points at a Bibliographic record and always reads as a citation in running text. Both nodes live in the composites schema, because the Markdown export needs them on the server too.
Insert a citation
Type /zitat (in the slash menu: „Zitat einfügen“) or type [cite: by hand. A picker lists the bibliography entries of the open Document: every Typed block with meta.bib whose short citation, full citation or citation key contains what you typed. Choose one and the Cite is inserted, followed by a space.
The Cite has the attributes key and locator:
| Attribute | Meaning |
|---|---|
key | the citation key of the entry. It is the key that bibtexOf writes into the .bib entry: the first author's family name, the year and the first word of the title, in lowercase ASCII (lecun2015deep) |
locator | the position inside the cited work (S. 12); null cites the work as a whole |
The key is derived from the record. When two entries of one Document derive the same key, the first one in document order is the one a Cite resolves to.
What the chip shows
The chip resolves its key against the entries of the Document on every change of the Document. It shows the short form from citeShort (Doe 2024, Doe & Roe 2024, Doe et al. 2024; the first 40 characters of the title when the entry has no author) and the full form from citeFull as its tooltip. If the author, the year or the title of the entry changes, the chip changes with it.
| Action | Result |
|---|---|
| Click | reveals the bibliography entry in the Document |
| Double click or right click | opens a field for the locator („Stelle“) in an editable editor |
| Key without an entry | the chip shows (key), greyed and struck through, with the tooltip „Literaturangabe nicht gefunden“ |
Markdown
A Cite is written as [cite:<key>] or, with a locator, [cite:<key>, <locator>]. A ] inside the locator is written \].
Deep learning works [cite:lecun2015deep, S. 12] and has been replicated [cite:doe2020other].
The token is not Pandoc's [@key]: [@ belongs to the reference chip and to mentions. [cite: parses straight back into the node when Markdown is imported, edited in source mode or written by an AI; there is no second step that checks the key. A key that names no entry is kept and shows as a gone chip.
The Block index text of a Block that holds a Cite contains [cite:<key>], so a search for the key finds the Block.
Framework bindings
The Vue and React compositeFeature give the node its view (CiteView, also exported from @skaile/forge-editor/composites/vue and @skaile/forge-editor/composites/react). A binding that supplies no cite node view (CompositeNodeViews.cite is optional) shows the static form (key, locator). Servers build their schema with compositeSchemaExtensions(), which includes the node.
| Export | Use |
|---|---|
CiteNode, CITE_NODE, CITE_TRIGGER | the node, its name and the popup trigger [cite: |
citeMarkdown, citeAttrsOf | the Markdown form of a Cite and its typed attributes |
citeEntriesOf(doc), resolveCite(editor, key), citeText(label, locator) | the entries a Cite can name, what a Cite shows now, and the chip text |
citeSuggestion(t) | the options of the [cite: popup |
Templates: start a Document from a Dokumentvorlage
The Dokumentvorlagen folder, the placeholders expandTemplate fills in ({{title}}, {{date}}, {{time}}, {{cursor}}), and the templateId of the Document create route.
AI proposals and the export check
Show unchecked AI results as „KI-Vorschlag“ in the Freigabestatus, list what to look at before a Typed block is exported, and register your own check source.