[{"data":1,"prerenderedAt":330},["ShallowReactive",2],{"msfe-doc:\u002Fen\u002Fdocs":3},{"id":4,"title":5,"body":6,"description":314,"extension":315,"keywords":316,"locale":321,"meta":322,"navigation":323,"order":324,"path":325,"section":326,"seo":327,"stem":328,"__hash__":329},"docs\u002Findex.en.md","MSFE developer documentation",{"type":7,"value":8,"toc":306},"minimark",[9,13,18,21,25,29,125,129,140,148,152,299],[10,11,12],"p",{},"MSFE is a Markdown source-first editor built on CodeMirror. Edit text directly or display headings, lists, images, and custom components over the same document. All modes share content, selections, and undo history.",[14,15,17],"h2",{"id":16},"try-it","Try it",[10,19,20],{},"Edit the document, switch between Source and Live, and read the Markdown. Locked mode keeps reading, selection, and copying available while disabling document editing.",[22,23],"msfe-demo",{"name":24},"basic\u002Feditor",[14,26,28],{"id":27},"start-with-your-task","Start with your task",[30,31,32,45],"table",{},[33,34,35],"thead",{},[36,37,38,42],"tr",{},[39,40,41],"th",{},"What you want to do",[39,43,44],{},"Start here",[46,47,48,61,81,92,103,114],"tbody",{},[36,49,50,54],{},[51,52,53],"td",{},"Add an editor to your application",[51,55,56],{},[57,58,60],"a",{"href":59},"\u002Fen\u002Fguide\u002Fquick-start","Quick start",[36,62,63,66],{},[51,64,65],{},"Use Vue, React, or native DOM",[51,67,68,72,73,72,77],{},[57,69,71],{"href":70},"\u002Fen\u002Fguide\u002Fvue","Vue integration",", ",[57,74,76],{"href":75},"\u002Fen\u002Fguide\u002Freact","React integration",[57,78,80],{"href":79},"\u002Fen\u002Fguide\u002Flifecycle","Mounting and cleanup",[36,82,83,86],{},[51,84,85],{},"Save Markdown and accept external changes",[51,87,88],{},[57,89,91],{"href":90},"\u002Fen\u002Fguide\u002Fsaving","Reading and saving",[36,93,94,97],{},[51,95,96],{},"Understand source and presentation",[51,98,99],{},[57,100,102],{"href":101},"\u002Fen\u002Fconcepts\u002Fsource-first","Source first",[36,104,105,108],{},[51,106,107],{},"Build syntax and interactive nodes",[51,109,110],{},[57,111,113],{"href":112},"\u002Fen\u002Fextensions\u002Fcustom-node","Custom nodes",[36,115,116,119],{},[51,117,118],{},"Use your own component library and theme",[51,120,121],{},[57,122,124],{"href":123},"\u002Fen\u002Fcustomization\u002Ftheme","UI and themes",[14,126,128],{"id":127},"compose-your-editor","Compose your editor",[10,130,131,135,136,139],{},[132,133,134],"code",{},"msfe-core"," manages instances and transactions. Feature extensions supply syntax and operations, while Vue and React adapters connect your application components. ",[132,137,138],{},"StarterKit"," combines the basic Markdown features; install optional features such as math and diagrams separately.",[10,141,142,143,147],{},"The public API is experimental. Read the ",[57,144,146],{"href":145},"\u002Fen\u002Fsupport","support boundaries"," before integrating, and maintain your application code alongside the package versions it uses.",[14,149,151],{"id":150},"reading-paths-for-complex-development","Reading paths for complex development",[30,153,154,166],{},[33,155,156],{},[36,157,158,161,163],{},[39,159,160],{},"Deliverable",[39,162,44],{},[39,164,165],{},"Continue with",[46,167,168,185,204,220,241,258,278],{},[36,169,170,173,179],{},[51,171,172],{},"Feature package or business preset",[51,174,175],{},[57,176,178],{"href":177},"\u002Fen\u002Fconcepts\u002Fextensions","Extension model",[51,180,181],{},[57,182,184],{"href":183},"\u002Fen\u002Ffeatures\u002Fcatalog","Features",[36,186,187,190,194],{},[51,188,189],{},"Editable business node",[51,191,192],{},[57,193,113],{"href":112},[51,195,196,72,200],{},[57,197,199],{"href":198},"\u002Fen\u002Fguide\u002Fcommands","Commands",[57,201,203],{"href":202},"\u002Fen\u002Fextensions\u002Fresources","resources",[36,205,206,209,215],{},[51,207,208],{},"Nested styled and folded blocks",[51,210,211],{},[57,212,214],{"href":213},"\u002Fen\u002Fextensions\u002Fcontainers","Containers",[51,216,217],{},[57,218,219],{"href":123},"Themes",[36,221,222,225,231],{},[51,223,224],{},"Code languages and chart rendering",[51,226,227],{},[57,228,230],{"href":229},"\u002Fen\u002Fextensions\u002Fcode-blocks","Code blocks",[51,232,233,72,237],{},[57,234,236],{"href":235},"\u002Fen\u002Fextensions\u002Fdiagrams","Diagrams",[57,238,240],{"href":239},"\u002Fen\u002Fextensions\u002Fprojections","projections",[36,242,243,246,252],{},[51,244,245],{},"Third-party syntax",[51,247,248],{},[57,249,251],{"href":250},"\u002Fen\u002Fextensions\u002Fmarkdown-plugins","Markdown plugins",[51,253,254],{},[57,255,257],{"href":256},"\u002Fen\u002Fextensions\u002Finput-rules","Input and paste rules",[36,259,260,263,268],{},[51,261,262],{},"Production host integration",[51,264,265],{},[57,266,267],{"href":90},"Saving",[51,269,270,72,274],{},[57,271,273],{"href":272},"\u002Fen\u002Fguide\u002Fselection","Captured intent",[57,275,277],{"href":276},"\u002Fen\u002Fcustomization\u002Fimages","images",[36,279,280,283,289],{},[51,281,282],{},"Custom interaction UI",[51,284,285],{},[57,286,288],{"href":287},"\u002Fen\u002Fcustomization\u002Ftoolbars","Toolbars",[51,290,291,72,295],{},[57,292,294],{"href":293},"\u002Fen\u002Fcustomization\u002Fsearch","Search",[57,296,298],{"href":297},"\u002Fen\u002Fguide\u002Fstate","state",[10,300,301,302,305],{},"Source tabs include complete local dependencies, and TypeScript recipes are copyable modules. See ",[57,303,304],{"href":145},"Support"," for built-in versus example behavior and host-service requirements.",{"title":307,"searchDepth":308,"depth":308,"links":309},"",2,[310,311,312,313],{"id":16,"depth":308,"text":17},{"id":27,"depth":308,"text":28},{"id":127,"depth":308,"text":128},{"id":150,"depth":308,"text":151},"Build your Markdown editing experience with clear boundaries between source, interaction, and UI.","md",[317,318,319,320],"Markdown","CodeMirror","editor","source first","en",{},true,0,"\u002Fen\u002Fdocs","Getting started",{"title":5,"description":314},"index.en","Bks9vq9cOG510_ztgHCGzIwL391zvxvw6ppKIpQsF20",1793046311194]