diff --git a/assets/svg/time.svg b/assets/svg/time.svg new file mode 100644 index 0000000..49a3a9c --- /dev/null +++ b/assets/svg/time.svg @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/components/Home/Blog/Markdown.vue b/components/Home/Blog/Markdown.vue deleted file mode 100644 index d2935c7..0000000 --- a/components/Home/Blog/Markdown.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/components/Home/Blog/Marked.vue b/components/Home/Blog/Marked.vue new file mode 100644 index 0000000..12fb902 --- /dev/null +++ b/components/Home/Blog/Marked.vue @@ -0,0 +1,124 @@ + + + + \ No newline at end of file diff --git a/docs/f01-mrkdown/byteMD-Markdown.vue b/docs/f01-mrkdown/byteMD-Markdown.vue new file mode 100644 index 0000000..aae6af2 --- /dev/null +++ b/docs/f01-mrkdown/byteMD-Markdown.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/docs/f01-mrkdown/marked/Marked使用方法.md b/docs/f01-mrkdown/marked/Marked使用方法.md new file mode 100644 index 0000000..2db0d6e --- /dev/null +++ b/docs/f01-mrkdown/marked/Marked使用方法.md @@ -0,0 +1,77 @@ +## 导入 + +```js +// 只作用于当前空间 +import { Marked } from 'marked'; +const marked = new Marked(); + +// 全局 +import { marked } from 'marked'; +``` + +## 核心方法 + +| 方法 | 作用 | 示例 | +|:--------------------------|:----------------|:-----------------------------------------| +| marked.parse(md) | 同步解析 Markdown | await marked.parse('**bold**') | +| marked.parse(md, callback)| 异步解析(处理异步高亮等场景) | marked.parse(md, (err, html) => { ... }) | +| marked.use(options) | 全局配置 | marked.use({ breaks: true }) | + + +## 配置 + +```js +marked.use({ + async: true, + pedantic: false, + gfm: true, +}); + +``` + +| 参数 | 类型 | 作用 | 默认值 | +|:-----------|:---------|:---------------------------------------------|:----------------| +| breaks | boolean | 将换行符 \n 渲染为
(类似 GitHub) | false | +| gfm | boolean | 启用 GitHub Flavored Markdown 扩展(表格、删除线等) | true | +| headerIds | boolean | 自动为标题添加 id 属性(如 `

`) | true | +| highlight | function | 代码高亮处理函数,需返回高亮后的 HTML | null | +| renderer | object | 自定义渲染器对象(覆盖默认渲染逻辑) | new Renderer() | +| sanitize | boolean | 过滤危险 HTML 标签(防止 XSS 攻击) | false | +| sanitizer | function | 自定义 HTML 过滤函数 | - | +| silent | boolean | 静默模式:忽略解析错误(如未闭合的代码块) | false | + +## 扩展 Markdown 语法 + +## 使用worker多线程 + +## 开启 sanitize: true 或使用 DOMPurify 二次过滤 + +## 性能优化 + +? 建议缓存常用操作 + + +## renderer方法 + +| 方法名及参数 | 对应 Markdown 元素 | 默认返回值示例 | +|:-----------------------------------|:---------------------|:------------------------------------------| +| code(code, language, isEscaped) | 代码块(三个反引号包裹) | `
...
` | +| blockquote(quote) | 引用块 > | `
...
` | +| html(html) | 原生 HTML 片段 | 直接返回原始 HTML | +| heading(text, level, raw, slugger) | 标题 # | `

...

` | +| hr() | 分割线 --- | `
` | +| list(body, ordered, start) | 列表(有序/无序) | `
    ...
` | +| listitem(text, task, checked) | 列表项 - item | `
  • ...
  • ` | +| checkbox(checked) | 任务列表复选框 - [x] | `` | +| paragraph(text) | 段落 | `

    ...

    ` | +| table(header, body) | 表格 | `...
    ` | +| tablerow(content) | 表格行 | `...` | +| tablecell(content, flags) | 表格单元格(flags 含对齐信息) | `... 或 ...` | +| strong(text) | 加粗 **text** | `...` | +| em(text) | 斜体 *text* | `...` | +| codespan(code) | 行内代码 `code` | `...` | +| br() | 换行(两个空格结尾或 br 配置) | `
    ` | +| del(text) | 删除线 ~~text~~ | `...` | +| link(href, title, text) | 链接 [text](url) | `...` | +| image(href, title, text) | 图片 ![alt](url) | `...` | +| text(text) | 普通文本 | 直接返回文本(会转义 HTML) | \ No newline at end of file diff --git a/docs/f01-mrkdown/marked/highlight.js.md b/docs/f01-mrkdown/marked/highlight.js.md new file mode 100644 index 0000000..15293a3 --- /dev/null +++ b/docs/f01-mrkdown/marked/highlight.js.md @@ -0,0 +1,43 @@ +## 按需导入 +```js +// 导入核心库和所需语言 +import hljs from 'highlight.js/lib/core'; +import javascript from 'highlight.js/lib/languages/javascript'; +import xml from 'highlight.js/lib/languages/xml'; + +// 注册语言 +hljs.registerLanguage('javascript', javascript); +hljs.registerLanguage('xml', xml); + +// 使用接口 +const code = '
    Test
    '; +const result = hljs.highlight(code, { language: 'xml' }).value; +console.log(result); +``` + +## 全部导入 + +```js +import hljs from 'highlight.js'; +import 'highlight.js/styles/github.css'; +``` + +关键接口说明 +- highlightAll() +自动检测页面中所有 `
    ` 块的代码语言并高亮。
    +
    +- highlight(code, { language })  
    +手动指定语言高亮代码(需提前注册对应语言)。
    +
    +- highlightAuto(code)  
    +自动检测语言并高亮,返回包含语言类型和高亮结果的对象。
    +
    +- registerLanguage(langName, languageDefinition)  
    +注册自定义或第三方语言模块。
    +
    +## 注意事项
    +- 主题切换:替换 CSS 文件路径即可(如 styles/default.min.css → styles/monokai-sublime.min.css)3。
    +
    +- TypeScript 类型:安装 @types/highlight.js 或自定义类型声明(参考此方案)6。
    +
    +- 性能优化:动态加载语言模块(如通过 import() 动态导入)10。
    \ No newline at end of file
    diff --git a/nuxt.config.ts b/nuxt.config.ts
    index db8a346..4609fe7 100644
    --- a/nuxt.config.ts
    +++ b/nuxt.config.ts
    @@ -32,7 +32,6 @@ export default defineNuxtConfig({
             '~/assets/css/iconfont.css',
             '~/assets/css/transitions.css',
             '~/assets/css/Ni.css',
    -        'bytemd/dist/index.css', // byteMD 编辑器
         ],
         app: {
             head: {
    diff --git a/package-lock.json b/package-lock.json
    index 5df2370..ad4f78e 100644
    --- a/package-lock.json
    +++ b/package-lock.json
    @@ -7,15 +7,15 @@
           "name": "nuxt-app",
           "hasInstallScript": true,
           "dependencies": {
    -        "@bytemd/plugin-gfm": "^1.22.0",
    -        "@bytemd/vue-next": "^1.22.0",
             "@nuxt/eslint": "^1.3.0",
    -        "bytemd": "^1.22.0",
             "consola": "^3.4.2",
             "dayjs": "^1.11.13",
    +        "dompurify": "^3.2.5",
             "drizzle-orm": "^0.42.0",
             "eslint": "^9.25.0",
    +        "highlight.js": "^11.11.1",
             "jsonwebtoken": "^9.0.2",
    +        "marked": "^15.0.11",
             "mysql2": "^3.14.0",
             "nuxt": "^3.16.2",
             "redis": "^4.7.0",
    @@ -494,30 +494,6 @@
             "node": ">=6.9.0"
           }
         },
    -    "node_modules/@bytemd/plugin-gfm": {
    -      "version": "1.22.0",
    -      "resolved": "https://registry.npmmirror.com/@bytemd/plugin-gfm/-/plugin-gfm-1.22.0.tgz",
    -      "integrity": "sha512-ICmDwK5pCKrsoM2btNUo11R2Cpvaaz8dF/BAVrZ/w7mdY8985f7l8zIc7yX3tO5i3KYVvxBKhTCmerOS4xAcig==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "remark-gfm": "^3.0.1"
    -      },
    -      "peerDependencies": {
    -        "bytemd": "^1.5.0"
    -      }
    -    },
    -    "node_modules/@bytemd/vue-next": {
    -      "version": "1.22.0",
    -      "resolved": "https://registry.npmmirror.com/@bytemd/vue-next/-/vue-next-1.22.0.tgz",
    -      "integrity": "sha512-WHKMzyLcYiKhzRrWtJWxYpvVMAlU045HYbdXWJAtRnVg+svaonjp8nhB8y5h/NqeIafohEPbe2nTdJ9PULKD4w==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "bytemd": "1.22.0"
    -      },
    -      "peerDependencies": {
    -        "vue": "^3.0.0"
    -      }
    -    },
         "node_modules/@clack/core": {
           "version": "0.4.2",
           "resolved": "https://registry.npmmirror.com/@clack/core/-/core-0.4.2.tgz",
    @@ -3924,16 +3900,6 @@
           "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
           "license": "MIT"
         },
    -    "node_modules/@popperjs/core": {
    -      "version": "2.11.8",
    -      "resolved": "https://registry.npmmirror.com/@popperjs/core/-/core-2.11.8.tgz",
    -      "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/popperjs"
    -      }
    -    },
         "node_modules/@poppinss/colors": {
           "version": "4.1.4",
           "resolved": "https://registry.npmmirror.com/@poppinss/colors/-/colors-4.1.4.tgz",
    @@ -4592,24 +4558,6 @@
             "tslib": "^2.4.0"
           }
         },
    -    "node_modules/@types/codemirror": {
    -      "version": "5.60.15",
    -      "resolved": "https://registry.npmmirror.com/@types/codemirror/-/codemirror-5.60.15.tgz",
    -      "integrity": "sha512-dTOvwEQ+ouKJ/rE9LT1Ue2hmP6H1mZv5+CCnNWu2qtiOe2LQa9lCprEY20HxiDmV/Bxh+dXjywmy5aKvoGjULA==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/tern": "*"
    -      }
    -    },
    -    "node_modules/@types/debug": {
    -      "version": "4.1.12",
    -      "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz",
    -      "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/ms": "*"
    -      }
    -    },
         "node_modules/@types/doctrine": {
           "version": "0.0.9",
           "resolved": "https://registry.npmmirror.com/@types/doctrine/-/doctrine-0.0.9.tgz",
    @@ -4622,15 +4570,6 @@
           "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
           "license": "MIT"
         },
    -    "node_modules/@types/hast": {
    -      "version": "2.3.10",
    -      "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-2.3.10.tgz",
    -      "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2"
    -      }
    -    },
         "node_modules/@types/json-schema": {
           "version": "7.0.15",
           "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
    @@ -4648,34 +4587,11 @@
             "@types/node": "*"
           }
         },
    -    "node_modules/@types/lodash": {
    -      "version": "4.17.16",
    -      "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.16.tgz",
    -      "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==",
    -      "license": "MIT"
    -    },
    -    "node_modules/@types/lodash-es": {
    -      "version": "4.17.12",
    -      "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz",
    -      "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/lodash": "*"
    -      }
    -    },
    -    "node_modules/@types/mdast": {
    -      "version": "3.0.15",
    -      "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz",
    -      "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2"
    -      }
    -    },
         "node_modules/@types/ms": {
           "version": "2.1.0",
           "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-2.1.0.tgz",
           "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
    +      "dev": true,
           "license": "MIT"
         },
         "node_modules/@types/node": {
    @@ -4700,38 +4616,24 @@
           "integrity": "sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==",
           "license": "MIT"
         },
    -    "node_modules/@types/parse5": {
    -      "version": "6.0.3",
    -      "resolved": "https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz",
    -      "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==",
    -      "license": "MIT"
    -    },
         "node_modules/@types/resolve": {
           "version": "1.20.2",
           "resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.20.2.tgz",
           "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
           "license": "MIT"
         },
    -    "node_modules/@types/tern": {
    -      "version": "0.23.9",
    -      "resolved": "https://registry.npmmirror.com/@types/tern/-/tern-0.23.9.tgz",
    -      "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/estree": "*"
    -      }
    -    },
         "node_modules/@types/triple-beam": {
           "version": "1.3.5",
           "resolved": "https://registry.npmmirror.com/@types/triple-beam/-/triple-beam-1.3.5.tgz",
           "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==",
           "license": "MIT"
         },
    -    "node_modules/@types/unist": {
    -      "version": "2.0.11",
    -      "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz",
    -      "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
    -      "license": "MIT"
    +    "node_modules/@types/trusted-types": {
    +      "version": "2.0.7",
    +      "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
    +      "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
    +      "license": "MIT",
    +      "optional": true
         },
         "node_modules/@types/yauzl": {
           "version": "2.10.3",
    @@ -6307,16 +6209,6 @@
           "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
           "license": "Apache-2.0"
         },
    -    "node_modules/bail": {
    -      "version": "2.0.2",
    -      "resolved": "https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz",
    -      "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/balanced-match": {
           "version": "1.0.2",
           "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
    @@ -6527,33 +6419,6 @@
             "esbuild": ">=0.18"
           }
         },
    -    "node_modules/bytemd": {
    -      "version": "1.22.0",
    -      "resolved": "https://registry.npmmirror.com/bytemd/-/bytemd-1.22.0.tgz",
    -      "integrity": "sha512-2vmegXnnsOxNufRrrQGHYKwgTmx6H+h40ZZs3DAw/SS5O4mBzO9evc1HD39CqW9wglGNBJxMg257pv9pgAGl+A==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@popperjs/core": "^2.11.7",
    -        "@types/codemirror": "^5.60.7",
    -        "@types/hast": "^2.3.4",
    -        "@types/lodash-es": "^4.17.7",
    -        "@types/mdast": "^3.0.11",
    -        "codemirror-ssr": "^0.65.0",
    -        "hast-util-sanitize": "^4.1.0",
    -        "lodash-es": "^4.17.21",
    -        "rehype-raw": "^6.1.1",
    -        "rehype-sanitize": "^5.0.1",
    -        "rehype-stringify": "^9.0.3",
    -        "remark-parse": "^10.0.1",
    -        "remark-rehype": "^10.1.0",
    -        "select-files": "^1.0.1",
    -        "tippy.js": "^6.3.7",
    -        "unified": "^10.1.2",
    -        "unist-util-visit": "^4.1.2",
    -        "vfile": "^5.3.7",
    -        "word-count": "^0.2.2"
    -      }
    -    },
         "node_modules/c12": {
           "version": "3.0.3",
           "resolved": "https://registry.npmmirror.com/c12/-/c12-3.0.3.tgz",
    @@ -6716,16 +6581,6 @@
           ],
           "license": "CC-BY-4.0"
         },
    -    "node_modules/ccount": {
    -      "version": "2.0.1",
    -      "resolved": "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz",
    -      "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/chalk": {
           "version": "4.1.2",
           "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
    @@ -6754,36 +6609,6 @@
             "node": ">=8"
           }
         },
    -    "node_modules/character-entities": {
    -      "version": "2.0.2",
    -      "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz",
    -      "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
    -    "node_modules/character-entities-html4": {
    -      "version": "2.1.0",
    -      "resolved": "https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
    -      "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
    -    "node_modules/character-entities-legacy": {
    -      "version": "3.0.0",
    -      "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
    -      "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/chokidar": {
           "version": "4.0.3",
           "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-4.0.3.tgz",
    @@ -6925,15 +6750,6 @@
             "node": ">= 0.12.0"
           }
         },
    -    "node_modules/codemirror-ssr": {
    -      "version": "0.65.0",
    -      "resolved": "https://registry.npmmirror.com/codemirror-ssr/-/codemirror-ssr-0.65.0.tgz",
    -      "integrity": "sha512-ofTAfPkQV56SYFfymNMYJ1ELo3+Jnkw3mOLgnIiQjhonwNmNzX1OFvnihAnYRXL0PWl2kT7s0gKrLc2ExshK4g==",
    -      "license": "MIT",
    -      "peerDependencies": {
    -        "@types/codemirror": "^5.0.0"
    -      }
    -    },
         "node_modules/color": {
           "version": "3.2.1",
           "resolved": "https://registry.npmmirror.com/color/-/color-3.2.1.tgz",
    @@ -7000,16 +6816,6 @@
             "text-hex": "1.0.x"
           }
         },
    -    "node_modules/comma-separated-tokens": {
    -      "version": "2.0.3",
    -      "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
    -      "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/commander": {
           "version": "10.0.1",
           "resolved": "https://registry.npmmirror.com/commander/-/commander-10.0.1.tgz",
    @@ -7571,19 +7377,6 @@
             "callsite": "^1.0.0"
           }
         },
    -    "node_modules/decode-named-character-reference": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz",
    -      "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "character-entities": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/deep-equal": {
           "version": "1.0.1",
           "resolved": "https://registry.npmmirror.com/deep-equal/-/deep-equal-1.0.1.tgz",
    @@ -7676,15 +7469,6 @@
             "node": ">= 0.8"
           }
         },
    -    "node_modules/dequal": {
    -      "version": "2.0.3",
    -      "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz",
    -      "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
    -      "license": "MIT",
    -      "engines": {
    -        "node": ">=6"
    -      }
    -    },
         "node_modules/destr": {
           "version": "2.0.5",
           "resolved": "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz",
    @@ -7924,6 +7708,15 @@
             "url": "https://github.com/fb55/domhandler?sponsor=1"
           }
         },
    +    "node_modules/dompurify": {
    +      "version": "3.2.5",
    +      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.5.tgz",
    +      "integrity": "sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==",
    +      "license": "(MPL-2.0 OR Apache-2.0)",
    +      "optionalDependencies": {
    +        "@types/trusted-types": "^2.0.7"
    +      }
    +    },
         "node_modules/domutils": {
           "version": "3.2.2",
           "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz",
    @@ -9083,12 +8876,6 @@
           "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==",
           "license": "MIT"
         },
    -    "node_modules/extend": {
    -      "version": "3.0.2",
    -      "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
    -      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
    -      "license": "MIT"
    -    },
         "node_modules/externality": {
           "version": "1.0.2",
           "resolved": "https://registry.npmmirror.com/externality/-/externality-1.0.2.tgz",
    @@ -9914,140 +9701,13 @@
             "node": ">= 0.4"
           }
         },
    -    "node_modules/hast-util-from-parse5": {
    -      "version": "7.1.2",
    -      "resolved": "https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz",
    -      "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "@types/unist": "^2.0.0",
    -        "hastscript": "^7.0.0",
    -        "property-information": "^6.0.0",
    -        "vfile": "^5.0.0",
    -        "vfile-location": "^4.0.0",
    -        "web-namespaces": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hast-util-parse-selector": {
    -      "version": "3.1.1",
    -      "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz",
    -      "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hast-util-raw": {
    -      "version": "7.2.3",
    -      "resolved": "https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz",
    -      "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "@types/parse5": "^6.0.0",
    -        "hast-util-from-parse5": "^7.0.0",
    -        "hast-util-to-parse5": "^7.0.0",
    -        "html-void-elements": "^2.0.0",
    -        "parse5": "^6.0.0",
    -        "unist-util-position": "^4.0.0",
    -        "unist-util-visit": "^4.0.0",
    -        "vfile": "^5.0.0",
    -        "web-namespaces": "^2.0.0",
    -        "zwitch": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hast-util-sanitize": {
    -      "version": "4.1.0",
    -      "resolved": "https://registry.npmmirror.com/hast-util-sanitize/-/hast-util-sanitize-4.1.0.tgz",
    -      "integrity": "sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hast-util-to-html": {
    -      "version": "8.0.4",
    -      "resolved": "https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz",
    -      "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "@types/unist": "^2.0.0",
    -        "ccount": "^2.0.0",
    -        "comma-separated-tokens": "^2.0.0",
    -        "hast-util-raw": "^7.0.0",
    -        "hast-util-whitespace": "^2.0.0",
    -        "html-void-elements": "^2.0.0",
    -        "property-information": "^6.0.0",
    -        "space-separated-tokens": "^2.0.0",
    -        "stringify-entities": "^4.0.0",
    -        "zwitch": "^2.0.4"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hast-util-to-parse5": {
    -      "version": "7.1.0",
    -      "resolved": "https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz",
    -      "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "comma-separated-tokens": "^2.0.0",
    -        "property-information": "^6.0.0",
    -        "space-separated-tokens": "^2.0.0",
    -        "web-namespaces": "^2.0.0",
    -        "zwitch": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hast-util-whitespace": {
    -      "version": "2.0.1",
    -      "resolved": "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
    -      "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/hastscript": {
    -      "version": "7.2.0",
    -      "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-7.2.0.tgz",
    -      "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "comma-separated-tokens": "^2.0.0",
    -        "hast-util-parse-selector": "^3.0.0",
    -        "property-information": "^6.0.0",
    -        "space-separated-tokens": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    +    "node_modules/highlight.js": {
    +      "version": "11.11.1",
    +      "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz",
    +      "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==",
    +      "license": "BSD-3-Clause",
    +      "engines": {
    +        "node": ">=12.0.0"
           }
         },
         "node_modules/hookable": {
    @@ -10074,16 +9734,6 @@
           "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
           "license": "ISC"
         },
    -    "node_modules/html-void-elements": {
    -      "version": "2.0.1",
    -      "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz",
    -      "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/http-assert": {
           "version": "1.5.0",
           "resolved": "https://registry.npmmirror.com/http-assert/-/http-assert-1.5.0.tgz",
    @@ -10392,29 +10042,6 @@
             "node": ">=8"
           }
         },
    -    "node_modules/is-buffer": {
    -      "version": "2.0.5",
    -      "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz",
    -      "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
    -      "funding": [
    -        {
    -          "type": "github",
    -          "url": "https://github.com/sponsors/feross"
    -        },
    -        {
    -          "type": "patreon",
    -          "url": "https://www.patreon.com/feross"
    -        },
    -        {
    -          "type": "consulting",
    -          "url": "https://feross.org/support"
    -        }
    -      ],
    -      "license": "MIT",
    -      "engines": {
    -        "node": ">=4"
    -      }
    -    },
         "node_modules/is-builtin-module": {
           "version": "3.2.1",
           "resolved": "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
    @@ -11672,16 +11299,6 @@
           "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
           "license": "Apache-2.0"
         },
    -    "node_modules/longest-streak": {
    -      "version": "3.1.0",
    -      "resolved": "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz",
    -      "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/lru-cache": {
           "version": "5.1.1",
           "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
    @@ -11774,14 +11391,16 @@
             "semver": "bin/semver.js"
           }
         },
    -    "node_modules/markdown-table": {
    -      "version": "3.0.4",
    -      "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.4.tgz",
    -      "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
    +    "node_modules/marked": {
    +      "version": "15.0.11",
    +      "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.11.tgz",
    +      "integrity": "sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==",
           "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    +      "bin": {
    +        "marked": "bin/marked.js"
    +      },
    +      "engines": {
    +        "node": ">= 18"
           }
         },
         "node_modules/math-intrinsics": {
    @@ -11793,222 +11412,6 @@
             "node": ">= 0.4"
           }
         },
    -    "node_modules/mdast-util-definitions": {
    -      "version": "5.1.2",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
    -      "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "@types/unist": "^2.0.0",
    -        "unist-util-visit": "^4.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-find-and-replace": {
    -      "version": "2.2.2",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz",
    -      "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "escape-string-regexp": "^5.0.0",
    -        "unist-util-is": "^5.0.0",
    -        "unist-util-visit-parents": "^5.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-from-markdown": {
    -      "version": "1.3.1",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
    -      "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "@types/unist": "^2.0.0",
    -        "decode-named-character-reference": "^1.0.0",
    -        "mdast-util-to-string": "^3.1.0",
    -        "micromark": "^3.0.0",
    -        "micromark-util-decode-numeric-character-reference": "^1.0.0",
    -        "micromark-util-decode-string": "^1.0.0",
    -        "micromark-util-normalize-identifier": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "unist-util-stringify-position": "^3.0.0",
    -        "uvu": "^0.5.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-gfm": {
    -      "version": "2.0.2",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz",
    -      "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "mdast-util-from-markdown": "^1.0.0",
    -        "mdast-util-gfm-autolink-literal": "^1.0.0",
    -        "mdast-util-gfm-footnote": "^1.0.0",
    -        "mdast-util-gfm-strikethrough": "^1.0.0",
    -        "mdast-util-gfm-table": "^1.0.0",
    -        "mdast-util-gfm-task-list-item": "^1.0.0",
    -        "mdast-util-to-markdown": "^1.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-gfm-autolink-literal": {
    -      "version": "1.0.3",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz",
    -      "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "ccount": "^2.0.0",
    -        "mdast-util-find-and-replace": "^2.0.0",
    -        "micromark-util-character": "^1.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-gfm-footnote": {
    -      "version": "1.0.2",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz",
    -      "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-to-markdown": "^1.3.0",
    -        "micromark-util-normalize-identifier": "^1.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-gfm-strikethrough": {
    -      "version": "1.0.3",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz",
    -      "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-to-markdown": "^1.3.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-gfm-table": {
    -      "version": "1.0.7",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz",
    -      "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "markdown-table": "^3.0.0",
    -        "mdast-util-from-markdown": "^1.0.0",
    -        "mdast-util-to-markdown": "^1.3.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-gfm-task-list-item": {
    -      "version": "1.0.2",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz",
    -      "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-to-markdown": "^1.3.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-phrasing": {
    -      "version": "3.0.1",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
    -      "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "unist-util-is": "^5.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-to-hast": {
    -      "version": "12.3.0",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz",
    -      "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-definitions": "^5.0.0",
    -        "micromark-util-sanitize-uri": "^1.1.0",
    -        "trim-lines": "^3.0.0",
    -        "unist-util-generated": "^2.0.0",
    -        "unist-util-position": "^4.0.0",
    -        "unist-util-visit": "^4.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-to-markdown": {
    -      "version": "1.5.0",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
    -      "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "@types/unist": "^2.0.0",
    -        "longest-streak": "^3.0.0",
    -        "mdast-util-phrasing": "^3.0.0",
    -        "mdast-util-to-string": "^3.0.0",
    -        "micromark-util-decode-string": "^1.0.0",
    -        "unist-util-visit": "^4.0.0",
    -        "zwitch": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/mdast-util-to-string": {
    -      "version": "3.2.0",
    -      "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
    -      "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
         "node_modules/mdn-data": {
           "version": "2.0.30",
           "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz",
    @@ -12068,569 +11471,6 @@
           "integrity": "sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==",
           "license": "ISC"
         },
    -    "node_modules/micromark": {
    -      "version": "3.2.0",
    -      "resolved": "https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz",
    -      "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/debug": "^4.0.0",
    -        "debug": "^4.0.0",
    -        "decode-named-character-reference": "^1.0.0",
    -        "micromark-core-commonmark": "^1.0.1",
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-chunked": "^1.0.0",
    -        "micromark-util-combine-extensions": "^1.0.0",
    -        "micromark-util-decode-numeric-character-reference": "^1.0.0",
    -        "micromark-util-encode": "^1.0.0",
    -        "micromark-util-normalize-identifier": "^1.0.0",
    -        "micromark-util-resolve-all": "^1.0.0",
    -        "micromark-util-sanitize-uri": "^1.0.0",
    -        "micromark-util-subtokenize": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.1",
    -        "uvu": "^0.5.0"
    -      }
    -    },
    -    "node_modules/micromark-core-commonmark": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
    -      "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "decode-named-character-reference": "^1.0.0",
    -        "micromark-factory-destination": "^1.0.0",
    -        "micromark-factory-label": "^1.0.0",
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-factory-title": "^1.0.0",
    -        "micromark-factory-whitespace": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-chunked": "^1.0.0",
    -        "micromark-util-classify-character": "^1.0.0",
    -        "micromark-util-html-tag-name": "^1.0.0",
    -        "micromark-util-normalize-identifier": "^1.0.0",
    -        "micromark-util-resolve-all": "^1.0.0",
    -        "micromark-util-subtokenize": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.1",
    -        "uvu": "^0.5.0"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm": {
    -      "version": "2.0.3",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz",
    -      "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-extension-gfm-autolink-literal": "^1.0.0",
    -        "micromark-extension-gfm-footnote": "^1.0.0",
    -        "micromark-extension-gfm-strikethrough": "^1.0.0",
    -        "micromark-extension-gfm-table": "^1.0.0",
    -        "micromark-extension-gfm-tagfilter": "^1.0.0",
    -        "micromark-extension-gfm-task-list-item": "^1.0.0",
    -        "micromark-util-combine-extensions": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm-autolink-literal": {
    -      "version": "1.0.5",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz",
    -      "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-sanitize-uri": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm-footnote": {
    -      "version": "1.1.2",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz",
    -      "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-core-commonmark": "^1.0.0",
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-normalize-identifier": "^1.0.0",
    -        "micromark-util-sanitize-uri": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "uvu": "^0.5.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm-strikethrough": {
    -      "version": "1.0.7",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz",
    -      "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-chunked": "^1.0.0",
    -        "micromark-util-classify-character": "^1.0.0",
    -        "micromark-util-resolve-all": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "uvu": "^0.5.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm-table": {
    -      "version": "1.0.7",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz",
    -      "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "uvu": "^0.5.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm-tagfilter": {
    -      "version": "1.0.2",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz",
    -      "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-types": "^1.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-extension-gfm-task-list-item": {
    -      "version": "1.0.5",
    -      "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz",
    -      "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "uvu": "^0.5.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/micromark-factory-destination": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
    -      "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-factory-label": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
    -      "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "uvu": "^0.5.0"
    -      }
    -    },
    -    "node_modules/micromark-factory-space": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
    -      "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-factory-title": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
    -      "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-factory-whitespace": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
    -      "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-factory-space": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-character": {
    -      "version": "1.2.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
    -      "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-chunked": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
    -      "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-symbol": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-classify-character": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
    -      "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-combine-extensions": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
    -      "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-chunked": "^1.0.0",
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-decode-numeric-character-reference": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
    -      "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-symbol": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-decode-string": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
    -      "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "decode-named-character-reference": "^1.0.0",
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-decode-numeric-character-reference": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-encode": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
    -      "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT"
    -    },
    -    "node_modules/micromark-util-html-tag-name": {
    -      "version": "1.2.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
    -      "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT"
    -    },
    -    "node_modules/micromark-util-normalize-identifier": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
    -      "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-symbol": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-resolve-all": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
    -      "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-types": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-sanitize-uri": {
    -      "version": "1.2.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
    -      "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-character": "^1.0.0",
    -        "micromark-util-encode": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0"
    -      }
    -    },
    -    "node_modules/micromark-util-subtokenize": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
    -      "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT",
    -      "dependencies": {
    -        "micromark-util-chunked": "^1.0.0",
    -        "micromark-util-symbol": "^1.0.0",
    -        "micromark-util-types": "^1.0.0",
    -        "uvu": "^0.5.0"
    -      }
    -    },
    -    "node_modules/micromark-util-symbol": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
    -      "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT"
    -    },
    -    "node_modules/micromark-util-types": {
    -      "version": "1.1.0",
    -      "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
    -      "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
    -      "funding": [
    -        {
    -          "type": "GitHub Sponsors",
    -          "url": "https://github.com/sponsors/unifiedjs"
    -        },
    -        {
    -          "type": "OpenCollective",
    -          "url": "https://opencollective.com/unified"
    -        }
    -      ],
    -      "license": "MIT"
    -    },
         "node_modules/micromatch": {
           "version": "4.0.8",
           "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz",
    @@ -12830,15 +11670,6 @@
             "node": ">=14"
           }
         },
    -    "node_modules/mri": {
    -      "version": "1.2.0",
    -      "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz",
    -      "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
    -      "license": "MIT",
    -      "engines": {
    -        "node": ">=4"
    -      }
    -    },
         "node_modules/mrmime": {
           "version": "2.0.1",
           "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.1.tgz",
    @@ -13792,12 +12623,6 @@
             "node": ">=14.13.0"
           }
         },
    -    "node_modules/parse5": {
    -      "version": "6.0.1",
    -      "resolved": "https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz",
    -      "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
    -      "license": "MIT"
    -    },
         "node_modules/parseurl": {
           "version": "1.3.3",
           "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
    @@ -14754,16 +13579,6 @@
             "node": ">= 6"
           }
         },
    -    "node_modules/property-information": {
    -      "version": "6.5.0",
    -      "resolved": "https://registry.npmmirror.com/property-information/-/property-information-6.5.0.tgz",
    -      "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/protocols": {
           "version": "2.0.2",
           "resolved": "https://registry.npmmirror.com/protocols/-/protocols-2.0.2.tgz",
    @@ -15084,98 +13899,6 @@
             "node": ">=6"
           }
         },
    -    "node_modules/rehype-raw": {
    -      "version": "6.1.1",
    -      "resolved": "https://registry.npmmirror.com/rehype-raw/-/rehype-raw-6.1.1.tgz",
    -      "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "hast-util-raw": "^7.2.0",
    -        "unified": "^10.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/rehype-sanitize": {
    -      "version": "5.0.1",
    -      "resolved": "https://registry.npmmirror.com/rehype-sanitize/-/rehype-sanitize-5.0.1.tgz",
    -      "integrity": "sha512-da/jIOjq8eYt/1r9GN6GwxIR3gde7OZ+WV8pheu1tL8K0D9KxM2AyMh+UEfke+FfdM3PvGHeYJU0Td5OWa7L5A==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "hast-util-sanitize": "^4.0.0",
    -        "unified": "^10.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/rehype-stringify": {
    -      "version": "9.0.4",
    -      "resolved": "https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz",
    -      "integrity": "sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "hast-util-to-html": "^8.0.0",
    -        "unified": "^10.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/remark-gfm": {
    -      "version": "3.0.1",
    -      "resolved": "https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz",
    -      "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-gfm": "^2.0.0",
    -        "micromark-extension-gfm": "^2.0.0",
    -        "unified": "^10.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/remark-parse": {
    -      "version": "10.0.2",
    -      "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.2.tgz",
    -      "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-from-markdown": "^1.0.0",
    -        "unified": "^10.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/remark-rehype": {
    -      "version": "10.1.0",
    -      "resolved": "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz",
    -      "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/hast": "^2.0.0",
    -        "@types/mdast": "^3.0.0",
    -        "mdast-util-to-hast": "^12.1.0",
    -        "unified": "^10.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
         "node_modules/remove-trailing-separator": {
           "version": "1.1.0",
           "resolved": "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
    @@ -15592,18 +14315,6 @@
             "queue-microtask": "^1.2.2"
           }
         },
    -    "node_modules/sade": {
    -      "version": "1.8.1",
    -      "resolved": "https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz",
    -      "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "mri": "^1.1.0"
    -      },
    -      "engines": {
    -        "node": ">=6"
    -      }
    -    },
         "node_modules/safe-buffer": {
           "version": "5.2.1",
           "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
    @@ -15704,12 +14415,6 @@
           "integrity": "sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==",
           "license": "MIT"
         },
    -    "node_modules/select-files": {
    -      "version": "1.0.1",
    -      "resolved": "https://registry.npmmirror.com/select-files/-/select-files-1.0.1.tgz",
    -      "integrity": "sha512-8h4DSpjfFa0hyMP3z3ye4SxyhdaE5RgaXeScRpH7xl4YblnZSHwexmLdLNdSKwTO8H9ccDKj7Votz0io+18+BQ==",
    -      "license": "MIT"
    -    },
         "node_modules/semver": {
           "version": "7.7.1",
           "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.1.tgz",
    @@ -16016,16 +14721,6 @@
             "node": ">=0.10.0"
           }
         },
    -    "node_modules/space-separated-tokens": {
    -      "version": "2.0.2",
    -      "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
    -      "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/spdx-correct": {
           "version": "3.2.0",
           "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz",
    @@ -16205,20 +14900,6 @@
             "node": ">=8"
           }
         },
    -    "node_modules/stringify-entities": {
    -      "version": "4.0.4",
    -      "resolved": "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.4.tgz",
    -      "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "character-entities-html4": "^2.0.0",
    -        "character-entities-legacy": "^3.0.0"
    -      },
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/strip-ansi": {
           "version": "7.1.0",
           "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz",
    @@ -16891,15 +15572,6 @@
             "url": "https://github.com/sponsors/SuperchupuDev"
           }
         },
    -    "node_modules/tippy.js": {
    -      "version": "6.3.7",
    -      "resolved": "https://registry.npmmirror.com/tippy.js/-/tippy.js-6.3.7.tgz",
    -      "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@popperjs/core": "^2.9.0"
    -      }
    -    },
         "node_modules/tmp": {
           "version": "0.2.3",
           "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz",
    @@ -16960,16 +15632,6 @@
           "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
           "license": "MIT"
         },
    -    "node_modules/trim-lines": {
    -      "version": "3.0.1",
    -      "resolved": "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz",
    -      "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/triple-beam": {
           "version": "1.4.1",
           "resolved": "https://registry.npmmirror.com/triple-beam/-/triple-beam-1.4.1.tgz",
    @@ -16979,16 +15641,6 @@
             "node": ">= 14.0.0"
           }
         },
    -    "node_modules/trough": {
    -      "version": "2.2.0",
    -      "resolved": "https://registry.npmmirror.com/trough/-/trough-2.2.0.tgz",
    -      "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/ts-api-utils": {
           "version": "2.1.0",
           "resolved": "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
    @@ -17193,37 +15845,6 @@
             "url": "https://github.com/sponsors/sindresorhus"
           }
         },
    -    "node_modules/unified": {
    -      "version": "10.1.2",
    -      "resolved": "https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz",
    -      "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0",
    -        "bail": "^2.0.0",
    -        "extend": "^3.0.0",
    -        "is-buffer": "^2.0.0",
    -        "is-plain-obj": "^4.0.0",
    -        "trough": "^2.0.0",
    -        "vfile": "^5.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/unified/node_modules/is-plain-obj": {
    -      "version": "4.1.0",
    -      "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
    -      "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
    -      "license": "MIT",
    -      "engines": {
    -        "node": ">=12"
    -      },
    -      "funding": {
    -        "url": "https://github.com/sponsors/sindresorhus"
    -      }
    -    },
         "node_modules/unimport": {
           "version": "4.2.0",
           "resolved": "https://registry.npmmirror.com/unimport/-/unimport-4.2.0.tgz",
    @@ -17249,84 +15870,6 @@
             "node": ">=18.12.0"
           }
         },
    -    "node_modules/unist-util-generated": {
    -      "version": "2.0.1",
    -      "resolved": "https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
    -      "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/unist-util-is": {
    -      "version": "5.2.1",
    -      "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.2.1.tgz",
    -      "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/unist-util-position": {
    -      "version": "4.0.4",
    -      "resolved": "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.4.tgz",
    -      "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/unist-util-stringify-position": {
    -      "version": "3.0.3",
    -      "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
    -      "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/unist-util-visit": {
    -      "version": "4.1.2",
    -      "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
    -      "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0",
    -        "unist-util-is": "^5.0.0",
    -        "unist-util-visit-parents": "^5.1.1"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/unist-util-visit-parents": {
    -      "version": "5.1.3",
    -      "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
    -      "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0",
    -        "unist-util-is": "^5.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
         "node_modules/universalify": {
           "version": "2.0.1",
           "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
    @@ -17713,42 +16256,6 @@
             "uuid": "dist/esm/bin/uuid"
           }
         },
    -    "node_modules/uvu": {
    -      "version": "0.5.6",
    -      "resolved": "https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz",
    -      "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "dequal": "^2.0.0",
    -        "diff": "^5.0.0",
    -        "kleur": "^4.0.3",
    -        "sade": "^1.7.3"
    -      },
    -      "bin": {
    -        "uvu": "bin.js"
    -      },
    -      "engines": {
    -        "node": ">=8"
    -      }
    -    },
    -    "node_modules/uvu/node_modules/diff": {
    -      "version": "5.2.0",
    -      "resolved": "https://registry.npmmirror.com/diff/-/diff-5.2.0.tgz",
    -      "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
    -      "license": "BSD-3-Clause",
    -      "engines": {
    -        "node": ">=0.3.1"
    -      }
    -    },
    -    "node_modules/uvu/node_modules/kleur": {
    -      "version": "4.1.5",
    -      "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz",
    -      "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
    -      "license": "MIT",
    -      "engines": {
    -        "node": ">=6"
    -      }
    -    },
         "node_modules/validate-npm-package-license": {
           "version": "3.0.4",
           "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
    @@ -17781,50 +16288,6 @@
             "vue": "^3.0.11"
           }
         },
    -    "node_modules/vfile": {
    -      "version": "5.3.7",
    -      "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz",
    -      "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0",
    -        "is-buffer": "^2.0.0",
    -        "unist-util-stringify-position": "^3.0.0",
    -        "vfile-message": "^3.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/vfile-location": {
    -      "version": "4.1.0",
    -      "resolved": "https://registry.npmmirror.com/vfile-location/-/vfile-location-4.1.0.tgz",
    -      "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0",
    -        "vfile": "^5.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
    -    "node_modules/vfile-message": {
    -      "version": "3.1.4",
    -      "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz",
    -      "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
    -      "license": "MIT",
    -      "dependencies": {
    -        "@types/unist": "^2.0.0",
    -        "unist-util-stringify-position": "^3.0.0"
    -      },
    -      "funding": {
    -        "type": "opencollective",
    -        "url": "https://opencollective.com/unified"
    -      }
    -    },
         "node_modules/vite": {
           "version": "6.3.2",
           "resolved": "https://registry.npmmirror.com/vite/-/vite-6.3.2.tgz",
    @@ -18212,16 +16675,6 @@
             "vue": "^3.0.11"
           }
         },
    -    "node_modules/web-namespaces": {
    -      "version": "2.0.1",
    -      "resolved": "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz",
    -      "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
    -    },
         "node_modules/web-streams-polyfill": {
           "version": "3.3.3",
           "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
    @@ -18353,12 +16806,6 @@
             "node": ">= 6"
           }
         },
    -    "node_modules/word-count": {
    -      "version": "0.2.2",
    -      "resolved": "https://registry.npmmirror.com/word-count/-/word-count-0.2.2.tgz",
    -      "integrity": "sha512-tPRTbQ+nTCPY3F0z1f/y0PX22ScE6l/4/8j9KqA3h77JhlZ/w6cbVS8LIO5Pq/aV96SWBOoiE2IEgzxF0Cn+kA==",
    -      "license": "MIT"
    -    },
         "node_modules/word-wrap": {
           "version": "1.2.5",
           "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz",
    @@ -18639,16 +17086,6 @@
           "funding": {
             "url": "https://github.com/sponsors/colinhacks"
           }
    -    },
    -    "node_modules/zwitch": {
    -      "version": "2.0.4",
    -      "resolved": "https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz",
    -      "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
    -      "license": "MIT",
    -      "funding": {
    -        "type": "github",
    -        "url": "https://github.com/sponsors/wooorm"
    -      }
         }
       }
     }
    diff --git a/package.json b/package.json
    index 5744089..5c6d5e8 100644
    --- a/package.json
    +++ b/package.json
    @@ -14,15 +14,15 @@
         "sqlV": "drizzle-kit studio"
       },
       "dependencies": {
    -    "@bytemd/plugin-gfm": "^1.22.0",
    -    "@bytemd/vue-next": "^1.22.0",
         "@nuxt/eslint": "^1.3.0",
    -    "bytemd": "^1.22.0",
         "consola": "^3.4.2",
         "dayjs": "^1.11.13",
    +    "dompurify": "^3.2.5",
         "drizzle-orm": "^0.42.0",
         "eslint": "^9.25.0",
    +    "highlight.js": "^11.11.1",
         "jsonwebtoken": "^9.0.2",
    +    "marked": "^15.0.11",
         "mysql2": "^3.14.0",
         "nuxt": "^3.16.2",
         "redis": "^4.7.0",
    diff --git a/pages/home/blog/[blogId].vue b/pages/home/blog/[blogId].vue
    index d0d8b12..68654e4 100644
    --- a/pages/home/blog/[blogId].vue
    +++ b/pages/home/blog/[blogId].vue
    @@ -4,7 +4,7 @@