[{"data":1,"prerenderedAt":912},["ShallowReactive",2],{"quirekit-doc:\u002Fplugins\u002Fcustom":3,"quirekit-source:core\u002Fcreate.ts":378,"mdc-1xjqp4-key":379},{"id":4,"title":5,"body":6,"description":368,"extension":369,"keywords":370,"locale":371,"meta":372,"navigation":84,"order":114,"path":373,"section":374,"seo":375,"stem":376,"__hash__":377},"docs\u002Fplugins\u002Fcustom.zh-CN.md","自定义插件",{"type":7,"value":8,"toc":362},"minimark",[9,19,26,34,39,50,192,206,212,216,223,297,315,318,321,325,328,331,342,346,358],[10,11,12,13,18],"p",{},"适用范围：本页定义共享 Core 行为；Classic、Block 均可在 extensions 中接入，但需确保依赖命令已安装，并验证所选 View。产品控件使用各自的适配合同，见",[14,15,17],"a",{"href":16},"\u002Fplugins\u002Fcompatibility","编辑器接入方式","。",[10,20,21,22,18],{},"假设你希望用户按一个快捷键，就能给当前文字加粗。这里不需要新增文档结构，只需要把按键接到已有命令上。这样的功能使用 ",[23,24,25],"code",{},"Extension",[10,27,28,29,33],{},"本章沿用",[14,30,32],{"href":31},"\u002Fguide\u002Fquick-start","快速开始","的编辑器，在其中加入一个自己编写的快捷键扩展。",[35,36,38],"h2",{"id":37},"_1-定义快捷键","1. 定义快捷键",[10,40,41,42,45,46,49],{},"新建 ",[23,43,44],{},"shortcuts.ts","，通过 ",[23,47,48],{},"addKeyboardShortcuts()"," 返回“按键 → 处理函数”的对应关系：",[51,52,57],"pre",{"className":53,"code":54,"filename":44,"language":55,"meta":56,"style":56},"language-ts shiki shiki-themes github-light github-light github-dark","import { Extension } from '@quirekit\u002Fcore'\n\nexport const writingShortcuts = Extension.create({\n  name: 'writingShortcuts',\n  addKeyboardShortcuts() {\n    return {\n      'Mod-Shift-b': () => this.editor?.commands.toggleBold() ?? false,\n    }\n  },\n})\n","ts","",[23,58,59,79,86,112,124,133,142,174,180,186],{"__ignoreMap":56},[60,61,64,68,72,75],"span",{"class":62,"line":63},"line",1,[60,65,67],{"class":66},"sDD9d","import",[60,69,71],{"class":70},"sVPnS"," { Extension } ",[60,73,74],{"class":66},"from",[60,76,78],{"class":77},"s-HEn"," '@quirekit\u002Fcore'\n",[60,80,82],{"class":62,"line":81},2,[60,83,85],{"emptyLinePlaceholder":84},true,"\n",[60,87,89,92,95,99,102,105,109],{"class":62,"line":88},3,[60,90,91],{"class":66},"export",[60,93,94],{"class":66}," const",[60,96,98],{"class":97},"sUNQB"," writingShortcuts",[60,100,101],{"class":66}," =",[60,103,104],{"class":70}," Extension.",[60,106,108],{"class":107},"sgQzM","create",[60,110,111],{"class":70},"({\n",[60,113,115,118,121],{"class":62,"line":114},4,[60,116,117],{"class":70},"  name: ",[60,119,120],{"class":77},"'writingShortcuts'",[60,122,123],{"class":70},",\n",[60,125,127,130],{"class":62,"line":126},5,[60,128,129],{"class":107},"  addKeyboardShortcuts",[60,131,132],{"class":70},"() {\n",[60,134,136,139],{"class":62,"line":135},6,[60,137,138],{"class":66},"    return",[60,140,141],{"class":70}," {\n",[60,143,145,148,151,154,157,160,163,166,169,172],{"class":62,"line":144},7,[60,146,147],{"class":77},"      'Mod-Shift-b'",[60,149,150],{"class":70},": () ",[60,152,153],{"class":66},"=>",[60,155,156],{"class":97}," this",[60,158,159],{"class":70},".editor?.commands.",[60,161,162],{"class":107},"toggleBold",[60,164,165],{"class":70},"() ",[60,167,168],{"class":66},"??",[60,170,171],{"class":97}," false",[60,173,123],{"class":70},[60,175,177],{"class":62,"line":176},8,[60,178,179],{"class":70},"    }\n",[60,181,183],{"class":62,"line":182},9,[60,184,185],{"class":70},"  },\n",[60,187,189],{"class":62,"line":188},10,[60,190,191],{"class":70},"})\n",[10,193,194,197,198,201,202,205],{},[23,195,196],{},"Mod"," 表示 macOS 的 Command，其他系统的 Ctrl。处理函数调用已有的 ",[23,199,200],{},"toggleBold()","；返回值告诉编辑器这次按键是否已处理。",[23,203,204],{},"false"," 表示没有处理，其他快捷键仍可继续尝试。",[10,207,208,211],{},[23,209,210],{},"name"," 是这个扩展在编辑器中的名称，不是 npm 包名。粗体能力来自 StarterKit；快捷键只负责触发它，不另建一份文字或撤销历史。",[35,213,215],{"id":214},"_2-加到编辑器中","2. 加到编辑器中",[10,217,218,219,222],{},"在创建 Editor 的文件中导入扩展，并加入原有的 ",[23,220,221],{},"extensions","：",[51,224,227],{"className":53,"code":225,"filename":226,"language":55,"meta":56,"style":56},"import { writingShortcuts } from '.\u002Fshortcuts'\n\nconst editor = new Editor({\n  element,\n  mode: 'dom',\n  extensions: [StarterKit, DomViewExtension, writingShortcuts],\n  content: '\u003Cp>选择文字，试试新的快捷键。\u003C\u002Fp>',\n})\n","创建编辑器时",[23,228,229,241,245,263,268,278,283,293],{"__ignoreMap":56},[60,230,231,233,236,238],{"class":62,"line":63},[60,232,67],{"class":66},[60,234,235],{"class":70}," { writingShortcuts } ",[60,237,74],{"class":66},[60,239,240],{"class":77}," '.\u002Fshortcuts'\n",[60,242,243],{"class":62,"line":81},[60,244,85],{"emptyLinePlaceholder":84},[60,246,247,250,253,255,258,261],{"class":62,"line":88},[60,248,249],{"class":66},"const",[60,251,252],{"class":97}," editor",[60,254,101],{"class":66},[60,256,257],{"class":66}," new",[60,259,260],{"class":107}," Editor",[60,262,111],{"class":70},[60,264,265],{"class":62,"line":114},[60,266,267],{"class":70},"  element,\n",[60,269,270,273,276],{"class":62,"line":126},[60,271,272],{"class":70},"  mode: ",[60,274,275],{"class":77},"'dom'",[60,277,123],{"class":70},[60,279,280],{"class":62,"line":135},[60,281,282],{"class":70},"  extensions: [StarterKit, DomViewExtension, writingShortcuts],\n",[60,284,285,288,291],{"class":62,"line":144},[60,286,287],{"class":70},"  content: ",[60,289,290],{"class":77},"'\u003Cp>选择文字，试试新的快捷键。\u003C\u002Fp>'",[60,292,123],{"class":70},[60,294,295],{"class":62,"line":176},[60,296,191],{"class":70},[10,298,299,300,303,304,303,307,310,311,314],{},"这里继续使用快速开始中导入的 ",[23,301,302],{},"Editor","、",[23,305,306],{},"StarterKit",[23,308,309],{},"DomViewExtension"," 和挂载元素 ",[23,312,313],{},"element","。只安装一次扩展即可；不需要再给宿主元素添加键盘监听。",[35,316,317],{"id":317},"实际效果",[10,319,320],{},"选中下方文字，按 macOS 的 Command+Shift+B，或其他系统的 Ctrl+Shift+B，然后撤销。按钮调用同一个粗体命令。",[322,323],"docs-demo",{"name":324},"core\u002Feditor",[10,326,327],{},"新增持久内容时使用 Node 或 Mark，并定义属性、解析与序列化。若需要 Canvas 或 DOCX，再分别提供对应贡献；行为插件不会自动让新节点获得所有后端支持。",[35,329,330],{"id":330},"完整文件参考",[10,332,333,334,337,338,341],{},"示例中，",[23,335,336],{},"core\u002Fshortcuts.ts"," 定义快捷键，",[23,339,340],{},"core\u002Fcreate.ts"," 负责创建并挂载编辑器。需要对照完整导入和初始内容时，再选择相应文件：",[343,344],"docs-recipe",{"name":345},"core\u002Fcreate",[10,347,348,349,353,354,18],{},"需要持久业务节点与多后端支持时，继续",[14,350,352],{"href":351},"\u002Fbuild\u002Fextension","完整内容扩展","；要增加功能区、侧栏和文件服务，继续",[14,355,357],{"href":356},"\u002Fbuild\u002Fproduct-plugin","产品插件",[359,360,361],"style",{},"html pre.shiki code .sDD9d, html code.shiki .sDD9d{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sgQzM, html code.shiki .sgQzM{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0}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 .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 .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);}",{"title":56,"searchDepth":81,"depth":81,"links":363},[364,365,366,367],{"id":37,"depth":81,"text":38},{"id":214,"depth":81,"text":215},{"id":317,"depth":81,"text":317},{"id":330,"depth":81,"text":330},"把自己的行为接到 Core，不另建编辑状态。","md",null,"zh-CN",{},"\u002Fplugins\u002Fcustom","内容与格式",{"title":5,"description":368},"plugins\u002Fcustom.zh-CN","JWLMvcZWAh66EWY6Z47ehMpo5KXaeZUZXqKiFWCXZ2I","import { Editor } from \"@quirekit\u002Fcore\";\nimport { StarterKit } from \"@quirekit\u002Fstarter-kit\";\nimport { DomViewExtension } from \"@quirekit\u002Fdom-view\";\nimport { writingShortcuts } from \".\u002Fshortcuts\";\n\n\u002F**\n * Mounts a minimal editor with the Tiptap-style Core API and an explicit native DOM view.\n * @param element - Browser-owned mount target.\n * @param locale - Language for initial sample copy only.\n * @returns The caller-owned editor; destroy it when its host unmounts.\n *\u002F\nexport function createExampleEditor(element: HTMLElement, locale: \"zh-CN\" | \"en\"): Editor {\n  return new Editor({\n    element,\n    mode: \"dom\",\n    extensions: [StarterKit, DomViewExtension, writingShortcuts],\n    content: { type: \"doc\", content: [\n      { type: \"heading\", attrs: { level: 2 }, content: [{ type: \"text\", text: locale === \"en\" ? \"Start with your words.\" : \"从你写下的文字开始。\" }] },\n      { type: \"paragraph\", content: [{ type: \"text\", text: locale === \"en\" ? \"Select some text, make it bold, or add a new paragraph. This is a real QuireKit Core editor.\" : \"选择一段文字，加粗，或另起一段。这里运行的是真实的 QuireKit Core 编辑器。\" }] },\n    ] },\n  });\n}\n",{"data":380,"body":381},{},{"type":382,"children":383},"root",[384,907],{"type":313,"tag":51,"props":385,"children":387},{"className":53,"code":386,"language":55,"meta":56,"style":56},"import { Editor } from \"@quirekit\u002Fcore\";\nimport { StarterKit } from \"@quirekit\u002Fstarter-kit\";\nimport { DomViewExtension } from \"@quirekit\u002Fdom-view\";\nimport { writingShortcuts } from \".\u002Fshortcuts\";\n\n\u002F**\n * Mounts a minimal editor with the Tiptap-style Core API and an explicit native DOM view.\n * @param element - Browser-owned mount target.\n * @param locale - Language for initial sample copy only.\n * @returns The caller-owned editor; destroy it when its host unmounts.\n *\u002F\nexport function createExampleEditor(element: HTMLElement, locale: \"zh-CN\" | \"en\"): Editor {\n  return new Editor({\n    element,\n    mode: \"dom\",\n    extensions: [StarterKit, DomViewExtension, writingShortcuts],\n    content: { type: \"doc\", content: [\n      { type: \"heading\", attrs: { level: 2 }, content: [{ type: \"text\", text: locale === \"en\" ? \"Start with your words.\" : \"从你写下的文字开始。\" }] },\n      { type: \"paragraph\", content: [{ type: \"text\", text: locale === \"en\" ? \"Select some text, make it bold, or add a new paragraph. This is a real QuireKit Core editor.\" : \"选择一段文字，加粗，或另起一段。这里运行的是真实的 QuireKit Core 编辑器。\" }] },\n    ] },\n  });\n}\n\n",[388],{"type":313,"tag":23,"props":389,"children":390},{"__ignoreMap":56},[391,421,446,471,495,502,511,519,542,563,580,589,674,695,704,722,731,750,824,880,889,898],{"type":313,"tag":60,"props":392,"children":393},{"class":62,"line":63},[394,400,406,410,416],{"type":313,"tag":60,"props":395,"children":397},{"style":396},"--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583",[398],{"type":399,"value":67},"text",{"type":313,"tag":60,"props":401,"children":403},{"style":402},"--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8",[404],{"type":399,"value":405}," { Editor } ",{"type":313,"tag":60,"props":407,"children":408},{"style":396},[409],{"type":399,"value":74},{"type":313,"tag":60,"props":411,"children":413},{"style":412},"--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF",[414],{"type":399,"value":415}," \"@quirekit\u002Fcore\"",{"type":313,"tag":60,"props":417,"children":418},{"style":402},[419],{"type":399,"value":420},";\n",{"type":313,"tag":60,"props":422,"children":423},{"class":62,"line":81},[424,428,433,437,442],{"type":313,"tag":60,"props":425,"children":426},{"style":396},[427],{"type":399,"value":67},{"type":313,"tag":60,"props":429,"children":430},{"style":402},[431],{"type":399,"value":432}," { StarterKit } ",{"type":313,"tag":60,"props":434,"children":435},{"style":396},[436],{"type":399,"value":74},{"type":313,"tag":60,"props":438,"children":439},{"style":412},[440],{"type":399,"value":441}," \"@quirekit\u002Fstarter-kit\"",{"type":313,"tag":60,"props":443,"children":444},{"style":402},[445],{"type":399,"value":420},{"type":313,"tag":60,"props":447,"children":448},{"class":62,"line":88},[449,453,458,462,467],{"type":313,"tag":60,"props":450,"children":451},{"style":396},[452],{"type":399,"value":67},{"type":313,"tag":60,"props":454,"children":455},{"style":402},[456],{"type":399,"value":457}," { DomViewExtension } ",{"type":313,"tag":60,"props":459,"children":460},{"style":396},[461],{"type":399,"value":74},{"type":313,"tag":60,"props":463,"children":464},{"style":412},[465],{"type":399,"value":466}," \"@quirekit\u002Fdom-view\"",{"type":313,"tag":60,"props":468,"children":469},{"style":402},[470],{"type":399,"value":420},{"type":313,"tag":60,"props":472,"children":473},{"class":62,"line":114},[474,478,482,486,491],{"type":313,"tag":60,"props":475,"children":476},{"style":396},[477],{"type":399,"value":67},{"type":313,"tag":60,"props":479,"children":480},{"style":402},[481],{"type":399,"value":235},{"type":313,"tag":60,"props":483,"children":484},{"style":396},[485],{"type":399,"value":74},{"type":313,"tag":60,"props":487,"children":488},{"style":412},[489],{"type":399,"value":490}," \".\u002Fshortcuts\"",{"type":313,"tag":60,"props":492,"children":493},{"style":402},[494],{"type":399,"value":420},{"type":313,"tag":60,"props":496,"children":497},{"class":62,"line":126},[498],{"type":313,"tag":60,"props":499,"children":500},{"emptyLinePlaceholder":84},[501],{"type":399,"value":85},{"type":313,"tag":60,"props":503,"children":504},{"class":62,"line":135},[505],{"type":313,"tag":60,"props":506,"children":508},{"style":507},"--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A737D",[509],{"type":399,"value":510},"\u002F**\n",{"type":313,"tag":60,"props":512,"children":513},{"class":62,"line":144},[514],{"type":313,"tag":60,"props":515,"children":516},{"style":507},[517],{"type":399,"value":518}," * Mounts a minimal editor with the Tiptap-style Core API and an explicit native DOM view.\n",{"type":313,"tag":60,"props":520,"children":521},{"class":62,"line":176},[522,527,532,537],{"type":313,"tag":60,"props":523,"children":524},{"style":507},[525],{"type":399,"value":526}," * ",{"type":313,"tag":60,"props":528,"children":529},{"style":396},[530],{"type":399,"value":531},"@param",{"type":313,"tag":60,"props":533,"children":534},{"style":402},[535],{"type":399,"value":536}," element",{"type":313,"tag":60,"props":538,"children":539},{"style":507},[540],{"type":399,"value":541}," - Browser-owned mount target.\n",{"type":313,"tag":60,"props":543,"children":544},{"class":62,"line":182},[545,549,553,558],{"type":313,"tag":60,"props":546,"children":547},{"style":507},[548],{"type":399,"value":526},{"type":313,"tag":60,"props":550,"children":551},{"style":396},[552],{"type":399,"value":531},{"type":313,"tag":60,"props":554,"children":555},{"style":402},[556],{"type":399,"value":557}," locale",{"type":313,"tag":60,"props":559,"children":560},{"style":507},[561],{"type":399,"value":562}," - Language for initial sample copy only.\n",{"type":313,"tag":60,"props":564,"children":565},{"class":62,"line":188},[566,570,575],{"type":313,"tag":60,"props":567,"children":568},{"style":507},[569],{"type":399,"value":526},{"type":313,"tag":60,"props":571,"children":572},{"style":396},[573],{"type":399,"value":574},"@returns",{"type":313,"tag":60,"props":576,"children":577},{"style":507},[578],{"type":399,"value":579}," The caller-owned editor; destroy it when its host unmounts.\n",{"type":313,"tag":60,"props":581,"children":583},{"class":62,"line":582},11,[584],{"type":313,"tag":60,"props":585,"children":586},{"style":507},[587],{"type":399,"value":588}," *\u002F\n",{"type":313,"tag":60,"props":590,"children":592},{"class":62,"line":591},12,[593,597,602,608,613,618,623,628,633,638,642,647,652,657,662,666,670],{"type":313,"tag":60,"props":594,"children":595},{"style":396},[596],{"type":399,"value":91},{"type":313,"tag":60,"props":598,"children":599},{"style":396},[600],{"type":399,"value":601}," function",{"type":313,"tag":60,"props":603,"children":605},{"style":604},"--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0",[606],{"type":399,"value":607}," createExampleEditor",{"type":313,"tag":60,"props":609,"children":610},{"style":402},[611],{"type":399,"value":612},"(",{"type":313,"tag":60,"props":614,"children":616},{"style":615},"--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#FFAB70",[617],{"type":399,"value":313},{"type":313,"tag":60,"props":619,"children":620},{"style":396},[621],{"type":399,"value":622},":",{"type":313,"tag":60,"props":624,"children":625},{"style":604},[626],{"type":399,"value":627}," HTMLElement",{"type":313,"tag":60,"props":629,"children":630},{"style":402},[631],{"type":399,"value":632},", ",{"type":313,"tag":60,"props":634,"children":635},{"style":615},[636],{"type":399,"value":637},"locale",{"type":313,"tag":60,"props":639,"children":640},{"style":396},[641],{"type":399,"value":622},{"type":313,"tag":60,"props":643,"children":644},{"style":412},[645],{"type":399,"value":646}," \"zh-CN\"",{"type":313,"tag":60,"props":648,"children":649},{"style":396},[650],{"type":399,"value":651}," |",{"type":313,"tag":60,"props":653,"children":654},{"style":412},[655],{"type":399,"value":656}," \"en\"",{"type":313,"tag":60,"props":658,"children":659},{"style":402},[660],{"type":399,"value":661},")",{"type":313,"tag":60,"props":663,"children":664},{"style":396},[665],{"type":399,"value":622},{"type":313,"tag":60,"props":667,"children":668},{"style":604},[669],{"type":399,"value":260},{"type":313,"tag":60,"props":671,"children":672},{"style":402},[673],{"type":399,"value":141},{"type":313,"tag":60,"props":675,"children":677},{"class":62,"line":676},13,[678,683,687,691],{"type":313,"tag":60,"props":679,"children":680},{"style":396},[681],{"type":399,"value":682},"  return",{"type":313,"tag":60,"props":684,"children":685},{"style":396},[686],{"type":399,"value":257},{"type":313,"tag":60,"props":688,"children":689},{"style":604},[690],{"type":399,"value":260},{"type":313,"tag":60,"props":692,"children":693},{"style":402},[694],{"type":399,"value":111},{"type":313,"tag":60,"props":696,"children":698},{"class":62,"line":697},14,[699],{"type":313,"tag":60,"props":700,"children":701},{"style":402},[702],{"type":399,"value":703},"    element,\n",{"type":313,"tag":60,"props":705,"children":707},{"class":62,"line":706},15,[708,713,718],{"type":313,"tag":60,"props":709,"children":710},{"style":402},[711],{"type":399,"value":712},"    mode: ",{"type":313,"tag":60,"props":714,"children":715},{"style":412},[716],{"type":399,"value":717},"\"dom\"",{"type":313,"tag":60,"props":719,"children":720},{"style":402},[721],{"type":399,"value":123},{"type":313,"tag":60,"props":723,"children":725},{"class":62,"line":724},16,[726],{"type":313,"tag":60,"props":727,"children":728},{"style":402},[729],{"type":399,"value":730},"    extensions: [StarterKit, DomViewExtension, writingShortcuts],\n",{"type":313,"tag":60,"props":732,"children":734},{"class":62,"line":733},17,[735,740,745],{"type":313,"tag":60,"props":736,"children":737},{"style":402},[738],{"type":399,"value":739},"    content: { type: ",{"type":313,"tag":60,"props":741,"children":742},{"style":412},[743],{"type":399,"value":744},"\"doc\"",{"type":313,"tag":60,"props":746,"children":747},{"style":402},[748],{"type":399,"value":749},", content: [\n",{"type":313,"tag":60,"props":751,"children":753},{"class":62,"line":752},18,[754,759,764,769,775,780,785,790,795,799,804,809,814,819],{"type":313,"tag":60,"props":755,"children":756},{"style":402},[757],{"type":399,"value":758},"      { type: ",{"type":313,"tag":60,"props":760,"children":761},{"style":412},[762],{"type":399,"value":763},"\"heading\"",{"type":313,"tag":60,"props":765,"children":766},{"style":402},[767],{"type":399,"value":768},", attrs: { level: ",{"type":313,"tag":60,"props":770,"children":772},{"style":771},"--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF",[773],{"type":399,"value":774},"2",{"type":313,"tag":60,"props":776,"children":777},{"style":402},[778],{"type":399,"value":779}," }, content: [{ type: ",{"type":313,"tag":60,"props":781,"children":782},{"style":412},[783],{"type":399,"value":784},"\"text\"",{"type":313,"tag":60,"props":786,"children":787},{"style":402},[788],{"type":399,"value":789},", text: locale ",{"type":313,"tag":60,"props":791,"children":792},{"style":396},[793],{"type":399,"value":794},"===",{"type":313,"tag":60,"props":796,"children":797},{"style":412},[798],{"type":399,"value":656},{"type":313,"tag":60,"props":800,"children":801},{"style":396},[802],{"type":399,"value":803}," ?",{"type":313,"tag":60,"props":805,"children":806},{"style":412},[807],{"type":399,"value":808}," \"Start with your words.\"",{"type":313,"tag":60,"props":810,"children":811},{"style":396},[812],{"type":399,"value":813}," :",{"type":313,"tag":60,"props":815,"children":816},{"style":412},[817],{"type":399,"value":818}," \"从你写下的文字开始。\"",{"type":313,"tag":60,"props":820,"children":821},{"style":402},[822],{"type":399,"value":823}," }] },\n",{"type":313,"tag":60,"props":825,"children":827},{"class":62,"line":826},19,[828,832,837,842,846,850,854,858,862,867,871,876],{"type":313,"tag":60,"props":829,"children":830},{"style":402},[831],{"type":399,"value":758},{"type":313,"tag":60,"props":833,"children":834},{"style":412},[835],{"type":399,"value":836},"\"paragraph\"",{"type":313,"tag":60,"props":838,"children":839},{"style":402},[840],{"type":399,"value":841},", content: [{ type: ",{"type":313,"tag":60,"props":843,"children":844},{"style":412},[845],{"type":399,"value":784},{"type":313,"tag":60,"props":847,"children":848},{"style":402},[849],{"type":399,"value":789},{"type":313,"tag":60,"props":851,"children":852},{"style":396},[853],{"type":399,"value":794},{"type":313,"tag":60,"props":855,"children":856},{"style":412},[857],{"type":399,"value":656},{"type":313,"tag":60,"props":859,"children":860},{"style":396},[861],{"type":399,"value":803},{"type":313,"tag":60,"props":863,"children":864},{"style":412},[865],{"type":399,"value":866}," \"Select some text, make it bold, or add a new paragraph. This is a real QuireKit Core editor.\"",{"type":313,"tag":60,"props":868,"children":869},{"style":396},[870],{"type":399,"value":813},{"type":313,"tag":60,"props":872,"children":873},{"style":412},[874],{"type":399,"value":875}," \"选择一段文字，加粗，或另起一段。这里运行的是真实的 QuireKit Core 编辑器。\"",{"type":313,"tag":60,"props":877,"children":878},{"style":402},[879],{"type":399,"value":823},{"type":313,"tag":60,"props":881,"children":883},{"class":62,"line":882},20,[884],{"type":313,"tag":60,"props":885,"children":886},{"style":402},[887],{"type":399,"value":888},"    ] },\n",{"type":313,"tag":60,"props":890,"children":892},{"class":62,"line":891},21,[893],{"type":313,"tag":60,"props":894,"children":895},{"style":402},[896],{"type":399,"value":897},"  });\n",{"type":313,"tag":60,"props":899,"children":901},{"class":62,"line":900},22,[902],{"type":313,"tag":60,"props":903,"children":904},{"style":402},[905],{"type":399,"value":906},"}\n",{"type":313,"tag":359,"props":908,"children":909},{},[910],{"type":399,"value":911},"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 .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 .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);}",1793045207997]