Brian Hung
Write
Text editor built on ProseMirror.
Building an editor from extensions
schemapluginsnodeViewsstateextensionsNode(), Mark(), Extension() or a PluginschemaFromExtensionsNodeSpecs, MarkSpecs, attrsdefaultPluginsinputRules, keymaps, pluginsNodeViews, MarkViewscustom DOM per node typeEditorState.createschema, doc, pluginsEditorextends EditorViewInput rules run first, then each extension's keymap, then ProseMirror's baseKeymap.
Editing a selection with AI
a docpromptmarkdown replya doctoMarkdownfromMarkdownstate.selectioncontent() as a docMarkdownSerializerselection to markdown/api/chatan LLM via streamTextExtension packagesheading, bold, link, …MarkdownParsermarkdown-it, fromMarkdownReplace selectionor insert below itEach package describes its own markdown; the demo combines them into one serializer and one parser.