docs/plans/2026-04-04-footnote-sync-architecture.md
Define the most performant architecture for synchronizing footnote references, definitions, and hover preview content in Plate.
footnote_reference and footnote_definition schema support in
preset-gfm.Plate should use a normalized footnote registry model.
definitionByIdentifier: Map<string, PathRef>referencesByIdentifier: Map<string, PathRef[]>referenceByInternalId: Map<string, PathRef>editor.api.footnote.definition({ identifier })editor.api.footnote.references({ identifier })editor.api.footnote.definitionText({ identifier })editor.api.footnote.registry()editor.api.footnote.hasDefinition({ identifier })editor.api.footnote.isResolved({ identifier })Implementation note:
definitionText should read through the registry, not rescan the whole
document.mod-click:
click:
definitionText by full-document scan in every reference
component render.@platejs/footnote.definition, references, and definitionText resolve through it.