[{"data":1,"prerenderedAt":982},["ShallowReactive",2],{"navigation_docs_en":3,"-en-guide-rich-text-advanced":88,"-en-guide-rich-text-advanced-surround":977},[4,18,51],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Installation & Setup","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F2.installation",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Guide","\u002Fen\u002Fguide","en\u002F2.guide",[23,27,31,35,39,43,47],{"title":24,"path":25,"stem":26},"Contextual Editing","\u002Fen\u002Fguide\u002Fcontextual-editing","en\u002F2.guide\u002F1.contextual-editing",{"title":28,"path":29,"stem":30},"Preview Mode","\u002Fen\u002Fguide\u002Fpreview-mode","en\u002F2.guide\u002F2.preview-mode",{"title":32,"path":33,"stem":34},"Tina Cloud & Editing Modes","\u002Fen\u002Fguide\u002Ftina-cloud","en\u002F2.guide\u002F3.tina-cloud",{"title":36,"path":37,"stem":38},"Nuxt Content Compatibility","\u002Fen\u002Fguide\u002Fnuxt-content","en\u002F2.guide\u002F4.nuxt-content",{"title":40,"path":41,"stem":42},"Media","\u002Fen\u002Fguide\u002Fmedia","en\u002F2.guide\u002F5.media",{"title":44,"path":45,"stem":46},"Advanced Rich-Text","\u002Fen\u002Fguide\u002Frich-text-advanced","en\u002F2.guide\u002F6.rich-text-advanced",{"title":48,"path":49,"stem":50},"Deployment","\u002Fen\u002Fguide\u002Fdeployment","en\u002F2.guide\u002F7.deployment",{"title":52,"path":53,"stem":54,"children":55,"page":17},"Api","\u002Fen\u002Fapi","en\u002F3.api",[56,60,64,68,72,76,80,84],{"title":57,"path":58,"stem":59},"useTina()","\u002Fen\u002Fapi\u002Fuse-tina","en\u002F3.api\u002F1.use-tina",{"title":61,"path":62,"stem":63},"useTinaBridge()","\u002Fen\u002Fapi\u002Fuse-tina-bridge","en\u002F3.api\u002F2.use-tina-bridge",{"title":65,"path":66,"stem":67},"useTinaPreview()","\u002Fen\u002Fapi\u002Fuse-tina-preview","en\u002F3.api\u002F3.use-tina-preview",{"title":69,"path":70,"stem":71},"\u003CTinaProvider>","\u002Fen\u002Fapi\u002Ftina-provider","en\u002F3.api\u002F4.tina-provider",{"title":73,"path":74,"stem":75},"\u003CTinaMarkdown>","\u002Fen\u002Fapi\u002Ftina-markdown","en\u002F3.api\u002F5.tina-markdown",{"title":77,"path":78,"stem":79},"\u003CTinaMermaid>","\u002Fen\u002Fapi\u002Ftina-mermaid","en\u002F3.api\u002F6.tina-mermaid",{"title":81,"path":82,"stem":83},"Module Configuration","\u002Fen\u002Fapi\u002Fconfiguration","en\u002F3.api\u002F7.configuration",{"title":85,"path":86,"stem":87},"Field Types","\u002Fen\u002Fapi\u002Ffield-types","en\u002F3.api\u002F8.field-types",{"id":89,"title":44,"body":90,"description":970,"extension":971,"links":972,"meta":973,"navigation":974,"path":45,"seo":975,"stem":46,"__hash__":976},"docs_en\u002Fen\u002F2.guide\u002F6.rich-text-advanced.md",{"type":91,"value":92,"toc":963},"minimark",[93,105,110,117,288,297,315,385,398,402,409,637,656,809,813,816,947,959],[94,95,96,97,100,101,104],"p",{},"Beyond basic markdown (bold, italic, links, lists, blockquotes, all rendered automatically through ",[98,99,73],"code",{},"), ",[98,102,103],{},"nuxt-tina"," also supports Mermaid diagrams in a rich-text field.",[106,107,109],"h2",{"id":108},"mermaid-diagrams","Mermaid diagrams",[94,111,112,113,116],{},"Add ",[98,114,115],{},"'mermaid'"," to the rich-text field's toolbar:",[118,119,124],"pre",{"className":120,"code":121,"language":122,"meta":123,"style":123},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  type: 'rich-text',\n  name: 'body',\n  isBody: true,\n  overrides: {\n    toolbar: ['heading', 'link', 'bold', 'italic', 'mermaid', 'codeBlock', \u002F* ... *\u002F],\n  },\n}\n","ts","",[98,125,126,135,158,175,189,200,276,282],{"__ignoreMap":123},[127,128,131],"span",{"class":129,"line":130},"line",1,[127,132,134],{"class":133},"sMK4o","{\n",[127,136,138,142,145,148,152,155],{"class":129,"line":137},2,[127,139,141],{"class":140},"sBMFI","  type",[127,143,144],{"class":133},":",[127,146,147],{"class":133}," '",[127,149,151],{"class":150},"sfazB","rich-text",[127,153,154],{"class":133},"'",[127,156,157],{"class":133},",\n",[127,159,161,164,166,168,171,173],{"class":129,"line":160},3,[127,162,163],{"class":140},"  name",[127,165,144],{"class":133},[127,167,147],{"class":133},[127,169,170],{"class":150},"body",[127,172,154],{"class":133},[127,174,157],{"class":133},[127,176,178,181,183,187],{"class":129,"line":177},4,[127,179,180],{"class":140},"  isBody",[127,182,144],{"class":133},[127,184,186],{"class":185},"sfNiH"," true",[127,188,157],{"class":133},[127,190,192,195,197],{"class":129,"line":191},5,[127,193,194],{"class":140},"  overrides",[127,196,144],{"class":133},[127,198,199],{"class":133}," {\n",[127,201,203,206,208,212,214,217,219,222,224,227,229,231,233,236,238,240,242,245,247,249,251,254,256,258,260,263,265,267,271,274],{"class":129,"line":202},6,[127,204,205],{"class":140},"    toolbar",[127,207,144],{"class":133},[127,209,211],{"class":210},"swJcz"," [",[127,213,154],{"class":133},[127,215,216],{"class":150},"heading",[127,218,154],{"class":133},[127,220,221],{"class":133},",",[127,223,147],{"class":133},[127,225,226],{"class":150},"link",[127,228,154],{"class":133},[127,230,221],{"class":133},[127,232,147],{"class":133},[127,234,235],{"class":150},"bold",[127,237,154],{"class":133},[127,239,221],{"class":133},[127,241,147],{"class":133},[127,243,244],{"class":150},"italic",[127,246,154],{"class":133},[127,248,221],{"class":133},[127,250,147],{"class":133},[127,252,253],{"class":150},"mermaid",[127,255,154],{"class":133},[127,257,221],{"class":133},[127,259,147],{"class":133},[127,261,262],{"class":150},"codeBlock",[127,264,154],{"class":133},[127,266,221],{"class":133},[127,268,270],{"class":269},"sHwdD"," \u002F* ... *\u002F",[127,272,273],{"class":210},"]",[127,275,157],{"class":133},[127,277,279],{"class":129,"line":278},7,[127,280,281],{"class":133},"  },\n",[127,283,285],{"class":129,"line":284},8,[127,286,287],{"class":133},"}\n",[94,289,290,293,294,296],{},[98,291,292],{},"TinaMarkdown"," doesn't render Mermaid diagrams by default. ",[98,295,253],{}," is a large dependency, so it's opt-in:",[118,298,302],{"className":299,"code":300,"language":301,"meta":123,"style":123},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install mermaid\n","bash",[98,303,304],{"__ignoreMap":123},[127,305,306,309,312],{"class":129,"line":130},[127,307,308],{"class":140},"npm",[127,310,311],{"class":150}," install",[127,313,314],{"class":150}," mermaid\n",[118,316,320],{"className":317,"code":318,"language":319,"meta":123,"style":123},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003CTinaMarkdown :content=\"post.body\" :components=\"{ 'tina-mermaid': TinaMermaid }\" \u002F>\n","vue",[98,321,322],{"__ignoreMap":123},[127,323,324,327,329,332,336,339,342,346,349,351,353,355,358,360,362,365,367,370,372,374,377,380,382],{"class":129,"line":130},[127,325,326],{"class":133},"\u003C",[127,328,292],{"class":210},[127,330,331],{"class":133}," :",[127,333,335],{"class":334},"spNyl","content",[127,337,338],{"class":133},"=",[127,340,341],{"class":133},"\"",[127,343,345],{"class":344},"sTEyZ","post",[127,347,348],{"class":133},".",[127,350,170],{"class":344},[127,352,341],{"class":133},[127,354,331],{"class":133},[127,356,357],{"class":334},"components",[127,359,338],{"class":133},[127,361,341],{"class":133},[127,363,364],{"class":133},"{",[127,366,147],{"class":133},[127,368,369],{"class":210},"tina-mermaid",[127,371,154],{"class":133},[127,373,144],{"class":133},[127,375,376],{"class":344}," TinaMermaid ",[127,378,379],{"class":133},"}",[127,381,341],{"class":133},[127,383,384],{"class":133}," \u002F>\n",[94,386,387,390,391,393,394,397],{},[98,388,389],{},"TinaMermaid"," is auto-imported by the module, so no explicit import is needed. With the ",[98,392,357],{}," prop wired up, a mermaid code block renders as an SVG diagram through ",[98,395,396],{},"mermaid.render()"," (dynamically imported only when a diagram is actually mounted, so it never adds to your bundle unless used). Without the prop, mermaid code blocks render as plain code.",[106,399,401],{"id":400},"custom-templates","Custom templates",[94,403,404,405,408],{},"A rich-text field can define its own templates (Tina's ",[98,406,407],{},"{{ shortcode }}"," syntax or MDX-style embeds):",[118,410,412],{"className":120,"code":411,"language":122,"meta":123,"style":123},"{\n  type: 'rich-text',\n  name: 'body',\n  isBody: true,\n  templates: [\n    {\n      name: 'callout',\n      label: 'Callout',\n      match: { start: '{{', end: '}}' },\n      fields: [\n        { name: '_value', type: 'string', label: 'Text', required: true },\n      ],\n    },\n  ],\n}\n",[98,413,414,418,432,446,456,466,471,487,503,543,553,610,618,624,632],{"__ignoreMap":123},[127,415,416],{"class":129,"line":130},[127,417,134],{"class":133},[127,419,420,422,424,426,428,430],{"class":129,"line":137},[127,421,141],{"class":140},[127,423,144],{"class":133},[127,425,147],{"class":133},[127,427,151],{"class":150},[127,429,154],{"class":133},[127,431,157],{"class":133},[127,433,434,436,438,440,442,444],{"class":129,"line":160},[127,435,163],{"class":140},[127,437,144],{"class":133},[127,439,147],{"class":133},[127,441,170],{"class":150},[127,443,154],{"class":133},[127,445,157],{"class":133},[127,447,448,450,452,454],{"class":129,"line":177},[127,449,180],{"class":140},[127,451,144],{"class":133},[127,453,186],{"class":185},[127,455,157],{"class":133},[127,457,458,461,463],{"class":129,"line":191},[127,459,460],{"class":140},"  templates",[127,462,144],{"class":133},[127,464,465],{"class":210}," [\n",[127,467,468],{"class":129,"line":202},[127,469,470],{"class":133},"    {\n",[127,472,473,476,478,480,483,485],{"class":129,"line":278},[127,474,475],{"class":210},"      name",[127,477,144],{"class":133},[127,479,147],{"class":133},[127,481,482],{"class":150},"callout",[127,484,154],{"class":133},[127,486,157],{"class":133},[127,488,489,492,494,496,499,501],{"class":129,"line":284},[127,490,491],{"class":210},"      label",[127,493,144],{"class":133},[127,495,147],{"class":133},[127,497,498],{"class":150},"Callout",[127,500,154],{"class":133},[127,502,157],{"class":133},[127,504,506,509,511,514,517,519,521,524,526,528,531,533,535,538,540],{"class":129,"line":505},9,[127,507,508],{"class":210},"      match",[127,510,144],{"class":133},[127,512,513],{"class":133}," {",[127,515,516],{"class":210}," start",[127,518,144],{"class":133},[127,520,147],{"class":133},[127,522,523],{"class":150},"{{",[127,525,154],{"class":133},[127,527,221],{"class":133},[127,529,530],{"class":210}," end",[127,532,144],{"class":133},[127,534,147],{"class":133},[127,536,537],{"class":150},"}}",[127,539,154],{"class":133},[127,541,542],{"class":133}," },\n",[127,544,546,549,551],{"class":129,"line":545},10,[127,547,548],{"class":210},"      fields",[127,550,144],{"class":133},[127,552,465],{"class":210},[127,554,556,559,562,564,566,569,571,573,576,578,580,583,585,587,590,592,594,597,599,601,604,606,608],{"class":129,"line":555},11,[127,557,558],{"class":133},"        {",[127,560,561],{"class":210}," name",[127,563,144],{"class":133},[127,565,147],{"class":133},[127,567,568],{"class":150},"_value",[127,570,154],{"class":133},[127,572,221],{"class":133},[127,574,575],{"class":210}," type",[127,577,144],{"class":133},[127,579,147],{"class":133},[127,581,582],{"class":150},"string",[127,584,154],{"class":133},[127,586,221],{"class":133},[127,588,589],{"class":210}," label",[127,591,144],{"class":133},[127,593,147],{"class":133},[127,595,596],{"class":150},"Text",[127,598,154],{"class":133},[127,600,221],{"class":133},[127,602,603],{"class":210}," required",[127,605,144],{"class":133},[127,607,186],{"class":185},[127,609,542],{"class":133},[127,611,613,616],{"class":129,"line":612},12,[127,614,615],{"class":210},"      ]",[127,617,157],{"class":133},[127,619,621],{"class":129,"line":620},13,[127,622,623],{"class":133},"    },\n",[127,625,627,630],{"class":129,"line":626},14,[127,628,629],{"class":210},"  ]",[127,631,157],{"class":133},[127,633,635],{"class":129,"line":634},15,[127,636,287],{"class":133},[94,638,639,641,642,644,645,648,649,651,652,655],{},[98,640,103],{}," doesn't ship a component for any specific custom template: every one renders through ",[98,643,73],{}," as a generic wrapper: ",[98,646,647],{},"\u003Cdiv data-tina-type=\"callout\">...\u003C\u002Fdiv>",". Style or target it with that attribute in your own CSS. Unlike Mermaid, there's currently no ",[98,650,357],{},"-prop hook to swap a named custom template for your own Vue component: extending that coverage is on the roadmap, tracked in the adapter's own source (",[98,653,654],{},"comark-adapter.ts",").",[657,658,659,666,693,699,799],"div",{"dataTinaFieldWarning":123},[106,660,662,663],{"id":661},"️-gotcha-templates-arent-parsed-when-format-md","⚠️ Gotcha: templates aren't parsed when ",[98,664,665],{},"format: 'md'",[94,667,668,669,671,672,675,676,680,681,684,685,688,689,692],{},"A collection with ",[98,670,665],{}," automatically gets ",[98,673,674],{},"parser: { type: 'markdown' }"," on its rich-text fields, and that parser mode ",[677,678,679],"strong",{},"entirely skips"," the template-matching logic (",[98,682,683],{},"templates[].match",") inside ",[98,686,687],{},"@tinacms\u002Fmdx",". Without an override, ",[98,690,691],{},"{{ callout \"...\" }}"," just becomes plain text, not a parsed node.",[94,694,695,698],{},[677,696,697],{},"Fix",": override the field's parser explicitly:",[118,700,702],{"className":120,"code":701,"language":122,"meta":123,"style":123},"{\n  type: 'rich-text',\n  name: 'body',\n  isBody: true,\n  parser: {\n    type: 'mdx', \u002F\u002F force the path that actually preprocesses templates\n  },\n  templates: [ \u002F* ... *\u002F ],\n}\n",[98,703,704,708,722,736,746,755,774,778,795],{"__ignoreMap":123},[127,705,706],{"class":129,"line":130},[127,707,134],{"class":133},[127,709,710,712,714,716,718,720],{"class":129,"line":137},[127,711,141],{"class":140},[127,713,144],{"class":133},[127,715,147],{"class":133},[127,717,151],{"class":150},[127,719,154],{"class":133},[127,721,157],{"class":133},[127,723,724,726,728,730,732,734],{"class":129,"line":160},[127,725,163],{"class":140},[127,727,144],{"class":133},[127,729,147],{"class":133},[127,731,170],{"class":150},[127,733,154],{"class":133},[127,735,157],{"class":133},[127,737,738,740,742,744],{"class":129,"line":177},[127,739,180],{"class":140},[127,741,144],{"class":133},[127,743,186],{"class":185},[127,745,157],{"class":133},[127,747,748,751,753],{"class":129,"line":191},[127,749,750],{"class":140},"  parser",[127,752,144],{"class":133},[127,754,199],{"class":133},[127,756,757,760,762,764,767,769,771],{"class":129,"line":202},[127,758,759],{"class":140},"    type",[127,761,144],{"class":133},[127,763,147],{"class":133},[127,765,766],{"class":150},"mdx",[127,768,154],{"class":133},[127,770,221],{"class":133},[127,772,773],{"class":269}," \u002F\u002F force the path that actually preprocesses templates\n",[127,775,776],{"class":129,"line":278},[127,777,281],{"class":133},[127,779,780,782,784,787,790,793],{"class":129,"line":284},[127,781,460],{"class":140},[127,783,144],{"class":133},[127,785,786],{"class":210}," [ ",[127,788,789],{"class":269},"\u002F* ... *\u002F",[127,791,792],{"class":210}," ]",[127,794,157],{"class":133},[127,796,797],{"class":129,"line":505},[127,798,287],{"class":133},[94,800,801,802,805,806,655],{},"This applies to both custom shortcodes (",[98,803,804],{},"{{ }}",") and real JSX-style MDX embeds (",[98,807,808],{},"\u003CCta ... \u002F>",[106,810,812],{"id":811},"what-a-custom-template-looks-like-in-the-ast","What a custom template looks like in the AST",[94,814,815],{},"If you want to build your own render adapter, a custom template node shows up in the AST as:",[118,817,821],{"className":818,"code":819,"language":820,"meta":123,"style":123},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"type\": \"mdxJsxFlowElement\",\n  \"name\": \"callout\",\n  \"props\": { \"_value\": \"This is a callout.\" },\n  \"children\": [{ \"type\": \"text\", \"text\": \"\" }]\n}\n","json",[98,822,823,827,849,868,898,943],{"__ignoreMap":123},[127,824,825],{"class":129,"line":130},[127,826,134],{"class":133},[127,828,829,832,835,837,839,842,845,847],{"class":129,"line":137},[127,830,831],{"class":133},"  \"",[127,833,834],{"class":334},"type",[127,836,341],{"class":133},[127,838,144],{"class":133},[127,840,841],{"class":133}," \"",[127,843,844],{"class":150},"mdxJsxFlowElement",[127,846,341],{"class":133},[127,848,157],{"class":133},[127,850,851,853,856,858,860,862,864,866],{"class":129,"line":160},[127,852,831],{"class":133},[127,854,855],{"class":334},"name",[127,857,341],{"class":133},[127,859,144],{"class":133},[127,861,841],{"class":133},[127,863,482],{"class":150},[127,865,341],{"class":133},[127,867,157],{"class":133},[127,869,870,872,875,877,879,881,883,885,887,889,891,894,896],{"class":129,"line":177},[127,871,831],{"class":133},[127,873,874],{"class":334},"props",[127,876,341],{"class":133},[127,878,144],{"class":133},[127,880,513],{"class":133},[127,882,841],{"class":133},[127,884,568],{"class":140},[127,886,341],{"class":133},[127,888,144],{"class":133},[127,890,841],{"class":133},[127,892,893],{"class":150},"This is a callout.",[127,895,341],{"class":133},[127,897,542],{"class":133},[127,899,900,902,905,907,909,912,914,916,918,920,922,925,927,929,931,933,935,937,940],{"class":129,"line":191},[127,901,831],{"class":133},[127,903,904],{"class":334},"children",[127,906,341],{"class":133},[127,908,144],{"class":133},[127,910,911],{"class":133}," [{",[127,913,841],{"class":133},[127,915,834],{"class":140},[127,917,341],{"class":133},[127,919,144],{"class":133},[127,921,841],{"class":133},[127,923,924],{"class":150},"text",[127,926,341],{"class":133},[127,928,221],{"class":133},[127,930,841],{"class":133},[127,932,924],{"class":140},[127,934,341],{"class":133},[127,936,144],{"class":133},[127,938,939],{"class":133}," \"\"",[127,941,942],{"class":133}," }]\n",[127,944,945],{"class":129,"line":202},[127,946,287],{"class":133},[94,948,949,951,952,954,955,958],{},[98,950,654],{}," already handles this shape: look at the ",[98,953,844],{},"\u002F",[98,956,957],{},"mdxJsxTextElement"," case in that file for the pattern if you're extending it.",[960,961,962],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":123,"searchDepth":137,"depth":137,"links":964},[965,966,967,969],{"id":108,"depth":137,"text":109},{"id":400,"depth":137,"text":401},{"id":661,"depth":137,"text":968},"⚠️ Gotcha: templates aren't parsed when format: 'md'",{"id":811,"depth":137,"text":812},"Mermaid diagrams and custom templates in a rich-text field, plus one gotcha about the parser.","md",null,{},true,{"title":44,"description":970},"glAVK3HONnDT70nRPEmdiXdEbDHwuePSGXFBpLG8guQ",[978,980],{"title":40,"path":41,"stem":42,"description":979,"children":-1},"The built-in git-based media store, and backend media handlers for external storage.",{"title":48,"path":49,"stem":50,"description":981,"children":-1},"Building a production admin, and what to set on your hosting provider.",1789757557867]