0006 Editor-agnostic authoring
- Status: accepted (2026-10-29)
Context
Section titled “Context”Hosts already have editors (TipTap, CKEditor, Lexical, plain textareas). Shipping one WYSIWYG engine would force it on everyone and pull a large dependency into every install.
Decision
Section titled “Decision”EditorAdapter(core) is the only thing a WYSIWYG integration implements: source in, source out, element by id, selection, change events.@astrolabe/editoris a kit on top of it: template instantiation with unique ids, inspector models derived from manifests andEditorDescriptors, live validation, preview, plus small web components and a textarea adapter.- No package depends on a WYSIWYG engine (checked by
scripts/check-boundaries.mjs). A TipTap integration lives inexamples/tiptap-editor.
Consequences
Section titled “Consequences”Any editor works; the kit stays small. Integrations own their node mapping, guided by the manifest (display,
children[].content, visibility).
- Amended 2026-10-29:
@astrolabe/editor-tiptapships<astl-editor>with TipTap as the default surface and is the only package that imports TipTap;@astrolabe/editorstays free of any WYSIWYG engine (0011).