[{"data":1,"prerenderedAt":2427},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Feditor-api":629,"\u002Fgetting-started\u002Feditor-api-surround":2422},[4,27,60,265,595,625],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Editors","\u002Fgetting-started\u002Feditors","1.getting-started\u002F2.editors",{"title":19,"path":20,"stem":21},"Editor API","\u002Fgetting-started\u002Feditor-api","1.getting-started\u002F3.editor-api",{"title":23,"path":24,"stem":25},"Migration v1 → v2","\u002Fgetting-started\u002Fmigration-v1-to-v2","1.getting-started\u002F4.migration-v1-to-v2",false,{"title":15,"icon":28,"path":29,"stem":30,"children":31,"page":26},"i-lucide-layout-panel-left","\u002Feditors","2.editors",[32,36,40,44,48,52,56],{"title":33,"path":34,"stem":35},"JSON Editor","\u002Feditors\u002Fjson","2.editors\u002F1.json",{"title":37,"path":38,"stem":39},"Markdown Editor","\u002Feditors\u002Fmarkdown","2.editors\u002F2.markdown",{"title":41,"path":42,"stem":43},"Code Editor","\u002Feditors\u002Fcode","2.editors\u002F3.code",{"title":45,"path":46,"stem":47},"Forms Editor","\u002Feditors\u002Fforms","2.editors\u002F4.forms",{"title":49,"path":50,"stem":51},"Charts Editor","\u002Feditors\u002Fcharts","2.editors\u002F5.charts",{"title":53,"path":54,"stem":55},"Calendar Editor","\u002Feditors\u002Fcalendar","2.editors\u002F6.calendar",{"title":57,"path":58,"stem":59},"Tables Editor","\u002Feditors\u002Ftables","2.editors\u002F7.tables",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":26},"Plugins","i-lucide-puzzle","\u002Fplugins","3.plugins",[66,70,108,154,180,210,235],{"title":67,"path":68,"stem":69},"Plugins overview","\u002Fplugins\u002Foverview","3.plugins\u002F1.overview",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":26},"Formatting","i-lucide-type","\u002Fplugins\u002Fformatting","3.plugins\u002F2.formatting",[76,80,84,88,92,96,100,104],{"title":77,"path":78,"stem":79},"Default marks","\u002Fplugins\u002Fformatting\u002Ftoolbar","3.plugins\u002F2.formatting\u002F1.toolbar",{"title":81,"path":82,"stem":83},"Font","\u002Fplugins\u002Fformatting\u002Ffont","3.plugins\u002F2.formatting\u002F2.font",{"title":85,"path":86,"stem":87},"Typography","\u002Fplugins\u002Fformatting\u002Ftypography","3.plugins\u002F2.formatting\u002F3.typography",{"title":89,"path":90,"stem":91},"Color","\u002Fplugins\u002Fformatting\u002Fcolor","3.plugins\u002F2.formatting\u002F4.color",{"title":93,"path":94,"stem":95},"Clear Styles","\u002Fplugins\u002Fformatting\u002Fclear-styles","3.plugins\u002F2.formatting\u002F5.clear-styles",{"title":97,"path":98,"stem":99},"Alignment","\u002Fplugins\u002Fformatting\u002Falignment","3.plugins\u002F2.formatting\u002F6.alignment",{"title":101,"path":102,"stem":103},"Block Style","\u002Fplugins\u002Fformatting\u002Fblock-style","3.plugins\u002F2.formatting\u002F7.block-style",{"title":105,"path":106,"stem":107},"Link","\u002Fplugins\u002Fformatting\u002Flink","3.plugins\u002F2.formatting\u002F8.link",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":26},"Blocks","i-lucide-blocks","\u002Fplugins\u002Fblocks","3.plugins\u002F3.blocks",[114,118,122,126,130,134,138,142,146,150],{"title":115,"path":116,"stem":117},"Block","\u002Fplugins\u002Fblocks\u002Fblock","3.plugins\u002F3.blocks\u002F01.block",{"title":119,"path":120,"stem":121},"Lists","\u002Fplugins\u002Fblocks\u002Flists","3.plugins\u002F3.blocks\u002F02.lists",{"title":123,"path":124,"stem":125},"Table","\u002Fplugins\u002Fblocks\u002Ftable","3.plugins\u002F3.blocks\u002F03.table",{"title":127,"path":128,"stem":129},"Templates","\u002Fplugins\u002Fblocks\u002Ftemplates","3.plugins\u002F3.blocks\u002F04.templates",{"title":131,"path":132,"stem":133},"Code Block","\u002Fplugins\u002Fblocks\u002Fcode-block","3.plugins\u002F3.blocks\u002F05.code-block",{"title":135,"path":136,"stem":137},"Math","\u002Fplugins\u002Fblocks\u002Fmath","3.plugins\u002F3.blocks\u002F06.math",{"title":139,"path":140,"stem":141},"HTML Viewer","\u002Fplugins\u002Fblocks\u002Fhtml-viewer","3.plugins\u002F3.blocks\u002F07.html-viewer",{"title":143,"path":144,"stem":145},"Footnotes","\u002Fplugins\u002Fblocks\u002Ffootnotes","3.plugins\u002F3.blocks\u002F08.footnotes",{"title":147,"path":148,"stem":149},"Anchor Link","\u002Fplugins\u002Fblocks\u002Fanchor-link","3.plugins\u002F3.blocks\u002F09.anchor-link",{"title":151,"path":152,"stem":153},"Footer","\u002Fplugins\u002Fblocks\u002Ffooter","3.plugins\u002F3.blocks\u002F10.footer",{"title":155,"icon":156,"path":157,"stem":158,"children":159,"page":26},"Media","i-lucide-image","\u002Fplugins\u002Fmedia","3.plugins\u002F4.media",[160,164,168,172,176],{"title":161,"path":162,"stem":163},"Image","\u002Fplugins\u002Fmedia\u002Fimage","3.plugins\u002F4.media\u002F1.image",{"title":165,"path":166,"stem":167},"Video","\u002Fplugins\u002Fmedia\u002Fvideo","3.plugins\u002F4.media\u002F2.video",{"title":169,"path":170,"stem":171},"YouTube Video","\u002Fplugins\u002Fmedia\u002Fyoutube-video","3.plugins\u002F4.media\u002F3.youtube-video",{"title":173,"path":174,"stem":175},"File Upload","\u002Fplugins\u002Fmedia\u002Ffile-upload","3.plugins\u002F4.media\u002F4.file-upload",{"title":177,"path":178,"stem":179},"PDF Embed","\u002Fplugins\u002Fmedia\u002Fpdf-embed","3.plugins\u002F4.media\u002F5.pdf-embed",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":26},"Data & embeds","i-lucide-database","\u002Fplugins\u002Fdata","3.plugins\u002F5.data",[186,190,194,198,202,206],{"title":187,"path":188,"stem":189},"JSON","\u002Fplugins\u002Fdata\u002Fjson","3.plugins\u002F5.data\u002F1.json",{"title":191,"path":192,"stem":193},"Markdown","\u002Fplugins\u002Fdata\u002Fmarkdown","3.plugins\u002F5.data\u002F2.markdown",{"title":195,"path":196,"stem":197},"Charts","\u002Fplugins\u002Fdata\u002Fcharts","3.plugins\u002F5.data\u002F3.charts",{"title":199,"path":200,"stem":201},"Form Builder","\u002Fplugins\u002Fdata\u002Fform-builder","3.plugins\u002F5.data\u002F4.form-builder",{"title":203,"path":204,"stem":205},"Calendar","\u002Fplugins\u002Fdata\u002Fcalendar","3.plugins\u002F5.data\u002F5.calendar",{"title":207,"path":208,"stem":209},"Timer","\u002Fplugins\u002Fdata\u002Ftimer","3.plugins\u002F5.data\u002F6.timer",{"title":211,"icon":212,"path":213,"stem":214,"children":215,"page":26},"Collaboration","i-lucide-users","\u002Fplugins\u002Fcollaboration","3.plugins\u002F6.collaboration",[216,219,223,227,231],{"title":211,"path":217,"stem":218},"\u002Fplugins\u002Fcollaboration\u002Fcollaboration","3.plugins\u002F6.collaboration\u002F1.collaboration",{"title":220,"path":221,"stem":222},"Comments","\u002Fplugins\u002Fcollaboration\u002Fcomments","3.plugins\u002F6.collaboration\u002F2.comments",{"title":224,"path":225,"stem":226},"Mentions","\u002Fplugins\u002Fcollaboration\u002Fmentions","3.plugins\u002F6.collaboration\u002F3.mentions",{"title":228,"path":229,"stem":230},"Track Changes","\u002Fplugins\u002Fcollaboration\u002Ftrack-changes","3.plugins\u002F6.collaboration\u002F4.track-changes",{"title":232,"path":233,"stem":234},"History","\u002Fplugins\u002Fcollaboration\u002Fhistory","3.plugins\u002F6.collaboration\u002F5.history",{"title":236,"icon":237,"path":238,"stem":239,"children":240,"page":26},"Tools","i-lucide-wrench","\u002Fplugins\u002Ftools","3.plugins\u002F7.tools",[241,245,249,253,257,261],{"title":242,"path":243,"stem":244},"Export","\u002Fplugins\u002Ftools\u002Fexport","3.plugins\u002F7.tools\u002F1.export",{"title":246,"path":247,"stem":248},"Shortcuts","\u002Fplugins\u002Ftools\u002Fshortcuts","3.plugins\u002F7.tools\u002F2.shortcuts",{"title":250,"path":251,"stem":252},"Responsive","\u002Fplugins\u002Ftools\u002Fresponsive","3.plugins\u002F7.tools\u002F3.responsive",{"title":254,"path":255,"stem":256},"Language","\u002Fplugins\u002Ftools\u002Flanguage","3.plugins\u002F7.tools\u002F4.language",{"title":258,"path":259,"stem":260},"Spell Checker","\u002Fplugins\u002Ftools\u002Fspell-checker","3.plugins\u002F7.tools\u002F5.spell-checker",{"title":262,"path":263,"stem":264},"AI Assistant","\u002Fplugins\u002Ftools\u002Fai-assistant","3.plugins\u002F7.tools\u002F6.ai-assistant",{"title":266,"icon":267,"path":268,"stem":269,"children":270,"page":26},"Integrate","i-lucide-plug","\u002Fintegrate","4.integrate",[271,275,305,359,385,423,445,471,493,523,569],{"title":272,"path":273,"stem":274},"Integrate overview","\u002Fintegrate\u002Foverview","4.integrate\u002F01.overview",{"title":276,"icon":277,"path":278,"stem":279,"children":280,"page":26},"Basics","i-lucide-book-open","\u002Fintegrate\u002Fbasics","4.integrate\u002F02.basics",[281,285,289,293,297,301],{"title":282,"path":283,"stem":284},"Persistence","\u002Fintegrate\u002Fbasics\u002Fpersistence","4.integrate\u002F02.basics\u002F1.persistence",{"title":286,"path":287,"stem":288},"Host config","\u002Fintegrate\u002Fbasics\u002Fhost-config","4.integrate\u002F02.basics\u002F2.host-config",{"title":290,"path":291,"stem":292},"Server + Vite","\u002Fintegrate\u002Fbasics\u002Fserver-vite","4.integrate\u002F02.basics\u002F3.server-vite",{"title":294,"path":295,"stem":296},"Meta-frameworks (SSR \u002F CSR)","\u002Fintegrate\u002Fbasics\u002Fmeta-ssr","4.integrate\u002F02.basics\u002F4.meta-ssr",{"title":298,"path":299,"stem":300},"Native \u002F iframe bridge","\u002Fintegrate\u002Fbasics\u002Fnative-bridge","4.integrate\u002F02.basics\u002F5.native-bridge",{"title":302,"path":303,"stem":304},"Chrome & host","\u002Fintegrate\u002Fbasics\u002Fchrome-and-host","4.integrate\u002F02.basics\u002F6.chrome-and-host",{"title":306,"icon":307,"path":308,"stem":309,"children":310,"page":26},"Frontend","i-lucide-monitor","\u002Fintegrate\u002Ffrontend","4.integrate\u002F03.frontend",[311,315,319,323,327,331,335,339,343,347,351,355],{"title":312,"path":313,"stem":314},"React","\u002Fintegrate\u002Ffrontend\u002Freact","4.integrate\u002F03.frontend\u002F01.react",{"title":316,"path":317,"stem":318},"Vue 2","\u002Fintegrate\u002Ffrontend\u002Fvue2","4.integrate\u002F03.frontend\u002F02.vue2",{"title":320,"path":321,"stem":322},"Vue 3","\u002Fintegrate\u002Ffrontend\u002Fvue3","4.integrate\u002F03.frontend\u002F03.vue3",{"title":324,"path":325,"stem":326},"Angular","\u002Fintegrate\u002Ffrontend\u002Fangular","4.integrate\u002F03.frontend\u002F04.angular",{"title":328,"path":329,"stem":330},"Svelte","\u002Fintegrate\u002Ffrontend\u002Fsvelte","4.integrate\u002F03.frontend\u002F05.svelte",{"title":332,"path":333,"stem":334},"Solid.js","\u002Fintegrate\u002Ffrontend\u002Fsolid","4.integrate\u002F03.frontend\u002F06.solid",{"title":336,"path":337,"stem":338},"Preact","\u002Fintegrate\u002Ffrontend\u002Fpreact","4.integrate\u002F03.frontend\u002F07.preact",{"title":340,"path":341,"stem":342},"Lit","\u002Fintegrate\u002Ffrontend\u002Flit","4.integrate\u002F03.frontend\u002F08.lit",{"title":344,"path":345,"stem":346},"Qwik","\u002Fintegrate\u002Ffrontend\u002Fqwik","4.integrate\u002F03.frontend\u002F09.qwik",{"title":348,"path":349,"stem":350},"jQuery","\u002Fintegrate\u002Ffrontend\u002Fjquery","4.integrate\u002F03.frontend\u002F10.jquery",{"title":352,"path":353,"stem":354},"Alpine.js","\u002Fintegrate\u002Ffrontend\u002Falpine","4.integrate\u002F03.frontend\u002F11.alpine",{"title":356,"path":357,"stem":358},"Backbone.js","\u002Fintegrate\u002Ffrontend\u002Fbackbone","4.integrate\u002F03.frontend\u002F12.backbone",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":26},"Meta-frameworks","i-lucide-layers","\u002Fintegrate\u002Fmeta-frameworks","4.integrate\u002F04.meta-frameworks",[365,369,373,377,381],{"title":366,"path":367,"stem":368},"Next.js","\u002Fintegrate\u002Fmeta-frameworks\u002Fnext","4.integrate\u002F04.meta-frameworks\u002F1.next",{"title":370,"path":371,"stem":372},"Nuxt 3 \u002F 4","\u002Fintegrate\u002Fmeta-frameworks\u002Fnuxt","4.integrate\u002F04.meta-frameworks\u002F2.nuxt",{"title":374,"path":375,"stem":376},"SvelteKit","\u002Fintegrate\u002Fmeta-frameworks\u002Fsveltekit","4.integrate\u002F04.meta-frameworks\u002F3.sveltekit",{"title":378,"path":379,"stem":380},"Remix","\u002Fintegrate\u002Fmeta-frameworks\u002Fremix","4.integrate\u002F04.meta-frameworks\u002F4.remix",{"title":382,"path":383,"stem":384},"Astro","\u002Fintegrate\u002Fmeta-frameworks\u002Fastro","4.integrate\u002F04.meta-frameworks\u002F5.astro",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":26},"Node \u002F edge","i-simple-icons-nodedotjs","\u002Fintegrate\u002Fnode","4.integrate\u002F05.node",[391,395,399,403,407,411,415,419],{"title":392,"path":393,"stem":394},"Express.js","\u002Fintegrate\u002Fnode\u002Fexpress","4.integrate\u002F05.node\u002F1.express",{"title":396,"path":397,"stem":398},"NestJS","\u002Fintegrate\u002Fnode\u002Fnestjs","4.integrate\u002F05.node\u002F2.nestjs",{"title":400,"path":401,"stem":402},"Fastify","\u002Fintegrate\u002Fnode\u002Ffastify","4.integrate\u002F05.node\u002F3.fastify",{"title":404,"path":405,"stem":406},"Hono","\u002Fintegrate\u002Fnode\u002Fhono","4.integrate\u002F05.node\u002F4.hono",{"title":408,"path":409,"stem":410},"Koa","\u002Fintegrate\u002Fnode\u002Fkoa","4.integrate\u002F05.node\u002F5.koa",{"title":412,"path":413,"stem":414},"Bun","\u002Fintegrate\u002Fnode\u002Fbun","4.integrate\u002F05.node\u002F6.bun",{"title":416,"path":417,"stem":418},"Deno","\u002Fintegrate\u002Fnode\u002Fdeno","4.integrate\u002F05.node\u002F7.deno",{"title":420,"path":421,"stem":422},"AdonisJS","\u002Fintegrate\u002Fnode\u002Fadonis","4.integrate\u002F05.node\u002F8.adonis",{"title":424,"icon":425,"path":426,"stem":427,"children":428,"page":26},"Python","i-simple-icons-python","\u002Fintegrate\u002Fpython","4.integrate\u002F06.python",[429,433,437,441],{"title":430,"path":431,"stem":432},"FastAPI","\u002Fintegrate\u002Fpython\u002Ffastapi","4.integrate\u002F06.python\u002F1.fastapi",{"title":434,"path":435,"stem":436},"Django","\u002Fintegrate\u002Fpython\u002Fdjango","4.integrate\u002F06.python\u002F2.django",{"title":438,"path":439,"stem":440},"Python Flask","\u002Fintegrate\u002Fpython\u002Fpython-flask","4.integrate\u002F06.python\u002F3.python-flask",{"title":442,"path":443,"stem":444},"Litestar","\u002Fintegrate\u002Fpython\u002Flitestar","4.integrate\u002F06.python\u002F4.litestar",{"title":446,"icon":447,"path":448,"stem":449,"children":450,"page":26},"PHP","i-simple-icons-php","\u002Fintegrate\u002Fphp","4.integrate\u002F07.php",[451,455,459,463,467],{"title":452,"path":453,"stem":454},"Laravel","\u002Fintegrate\u002Fphp\u002Flaravel","4.integrate\u002F07.php\u002F1.laravel",{"title":456,"path":457,"stem":458},"Symfony","\u002Fintegrate\u002Fphp\u002Fsymfony","4.integrate\u002F07.php\u002F2.symfony",{"title":460,"path":461,"stem":462},"Slim","\u002Fintegrate\u002Fphp\u002Fslim","4.integrate\u002F07.php\u002F3.slim",{"title":464,"path":465,"stem":466},"CakePHP","\u002Fintegrate\u002Fphp\u002Fcakephp","4.integrate\u002F07.php\u002F4.cakephp",{"title":468,"path":469,"stem":470},"CodeIgniter","\u002Fintegrate\u002Fphp\u002Fcodeigniter","4.integrate\u002F07.php\u002F5.codeigniter",{"title":472,"icon":473,"path":474,"stem":475,"children":476,"page":26},"Go","i-simple-icons-go","\u002Fintegrate\u002Fgo","4.integrate\u002F08.go",[477,481,485,489],{"title":478,"path":479,"stem":480},"Go Gin","\u002Fintegrate\u002Fgo\u002Fgo-gin","4.integrate\u002F08.go\u002F1.go-gin",{"title":482,"path":483,"stem":484},"Go Echo","\u002Fintegrate\u002Fgo\u002Fgo-echo","4.integrate\u002F08.go\u002F2.go-echo",{"title":486,"path":487,"stem":488},"Go Fiber","\u002Fintegrate\u002Fgo\u002Fgo-fiber","4.integrate\u002F08.go\u002F3.go-fiber",{"title":490,"path":491,"stem":492},"Go Chi","\u002Fintegrate\u002Fgo\u002Fgo-chi","4.integrate\u002F08.go\u002F4.go-chi",{"title":494,"icon":495,"path":496,"stem":497,"children":498,"page":26},"Rust","i-simple-icons-rust","\u002Fintegrate\u002Frust","4.integrate\u002F09.rust",[499,503,507,511,515,519],{"title":500,"path":501,"stem":502},"Rust Axum","\u002Fintegrate\u002Frust\u002Frust-axum","4.integrate\u002F09.rust\u002F1.rust-axum",{"title":504,"path":505,"stem":506},"Rust Actix-web","\u002Fintegrate\u002Frust\u002Frust-actix","4.integrate\u002F09.rust\u002F2.rust-actix",{"title":508,"path":509,"stem":510},"Rust Rocket","\u002Fintegrate\u002Frust\u002Frust-rocket","4.integrate\u002F09.rust\u002F3.rust-rocket",{"title":512,"path":513,"stem":514},"Rust Warp","\u002Fintegrate\u002Frust\u002Frust-warp","4.integrate\u002F09.rust\u002F4.rust-warp",{"title":516,"path":517,"stem":518},"Rust Poem","\u002Fintegrate\u002Frust\u002Frust-poem","4.integrate\u002F09.rust\u002F5.rust-poem",{"title":520,"path":521,"stem":522},"Rust Loco","\u002Fintegrate\u002Frust\u002Frust-loco","4.integrate\u002F09.rust\u002F6.rust-loco",{"title":524,"icon":525,"path":526,"stem":527,"children":528,"page":26},"JVM \u002F .NET \u002F other","i-lucide-coffee","\u002Fintegrate\u002Fjvm-dotnet","4.integrate\u002F10.jvm-dotnet",[529,533,537,541,545,549,553,557,561,565],{"title":530,"path":531,"stem":532},"Spring Boot","\u002Fintegrate\u002Fjvm-dotnet\u002Fspring","4.integrate\u002F10.jvm-dotnet\u002F01.spring",{"title":534,"path":535,"stem":536},"Quarkus","\u002Fintegrate\u002Fjvm-dotnet\u002Fquarkus","4.integrate\u002F10.jvm-dotnet\u002F02.quarkus",{"title":538,"path":539,"stem":540},"Micronaut","\u002Fintegrate\u002Fjvm-dotnet\u002Fmicronaut","4.integrate\u002F10.jvm-dotnet\u002F03.micronaut",{"title":542,"path":543,"stem":544},"Kotlin Spring Boot","\u002Fintegrate\u002Fjvm-dotnet\u002Fkotlin-spring","4.integrate\u002F10.jvm-dotnet\u002F04.kotlin-spring",{"title":546,"path":547,"stem":548},"Ktor","\u002Fintegrate\u002Fjvm-dotnet\u002Fktor","4.integrate\u002F10.jvm-dotnet\u002F05.ktor",{"title":550,"path":551,"stem":552},"ASP.NET Core","\u002Fintegrate\u002Fjvm-dotnet\u002Faspnet-core","4.integrate\u002F10.jvm-dotnet\u002F06.aspnet-core",{"title":554,"path":555,"stem":556},"Blazor","\u002Fintegrate\u002Fjvm-dotnet\u002Fblazor","4.integrate\u002F10.jvm-dotnet\u002F07.blazor",{"title":558,"path":559,"stem":560},"Phoenix","\u002Fintegrate\u002Fjvm-dotnet\u002Fphoenix","4.integrate\u002F10.jvm-dotnet\u002F08.phoenix",{"title":562,"path":563,"stem":564},"Ruby on Rails","\u002Fintegrate\u002Fjvm-dotnet\u002Frails","4.integrate\u002F10.jvm-dotnet\u002F09.rails",{"title":566,"path":567,"stem":568},"HTMX host","\u002Fintegrate\u002Fjvm-dotnet\u002Fhtmx","4.integrate\u002F10.jvm-dotnet\u002F10.htmx",{"title":570,"icon":571,"path":572,"stem":573,"children":574,"page":26},"Desktop & mobile hosts","i-lucide-smartphone","\u002Fintegrate\u002Fhosts","4.integrate\u002F11.hosts",[575,579,583,587,591],{"title":576,"path":577,"stem":578},"Flutter","\u002Fintegrate\u002Fhosts\u002Fflutter","4.integrate\u002F11.hosts\u002F1.flutter",{"title":580,"path":581,"stem":582},"Electron","\u002Fintegrate\u002Fhosts\u002Felectron","4.integrate\u002F11.hosts\u002F2.electron",{"title":584,"path":585,"stem":586},"Tauri","\u002Fintegrate\u002Fhosts\u002Ftauri","4.integrate\u002F11.hosts\u002F3.tauri",{"title":588,"path":589,"stem":590},"Wails","\u002Fintegrate\u002Fhosts\u002Fwails","4.integrate\u002F11.hosts\u002F4.wails",{"title":592,"path":593,"stem":594},"Capacitor","\u002Fintegrate\u002Fhosts\u002Fcapacitor","4.integrate\u002F11.hosts\u002F5.capacitor",{"title":596,"icon":597,"path":598,"stem":599,"children":600,"page":26},"Architecture","i-lucide-cpu","\u002Farchitecture","5.architecture",[601,605,609,613,617,621],{"title":602,"path":603,"stem":604},"Document model","\u002Farchitecture\u002Fdocument-model","5.architecture\u002F1.document-model",{"title":606,"path":607,"stem":608},"SDK reference","\u002Farchitecture\u002Fsdk","5.architecture\u002F2.sdk",{"title":610,"path":611,"stem":612},"View runtime","\u002Farchitecture\u002Fview","5.architecture\u002F3.view",{"title":614,"path":615,"stem":616},"Authoring plugins","\u002Farchitecture\u002Fauthoring-plugins","5.architecture\u002F4.authoring-plugins",{"title":618,"path":619,"stem":620},"Mermaid","\u002Farchitecture\u002Fmermaid","5.architecture\u002F5.mermaid",{"title":622,"path":623,"stem":624},"Publishing packages","\u002Farchitecture\u002Fpublishing-packages","5.architecture\u002F6.publishing-packages",{"title":626,"path":627,"stem":628},"Changelog","\u002Fchangelog","9.changelog",{"id":630,"title":19,"body":631,"description":688,"extension":2417,"links":2418,"meta":2419,"navigation":771,"path":20,"seo":2420,"stem":21,"__hash__":2421},"docs\u002F1.getting-started\u002F3.editor-api.md",{"type":632,"value":633,"toc":2404},"minimark",[634,682,876,881,894,931,1175,1179,1226,1231,1235,1376,1380,1535,1540,1712,1771,1794,1801,1804,1963,1977,1981,1992,2095,2103,2107,2154,2335,2348,2354,2358,2400],[635,636,637,638,645,646,649,650,653,654,657,658,661,662,653,665,668,669,661,671,653,674,677,678,681],"p",{},"Single public API: ",[639,640,641],"strong",{},[642,643,644],"code",{},"Editor"," + ",[639,647,648],{},"plugins"," on a virtual document kernel. The kernel model is JSON (",[642,651,652],{},"getJSON"," \u002F ",[642,655,656],{},"setJSON","). For app integrate \u002F persist, prefer ",[639,659,660],{},"HTML"," (",[642,663,664],{},"getHTML",[642,666,667],{},"setHTML",") or ",[639,670,191],{},[642,672,673],{},"getMarkdown",[642,675,676],{},"setMarkdown",") — see ",[679,680,266],"a",{"href":273},".",[683,684,689],"pre",{"className":685,"code":686,"language":687,"meta":688,"style":688},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import 'on-codemerge\u002Findex.css';\nimport 'on-codemerge\u002Fpublic.css';\nimport { Editor, createDefaultPlugins, insertText } from 'on-codemerge';\n\nconst editor = new Editor(document.getElementById('editor')!, {\n  plugins: createDefaultPlugins(),\n});\neditor.run(insertText('Hello'));\n","ts","",[642,690,691,714,728,766,773,819,837,847],{"__ignoreMap":688},[692,693,696,700,704,708,711],"span",{"class":694,"line":695},"line",1,[692,697,699],{"class":698},"s7zQu","import",[692,701,703],{"class":702},"sMK4o"," '",[692,705,707],{"class":706},"sfazB","on-codemerge\u002Findex.css",[692,709,710],{"class":702},"'",[692,712,713],{"class":702},";\n",[692,715,717,719,721,724,726],{"class":694,"line":716},2,[692,718,699],{"class":698},[692,720,703],{"class":702},[692,722,723],{"class":706},"on-codemerge\u002Fpublic.css",[692,725,710],{"class":702},[692,727,713],{"class":702},[692,729,731,733,736,740,743,746,748,751,754,757,759,762,764],{"class":694,"line":730},3,[692,732,699],{"class":698},[692,734,735],{"class":702}," {",[692,737,739],{"class":738},"sTEyZ"," Editor",[692,741,742],{"class":702},",",[692,744,745],{"class":738}," createDefaultPlugins",[692,747,742],{"class":702},[692,749,750],{"class":738}," insertText",[692,752,753],{"class":702}," }",[692,755,756],{"class":698}," from",[692,758,703],{"class":702},[692,760,761],{"class":706},"on-codemerge",[692,763,710],{"class":702},[692,765,713],{"class":702},[692,767,769],{"class":694,"line":768},4,[692,770,772],{"emptyLinePlaceholder":771},true,"\n",[692,774,776,780,783,786,789,792,795,797,800,803,805,808,810,813,816],{"class":694,"line":775},5,[692,777,779],{"class":778},"spNyl","const",[692,781,782],{"class":738}," editor ",[692,784,785],{"class":702},"=",[692,787,788],{"class":702}," new",[692,790,739],{"class":791},"s2Zo4",[692,793,794],{"class":738},"(document",[692,796,681],{"class":702},[692,798,799],{"class":791},"getElementById",[692,801,802],{"class":738},"(",[692,804,710],{"class":702},[692,806,807],{"class":706},"editor",[692,809,710],{"class":702},[692,811,812],{"class":738},")",[692,814,815],{"class":702},"!,",[692,817,818],{"class":702}," {\n",[692,820,822,826,829,831,834],{"class":694,"line":821},6,[692,823,825],{"class":824},"swJcz","  plugins",[692,827,828],{"class":702},":",[692,830,745],{"class":791},[692,832,833],{"class":738},"()",[692,835,836],{"class":702},",\n",[692,838,840,843,845],{"class":694,"line":839},7,[692,841,842],{"class":702},"}",[692,844,812],{"class":738},[692,846,713],{"class":702},[692,848,850,852,854,857,859,862,864,866,869,871,874],{"class":694,"line":849},8,[692,851,807],{"class":738},[692,853,681],{"class":702},[692,855,856],{"class":791},"run",[692,858,802],{"class":738},[692,860,861],{"class":791},"insertText",[692,863,802],{"class":738},[692,865,710],{"class":702},[692,867,868],{"class":706},"Hello",[692,870,710],{"class":702},[692,872,873],{"class":738},"))",[692,875,713],{"class":702},[877,878,880],"h2",{"id":879},"getting-started","Getting Started",[635,882,883,884,887,888,890,891,681],{},"This page is the ",[639,885,886],{},"WYSIWYG"," Editor API. Launch snippets for all three products (WYSIWYG \u002F JSON \u002F Markdown): ",[679,889,15],{"href":16}," and the home ",[679,892,880],{"href":893},"\u002Fgetting-started\u002Fintroduction#getting-started",[895,896,897,903,912,918],"ol",{},[898,899,900,901],"li",{},"Install ",[642,902,761],{},[898,904,905,906,645,909],{},"Import ",[642,907,908],{},"index.css",[642,910,911],{},"public.css",[898,913,914,915],{},"Construct ",[642,916,917],{},"Editor(host, { plugins: [...] })",[898,919,920,921,653,923,925,926,653,928,930],{},"Load \u002F save with ",[642,922,667],{},[642,924,664],{}," (or Markdown). Use ",[642,927,652],{},[642,929,656],{}," when you need the kernel snapshot.",[683,932,934],{"className":685,"code":933,"language":687,"meta":688,"style":688},"import { Editor, ToolbarPlugin, AlignmentPlugin, ListsPlugin } from 'on-codemerge';\n\nconst editor = new Editor(host, {\n  plugins: [ToolbarPlugin(), AlignmentPlugin(), ListsPlugin()],\n});\n\neditor.setHTML(localStorage.getItem('doc-html') ?? '\u003Cp>\u003C\u002Fp>');\neditor.on('docChanged', () => {\n  localStorage.setItem('doc-html', editor.getHTML());\n});\n\neditor.command('bulletList');\n",[642,935,936,971,975,994,1023,1031,1035,1077,1105,1138,1147,1152],{"__ignoreMap":688},[692,937,938,940,942,944,946,949,951,954,956,959,961,963,965,967,969],{"class":694,"line":695},[692,939,699],{"class":698},[692,941,735],{"class":702},[692,943,739],{"class":738},[692,945,742],{"class":702},[692,947,948],{"class":738}," ToolbarPlugin",[692,950,742],{"class":702},[692,952,953],{"class":738}," AlignmentPlugin",[692,955,742],{"class":702},[692,957,958],{"class":738}," ListsPlugin",[692,960,753],{"class":702},[692,962,756],{"class":698},[692,964,703],{"class":702},[692,966,761],{"class":706},[692,968,710],{"class":702},[692,970,713],{"class":702},[692,972,973],{"class":694,"line":716},[692,974,772],{"emptyLinePlaceholder":771},[692,976,977,979,981,983,985,987,990,992],{"class":694,"line":730},[692,978,779],{"class":778},[692,980,782],{"class":738},[692,982,785],{"class":702},[692,984,788],{"class":702},[692,986,739],{"class":791},[692,988,989],{"class":738},"(host",[692,991,742],{"class":702},[692,993,818],{"class":702},[692,995,996,998,1000,1003,1006,1008,1010,1012,1014,1016,1018,1021],{"class":694,"line":768},[692,997,825],{"class":824},[692,999,828],{"class":702},[692,1001,1002],{"class":738}," [",[692,1004,1005],{"class":791},"ToolbarPlugin",[692,1007,833],{"class":738},[692,1009,742],{"class":702},[692,1011,953],{"class":791},[692,1013,833],{"class":738},[692,1015,742],{"class":702},[692,1017,958],{"class":791},[692,1019,1020],{"class":738},"()]",[692,1022,836],{"class":702},[692,1024,1025,1027,1029],{"class":694,"line":775},[692,1026,842],{"class":702},[692,1028,812],{"class":738},[692,1030,713],{"class":702},[692,1032,1033],{"class":694,"line":821},[692,1034,772],{"emptyLinePlaceholder":771},[692,1036,1037,1039,1041,1043,1046,1048,1051,1053,1055,1058,1060,1063,1066,1068,1071,1073,1075],{"class":694,"line":839},[692,1038,807],{"class":738},[692,1040,681],{"class":702},[692,1042,667],{"class":791},[692,1044,1045],{"class":738},"(localStorage",[692,1047,681],{"class":702},[692,1049,1050],{"class":791},"getItem",[692,1052,802],{"class":738},[692,1054,710],{"class":702},[692,1056,1057],{"class":706},"doc-html",[692,1059,710],{"class":702},[692,1061,1062],{"class":738},") ",[692,1064,1065],{"class":702},"??",[692,1067,703],{"class":702},[692,1069,1070],{"class":706},"\u003Cp>\u003C\u002Fp>",[692,1072,710],{"class":702},[692,1074,812],{"class":738},[692,1076,713],{"class":702},[692,1078,1079,1081,1083,1086,1088,1090,1093,1095,1097,1100,1103],{"class":694,"line":849},[692,1080,807],{"class":738},[692,1082,681],{"class":702},[692,1084,1085],{"class":791},"on",[692,1087,802],{"class":738},[692,1089,710],{"class":702},[692,1091,1092],{"class":706},"docChanged",[692,1094,710],{"class":702},[692,1096,742],{"class":702},[692,1098,1099],{"class":702}," ()",[692,1101,1102],{"class":778}," =>",[692,1104,818],{"class":702},[692,1106,1108,1111,1113,1116,1118,1120,1122,1124,1126,1129,1131,1133,1136],{"class":694,"line":1107},9,[692,1109,1110],{"class":738},"  localStorage",[692,1112,681],{"class":702},[692,1114,1115],{"class":791},"setItem",[692,1117,802],{"class":824},[692,1119,710],{"class":702},[692,1121,1057],{"class":706},[692,1123,710],{"class":702},[692,1125,742],{"class":702},[692,1127,1128],{"class":738}," editor",[692,1130,681],{"class":702},[692,1132,664],{"class":791},[692,1134,1135],{"class":824},"())",[692,1137,713],{"class":702},[692,1139,1141,1143,1145],{"class":694,"line":1140},10,[692,1142,842],{"class":702},[692,1144,812],{"class":738},[692,1146,713],{"class":702},[692,1148,1150],{"class":694,"line":1149},11,[692,1151,772],{"emptyLinePlaceholder":771},[692,1153,1155,1157,1159,1162,1164,1166,1169,1171,1173],{"class":694,"line":1154},12,[692,1156,807],{"class":738},[692,1158,681],{"class":702},[692,1160,1161],{"class":791},"command",[692,1163,802],{"class":738},[692,1165,710],{"class":702},[692,1167,1168],{"class":706},"bulletList",[692,1170,710],{"class":702},[692,1172,812],{"class":738},[692,1174,713],{"class":702},[877,1176,1178],{"id":1177},"core-owns-ui","Core owns UI",[1180,1181,1182,1192,1202,1208,1214],"ul",{},[898,1183,1184,1185,1188,1189,812],{},"Toolbar ",[639,1186,1187],{},"panel"," is created by the editor (",[642,1190,1191],{},"editor.toolbar.add",[898,1193,1194,1195,1198,1199],{},"Popups: ",[642,1196,1197],{},"editor.ui.popup"," \u002F plugin ",[642,1200,1201],{},"ctx.popup",[898,1203,1204,1205],{},"Context menus: ",[642,1206,1207],{},"editor.ui.menu",[898,1209,1210,1211],{},"Toasts: ",[642,1212,1213],{},"editor.notify(...)",[898,1215,1216,1217,653,1220,653,1223],{},"i18n: ",[642,1218,1219],{},"editor.t",[642,1221,1222],{},"editor.setLocale",[642,1224,1225],{},"editor.registerLocale",[635,1227,1228,1229,681],{},"Plugins never own the panel or reinvent modals. Authoring surface: ",[679,1230,606],{"href":607},[877,1232,1234],{"id":1233},"options","Options",[1236,1237,1238,1251],"table",{},[1239,1240,1241],"thead",{},[1242,1243,1244,1248],"tr",{},[1245,1246,1247],"th",{},"Option",[1245,1249,1250],{},"Role",[1252,1253,1254,1270,1284,1296,1312,1340,1359],"tbody",{},[1242,1255,1256,1261],{},[1257,1258,1259],"td",{},[642,1260,648],{},[1257,1262,1263,1264,653,1267,812],{},"Plugin factories (",[642,1265,1266],{},"XPlugin()",[642,1268,1269],{},"createDefaultPlugins()",[1242,1271,1272,1277],{},[1257,1273,1274],{},[642,1275,1276],{},"doc",[1257,1278,1279,1280,1283],{},"Initial ",[642,1281,1282],{},"DocNode"," \u002F JSON doc",[1242,1285,1286,1291],{},[1257,1287,1288],{},[642,1289,1290],{},"history",[1257,1292,1293],{},[642,1294,1295],{},"{ maxDepth?, mergeWindowMs? }",[1242,1297,1298,1309],{},[1257,1299,1300,653,1303,653,1306],{},[642,1301,1302],{},"locale",[642,1304,1305],{},"fallbackLocale",[642,1307,1308],{},"messages",[1257,1310,1311],{},"i18n bootstrap",[1242,1313,1314,1319],{},[1257,1315,1316],{},[642,1317,1318],{},"colorScheme",[1257,1320,1321,1324,1325,1328,1329,1332,1333,1336,1337,812],{},[642,1322,1323],{},"host"," (default — leave ",[642,1326,1327],{},"\u003Chtml class=\"dark\">"," alone) or ",[642,1330,1331],{},"system"," (sync ",[642,1334,1335],{},"prefers-color-scheme"," to ",[642,1338,1339],{},"documentElement",[1242,1341,1342,1347],{},[1257,1343,1344],{},[642,1345,1346],{},"chrome",[1257,1348,1349,1352,1353,1356,1357],{},[642,1350,1351],{},"bar"," (default sticky chrome) or ",[642,1354,1355],{},"page"," (popup toolbar) — see ",[679,1358,302],{"href":303},[1242,1360,1361,1366],{},[1257,1362,1363],{},[642,1364,1365],{},"toolbar",[1257,1367,1368,1371,1372,1375],{},[642,1369,1370],{},"{ menus?: ToolbarMenuDef[] }"," — overflow dropdowns. Omit → Insert \u002F Review \u002F Tools. ",[642,1373,1374],{},"{ menus: [] }"," → flat bar",[877,1377,1379],{"id":1378},"document-api","Document API",[1236,1381,1382,1391],{},[1239,1383,1384],{},[1242,1385,1386,1389],{},[1245,1387,1388],{},"Method",[1245,1390,1250],{},[1252,1392,1393,1406,1423,1436,1450,1466,1482,1492,1502,1512,1525],{},[1242,1394,1395,1403],{},[1257,1396,1397,653,1400],{},[642,1398,1399],{},"getJSON()",[642,1401,1402],{},"setJSON(doc)",[1257,1404,1405],{},"Kernel document (collab \u002F advanced sync)",[1242,1407,1408,1416],{},[1257,1409,1410,653,1413],{},[642,1411,1412],{},"getHTML()",[642,1414,1415],{},"setHTML(html)",[1257,1417,1418,1419,1422],{},"Usual app load\u002Fsave (semantic HTML; atoms as empty ",[642,1420,1421],{},"data-node"," shells)",[1242,1424,1425,1433],{},[1257,1426,1427,653,1430],{},[642,1428,1429],{},"getMarkdown()",[642,1431,1432],{},"setMarkdown(md)",[1257,1434,1435],{},"Markdown load\u002Fsave (CommonMark\u002FGFM subset)",[1242,1437,1438,1443],{},[1257,1439,1440],{},[642,1441,1442],{},"getPublishedHTML()",[1257,1444,1445,1446,1449],{},"Hydrated HTML for published pages (plugin ",[642,1447,1448],{},"publish.render"," fills atoms)",[1242,1451,1452,1457],{},[1257,1453,1454],{},[642,1455,1456],{},"getPublishedJS()",[1257,1458,1459,1462,1463],{},[642,1460,1461],{},"dist\u002Fpublic.js"," href when runtimes are needed; otherwise ",[642,1464,1465],{},"null",[1242,1467,1468,1473],{},[1257,1469,1470],{},[642,1471,1472],{},"getPublishedDocument()",[1257,1474,1475,1476,1478,1479,812],{},"Standalone HTML document (",[642,1477,911],{}," + optional ",[642,1480,1481],{},"public.js",[1242,1483,1484,1489],{},[1257,1485,1486],{},[642,1487,1488],{},"run(command)",[1257,1490,1491],{},"Execute a command function",[1242,1493,1494,1499],{},[1257,1495,1496],{},[642,1497,1498],{},"command(name, …args)",[1257,1500,1501],{},"Named plugin\u002Fcore command",[1242,1503,1504,1509],{},[1257,1505,1506],{},[642,1507,1508],{},"use(plugin)",[1257,1510,1511],{},"Register a plugin after construct",[1242,1513,1514,1519],{},[1257,1515,1516],{},[642,1517,1518],{},"on('docChanged' | 'selectionChanged', cb)",[1257,1520,1521,1522],{},"Subscriptions — callback receives editor ",[639,1523,1524],{},"state",[1242,1526,1527,1532],{},[1257,1528,1529],{},[642,1530,1531],{},"destroy()",[1257,1533,1534],{},"Tear down editor + plugins",[1536,1537,1539],"h3",{"id":1538},"boundaries-json-vs-html-vs-markdown-vs-published","Boundaries: JSON vs HTML vs Markdown vs published",[683,1541,1543],{"className":685,"code":1542,"language":687,"meta":688,"style":688},"const html = editor.getHTML();\neditor.setHTML(html);\n\nconst md = editor.getMarkdown();\neditor.setMarkdown('# Title\\n\\nHello **world**');\n\nconst json = editor.getJSON(); \u002F\u002F optional kernel snapshot\neditor.setJSON(json);\n\nconst published = editor.getPublishedHTML();\nconst page = editor.getPublishedDocument();\n",[642,1544,1545,1564,1577,1581,1600,1627,1631,1655,1668,1672,1692],{"__ignoreMap":688},[692,1546,1547,1549,1552,1554,1556,1558,1560,1562],{"class":694,"line":695},[692,1548,779],{"class":778},[692,1550,1551],{"class":738}," html ",[692,1553,785],{"class":702},[692,1555,1128],{"class":738},[692,1557,681],{"class":702},[692,1559,664],{"class":791},[692,1561,833],{"class":738},[692,1563,713],{"class":702},[692,1565,1566,1568,1570,1572,1575],{"class":694,"line":716},[692,1567,807],{"class":738},[692,1569,681],{"class":702},[692,1571,667],{"class":791},[692,1573,1574],{"class":738},"(html)",[692,1576,713],{"class":702},[692,1578,1579],{"class":694,"line":730},[692,1580,772],{"emptyLinePlaceholder":771},[692,1582,1583,1585,1588,1590,1592,1594,1596,1598],{"class":694,"line":768},[692,1584,779],{"class":778},[692,1586,1587],{"class":738}," md ",[692,1589,785],{"class":702},[692,1591,1128],{"class":738},[692,1593,681],{"class":702},[692,1595,673],{"class":791},[692,1597,833],{"class":738},[692,1599,713],{"class":702},[692,1601,1602,1604,1606,1608,1610,1612,1615,1618,1621,1623,1625],{"class":694,"line":775},[692,1603,807],{"class":738},[692,1605,681],{"class":702},[692,1607,676],{"class":791},[692,1609,802],{"class":738},[692,1611,710],{"class":702},[692,1613,1614],{"class":706},"# Title",[692,1616,1617],{"class":738},"\\n\\n",[692,1619,1620],{"class":706},"Hello **world**",[692,1622,710],{"class":702},[692,1624,812],{"class":738},[692,1626,713],{"class":702},[692,1628,1629],{"class":694,"line":821},[692,1630,772],{"emptyLinePlaceholder":771},[692,1632,1633,1635,1638,1640,1642,1644,1646,1648,1651],{"class":694,"line":839},[692,1634,779],{"class":778},[692,1636,1637],{"class":738}," json ",[692,1639,785],{"class":702},[692,1641,1128],{"class":738},[692,1643,681],{"class":702},[692,1645,652],{"class":791},[692,1647,833],{"class":738},[692,1649,1650],{"class":702},";",[692,1652,1654],{"class":1653},"sHwdD"," \u002F\u002F optional kernel snapshot\n",[692,1656,1657,1659,1661,1663,1666],{"class":694,"line":849},[692,1658,807],{"class":738},[692,1660,681],{"class":702},[692,1662,656],{"class":791},[692,1664,1665],{"class":738},"(json)",[692,1667,713],{"class":702},[692,1669,1670],{"class":694,"line":1107},[692,1671,772],{"emptyLinePlaceholder":771},[692,1673,1674,1676,1679,1681,1683,1685,1688,1690],{"class":694,"line":1140},[692,1675,779],{"class":778},[692,1677,1678],{"class":738}," published ",[692,1680,785],{"class":702},[692,1682,1128],{"class":738},[692,1684,681],{"class":702},[692,1686,1687],{"class":791},"getPublishedHTML",[692,1689,833],{"class":738},[692,1691,713],{"class":702},[692,1693,1694,1696,1699,1701,1703,1705,1708,1710],{"class":694,"line":1149},[692,1695,779],{"class":778},[692,1697,1698],{"class":738}," page ",[692,1700,785],{"class":702},[692,1702,1128],{"class":738},[692,1704,681],{"class":702},[692,1706,1707],{"class":791},"getPublishedDocument",[692,1709,833],{"class":738},[692,1711,713],{"class":702},[1236,1713,1714,1724],{},[1239,1715,1716],{},[1242,1717,1718,1721],{},[1245,1719,1720],{},"Format",[1245,1722,1723],{},"Use when",[1252,1725,1726,1737,1751,1758],{},[1242,1727,1728,1734],{},[1257,1729,1730,653,1732],{},[642,1731,664],{},[642,1733,667],{},[1257,1735,1736],{},"Default app persistence, paste, SSR shells",[1242,1738,1739,1741],{},[1257,1740,191],{},[1257,1742,1743,1744,1747,1748],{},"Notes apps, CMS that store MD, ",[642,1745,1746],{},"ExportPlugin"," → ",[642,1749,1750],{},".md",[1242,1752,1753,1755],{},[1257,1754,187],{},[1257,1756,1757],{},"Collab, advanced sync, undo internals",[1242,1759,1760,1765],{},[1257,1761,1762],{},[642,1763,1764],{},"getPublished*",[1257,1766,1767,1768,1770],{},"Public pages, export HTML\u002FPDF, live preview with ",[642,1769,1481],{}," runtimes",[635,1772,1773,1774,1777,1778,1781,1782,1784,1785,653,1788,1791,1792,681],{},"Atoms (timer, calendar, …) stay as ",[642,1775,1776],{},"data-node=\"…\""," + attrs in ",[639,1779,1780],{},"semantic"," HTML. Published HTML runs each plugin’s ",[642,1783,1448],{}," and may set ",[642,1786,1787],{},"data-ocm-runtime",[642,1789,1790],{},"data-ocm-config"," for ",[642,1793,1461],{},[1536,1795,1797,1798,1800],{"id":1796},"headless-io-no-editor-instance","Headless IO (no ",[642,1799,644],{}," instance)",[635,1802,1803],{},"Same adapters the editor uses, exported from the package root:",[683,1805,1807],{"className":685,"code":1806,"language":687,"meta":688,"style":688},"import {\n  importHTML,\n  exportHTML,\n  exportPublishedHTML,\n  importMarkdown,\n  exportMarkdown,\n  docToMarkdown,\n  markdownToDoc,\n  sanitizeHTML,\n  serializeJSON,\n  parseJSON,\n} from 'on-codemerge';\n\nconst doc = importMarkdown('# Hi');\nconst md = exportMarkdown(doc);\nconst html = exportHTML(doc);\n",[642,1808,1809,1815,1822,1829,1836,1843,1850,1857,1864,1871,1878,1885,1899,1904,1930,1947],{"__ignoreMap":688},[692,1810,1811,1813],{"class":694,"line":695},[692,1812,699],{"class":698},[692,1814,818],{"class":702},[692,1816,1817,1820],{"class":694,"line":716},[692,1818,1819],{"class":738},"  importHTML",[692,1821,836],{"class":702},[692,1823,1824,1827],{"class":694,"line":730},[692,1825,1826],{"class":738},"  exportHTML",[692,1828,836],{"class":702},[692,1830,1831,1834],{"class":694,"line":768},[692,1832,1833],{"class":738},"  exportPublishedHTML",[692,1835,836],{"class":702},[692,1837,1838,1841],{"class":694,"line":775},[692,1839,1840],{"class":738},"  importMarkdown",[692,1842,836],{"class":702},[692,1844,1845,1848],{"class":694,"line":821},[692,1846,1847],{"class":738},"  exportMarkdown",[692,1849,836],{"class":702},[692,1851,1852,1855],{"class":694,"line":839},[692,1853,1854],{"class":738},"  docToMarkdown",[692,1856,836],{"class":702},[692,1858,1859,1862],{"class":694,"line":849},[692,1860,1861],{"class":738},"  markdownToDoc",[692,1863,836],{"class":702},[692,1865,1866,1869],{"class":694,"line":1107},[692,1867,1868],{"class":738},"  sanitizeHTML",[692,1870,836],{"class":702},[692,1872,1873,1876],{"class":694,"line":1140},[692,1874,1875],{"class":738},"  serializeJSON",[692,1877,836],{"class":702},[692,1879,1880,1883],{"class":694,"line":1149},[692,1881,1882],{"class":738},"  parseJSON",[692,1884,836],{"class":702},[692,1886,1887,1889,1891,1893,1895,1897],{"class":694,"line":1154},[692,1888,842],{"class":702},[692,1890,756],{"class":698},[692,1892,703],{"class":702},[692,1894,761],{"class":706},[692,1896,710],{"class":702},[692,1898,713],{"class":702},[692,1900,1902],{"class":694,"line":1901},13,[692,1903,772],{"emptyLinePlaceholder":771},[692,1905,1907,1909,1912,1914,1917,1919,1921,1924,1926,1928],{"class":694,"line":1906},14,[692,1908,779],{"class":778},[692,1910,1911],{"class":738}," doc ",[692,1913,785],{"class":702},[692,1915,1916],{"class":791}," importMarkdown",[692,1918,802],{"class":738},[692,1920,710],{"class":702},[692,1922,1923],{"class":706},"# Hi",[692,1925,710],{"class":702},[692,1927,812],{"class":738},[692,1929,713],{"class":702},[692,1931,1933,1935,1937,1939,1942,1945],{"class":694,"line":1932},15,[692,1934,779],{"class":778},[692,1936,1587],{"class":738},[692,1938,785],{"class":702},[692,1940,1941],{"class":791}," exportMarkdown",[692,1943,1944],{"class":738},"(doc)",[692,1946,713],{"class":702},[692,1948,1950,1952,1954,1956,1959,1961],{"class":694,"line":1949},16,[692,1951,779],{"class":778},[692,1953,1551],{"class":738},[692,1955,785],{"class":702},[692,1957,1958],{"class":791}," exportHTML",[692,1960,1944],{"class":738},[692,1962,713],{"class":702},[635,1964,1965,1968,1969,1972,1973,1976],{},[642,1966,1967],{},"exportPublishedHTML(doc, publishers)"," needs the publish-node map from plugins (",[642,1970,1971],{},"collectPublishNodes"," in the SDK) — prefer ",[642,1974,1975],{},"editor.getPublishedHTML()"," when an editor exists.",[877,1978,1980],{"id":1979},"plugin-system","Plugin System",[635,1982,1983,1984,1987,1988,1991],{},"Plugins are ",[639,1985,1986],{},"factory functions"," that return a sealed plugin descriptor (",[642,1989,1990],{},"definePlugin","). Pass them in the constructor:",[683,1993,1995],{"className":685,"code":1994,"language":687,"meta":688,"style":688},"import { Editor } from 'on-codemerge';\nimport { TablePlugin, ImagePlugin } from 'on-codemerge\u002Fplugins';\n\nconst editor = new Editor(host, {\n  plugins: [TablePlugin(), ImagePlugin()],\n});\n",[642,1996,1997,2017,2044,2048,2066,2087],{"__ignoreMap":688},[692,1998,1999,2001,2003,2005,2007,2009,2011,2013,2015],{"class":694,"line":695},[692,2000,699],{"class":698},[692,2002,735],{"class":702},[692,2004,739],{"class":738},[692,2006,753],{"class":702},[692,2008,756],{"class":698},[692,2010,703],{"class":702},[692,2012,761],{"class":706},[692,2014,710],{"class":702},[692,2016,713],{"class":702},[692,2018,2019,2021,2023,2026,2028,2031,2033,2035,2037,2040,2042],{"class":694,"line":716},[692,2020,699],{"class":698},[692,2022,735],{"class":702},[692,2024,2025],{"class":738}," TablePlugin",[692,2027,742],{"class":702},[692,2029,2030],{"class":738}," ImagePlugin",[692,2032,753],{"class":702},[692,2034,756],{"class":698},[692,2036,703],{"class":702},[692,2038,2039],{"class":706},"on-codemerge\u002Fplugins",[692,2041,710],{"class":702},[692,2043,713],{"class":702},[692,2045,2046],{"class":694,"line":730},[692,2047,772],{"emptyLinePlaceholder":771},[692,2049,2050,2052,2054,2056,2058,2060,2062,2064],{"class":694,"line":768},[692,2051,779],{"class":778},[692,2053,782],{"class":738},[692,2055,785],{"class":702},[692,2057,788],{"class":702},[692,2059,739],{"class":791},[692,2061,989],{"class":738},[692,2063,742],{"class":702},[692,2065,818],{"class":702},[692,2067,2068,2070,2072,2074,2077,2079,2081,2083,2085],{"class":694,"line":775},[692,2069,825],{"class":824},[692,2071,828],{"class":702},[692,2073,1002],{"class":738},[692,2075,2076],{"class":791},"TablePlugin",[692,2078,833],{"class":738},[692,2080,742],{"class":702},[692,2082,2030],{"class":791},[692,2084,1020],{"class":738},[692,2086,836],{"class":702},[692,2088,2089,2091,2093],{"class":694,"line":821},[692,2090,842],{"class":702},[692,2092,812],{"class":738},[692,2094,713],{"class":702},[635,2096,2097,2098,2100,2101,681],{},"To author a plugin, see ",[679,2099,614],{"href":615}," and the ",[679,2102,606],{"href":607},[877,2104,2106],{"id":2105},"localization","Localization",[635,2108,2109,2110,2113,2114,2122,2123,2126,2127,2130,2131,2134,2135,2138,2139,653,2142,2145,2146,2149,2150,2153],{},"UI copy uses ",[639,2111,2112],{},"semantic nested keys"," via ",[679,2115,2119],{"href":2116,"rel":2117},"https:\u002F\u002Fgithub.com\u002Fs00d\u002Fnuxt-i18n-micro",[2118],"nofollow",[642,2120,2121],{},"@i18n-micro\u002Fruntime",". Editor core ships shared namespaces (",[642,2124,2125],{},"common.*",", ",[642,2128,2129],{},"toolbar.*",", …) under ",[642,2132,2133],{},"packages\u002Feditor\u002Fsrc\u002Fi18n\u002Flocales\u002F",". Large plugins ship their own packs under ",[642,2136,2137],{},"plugins\u002F\u003CName>Plugin\u002Fi18n\u002Flocales\u002F"," and merge them via ",[642,2140,2141],{},"wirePluginLocales",[642,2143,2144],{},"registerLocale"," — only the ",[639,2147,2148],{},"current"," non-",[642,2151,2152],{},"en"," locale chunk loads asynchronously.",[683,2155,2157],{"className":685,"code":2156,"language":687,"meta":688,"style":688},"await editor.setLocale('ru');\nawait editor.setLocale('en'); \u002F\u002F same API\neditor.t('toolbar.bold');\neditor.t('greeting', { name: 'Ada' });\neditor.listLocales();\n\u002F\u002F Merge overlay (does not skip core locale load):\neditor.registerLocale('ru', { myPlugin: { title: 'Заголовок' } });\n",[642,2158,2159,2184,2209,2231,2270,2283,2288],{"__ignoreMap":688},[692,2160,2161,2164,2166,2168,2171,2173,2175,2178,2180,2182],{"class":694,"line":695},[692,2162,2163],{"class":698},"await",[692,2165,1128],{"class":738},[692,2167,681],{"class":702},[692,2169,2170],{"class":791},"setLocale",[692,2172,802],{"class":738},[692,2174,710],{"class":702},[692,2176,2177],{"class":706},"ru",[692,2179,710],{"class":702},[692,2181,812],{"class":738},[692,2183,713],{"class":702},[692,2185,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206],{"class":694,"line":716},[692,2187,2163],{"class":698},[692,2189,1128],{"class":738},[692,2191,681],{"class":702},[692,2193,2170],{"class":791},[692,2195,802],{"class":738},[692,2197,710],{"class":702},[692,2199,2152],{"class":706},[692,2201,710],{"class":702},[692,2203,812],{"class":738},[692,2205,1650],{"class":702},[692,2207,2208],{"class":1653}," \u002F\u002F same API\n",[692,2210,2211,2213,2215,2218,2220,2222,2225,2227,2229],{"class":694,"line":730},[692,2212,807],{"class":738},[692,2214,681],{"class":702},[692,2216,2217],{"class":791},"t",[692,2219,802],{"class":738},[692,2221,710],{"class":702},[692,2223,2224],{"class":706},"toolbar.bold",[692,2226,710],{"class":702},[692,2228,812],{"class":738},[692,2230,713],{"class":702},[692,2232,2233,2235,2237,2239,2241,2243,2246,2248,2250,2252,2255,2257,2259,2262,2264,2266,2268],{"class":694,"line":768},[692,2234,807],{"class":738},[692,2236,681],{"class":702},[692,2238,2217],{"class":791},[692,2240,802],{"class":738},[692,2242,710],{"class":702},[692,2244,2245],{"class":706},"greeting",[692,2247,710],{"class":702},[692,2249,742],{"class":702},[692,2251,735],{"class":702},[692,2253,2254],{"class":824}," name",[692,2256,828],{"class":702},[692,2258,703],{"class":702},[692,2260,2261],{"class":706},"Ada",[692,2263,710],{"class":702},[692,2265,753],{"class":702},[692,2267,812],{"class":738},[692,2269,713],{"class":702},[692,2271,2272,2274,2276,2279,2281],{"class":694,"line":775},[692,2273,807],{"class":738},[692,2275,681],{"class":702},[692,2277,2278],{"class":791},"listLocales",[692,2280,833],{"class":738},[692,2282,713],{"class":702},[692,2284,2285],{"class":694,"line":821},[692,2286,2287],{"class":1653},"\u002F\u002F Merge overlay (does not skip core locale load):\n",[692,2289,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2311,2313,2315,2318,2320,2322,2325,2327,2329,2331,2333],{"class":694,"line":839},[692,2291,807],{"class":738},[692,2293,681],{"class":702},[692,2295,2144],{"class":791},[692,2297,802],{"class":738},[692,2299,710],{"class":702},[692,2301,2177],{"class":706},[692,2303,710],{"class":702},[692,2305,742],{"class":702},[692,2307,735],{"class":702},[692,2309,2310],{"class":824}," myPlugin",[692,2312,828],{"class":702},[692,2314,735],{"class":702},[692,2316,2317],{"class":824}," title",[692,2319,828],{"class":702},[692,2321,703],{"class":702},[692,2323,2324],{"class":706},"Заголовок",[692,2326,710],{"class":702},[692,2328,753],{"class":702},[692,2330,753],{"class":702},[692,2332,812],{"class":738},[692,2334,713],{"class":702},[635,2336,2337,2339,2340,2342,2343,661,2345,2347],{},[642,2338,2144],{}," merges messages without marking the locale as base-loaded. Plugin packs register an overlay loader so ",[642,2341,2170],{}," awaits them after the core JSON. Missing keys fall back to ",[642,2344,1305],{},[642,2346,2152],{},"), then the key string.",[635,2349,2350,2353],{},[642,2351,2352],{},"LanguagePlugin"," is optional UI for picking a language; loading does not depend on it.",[877,2355,2357],{"id":2356},"related","Related",[1180,2359,2360,2369,2374,2378,2382,2387,2394],{},[898,2361,2362,2364,2365,2368],{},[679,2363,606],{"href":607}," — ",[642,2366,2367],{},"on-codemerge\u002Fsdk"," public surface",[898,2370,2371,2373],{},[679,2372,614],{"href":615}," — definePlugin, toolbar menus, portals, publish",[898,2375,2376],{},[679,2377,602],{"href":603},[898,2379,2380],{},[679,2381,23],{"href":24},[898,2383,2384,2386],{},[679,2385,266],{"href":273}," — framework-specific setups",[898,2388,2389,2364,2391,2393],{},[679,2390,302],{"href":303},[642,2392,1346],{}," + hosting \u002F portals",[898,2395,2396,2399],{},[679,2397,2398],{"href":243},"Export plugin"," — UI menu over the same boundaries",[2401,2402,2403],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":688,"searchDepth":716,"depth":730,"links":2405},[2406,2407,2408,2409,2414,2415,2416],{"id":879,"depth":716,"text":880},{"id":1177,"depth":716,"text":1178},{"id":1233,"depth":716,"text":1234},{"id":1378,"depth":716,"text":1379,"children":2410},[2411,2412],{"id":1538,"depth":730,"text":1539},{"id":1796,"depth":730,"text":2413},"Headless IO (no Editor instance)",{"id":1979,"depth":716,"text":1980},{"id":2105,"depth":716,"text":2106},{"id":2356,"depth":716,"text":2357},"md",null,{},{"title":19,"description":688},"CgZBsxYoBPeT-AyB7PKK_ye-F6e3M-XJfIfJB1dLryY",[2423,2425],{"title":15,"path":16,"stem":17,"description":2424,"children":-1},"On-Codemerge ships eight Editor products on the same kernel + SDK. Pick by document shape.",{"title":23,"path":24,"stem":25,"description":2426,"children":-1},"on-codemerge 2.x rewrites the editor around a virtual JSON document (on-codemerge\u002Fkernel), an SDK surface (on-codemerge\u002Fsdk), and plugins that never own DOM.",1794129103071]