[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-settings":3,"$fk6aa7203trel":12,"$f33epvdwteb92l":28,"render-markdown-render-pipeline":30},{"code":4,"message":5,"data":6},0,"ok",{"site_footer":7,"site_name":8,"icp":9,"site_url":10,"og_default_image":7,"site_description":11},"","花开空白","陕ICP备2021009682号-1","https:\u002F\u002Firule.cn","花开空白 - 个人博客",{"code":4,"message":5,"data":13},{"id":14,"slug":15,"title":16,"summary":17,"coverUrl":18,"status":19,"topFlag":4,"viewCount":19,"likeCount":4,"wordCount":20,"readingMinutes":19,"publishedAt":21,"contentMd":22,"contentHtml":23,"categoryId":24,"tags":25,"metaTitle":16,"metaDescription":17,"keywords":26,"canonicalUrl":18,"robots":27,"ogImage":18,"faq":18,"aiSummary":18},1945000000000000000,"markdown-render-pipeline","Markdown 渲染管线","文章保存为 Markdown，发布时用 commonmark 渲染一次 HTML，再用 JSoup 白名单消毒。",null,1,96,"2026-09-02T10:00:00","# Markdown 渲染管线\n\n文章保存为 Markdown，**发布时**用 commonmark 渲染一次 HTML，再用 JSoup 白名单消毒。\n\n## 代码示例\n\n```java\npublic class Hello {\n    public static void main(String[] args) {\n        System.out.println(\"Hello, KuBlog!\");\n    }\n}\n```\n\n## 支持的语法\n\n1. 标题与段落\n2. 列表与引用\n3. 表格与删除线\n\n| 项目 | 状态 |\n| ---- | ---- |\n| 渲染 | 完成 |\n| 消毒 | 完成 |","\u003Ch1>Markdown 渲染管线\u003C\u002Fh1>\n\u003Cp>文章保存为 Markdown，\u003Cstrong>发布时\u003C\u002Fstrong>用 commonmark 渲染一次 HTML，再用 JSoup 白名单消毒。\u003C\u002Fp>\n\u003Ch2>代码示例\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-java\">public class Hello {\n    public static void main(String[] args) {\n        System.out.println(\"Hello, KuBlog!\");\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>支持的语法\u003C\u002Fh2>\n\u003Col>\n\u003Cli>标题与段落\u003C\u002Fli>\n\u003Cli>列表与引用\u003C\u002Fli>\n\u003Cli>表格与删除线\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>项目\u003C\u002Fth>\n\u003Cth>状态\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>渲染\u003C\u002Ftd>\n\u003Ctd>完成\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>消毒\u003C\u002Ftd>\n\u003Ctd>完成\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>",1946000000000000000,[],"Markdown,commonmark,JSoup","index,follow",{"code":4,"message":5,"data":29},[],{"html":31,"toc":32},"\u003Ch1>Markdown 渲染管线\u003C\u002Fh1>\n\u003Cp>文章保存为 Markdown，\u003Cstrong>发布时\u003C\u002Fstrong>用 commonmark 渲染一次 HTML，再用 JSoup 白名单消毒。\u003C\u002Fp>\n\u003Ch2 id=\"toc-1\">代码示例\u003C\u002Fh2>\n\u003Cpre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49;--shiki-dark:#F97583\">public\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49;--shiki-dark:#F97583\"> class\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1;--shiki-dark:#B392F0\"> Hello\u003C\u002Fspan>\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#D73A49;--shiki-dark:#F97583\">    public\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49;--shiki-dark:#F97583\"> static\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49;--shiki-dark:#F97583\"> void\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1;--shiki-dark:#B392F0\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#D73A49;--shiki-dark:#F97583\">String\u003C\u002Fspan>\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">[] \u003C\u002Fspan>\u003Cspan style=\"color:#E36209;--shiki-dark:#FFAB70\">args\u003C\u002Fspan>\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">) {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">        System.out.\u003C\u002Fspan>\u003Cspan style=\"color:#6F42C1;--shiki-dark:#B392F0\">println\u003C\u002Fspan>\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#032F62;--shiki-dark:#9ECBFF\">\"Hello, KuBlog!\"\u003C\u002Fspan>\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">);\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">    }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#24292E;--shiki-dark:#E1E4E8\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"toc-2\">支持的语法\u003C\u002Fh2>\n\u003Col>\n\u003Cli>标题与段落\u003C\u002Fli>\n\u003Cli>列表与引用\u003C\u002Fli>\n\u003Cli>表格与删除线\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>项目\u003C\u002Fth>\n\u003Cth>状态\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>渲染\u003C\u002Ftd>\n\u003Ctd>完成\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>消毒\u003C\u002Ftd>\n\u003Ctd>完成\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>",[33,37],{"id":34,"text":35,"level":36},"toc-1","代码示例",2,{"id":38,"text":39,"level":36},"toc-2","支持的语法"]