[{"data":1,"prerenderedAt":2420},["ShallowReactive",2],{"navigation":3,"blogNavigation":153,"site-search":325,"page-\u002Fdocs\u002F%E7%AE%80%E5%8D%95%E6%96%87%E6%A1%A3\u002Fwriting\u002Ffull-page-example":2399,"\u002Fdocs\u002F%E7%AE%80%E5%8D%95%E6%96%87%E6%A1%A3\u002Fwriting\u002Ffull-page-example-surround":2419},[4],{"title":5,"path":6,"stem":7,"children":8,"page":53},"Docs","\u002Fdocs","docs",[9,144],{"title":10,"path":11,"stem":12,"children":13,"icon":143},"简单文档","\u002Fdocs\u002F简单文档","docs\u002F1.简单文档\u002F1.index",[14,17,22,54,59,138],{"title":15,"path":11,"stem":12,"icon":16},"入门简介","lucide-house",{"title":18,"path":19,"stem":20,"icon":21},"安装指南","\u002Fdocs\u002F简单文档\u002Finstallation","docs\u002F1.简单文档\u002F2.installation","lucide-play",{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":53},"开始写作","lucide:edit","\u002Fdocs\u002F简单文档\u002Fwriting","docs\u002F1.简单文档\u002F3.writing",[28,33,38,43,48],{"title":29,"path":30,"stem":31,"icon":32},"Markdown","\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown","docs\u002F1.简单文档\u002F3.writing\u002F1.markdown","lucide:arrow-big-down",{"title":34,"path":35,"stem":36,"icon":37},"页面","\u002Fdocs\u002F简单文档\u002Fwriting\u002Fpages","docs\u002F1.简单文档\u002F3.writing\u002F2.pages","lucide:file-text",{"title":39,"path":40,"stem":41,"icon":42},"目录","\u002Fdocs\u002F简单文档\u002Fwriting\u002Ffolders","docs\u002F1.简单文档\u002F3.writing\u002F3.folders","lucide:folder",{"title":44,"path":45,"stem":46,"icon":47},"单页面示例","\u002Fdocs\u002F简单文档\u002Fwriting\u002Ffull-page-example","docs\u002F1.简单文档\u002F3.writing\u002F4.full-page-example","lucide:layout-template",{"title":49,"path":50,"stem":51,"icon":52},"markdown 常用语法","\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest","docs\u002F1.简单文档\u002F3.writing\u002F5.test","simple-icons:markdown",false,{"title":55,"path":56,"stem":57,"icon":58},"部署服务","\u002Fdocs\u002F简单文档\u002Fdeployment","docs\u002F1.简单文档\u002F4.deployment","lucide:cloud",{"title":60,"icon":61,"path":62,"stem":63,"children":64,"page":53},"组件特性","lucide:box","\u002Fdocs\u002F简单文档\u002Fcomponents","docs\u002F1.简单文档\u002F5.components",[65,70,74,78,82,86,90,94,98,102,106,110,114,118,122,126,130,134],{"title":66,"path":67,"stem":68,"icon":69},"常用组件","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi","docs\u002F1.简单文档\u002F5.components\u002F1.API","lucide-component",{"title":71,"path":72,"stem":73},"Alert","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert","docs\u002F1.简单文档\u002F5.components\u002Falert",{"title":75,"path":76,"stem":77},"Badge","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge","docs\u002F1.简单文档\u002F5.components\u002Fbadge",{"title":79,"path":80,"stem":81},"Button Link","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbutton-link","docs\u002F1.简单文档\u002F5.components\u002Fbutton-link",{"title":83,"path":84,"stem":85},"Callout","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcallout","docs\u002F1.简单文档\u002F5.components\u002Fcallout",{"title":87,"path":88,"stem":89},"Card","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard","docs\u002F1.简单文档\u002F5.components\u002Fcard",{"title":91,"path":92,"stem":93},"Card Group","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard-group","docs\u002F1.简单文档\u002F5.components\u002Fcard-group",{"title":95,"path":96,"stem":97},"Code Group","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcode-group","docs\u002F1.简单文档\u002F5.components\u002Fcode-group",{"title":99,"path":100,"stem":101},"Code Tree","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcode-tree","docs\u002F1.简单文档\u002F5.components\u002Fcode-tree",{"title":103,"path":104,"stem":105},"Field","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffield","docs\u002F1.简单文档\u002F5.components\u002Ffield",{"title":107,"path":108,"stem":109},"Field Group","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffield-group","docs\u002F1.简单文档\u002F5.components\u002Ffield-group",{"title":111,"path":112,"stem":113},"File Tree","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree","docs\u002F1.简单文档\u002F5.components\u002Ffile-tree",{"title":115,"path":116,"stem":117},"Icon","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ficon","docs\u002F1.简单文档\u002F5.components\u002Ficon",{"title":119,"path":120,"stem":121},"Playground","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground","docs\u002F1.简单文档\u002F5.components\u002Fplayground",{"title":123,"path":124,"stem":125},"Read More","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fread-more","docs\u002F1.简单文档\u002F5.components\u002Fread-more",{"title":127,"path":128,"stem":129},"Stack","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fstack","docs\u002F1.简单文档\u002F5.components\u002Fstack",{"title":131,"path":132,"stem":133},"Steps","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fsteps","docs\u002F1.简单文档\u002F5.components\u002Fsteps",{"title":135,"path":136,"stem":137},"Tabs","\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs","docs\u002F1.简单文档\u002F5.components\u002Ftabs",{"title":139,"path":140,"stem":141,"icon":142},"功能与路线图","\u002Fdocs\u002F简单文档\u002F功能与路线图","docs\u002F1.简单文档\u002F6.功能与路线图","lucide-map","lucide-book-open-text",{"title":145,"path":146,"stem":147,"children":148,"icon":152},"无人自助系统","\u002Fdocs\u002F无人自助系统","docs\u002F2.无人自助系统\u002F1.index",[149],{"title":150,"path":146,"stem":147,"icon":151},"介绍","simple-icons:opencollective","simple-icons:monica",[154],{"title":155,"path":156,"stem":157,"children":158,"page":53},"Blog","\u002Fblog","blog",[159,306,316],{"title":160,"icon":161,"path":162,"stem":163,"children":164,"page":53},"技术栈","devicon:prolog","\u002Fblog\u002F技术栈","blog\u002F1.技术栈",[165,170,174,179,183,188,193,197,202,207,212,216,220,224,229,233,238,243,248,252,257,262,267,272,277,281,286,291,296,301],{"title":166,"path":167,"stem":168,"icon":169},"准备新的插件","\u002Fblog\u002F技术栈\u002F新的插件","blog\u002F1.技术栈\u002F970.新的插件","simple-icons:debian",{"title":171,"path":172,"stem":173,"icon":169},"防于未然，先固不破 — Debian 12 快速加固实战","\u002Fblog\u002F技术栈\u002F服务器加固实战","blog\u002F1.技术栈\u002F971.服务器加固实战",{"title":175,"path":176,"stem":177,"icon":178},"nmap高级应用技巧-实战","\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-实战","blog\u002F1.技术栈\u002F972.nmap高级应用技巧-实战","simple-icons:openstreetmap",{"title":180,"path":181,"stem":182,"icon":178},"nmap高级应用技巧-NSE","\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse","blog\u002F1.技术栈\u002F973.nmap高级应用技巧-NSE",{"title":184,"path":185,"stem":186,"icon":187},"部分vue组件语法预览","\u002Fblog\u002F技术栈\u002F部分组件语法展示","blog\u002F1.技术栈\u002F974.部分组件语法展示","simple-icons:vuedotjs",{"title":189,"path":190,"stem":191,"icon":192},"新的文档渲染样式","\u002Fblog\u002F技术栈\u002F新的文档渲染样式","blog\u002F1.技术栈\u002F975.新的文档渲染样式","simple-icons:nuxtdotjs",{"title":194,"path":195,"stem":196,"icon":192},"Nuxt 微信分享接口","\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口","blog\u002F1.技术栈\u002F976.Nuxt 微信分享接口",{"title":198,"path":199,"stem":200,"icon":201},"AI复合应用 合同审查","\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查","blog\u002F1.技术栈\u002F978.AI复合应用 合同审查","simple-icons:openai",{"title":203,"path":204,"stem":205,"icon":206},"Kali 安装 GVM","\u002Fblog\u002F技术栈\u002Fkali-安装-gvm","blog\u002F1.技术栈\u002F979.Kali 安装 GVM","simple-icons:kalilinux",{"title":208,"path":209,"stem":210,"icon":211},"GPT-5","\u002Fblog\u002F技术栈\u002Fgpt5","blog\u002F1.技术栈\u002F980.GPT5","simple-icons:powershell",{"title":213,"path":214,"stem":215,"icon":201},"使用 AI 守护内网安全","\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全","blog\u002F1.技术栈\u002F981.使用 AI 守护内网安全",{"title":217,"path":218,"stem":219,"icon":178},"系统安全扫描工具命令集合","\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合","blog\u002F1.技术栈\u002F982.系统安全扫描工具命令集合",{"title":221,"path":222,"stem":223,"icon":206},"系统安全综合评估报告","\u002Fblog\u002F技术栈\u002F系统安全综合评估报告","blog\u002F1.技术栈\u002F983.系统安全综合评估报告",{"title":225,"path":226,"stem":227,"icon":228},"树莓派安装 Kali Linux","\u002Fblog\u002F技术栈\u002F树莓派安装-kali-linux","blog\u002F1.技术栈\u002F984.树莓派安装 Kali Linux","simple-icons:raspberrypi",{"title":230,"path":231,"stem":232,"icon":192},"Nuxt UI Pro","\u002Fblog\u002F技术栈\u002Fnuxt-ui-pro","blog\u002F1.技术栈\u002F985.Nuxt UI Pro",{"title":234,"path":235,"stem":236,"icon":237},"Supabase 阿里云短信","\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信","blog\u002F1.技术栈\u002F986.Supabase 阿里云短信","simple-icons:alibabacloud",{"title":239,"path":240,"stem":241,"icon":242},"Coolify","\u002Fblog\u002F技术栈\u002Fcoolify","blog\u002F1.技术栈\u002F987.Coolify","simple-icons:chai",{"title":244,"path":245,"stem":246,"icon":247},"Python 代码规范","\u002Fblog\u002F技术栈\u002Fpython-代码规范","blog\u002F1.技术栈\u002F988.Python 代码规范","simple-icons:python",{"title":249,"path":250,"stem":251,"icon":192},"Nuxt3 代码规范","\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范","blog\u002F1.技术栈\u002F989.Nuxt3 代码规范",{"title":253,"path":254,"stem":255,"icon":256},"Linux 系统 Swap 分区配置指南","\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南","blog\u002F1.技术栈\u002F990.Linux 系统 Swap 分区配置指南","simple-icons:linux",{"title":258,"path":259,"stem":260,"icon":261},"从Supabase迁移到Appwrite","\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite","blog\u002F1.技术栈\u002F991.从Supabase迁移到Appwrite","simple-icons:supabase",{"title":263,"path":264,"stem":265,"icon":266},"AppWrite 项目资源占用情况","\u002Fblog\u002F技术栈\u002Fappwrite-项目资源占用情况","blog\u002F1.技术栈\u002F992.AppWrite 项目资源占用情况","simple-icons:appwrite",{"title":268,"path":269,"stem":270,"icon":271},"Docker 里配置hosts","\u002Fblog\u002F技术栈\u002Fdocker-里配置hosts","blog\u002F1.技术栈\u002F993.Docker 里配置hosts","simple-icons:docker",{"title":273,"path":274,"stem":275,"icon":276},"MySQL 中如何忽略表名的大小写","\u002Fblog\u002F技术栈\u002Fmysql-中如何忽略表名的大小写","blog\u002F1.技术栈\u002F994.MySQL 中如何忽略表名的大小写","simple-icons:mysql",{"title":278,"path":279,"stem":280,"icon":169},"Debian 12 安装nodejs","\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs","blog\u002F1.技术栈\u002F995.Debian 12 安装nodejs",{"title":282,"path":283,"stem":284,"icon":285},"Dify + Supabase：打造带数据库的AI问答机器人","\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人","blog\u002F1.技术栈\u002F996.Dify + Supabase：打造带数据库的AI问答机器人","simple-icons:reactbootstrap",{"title":287,"path":288,"stem":289,"icon":290},"安装 VS Code到浏览器 -- Code Server","\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy","blog\u002F1.技术栈\u002F996.安装 VS Code到浏览器 -- Code Server copy","simple-icons:visualstudiocode",{"title":292,"path":293,"stem":294,"icon":295},"Debian 12 云服务器初始安全设置与优化指南","\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南","blog\u002F1.技术栈\u002F997.Debian 12 云服务器初始安全设置与优化指南","lucide-server",{"title":297,"path":298,"stem":299,"icon":300},"Iperf3 万兆网络打流测试指南","\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南","blog\u002F1.技术栈\u002F998.Iperf3 万兆网络打流测试指南","lucide-network",{"title":302,"path":303,"stem":304,"icon":305},"GROK3 and Deepseek","\u002Fblog\u002F技术栈\u002Fgrok3-and-deepseek","blog\u002F1.技术栈\u002F999.GROK3-and-Deepseek","lucide-brain",{"title":307,"icon":308,"path":309,"stem":310,"children":311,"page":53},"AI","devicon:streamlit","\u002Fblog\u002Fai","blog\u002F2.AI",[312],{"title":313,"path":314,"stem":315,"icon":242},"AI最佳实践","\u002Fblog\u002Fai\u002Fai","blog\u002F2.AI\u002F01.AI",{"title":317,"icon":318,"path":319,"stem":320,"children":321,"page":53},"生活","devicon:love2d","\u002Fblog\u002F生活","blog\u002F3.生活",[322],{"title":317,"path":323,"stem":324,"icon":242},"\u002Fblog\u002F生活\u002F生活","blog\u002F3.生活\u002F01.生活",[326,330,335,341,347,352,357,362,367,372,377,382,387,390,395,400,405,410,415,419,424,429,434,439,444,447,451,456,461,465,470,473,478,483,486,491,494,497,501,506,510,514,518,523,528,534,539,544,549,554,559,564,569,574,578,583,588,593,598,603,606,611,615,620,625,630,635,640,645,650,655,660,665,670,675,680,685,688,693,698,703,708,713,718,722,727,732,737,742,747,750,755,760,765,770,775,778,782,786,790,794,797,801,805,808,811,815,819,824,829,833,836,840,844,847,851,855,858,862,866,869,873,877,880,884,887,891,896,901,906,910,913,917,922,925,928,933,938,942,945,949,953,956,960,963,967,972,976,979,983,988,993,998,1003,1007,1010,1015,1020,1024,1029,1034,1039,1044,1049,1054,1059,1064,1068,1072,1077,1082,1087,1092,1097,1102,1105,1110,1113,1116,1121,1125,1130,1135,1140,1145,1150,1155,1160,1165,1170,1173,1178,1181,1185,1190,1195,1200,1204,1207,1210,1215,1219,1224,1229,1233,1237,1242,1247,1250,1254,1258,1261,1265,1269,1273,1277,1282,1285,1289,1294,1298,1303,1306,1311,1316,1321,1324,1329,1334,1339,1344,1349,1354,1359,1364,1367,1371,1375,1380,1385,1390,1394,1399,1403,1408,1413,1418,1421,1425,1429,1432,1436,1440,1445,1450,1454,1459,1464,1469,1473,1478,1482,1487,1492,1496,1501,1505,1510,1514,1519,1523,1528,1532,1537,1542,1547,1551,1556,1561,1566,1569,1574,1579,1582,1585,1588,1591,1596,1599,1604,1608,1612,1616,1620,1625,1630,1635,1640,1643,1647,1651,1656,1660,1665,1670,1675,1680,1685,1689,1694,1699,1704,1709,1714,1718,1723,1728,1732,1737,1742,1746,1751,1756,1760,1765,1769,1774,1779,1781,1784,1787,1790,1793,1796,1799,1802,1805,1808,1811,1814,1817,1820,1823,1826,1829,1832,1835,1838,1841,1844,1847,1850,1853,1856,1859,1862,1865,1868,1871,1874,1879,1884,1889,1894,1899,1904,1909,1914,1917,1922,1927,1932,1936,1941,1946,1951,1956,1961,1966,1969,1974,1979,1984,1989,1991,1996,1999,2004,2009,2012,2015,2020,2025,2030,2035,2040,2045,2050,2055,2060,2064,2069,2074,2079,2084,2089,2092,2097,2101,2106,2111,2115,2120,2125,2129,2134,2139,2143,2148,2153,2157,2162,2167,2172,2176,2181,2186,2189,2192,2195,2198,2201,2204,2207,2210,2213,2216,2219,2222,2225,2228,2231,2234,2237,2240,2243,2246,2249,2252,2255,2258,2261,2264,2267,2270,2273,2276,2279,2282,2285,2288,2291,2294,2297,2300,2303,2306,2309,2312,2315,2319,2323,2328,2333,2337,2342,2347,2352,2357,2361,2366,2370,2375,2380,2383,2387,2389,2393,2395],{"id":11,"title":15,"titles":327,"content":328,"level":329},[],"Estel Docs 是一个基于 Nuxt 4、Nuxt Content v3、Nuxt UI 构建的中文文档与博客系统。",1,{"id":331,"title":332,"titles":333,"content":334,"level":329},"\u002Fdocs\u002F简单文档#estel-docs","Estel Docs",[],"Estel Docs 是一个面向中文内容写作的文档与博客系统。它以 Nuxt 4、Nuxt Content v3 与 Nuxt UI 为基础，保留 Markdown 的轻量写作体验，同时通过 MDC 与 Vue 组件扩展出更丰富的页面表现。 系统当前包含两条内容线： 用于项目说明、使用指南、组件文档、技术资料沉淀，支持侧边栏、目录、编辑链接与上一篇\u002F下一篇导航。用于技术分享、AI 记录、生活随笔等文章发布，支持封面图、发布时间、分页列表与分类标签。",{"id":336,"title":337,"titles":338,"content":339,"level":340},"\u002Fdocs\u002F简单文档#已实现能力","已实现能力",[332],"",2,{"id":342,"title":343,"titles":344,"content":345,"level":346},"\u002Fdocs\u002F简单文档#内容管理","内容管理",[332,337],"content\u002Fdocs\u002F 与 content\u002Fblog\u002F 双集合结构。使用 .navigation.yml 配置目录分组。使用 frontmatter 管理标题、描述、日期、封面图、页面链接等信息。支持中文目录与中文 slug。支持 \u002Fraw\u002F** 原始 Markdown 查看与复制。",3,{"id":348,"title":349,"titles":350,"content":351,"level":346},"\u002Fdocs\u002F简单文档#markdown-增强","Markdown 增强",[332,337],"支持 Nuxt Content MDC 语法。支持 GitHub Flavored Markdown。支持 Mermaid 图表。支持数学公式（MathJax）。支持多语言代码高亮。支持自定义内容组件，例如卡片、标签页、文件树、代码树、在线 Playground、阅读更多等。",{"id":353,"title":354,"titles":355,"content":356,"level":346},"\u002Fdocs\u002F简单文档#阅读体验","阅读体验",[332,337],"桌面端侧边栏导航与右侧目录。移动端抽屉式导航。全站搜索，覆盖 docs 与 blog。页面操作：复制链接、查看 Markdown、在 ChatGPT\u002FClaude 中打开、触发微信分享。浅色、深色、跟随系统模式。字体、字号、主题色等页面设置。",{"id":358,"title":359,"titles":360,"content":361,"level":346},"\u002Fdocs\u002F简单文档#seo分享与-ai-入口","SEO、分享与 AI 入口",[332,337],"每个页面设置 SEO 标题与描述。使用 nuxt-og-image 生成 OG 图片。使用 nuxt-llms 提供 LLM 友好的站点入口。微信分享通过前端组件和独立 Go 签名服务协作完成。",{"id":363,"title":364,"titles":365,"content":366,"level":346},"\u002Fdocs\u002F简单文档#工程化","工程化",[332,337],"pnpm 管理依赖。ESLint 与 Nuxt typecheck。Docker 多阶段构建。GitHub Actions 执行 lint、typecheck、Go tests、Docker build。Renovate 自动维护依赖。CSP、HSTS、Referrer-Policy 等安全响应头。",{"id":368,"title":369,"titles":370,"content":371,"level":340},"\u002Fdocs\u002F简单文档#快速预览","快速预览",[332],"pnpm install\npnpm dev\npnpm lint\npnpm typecheck\npnpm build\npnpm preview 继续阅读 安装指南 了解本地开发流程，或阅读 功能与路线图 查看当前功能边界与后续规划。",{"id":373,"title":374,"titles":375,"content":376,"level":340},"\u002Fdocs\u002F简单文档#当前边界","当前边界",[332],"登录\u002F注册组件已有 UI 雏形，但尚未接入真实认证后端。Sitemap、robots.txt、RSS、PWA、评论、分析、多语言等能力尚未实现。代码主题与图注格式设置已持久化，实际渲染联动仍可继续完善。前端测试体系尚未建立，现有自动化测试主要集中在微信签名 Go 服务。",{"id":378,"title":379,"titles":380,"content":381,"level":340},"\u002Fdocs\u002F简单文档#致谢","致谢",[332],"Nuxt：现代 Vue 全栈框架。Nuxt Content：Markdown 内容管理与渲染能力。Nuxt UI：UI 组件与设计系统。Docus \u002F shadcn-docs-nuxt：文档站体验与组件设计灵感。",{"id":383,"title":384,"titles":385,"content":386,"level":340},"\u002Fdocs\u002F简单文档#license","License",[332],"MIT html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":19,"title":18,"titles":388,"content":389,"level":329},[],"安装、运行与检查 Estel Docs。",{"id":391,"title":392,"titles":393,"content":394,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#环境要求","环境要求",[18],"建议使用以下环境： Node.js 22 LTS（Dockerfile 使用 Node 22）pnpm 10.x（项目声明为 pnpm@10.13.1）GitGo（仅在开发或部署微信签名服务时需要） 如果只开发 Nuxt 文档与博客站点，不需要安装 Go；只有运行 wechat-sign-server\u002F 时才需要 Go 环境。",{"id":396,"title":397,"titles":398,"content":399,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#获取项目","获取项目",[18],"git clone https:\u002F\u002Fgithub.com\u002Festel-li\u002Festel-docs.git\ncd estel-docs 如果你使用的是私有仓库或 fork，请将仓库地址替换为自己的地址。",{"id":401,"title":402,"titles":403,"content":404,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#安装依赖","安装依赖",[18],"pnpm install 项目使用 .npmrc 配置 pnpm 行为，并通过 lockfile 固定依赖版本。CI 与 Docker 构建均使用 frozen lockfile，因此本地更新依赖后应提交 pnpm-lock.yaml。",{"id":406,"title":407,"titles":408,"content":409,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#启动开发服务","启动开发服务",[18],"pnpm dev 默认访问： http:\u002F\u002Flocalhost:3000",{"id":411,"title":412,"titles":413,"content":414,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#常用脚本","常用脚本",[18],"命令说明pnpm dev启动 Nuxt 开发服务器。pnpm lint运行 ESLint。pnpm typecheck运行 Nuxt 类型检查。pnpm build构建 SSR 生产产物。pnpm generate生成静态站点。pnpm preview本地预览生产构建。",{"id":416,"title":417,"titles":418,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#内容开发流程","内容开发流程",[18],{"id":420,"title":421,"titles":422,"content":423,"level":346},"\u002Fdocs\u002F简单文档\u002Finstallation#新增文档","新增文档",[18,417],"在 content\u002Fdocs\u002F 下新增 Markdown 文件： content\u002Fdocs\u002F1.简单文档\u002F6.example.md 推荐包含 frontmatter： ---\ntitle: 示例页面\ndescription: 这是一个文档页面示例。\nnavigation:\n  icon: lucide-file-text\n---\n\n# 示例页面\n\n这里是正文内容。",{"id":425,"title":426,"titles":427,"content":428,"level":346},"\u002Fdocs\u002F简单文档\u002Finstallation#新增博客","新增博客",[18,417],"在 content\u002Fblog\u002F 下新增 Markdown 文件： content\u002Fblog\u002F1.技术栈\u002F1000.example.md 博客文章需要提供 img 与 date 字段： ---\ntitle: 示例博客\ndescription: 这是一篇博客示例。\nimg: \u002Fimages\u002Fdefault-blog.jpg\ndate: 2026-06-13\n---\n\n正文内容。",{"id":430,"title":431,"titles":432,"content":433,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#本地检查","本地检查",[18],"提交前建议至少运行： pnpm lint\npnpm typecheck 如果修改了微信签名服务，还应运行： cd wechat-sign-server\ngo test .\u002F...",{"id":435,"title":436,"titles":437,"content":438,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#微信签名服务本地运行","微信签名服务本地运行",[18],"cd wechat-sign-server\ncp .env.example .env\ngo run . 健康检查： curl http:\u002F\u002F127.0.0.1:8090\u002Fhealth 签名接口： curl -X POST http:\u002F\u002F127.0.0.1:8090\u002Fapi\u002Fwechat\u002Fjs-sign \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\"url\":\"https:\u002F\u002Flijue.net\u002Fblog\u002Fdemo\"}' 不要把真实的 WECHAT_APP_SECRET、部署 Token 等密钥提交到仓库。生产环境应使用部署平台 Secret、系统环境变量或 systemd EnvironmentFile 注入。",{"id":440,"title":441,"titles":442,"content":443,"level":340},"\u002Fdocs\u002F简单文档\u002Finstallation#下一步","下一步",[18],"阅读 Markdown 写作指南。阅读 页面 frontmatter。阅读 部署服务。阅读 功能与路线图。 html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sw7OJ, html code.shiki .sw7OJ{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#EA76CB;--shiki-code-theme-catppuccin-dark:#F5C2E7;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sj1re, html code.shiki .sj1re{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#005CC5;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#79B8FF;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-weight:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-weight:inherit}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sRNaS, html code.shiki .sRNaS{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-weight:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-weight:inherit}html pre.shiki code .sQvrS, html code.shiki .sQvrS{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sUOu9, html code.shiki .sUOu9{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}",{"id":30,"title":29,"titles":445,"content":446,"level":329},[],"如何使用MDC语法编写文档。 在Nuxt Content文档中阅读详细的MDC使用指南。查看 Estel Docs 提供的 MDC 内容组件。",{"id":448,"title":449,"titles":450,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#vs-code集成","VS Code集成",[29],{"id":452,"title":453,"titles":454,"content":455,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#mdc扩展","MDC扩展",[29,449],"Nuxt MDC是一个VS Code扩展，为MDC语法提供语法高亮和自动完成功能。 启动VS Code快速打开  + ，粘贴以下命令，然后按回车。 ext install Nuxt.mdc",{"id":457,"title":458,"titles":459,"content":460,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#启用组件元数据自动完成","启用组件元数据自动完成",[29,449],"需要 Nuxt.mdc >= 0.3.1 VSCode设置{\n  \"mdc.enableComponentMetadataCompletions\": true}\n安装 nuxt-component-meta 模块将nuxt-component-meta依赖添加到您的项目中：将nuxt-component-meta添加到nuxt.config.ts的modules部分，并可选择配置模块：export default defineNuxtConfig({\n  modules: ['nuxt-component-meta'],\n});\n一旦您的项目构建完成或在开发服务器上运行，扩展将自动扫描您的项目以获取组件元数据，并根据发现的组件提供建议，无需额外配置。",{"id":462,"title":463,"titles":464,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#技巧","技巧",[29],{"id":466,"title":467,"titles":468,"content":469,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#从目录中隐藏标题","从目录中隐藏标题",[29,463],"0.4.7 将标题的 id 设置为 hide-toc 将从目录中隐藏该标题。 :h2[脚注]{id=\"hide-toc\"} html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sOgDI, html code.shiki .sOgDI{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#99841877;--shiki-code-theme-vitesse-dark:#B8A96577;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sSdLo, html code.shiki .sSdLo{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .s6YMD, html code.shiki .s6YMD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sRnOL, html code.shiki .sRnOL{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s7Ukq, html code.shiki .s7Ukq{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .smalX, html code.shiki .smalX{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}",{"id":35,"title":34,"titles":471,"content":472,"level":329},[],"Estel Docs 中使用的front matter属性。 ---\ntitle: Front Matter\ndescription: Estel Dsoc中使用的front matter属性。\nicon: lucide:book-type\n\nnavBadges:\n  - value: New\n    type: lime\n\nauthors:\n  - name: Tony Zhang\n    username: ZTL-UwU\n    avatar: https:\u002F\u002Fwww.github.com\u002FZTL-UwU.png\n    to: https:\u002F\u002Fgithub.com\u002FZTL-UwU\n    target: _blank\n---",{"id":474,"title":475,"titles":476,"content":477,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fpages#展示","展示",[34],"badges:\n  - value: 0.8.10\n  - value: Source\n    icon: lucide:code\n    to: https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\u002Fblob\u002Fmain\u002Fcomponents\u002Fcontent\u002FFileTree.vue\n    target: _blank\nauthors:\n  - name: Tony Zhang\n    username: ZTL-UwU\n    avatar: https:\u002F\u002Fwww.github.com\u002FZTL-UwU.png\n    to: https:\u002F\u002Fgithub.com\u002FZTL-UwU\n    target: _blank\nnavBadges:\n  - value: New\n    type: lime",{"id":479,"title":480,"titles":481,"content":482,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fpages#参数","参数",[34],"页面标题。默认为文件名。页面描述。默认为页面的第一个 \u003Cp>。定义页面是否包含在侧边栏中。在 index.md 中设置为 false。在侧边栏中为页面显示的图标。附加到侧边栏链接末尾的徽章列表。是否截断侧边栏标题。显示在页面标题底部的徽章列表。显示在页面标题底部的作者列表。是否为此页面显示目录部分。是否为此页面显示侧边栏部分。是否为此页面显示编辑链接。是否显示上一页和下一页按钮。是否显示面包屑导航。是否使用像主页一样的全页面布局。示例。 html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}",{"id":40,"title":39,"titles":484,"content":485,"level":329},[],"通过 YML 文件配置目录节点。 You can customize folders by creating a _dir.yml file in the folder. title: Folder\nicon: lucide:folder\nnavigation.redirect: \u002Fframeworks\u002Fvue\nnavBadges:\n  - value: New\n    type: lime\nsidebar:\n  style: group\ncollapse: false\ncontent\u002F\n  1.frameworks\u002F\n    _dir.yml\n    1.vue.md\n    2.nuxt.md",{"id":487,"title":488,"titles":489,"content":490,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ffolders#parameters","Parameters",[39],"Title of the page. Defaults to the filename.The icon shown in the sidebar for the page.A list of badges appended to the end of the sidebar link.Whether the folder should be collapsed by default.The style used for the folder. The default value can be configured in the appConfig.defaulttreegroup html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sle2E, html code.shiki .sle2E{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#FF5370;--shiki-code-theme-material-dark:#FF9CAC;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":45,"title":44,"titles":492,"content":493,"level":329},[],"全页面示例 写作ing...",{"id":50,"title":49,"titles":495,"content":496,"level":329},[],"展示 markdown 常用语法 欢迎来到 Markdown 的奇妙世界！无论你是写作爱好者、开发者、博主，还是想要简单记录点什么的人，Markdown 都能成为你新的好伙伴。它不仅让写作变得简单明了，还能轻松地将内容转化为漂亮的网页格式。今天，我们将全面探讨 Markdown 的基础和进阶语法，让你在这个过程中充分享受写作的乐趣！ Markdown 是一种轻量级标记语言，用于格式化纯文本。它以简单、直观的语法而著称，可以快速地生成 HTML。Markdown 是写作与代码的完美结合，既简单又强大。",{"id":498,"title":499,"titles":500,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#markdown-基础语法","Markdown 基础语法",[49],{"id":502,"title":503,"titles":504,"content":505,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_1-标题让你的内容层次分明","1. 标题：让你的内容层次分明",[49,499],"用 # 号来创建标题。标题从 # 开始，# 的数量表示标题的级别。",{"id":507,"title":508,"titles":509,"content":339,"level":329},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#一级标题","一级标题",[],{"id":511,"title":512,"titles":513,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#二级标题","二级标题",[508],{"id":515,"title":516,"titles":517,"content":339,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#三级标题","三级标题",[508,512],{"id":519,"title":520,"titles":521,"content":339,"level":522},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#四级标题","四级标题",[508,512,516],4,{"id":524,"title":525,"titles":526,"content":339,"level":527},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#五级标题","五级标题",[508,512,516,520],5,{"id":529,"title":530,"titles":531,"content":532,"level":533},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#六级标题","六级标题",[508,512,516,520,525],"####### 七级标题 以上代码将渲染出一组层次分明的标题，使你的内容井井有条。",6,{"id":535,"title":536,"titles":537,"content":538,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_2-段落与换行自然流畅","2. 段落与换行：自然流畅",[508,512],"Markdown 中的段落就是一行接一行的文本。要创建新段落，只需在两行文本之间空一行。",{"id":540,"title":541,"titles":542,"content":543,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_3-字体样式强调你的文字","3. 字体样式：强调你的文字",[508,512],"粗体：用两个星号或下划线包裹文字，如 **粗体** 或 __粗体__。斜体：用一个星号或下划线包裹文字，如 *斜体* 或 _斜体_。删除线：用两个波浪线包裹文字，如 ~~删除线~~。 这些简单的标记可以让你的内容更有层次感和重点突出。",{"id":545,"title":546,"titles":547,"content":548,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_4-列表整洁有序","4. 列表：整洁有序",[508,512],"无序列表：用 -、* 或 + 加空格开始一行。有序列表：使用数字加点号（1.、2.）开始一行。 在列表中嵌套其他内容？只需缩进即可实现嵌套效果。 无序列表项 1\n嵌套有序列表项 1嵌套有序列表项 2无序列表项 2 有序列表项 1有序列表项 2",{"id":550,"title":551,"titles":552,"content":553,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_5-链接与图片丰富内容","5. 链接与图片：丰富内容",[508,512],"链接：用方括号和圆括号创建链接 [显示文本](链接地址)。图片：和链接类似，只需在前面加上 !，如 ![描述文本](图片链接)。 访问 Doocs 轻松实现富媒体内容展示！ 因微信公众号平台不支持除公众号内容以外的链接，故其他平台的链接，会呈现链接样式但无法点击跳转。 对于这些链接请注意明文书写，或点击左上角「格式->微信外链接转底部引用」开启引用，这样就可以在底部观察到链接指向。 另外，使用 \u003C![alt](url),![alt](url)> 语法可以创建横屏滑动幻灯片，支持微信公众号平台。建议使用相似尺寸的图片以获得最佳显示效果。",{"id":555,"title":556,"titles":557,"content":558,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_6-引用引用名言或引人深思的句子","6. 引用：引用名言或引人深思的句子",[508,512],"使用 > 来创建引用，只需在文本前面加上它。多层引用？在前一层 > 后再加一个就行。 这是一个引用这是一个嵌套引用 这让你的引用更加富有层次感。",{"id":560,"title":561,"titles":562,"content":563,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_7-代码块展示你的代码","7. 代码块：展示你的代码",[508,512],"行内代码：用反引号包裹，如 code。代码块：用三个反引号包裹，并指定语言，如： console.log(\"Hello, Doocs!\"); 语法高亮让你的代码更易读。",{"id":565,"title":566,"titles":567,"content":568,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_8-分割线分割内容","8. 分割线：分割内容",[508,512],"用三个或更多的 -、* 或 _ 来创建分割线。 为你的内容添加视觉分隔。",{"id":570,"title":571,"titles":572,"content":573,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_9-表格清晰展示数据","9. 表格：清晰展示数据",[508,512],"Markdown 支持简单的表格，用 | 和 - 分隔单元格和表头。 项目人员邮箱微信号yanglbmecontact@yanglibin.infoYLB0109YangFongyangfong2022@gmail.comyq2419731931thinkasanythinkasany@gmail.comthinkasany 这样的表格让数据展示更为清爽！ 手动编写标记太麻烦？我们提供了便捷方式。左上方点击「编辑->插入表格」，即可快速实现表格渲染。",{"id":575,"title":576,"titles":577,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#markdown-进阶技巧","Markdown 进阶技巧",[508],{"id":579,"title":580,"titles":581,"content":582,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_1-latex-公式完美展示数学表达式","1. LaTeX 公式：完美展示数学表达式",[508,576],"Markdown 允许嵌入 LaTeX 语法展示数学公式： 行内公式：用 $ 包裹公式，如   。块级公式：用 $$ 包裹公式，如：",{"id":584,"title":585,"titles":586,"content":587,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#以下是使用mate字段包裹","以下是使用mate字段包裹",[508,576],"列表内块公式 1 列表内块公式 2 这是展示复杂数学表达的利器！",{"id":589,"title":590,"titles":591,"content":592,"level":346},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_2-mermaid-流程图可视化流程","2. Mermaid 流程图：可视化流程",[508,576],"Mermaid 是强大的可视化工具，可以在 Markdown 中创建流程图、时序图等。 #mermaid-0{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-0 .error-icon{fill:#552222;}#mermaid-0 .error-text{fill:#552222;stroke:#552222;}#mermaid-0 .edge-thickness-normal{stroke-width:1px;}#mermaid-0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-0 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-0 .marker{fill:#333333;stroke:#333333;}#mermaid-0 .marker.cross{stroke:#333333;}#mermaid-0 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-0 p{margin:0;}#mermaid-0 .label{font-family:arial,sans-serif;color:#333;}#mermaid-0 .cluster-label text{fill:#333;}#mermaid-0 .cluster-label span{color:#333;}#mermaid-0 .cluster-label span p{background-color:transparent;}#mermaid-0 .label text,#mermaid-0 span{fill:#333;color:#333;}#mermaid-0 .node rect,#mermaid-0 .node circle,#mermaid-0 .node ellipse,#mermaid-0 .node polygon,#mermaid-0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-0 .rough-node .label text,#mermaid-0 .node .label text,#mermaid-0 .image-shape .label,#mermaid-0 .icon-shape .label{text-anchor:middle;}#mermaid-0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-0 .rough-node .label,#mermaid-0 .node .label,#mermaid-0 .image-shape .label,#mermaid-0 .icon-shape .label{text-align:center;}#mermaid-0 .node.clickable{cursor:pointer;}#mermaid-0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-0 .arrowheadPath{fill:#333333;}#mermaid-0 .edgePath .path{stroke:#333333;stroke-width:1px;}#mermaid-0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-0 .cluster text{fill:#333;}#mermaid-0 .cluster span{color:#333;}#mermaid-0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-0 rect.text{fill:none;stroke-width:0;}#mermaid-0 .icon-shape,#mermaid-0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-0 .icon-shape p,#mermaid-0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-0 .icon-shape .label rect,#mermaid-0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-0 .node .neo-node{stroke:#9370DB;}#mermaid-0 [data-look=\"neo\"].node rect,#mermaid-0 [data-look=\"neo\"].cluster rect,#mermaid-0 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-0 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-0 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-0 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 :root{--mermaid-font-family:arial,sans-serif;}Option 1Option 2StartChoose PathPath 1Path 2 #mermaid-1{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-1 .error-icon{fill:#552222;}#mermaid-1 .error-text{fill:#552222;stroke:#552222;}#mermaid-1 .edge-thickness-normal{stroke-width:1px;}#mermaid-1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1 .marker{fill:#333333;stroke:#333333;}#mermaid-1 .marker.cross{stroke:#333333;}#mermaid-1 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-1 p{margin:0;}#mermaid-1 .label{font-family:arial,sans-serif;color:#333;}#mermaid-1 .cluster-label text{fill:#333;}#mermaid-1 .cluster-label span{color:#333;}#mermaid-1 .cluster-label span p{background-color:transparent;}#mermaid-1 .label text,#mermaid-1 span{fill:#333;color:#333;}#mermaid-1 .node rect,#mermaid-1 .node circle,#mermaid-1 .node ellipse,#mermaid-1 .node polygon,#mermaid-1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-1 .rough-node .label text,#mermaid-1 .node .label text,#mermaid-1 .image-shape .label,#mermaid-1 .icon-shape .label{text-anchor:middle;}#mermaid-1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-1 .rough-node .label,#mermaid-1 .node .label,#mermaid-1 .image-shape .label,#mermaid-1 .icon-shape .label{text-align:center;}#mermaid-1 .node.clickable{cursor:pointer;}#mermaid-1 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-1 .arrowheadPath{fill:#333333;}#mermaid-1 .edgePath .path{stroke:#333333;stroke-width:1px;}#mermaid-1 .flowchart-link{stroke:#333333;fill:none;}#mermaid-1 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-1 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-1 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-1 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-1 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-1 .cluster text{fill:#333;}#mermaid-1 .cluster span{color:#333;}#mermaid-1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-1 rect.text{fill:none;stroke-width:0;}#mermaid-1 .icon-shape,#mermaid-1 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-1 .icon-shape p,#mermaid-1 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-1 .icon-shape .label rect,#mermaid-1 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-1 .node .neo-node{stroke:#9370DB;}#mermaid-1 [data-look=\"neo\"].node rect,#mermaid-1 [data-look=\"neo\"].cluster rect,#mermaid-1 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-1 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-1 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-1 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 :root{--mermaid-font-family:arial,sans-serif;}Local Coolify 实例生产服务器编译服务器生产环境 #mermaid-2{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-2 .error-icon{fill:#552222;}#mermaid-2 .error-text{fill:#552222;stroke:#552222;}#mermaid-2 .edge-thickness-normal{stroke-width:1px;}#mermaid-2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-2 .marker{fill:#333333;stroke:#333333;}#mermaid-2 .marker.cross{stroke:#333333;}#mermaid-2 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-2 p{margin:0;}#mermaid-2 .label{font-family:arial,sans-serif;color:#333;}#mermaid-2 .cluster-label text{fill:#333;}#mermaid-2 .cluster-label span{color:#333;}#mermaid-2 .cluster-label span p{background-color:transparent;}#mermaid-2 .label text,#mermaid-2 span{fill:#333;color:#333;}#mermaid-2 .node rect,#mermaid-2 .node circle,#mermaid-2 .node ellipse,#mermaid-2 .node polygon,#mermaid-2 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-2 .rough-node .label text,#mermaid-2 .node .label text,#mermaid-2 .image-shape .label,#mermaid-2 .icon-shape .label{text-anchor:middle;}#mermaid-2 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-2 .rough-node .label,#mermaid-2 .node .label,#mermaid-2 .image-shape .label,#mermaid-2 .icon-shape .label{text-align:center;}#mermaid-2 .node.clickable{cursor:pointer;}#mermaid-2 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-2 .arrowheadPath{fill:#333333;}#mermaid-2 .edgePath .path{stroke:#333333;stroke-width:1px;}#mermaid-2 .flowchart-link{stroke:#333333;fill:none;}#mermaid-2 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-2 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-2 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-2 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-2 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-2 .cluster text{fill:#333;}#mermaid-2 .cluster span{color:#333;}#mermaid-2 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-2 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-2 rect.text{fill:none;stroke-width:0;}#mermaid-2 .icon-shape,#mermaid-2 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-2 .icon-shape p,#mermaid-2 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-2 .icon-shape .label rect,#mermaid-2 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-2 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-2 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-2 .node .neo-node{stroke:#9370DB;}#mermaid-2 [data-look=\"neo\"].node rect,#mermaid-2 [data-look=\"neo\"].cluster rect,#mermaid-2 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-2 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-2 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-2 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-2 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-2 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-2 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-2 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-2 :root{--mermaid-font-family:arial,sans-serif;}ABCD #mermaid-3{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-3 .error-icon{fill:#552222;}#mermaid-3 .error-text{fill:#552222;stroke:#552222;}#mermaid-3 .edge-thickness-normal{stroke-width:1px;}#mermaid-3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-3 .marker{fill:#333333;stroke:#333333;}#mermaid-3 .marker.cross{stroke:#333333;}#mermaid-3 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-3 p{margin:0;}#mermaid-3 .pieCircle{stroke:black;stroke-width:2px;opacity:0.7;}#mermaid-3 .pieOuterCircle{stroke:black;stroke-width:2px;fill:none;}#mermaid-3 .pieTitleText{text-anchor:middle;font-size:25px;fill:black;font-family:arial,sans-serif;}#mermaid-3 .slice{font-family:arial,sans-serif;fill:#333;font-size:17px;}#mermaid-3 .legend text{fill:black;font-family:arial,sans-serif;font-size:17px;}#mermaid-3 .node .neo-node{stroke:#9370DB;}#mermaid-3 [data-look=\"neo\"].node rect,#mermaid-3 [data-look=\"neo\"].cluster rect,#mermaid-3 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-3 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-3 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-3 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-3 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-3 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-3 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-3 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-3 :root{--mermaid-font-family:arial,sans-serif;}40%46%9%5%Key elements in Product XCalciumPotassiumMagnesiumIron #mermaid-4{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-4 .error-icon{fill:#552222;}#mermaid-4 .error-text{fill:#552222;stroke:#552222;}#mermaid-4 .edge-thickness-normal{stroke-width:1px;}#mermaid-4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-4 .marker{fill:#333333;stroke:#333333;}#mermaid-4 .marker.cross{stroke:#333333;}#mermaid-4 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-4 p{margin:0;}#mermaid-4 .pieCircle{stroke:black;stroke-width:2px;opacity:0.7;}#mermaid-4 .pieOuterCircle{stroke:black;stroke-width:2px;fill:none;}#mermaid-4 .pieTitleText{text-anchor:middle;font-size:25px;fill:black;font-family:arial,sans-serif;}#mermaid-4 .slice{font-family:arial,sans-serif;fill:#333;font-size:17px;}#mermaid-4 .legend text{fill:black;font-family:arial,sans-serif;font-size:17px;}#mermaid-4 .node .neo-node{stroke:#9370DB;}#mermaid-4 [data-look=\"neo\"].node rect,#mermaid-4 [data-look=\"neo\"].cluster rect,#mermaid-4 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-4 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-4 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-4 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-4 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-4 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-4 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-4 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-4 :root{--mermaid-font-family:arial,sans-serif;}6%10%70%13%为什么总是宅在家里？喜欢宅天气太热穷没人约 这种方式不仅能直观展示流程，还能提升文档的专业性。 更多用法，参见：Mermaid User Guide。",{"id":594,"title":595,"titles":596,"content":597,"level":340},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#结语","结语",[508],"Markdown 是一种简单、强大且易于掌握的标记语言，通过学习基础和进阶语法，你可以快速创作内容并有效传达信息。无论是技术文档、个人博客还是项目说明，Markdown 都是你的得力助手。希望这篇内容能够带你全面了解 Markdown 的潜力，让你的写作更加丰富多彩！ 现在，拿起 Markdown 编辑器，开始创作吧！探索 Markdown 的世界，你会发现它远比想象中更精彩！",{"id":599,"title":600,"titles":601,"content":602,"level":522},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#推荐阅读","推荐阅读",[508,595],"阿里又一个 20k+ stars 开源项目诞生，恭喜 fastjson！刷掉 90% 候选人的互联网大厂海量数据面试题（附题解 + 方法总结）好用！期待已久的文本块功能究竟如何在 Java 13 中发挥作用？2019 GitHub 开源贡献排行榜新鲜出炉！微软谷歌领头，阿里跻身前 12！ mjx-container[jax=\"SVG\"] {\n  direction: ltr;\n}\n\nmjx-container[jax=\"SVG\"] > svg {\n  overflow: visible;\n  min-height: 1px;\n  min-width: 1px;\n}\n\nmjx-container[jax=\"SVG\"] > svg a {\n  fill: blue;\n  stroke: blue;\n}\n\nmjx-container[jax=\"SVG\"][display=\"true\"] {\n  display: block;\n  text-align: center;\n  margin: 1em 0;\n}\n\nmjx-container[jax=\"SVG\"][display=\"true\"][width=\"full\"] {\n  display: flex;\n}\n\nmjx-container[jax=\"SVG\"][justify=\"left\"] {\n  text-align: left;\n}\n\nmjx-container[jax=\"SVG\"][justify=\"right\"] {\n  text-align: right;\n}\n\ng[data-mml-node=\"merror\"] > g {\n  fill: red;\n  stroke: red;\n}\n\ng[data-mml-node=\"merror\"] > rect[data-background] {\n  fill: yellow;\n  stroke: none;\n}\n\ng[data-mml-node=\"mtable\"] > line[data-line], svg[data-table] > g > line[data-line] {\n  stroke-width: 70px;\n  fill: none;\n}\n\ng[data-mml-node=\"mtable\"] > rect[data-frame], svg[data-table] > g > rect[data-frame] {\n  stroke-width: 70px;\n  fill: none;\n}\n\ng[data-mml-node=\"mtable\"] > .mjx-dashed, svg[data-table] > g > .mjx-dashed {\n  stroke-dasharray: 140;\n}\n\ng[data-mml-node=\"mtable\"] > .mjx-dotted, svg[data-table] > g > .mjx-dotted {\n  stroke-linecap: round;\n  stroke-dasharray: 0,140;\n}\n\ng[data-mml-node=\"mtable\"] > g > svg {\n  overflow: visible;\n}\n\n[jax=\"SVG\"] mjx-tool {\n  display: inline-block;\n  position: relative;\n  width: 0;\n  height: 0;\n}\n\n[jax=\"SVG\"] mjx-tool > mjx-tip {\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\nmjx-tool > mjx-tip {\n  display: inline-block;\n  padding: .2em;\n  border: 1px solid #888;\n  font-size: 70%;\n  background-color: #F8F8F8;\n  color: black;\n  box-shadow: 2px 2px 5px #AAAAAA;\n}\n\ng[data-mml-node=\"maction\"][data-toggle] {\n  cursor: pointer;\n}\n\nmjx-status {\n  display: block;\n  position: fixed;\n  left: 1em;\n  bottom: 1em;\n  min-width: 25%;\n  padding: .2em .4em;\n  border: 1px solid #888;\n  font-size: 90%;\n  background-color: #F8F8F8;\n  color: black;\n}\n\nforeignObject[data-mjx-xml] {\n  font-family: initial;\n  line-height: normal;\n  overflow: visible;\n}\n\nmjx-container[jax=\"SVG\"] path[data-c], mjx-container[jax=\"SVG\"] use[data-c] {\n  stroke-width: 3;\n} html pre.shiki code .s-jwS, html code.shiki .s-jwS{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sBmMY, html code.shiki .sBmMY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":56,"title":55,"titles":604,"content":605,"level":329},[],"部署 Estel Docs、微信签名服务与相关运维配置。",{"id":607,"title":608,"titles":609,"content":610,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#部署模式","部署模式",[55],"Estel Docs 支持两类部署方式： SSR Docker 部署：运行 Nuxt server 产物，适合当前项目的完整能力。静态生成部署：使用 pnpm generate 输出静态文件，适合纯文档托管；微信签名等动态接口需要独立服务配合。 当前仓库已经提供 Dockerfile 与 GitHub Actions，更推荐使用 SSR Docker 部署。",{"id":612,"title":613,"titles":614,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#ssr-docker-部署","SSR Docker 部署",[55],{"id":616,"title":617,"titles":618,"content":619,"level":346},"\u002Fdocs\u002F简单文档\u002Fdeployment#构建镜像","构建镜像",[55,613],"docker build -t estel-docs:latest .",{"id":621,"title":622,"titles":623,"content":624,"level":346},"\u002Fdocs\u002F简单文档\u002Fdeployment#运行容器","运行容器",[55,613],"docker run --rm -p 3000:3000 estel-docs:latest 容器内默认： NODE_ENV=productionHOST=0.0.0.0PORT=3000运行命令：node .output\u002Fserver\u002Findex.mjs",{"id":626,"title":627,"titles":628,"content":629,"level":346},"\u002Fdocs\u002F简单文档\u002Fdeployment#dockerfile-结构","Dockerfile 结构",[55,613],"阶段基础镜像作用depsnode:22-bookworm安装 pnpm 依赖，便于缓存复用。buildernode:22-bookworm安装 Playwright Chromium，并执行 pnpm build。productionnode:22-alpine复制 .output，以 node 用户运行服务。 Playwright Chromium 主要用于 OG 图片渲染，因此构建阶段会安装浏览器及其系统依赖。",{"id":631,"title":632,"titles":633,"content":634,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#静态生成部署","静态生成部署",[55],"pnpm generate 生成产物位于 .output\u002Fpublic。可以部署到 Nginx、对象存储、CDN 或其他静态托管平台。 npx serve .output\u002Fpublic 静态部署只能托管前端资源。微信 JS-SDK 签名接口 \u002Fapi\u002Fwechat\u002Fjs-sign 仍需要由 wechat-sign-server 或其他后端服务提供，并通过反向代理暴露到同源路径。",{"id":636,"title":637,"titles":638,"content":639,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#路由与预渲染","路由与预渲染",[55],"nuxt.config.ts 中的路由规则： 路由行为\u002F预渲染。\u002Fdocs\u002F**预渲染。\u002Fblog\u002F**预渲染。\u002Fraw\u002F**关闭 SSR，不预渲染。 Nitro prerender 开启 crawlLinks 与 failOnError，因此内容链接错误可能导致构建失败。",{"id":641,"title":642,"titles":643,"content":644,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#安全响应头","安全响应头",[55],"项目为全部路由配置了常见安全响应头： Content-Security-PolicyStrict-Transport-SecurityX-Frame-OptionsX-Content-Type-OptionsReferrer-PolicyPermissions-Policy 同时 server\u002Fplugins\u002Fsecurity-headers.ts 会移除 X-Powered-By 响应头。 CSP 允许 https:\u002F\u002Fres.wx.qq.com，这是微信 JSSDK 所需脚本来源。",{"id":646,"title":647,"titles":648,"content":649,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#微信签名服务部署","微信签名服务部署",[55],"微信分享能力由独立 Go 服务提供，目录为 wechat-sign-server\u002F。",{"id":651,"title":652,"titles":653,"content":654,"level":346},"\u002Fdocs\u002F简单文档\u002Fdeployment#关键接口","关键接口",[55,647],"GET \u002Fhealth\nPOST \u002Fapi\u002Fwechat\u002Fjs-sign",{"id":656,"title":657,"titles":658,"content":659,"level":346},"\u002Fdocs\u002F简单文档\u002Fdeployment#关键环境变量","关键环境变量",[55,647],"APP_ENV=production\nPORT=8090\nWECHAT_APP_ID=your_wechat_app_id\nWECHAT_APP_SECRET=your_wechat_app_secret\nALLOWED_ORIGINS=https:\u002F\u002Flijue.net,https:\u002F\u002Fwww.lijue.net\nALLOWED_DOMAINS=lijue.net,www.lijue.net\nTOKEN_CACHE_SECONDS=7000\nTICKET_CACHE_SECONDS=7000\nREQUEST_TIMEOUT_SECONDS=8\nLOG_LEVEL=info",{"id":661,"title":662,"titles":663,"content":664,"level":346},"\u002Fdocs\u002F简单文档\u002Fdeployment#nginx-反代示例","Nginx 反代示例",[55,647],"location \u002Fapi\u002Fwechat\u002F {\n    proxy_pass http:\u002F\u002F127.0.0.1:8090\u002Fapi\u002Fwechat\u002F;\n    proxy_set_header Host $host;\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    proxy_set_header X-Forwarded-Proto $scheme;\n} 完整说明见仓库根目录下的 wechat-sign-server\u002FREADME.md。",{"id":666,"title":667,"titles":668,"content":669,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#cicd","CI\u002FCD",[55],"GitHub Actions 工作流位于 .github\u002Fworkflows\u002Fci.yml。 当前流程： lint：安装依赖并运行 pnpm run lint。typecheck：安装依赖并运行 pnpm run typecheck。go-test：进入 wechat-sign-server\u002F 运行 go test .\u002F...。build：在上述任务通过后使用 Docker Buildx 构建镜像。main 分支 push 时：\n登录私有镜像仓库。推送 latest 与 commit SHA 标签。触发 Coolify 部署接口。 Docker build 开启： GitHub Actions cacheprovenanceSBOM",{"id":671,"title":672,"titles":673,"content":674,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#依赖更新","依赖更新",[55],"Renovate 配置位于 renovate.json： 继承 Nuxt preset。维护 v1 与 main 分支。开启 lockfile maintenance。更新后执行 pnpm dedupe。",{"id":676,"title":677,"titles":678,"content":679,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#生产检查清单","生产检查清单",[55],"pnpm lint 通过。 pnpm typecheck 通过。 wechat-sign-server 的 go test .\u002F... 通过。 Docker 镜像可以正常构建并启动。 生产环境 Secret 未写入仓库。 微信公众号后台配置了 JS 安全域名。 \u002Fapi\u002Fwechat\u002Fjs-sign 能从站点同源访问。 OG 图片在目标页面可正常生成。 CSP 未阻止必要脚本、图片或接口。",{"id":681,"title":682,"titles":683,"content":684,"level":340},"\u002Fdocs\u002F简单文档\u002Fdeployment#可扩展运维能力","可扩展运维能力",[55],"后续可以加入： Docker HEALTHCHECK。镜像漏洞扫描，例如 Trivy。依赖审计与 CodeQL\u002FSAST。Sitemap 与 robots.txt 生成。RSS\u002FAtom Feed。Lighthouse CI。Sentry 或其他错误追踪。结构化日志与运行指标。PR 预览环境或 staging 环境。 html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":67,"title":66,"titles":686,"content":687,"level":329},[],"Estel Docs 自定义内容组件速查文档。",{"id":689,"title":690,"titles":691,"content":692,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#组件使用方式","组件使用方式",[66],"Estel Docs 基于 Nuxt Content MDC 语法，将 app\u002Fcomponents\u002Fcontent\u002F 下的 Vue 组件暴露给 Markdown 使用。组件名通常会转换为 kebab-case，例如： ECard.vue → ::e-cardETabs.vue → ::e-tabsFileTree.vue → ::file-treeButtonLink.vue → ::button-link 部分组件也有单独页面说明，例如 CodeTree、FileTree、Playground、Tabs、ReadMore。本页作为总览与速查。",{"id":694,"title":695,"titles":696,"content":697,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#组件清单","组件清单",[66],"组件用途关键参数ECard卡片容器，基于 UPageCard。title、description、icon、img、spotlight、contentETabs标签页容器，从默认插槽读取 tab。子项 label、iconStack将多个内容块放入分割卡片中。默认插槽FileTree展示文件\u002F目录结构。tree、title、icon、autoSlash、showArrow、showIconCodeTree基于 ProseCodeTree 展示代码文件树。透传属性ButtonLink按钮式链接。to、href、target、blank、icon、trailingIcon、variant、sizePlayground嵌入 StackBlitz 或 CodeSandbox。provider、id、repo、branch、dir、file、titleReadMore阅读更多提示卡片。to、title、icon、color、variantSmartIcon自动识别 Iconify 图标、Emoji 或图片 URL。name、sizeColorModeSwitch大尺寸明暗模式切换开关。无",{"id":699,"title":700,"titles":701,"content":702,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#ecard","ECard",[66],"用于创建内容卡片，可展示标题、描述、图标、图片和插槽内容。 ::e-card{title=\"功能卡片\" description=\"用于突出展示一段内容\" icon=\"lucide-sparkles\"}\n这里是卡片正文，支持 **Markdown**。\n:: 带图片： ::e-card{title=\"图片卡片\" img=\"\u002Fimages\u002Fdefault-blog.jpg\"}\n图片会展示在卡片内部。\n::",{"id":704,"title":705,"titles":706,"content":707,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#etabs","ETabs",[66],"ETabs 会读取默认插槽中的 div 节点，并从其 props 中获取 label 与 icon。 ::e-tabs\n  ::div{label=\"pnpm\" icon=\"simple-icons-pnpm\"}\n  ```bash\n  pnpm install :: npm install :: ## Stack\n\n`Stack` 适合把多个段落、图片或代码块按分割线堆叠展示。\n\n```mdc\n::stack\n  ::div\n  第一段内容。\n  ::\n\n  ::div\n  第二段内容。\n  ::\n::",{"id":709,"title":710,"titles":711,"content":712,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#filetree","FileTree",[66],"FileTree 使用 tree 数组描述目录结构。 ::file-tree{title=\"项目结构\" :tree='[\n  { \"app\": [\"app.vue\", { \"components\": [\"ThemeSettings.vue\"] }] },\n  { \"content\": [\"docs\u002F\", \"blog\u002F\"] },\n  \"nuxt.config.ts\"\n]'}\n:: 约定： 文件名用字符串表示。目录用对象表示。^文件名^ 可标记高亮。+文件名 \u002F -文件名 可表示新增\u002F删除差异。",{"id":714,"title":715,"titles":716,"content":717,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#codetree","CodeTree",[66],"CodeTree 透传给 Nuxt UI ProseCodeTree，适合展示多个代码文件。 ::code-tree{defaultValue=\"nuxt.config.ts\"}\n```ts [nuxt.config.ts]\nexport default defineNuxtConfig({}) \u003Ctemplate>\n  \u003CNuxtPage \u002F>\n\u003C\u002Ftemplate> :: ## ButtonLink\n\n用于在文档中放置按钮链接。\n\n```mdc\n::button-link{to=\"\u002Fdocs\" icon=\"lucide-book-open\" trailingIcon=\"lucide-arrow-right\" variant=\"solid\" size=\"md\"}\n进入文档\n:: 外链： ::button-link{href=\"https:\u002F\u002Fnuxt.com\" blank=true icon=\"simple-icons-nuxtdotjs\"}\nNuxt 官网\n::",{"id":719,"title":119,"titles":720,"content":721,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#playground",[66],"用于嵌入 StackBlitz 或 CodeSandbox。 ::playground{provider=\"stackblitz\" repo=\"nuxt\u002Fnuxt\" branch=\"main\" file=\"package.json\" title=\"Nuxt Playground\"}\n:: 支持： provider=\"stackblitz\"provider=\"codesandbox\"id 模式GitHub repo + branch + dir + file 模式",{"id":723,"title":724,"titles":725,"content":726,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#readmore","ReadMore",[66],"用于给出延伸阅读入口。 ::read-more{to=\"\u002Fdocs\u002F简单文档\u002Fdeployment\" title=\"继续阅读部署指南\" icon=\"lucide-cloud\" color=\"primary\"}\n了解 Docker、CI\u002FCD、微信签名服务与生产检查清单。\n::",{"id":728,"title":729,"titles":730,"content":731,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#smarticon","SmartIcon",[66],"SmartIcon 会根据 name 自动判断： Iconify 图标名。Emoji。图片 URL。 :smart-icon{name=\"lucide-star\" size=24}\n:smart-icon{name=\"🚀\" size=24}\n:smart-icon{name=\"\u002Ffavicon.ico\" size=24}",{"id":733,"title":734,"titles":735,"content":736,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#colormodeswitch","ColorModeSwitch",[66],"用于展示一个较大的明暗模式开关。 ::color-mode-switch\n::",{"id":738,"title":739,"titles":740,"content":741,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#编写新组件的建议","编写新组件的建议",[66],"新增内容组件时建议： 放在 app\u002Fcomponents\u002Fcontent\u002F 下。使用明确的 props 类型。保持 SSR 安全，避免在服务端直接访问 window 或 document。为复杂组件提供示例文档。如果组件依赖外部脚本，应使用 ClientOnly 或在 onMounted 中加载。",{"id":743,"title":744,"titles":745,"content":746,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#可扩展方向","可扩展方向",[66],"为每个内容组件补充独立 API 页面。自动生成组件 props 文档。增加更多交互组件，如复制块、投票、反馈、步骤进度。将组件示例纳入 E2E 截图测试，防止样式退化。 html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sovfr, html code.shiki .sovfr{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sr12r, html code.shiki .sr12r{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:bold;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:bold;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sK6Ki, html code.shiki .sK6Ki{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .soL2k, html code.shiki .soL2k{--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-text-decoration:inherit;--shiki-code-theme-min-dark:#79B8FF;--shiki-code-theme-min-dark-text-decoration:inherit}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sRnOL, html code.shiki .sRnOL{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}",{"id":72,"title":71,"titles":748,"content":749,"level":329},[],"展示提示、警告和状态信息的提醒组件。",{"id":751,"title":752,"titles":753,"content":754,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#usage","Usage",[71],"A default alert with code and a link.A secondary alert with code and a link. ::alert{icon=\"lucide:info\"}\n  A **default** alert with `code` and a [link](\u002F).\n::\n\n::alert{type=\"secondary\" icon=\"lucide:info\"}\n  A **secondary** alert with `code` and a [link](\u002F).\n:: ::",{"id":756,"title":757,"titles":758,"content":759,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#link","Link",[71,752],"A link alert.::alert{to=\"https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\" target=\"_blank\" icon=\"lucide:link\"}\n  A **link** alert.\n::",{"id":761,"title":762,"titles":763,"content":764,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#variants","Variants",[71,752],"An info alert with code and a link.::alert{type=\"info\" icon=\"lucide:info\"}\n  An **info** alert with `code` and a [link](\u002F).\n::\nA note alert with code and a link.::alert{type=\"note\" icon=\"lucide:pencil\"}\n  A **note** alert with `code` and a [link](\u002F).\n::\nA success alert with code and a link.::alert{type=\"success\" icon=\"lucide:lightbulb\"}\n  A **success** alert with `code` and a [link](\u002F).\n::\nAn example alert with code and a link.::alert{type=\"example\" icon=\"lucide:test-tube\"}\n  An **example** alert with `code` and a [link](\u002F).\n::\nA warning alert with code and a link.::alert{type=\"warning\" icon=\"lucide:triangle-alert\"}\n  A **warning** alert with `code` and a [link](\u002F).\n::\nA danger alert with code and a link.::alert{type=\"danger\" icon=\"lucide:circle-x\"}\n  A **danger** alert with `code` and a [link](\u002F).\n::",{"id":766,"title":767,"titles":768,"content":769,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#title","Title",[71,752],"An alert with a title.::alert{title=\"Title\" icon=\"lucide:layout-list\"}\n  An alert with a title.\n::",{"id":771,"title":772,"titles":773,"content":774,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#props","Props",[71],"Alert titleAlert iconLink URLA target attribute value to apply on the linkAlias to target='_blank'Whether to show the link indicator html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sovfr, html code.shiki .sovfr{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sr12r, html code.shiki .sr12r{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:bold;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:bold;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sakEO, html code.shiki .sakEO{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s67uC, html code.shiki .s67uC{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .segS5, html code.shiki .segS5{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#1976D2;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sRjtN, html code.shiki .sRjtN{--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#79B8FF;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sMOd9, html code.shiki .sMOd9{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .smMbF, html code.shiki .smMbF{--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#393A3490;--shiki-code-theme-vitesse-light-text-decoration:underline;--shiki-code-theme-vitesse-dark:#DEDCD590;--shiki-code-theme-vitesse-dark-text-decoration:underline;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-text-decoration:underline;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-text-decoration:underline;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-text-decoration:underline;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":76,"title":75,"titles":776,"content":777,"level":329},[],"展示短标签、状态和版本信息的徽章组件。",{"id":779,"title":752,"titles":780,"content":781,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#usage",[75],"DefaultSmall::badge\n  Default\n::\n::badge{size=\"sm\"}\n  Small\n::",{"id":783,"title":762,"titles":784,"content":785,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#variants",[75,752],"Outline:badge[Outline]{variant=\"outline\"}\nSecondary:badge[Secondary]{variant=\"secondary\"}\nInfo:badge[Info]{type=\"info\"}\nWarning:badge[Warning]{type=\"warning\"}\nSuccess:badge[Success]{type=\"success\"}\nlime:badge[lime]{type=\"lime\"}\nDanger:badge[Danger]{type=\"danger\"}",{"id":787,"title":757,"titles":788,"content":789,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#link",[75,752],"Link::badge{variant=\"outline\" type=\"info\" to=\"https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\" target=\"_blank\"}\nLink\n::",{"id":791,"title":772,"titles":792,"content":793,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#props",[75],"Link URLA target attribute value to apply on the link html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":80,"title":79,"titles":795,"content":796,"level":329},[],"用按钮样式呈现链接操作的内容组件。",{"id":798,"title":752,"titles":799,"content":800,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbutton-link#usage",[79],"Get StartedGitHubGhost::button-link{right-icon=\"lucide:arrow-up-right\" to=\"\u002Fgetting-started\" target=\"_blank\"}\n  Get Started\n::\n::button-link{left-icon=\"lucide:github\" variant=\"outline\" to=\"https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\" target=\"_blank\"}\n  GitHub\n::\n::button-link{left-icon=\"lucide:ghost\" variant=\"ghost\" href=\"https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\" blank}\n  Ghost\n::",{"id":802,"title":772,"titles":803,"content":804,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbutton-link#props",[79],"Icon on the leftIcon on the rightLink URLAlias to toA target attribute value to apply on the linkAlias to target='_blank' html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":84,"title":83,"titles":806,"content":807,"level":329},[],"展示强调信息、提示和辅助说明的内容块。 ::callout is an alias to ::alert. html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":88,"title":87,"titles":809,"content":810,"level":329},[],"展示标题、描述、图标和跳转链接的卡片组件。",{"id":812,"title":752,"titles":813,"content":814,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#usage",[87],"Card TitleDescriptionBeautifully designed Nuxt Content template with shadcn-vue. Customizable. Compatible. Open Source.Footer::card\n---\nicon: lucide:box\n---\n\n#title\nCard Title\n\n#description\nDescription\n\n#content\nBeautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._\n\n#footer\nFooter\n::",{"id":816,"title":757,"titles":817,"content":818,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#link",[87,752],"Link CardBeautifully designed Nuxt Content template with shadcn-vue. Customizable. Compatible. Open Source.::card\n---\nto: https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\ntarget: _blank\n# showLinkIcon: false\n---\n\n#title\nLink Card\n\n#content\nBeautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._\n::",{"id":820,"title":821,"titles":822,"content":823,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#horizontal","Horizontal",[87,752],"Horizontal CardBeautifully designed Nuxt Content template with shadcn-vue. Customizable. Compatible. Open Source.::card\n---\nicon: 'lucide:fold-horizontal'\nicon-size: 26\nhorizontal: true\n---\n\n#title\nHorizontal Card\n\n#description\nBeautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._\n::",{"id":825,"title":826,"titles":827,"content":828,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#image","Image",[87,752],"Image CardBeautifully designed Nuxt Content template with shadcn-vue. Customizable. Compatible. Open Source.::card\n---\nimg: \u002Fog-nuxt.png\n---\n#title\nImage Card\n\n#content\nBeautifully designed **Nuxt Content** template with **shadcn-vue**. _Customizable. Compatible. Open Source._\n::",{"id":830,"title":772,"titles":831,"content":832,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#props",[87],"Card titleCard descriptionCard contentCard footerCard iconLink URLA target attribute value to apply on the linkImage URLWhether to show the link indicator html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sovfr, html code.shiki .sovfr{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sr12r, html code.shiki .sr12r{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:bold;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:bold;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sRdiA, html code.shiki .sRdiA{--shiki-light:#24292E;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:italic;--shiki-dark:#E1E4E8;--shiki-dark-font-style:italic;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-style:italic;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-style:italic;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:italic;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:italic}html pre.shiki code .sQM-L, html code.shiki .sQM-L{--shiki-light:#24292E;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:italic;--shiki-dark:#E1E4E8;--shiki-dark-font-style:italic;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-style:italic;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-style:italic;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:italic;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sle2E, html code.shiki .sle2E{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#FF5370;--shiki-code-theme-material-dark:#FF9CAC;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}",{"id":92,"title":91,"titles":834,"content":835,"level":329},[],"用于组织多个卡片入口的分组组件。",{"id":837,"title":752,"titles":838,"content":839,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard-group#usage",[91],"Explore Nuxt built-in components for pages, layouts, head, and more.Discover Nuxt composable functions for data-fetching, head management and more.Learn about Nuxt utility functions for navigation, error handling and more.List of Nuxt CLI commands to init, analyze, build, and preview your application.::card-group\n  ::card\n  ---\n  title: Components\n  icon: lucide:box\n  to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomponents\u002Fclient-only\n  target: _blank\n  ---\n  Explore Nuxt built-in components for pages, layouts, head, and more.\n  ::\n\n::card\n---\ntitle: Composables\nicon: lucide:arrow-right-left\nto: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-app-config\ntarget: _blank\n---\nDiscover Nuxt composable functions for data-fetching, head management and more.\n::\n\n::card\n---\ntitle: Utils\nicon: lucide:scissors\nto: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Futils\u002Fdollarfetch\ntarget: _blank\n---\nLearn about Nuxt utility functions for navigation, error handling and more.\n::\n\n::card\n---\ntitle: Commands\nicon: lucide:square-terminal\nto: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcommands\u002Fadd\ntarget: _blank\n---\nList of Nuxt CLI commands to init, analyze, build, and preview your application.\n:: ::\n\n### Cols\n\n::stack\n::div{class=\"p-4\"}\n  ::card-group{:cols=\"3\"}\n    ::card\n    ---\n    title: Components\n    icon: lucide:box\n    to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomponents\u002Fclient-only\n    target: _blank\n    ---\n    Explore Nuxt built-in components for pages, layouts, head, and more.\n    ::\n    ::card\n    ---\n    title: Composables\n    icon: lucide:arrow-right-left\n    to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-app-config\n    target: _blank\n    ---\n    Discover Nuxt composable functions for data-fetching, head management and more.\n    ::\n    ::card\n    ---\n    title: Utils\n    icon: lucide:scissors\n    to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Futils\u002Fdollarfetch\n    target: _blank\n    ---\n    Learn about Nuxt utility functions for navigation, error handling and more.\n    ::\n  ::\n::\n```mdc\n::card-group{:cols=\"3\"}\n  ::card\n  ---\n  title: Components\n  icon: lucide:box\n  to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomponents\u002Fclient-only\n  target: _blank\n  ---\n  Explore Nuxt built-in components for pages, layouts, head, and more.\n  ::\n\n  ::card\n  ---\n  title: Composables\n  icon: lucide:arrow-right-left\n  to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-app-config\n  target: _blank\n  ---\n  Discover Nuxt composable functions for data-fetching, head management and more.\n  ::\n\n  ::card\n  ---\n  title: Utils\n  icon: lucide:scissors\n  to: https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Futils\u002Fdollarfetch\n  target: _blank\n  ---\n  Learn about Nuxt utility functions for navigation, error handling and more.\n  ::\n:: ::",{"id":841,"title":772,"titles":842,"content":843,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard-group#props",[91],"Number of columns (only for desktop) html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":96,"title":95,"titles":845,"content":846,"level":329},[],"用标签页形式组织多段代码示例的组件。",{"id":848,"title":752,"titles":849,"content":850,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcode-group#usage",[95],"\u003Ctemplate>\n  \u003Cdiv>\n    \u003CNuxtLayout>\n      \u003CNuxtPage \u002F>\n    \u003C\u002FNuxtLayout>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>Welcome to the homepage\u003C\u002Fh1>\n    \u003CAppAlert>\n      This is an auto-imported component\n    \u003C\u002FAppAlert>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n::code-group\n  ```vue [app.vue]\n  \u003Ctemplate>\n    \u003Cdiv>\n      \u003CNuxtLayout>\n        \u003CNuxtPage \u002F>\n      \u003C\u002FNuxtLayout>\n    \u003C\u002Fdiv>\n  \u003C\u002Ftemplate>\n  ```\n\n  ```vue [pages\u002Findex.vue]\n  \u003Ctemplate>\n    \u003Cdiv>\n      \u003Ch1>Welcome to the homepage\u003C\u002Fh1>\n      \u003CAppAlert>\n        This is an auto-imported component\n      \u003C\u002FAppAlert>\n    \u003C\u002Fdiv>\n  \u003C\u002Ftemplate>\n  ```\n:: ::code-group is a wrapper around ::tabs{variant=\"card\"}.",{"id":852,"title":772,"titles":853,"content":854,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcode-group#props",[95],"Sync scope for ::tabs html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sMLmi, html code.shiki .sMLmi{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}",{"id":100,"title":99,"titles":856,"content":857,"level":329},[],"展示多文件代码结构和代码内容的树形组件。",{"id":859,"title":752,"titles":860,"content":861,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcode-tree#usage",[99],"@import \"tailwindcss\" theme(static);\n@import \"@nuxt\u002Fui-pro\";\nexport default defineAppConfig({\n  ui: {\n    colors: {\n      primary: 'sky',\n      colors: 'slate'\n    }\n  }\n});\n\u003Ctemplate>\n  \u003CUApp>\n    \u003CNuxtPage \u002F>\n  \u003C\u002FUApp>\n\u003C\u002Ftemplate>\n{\n  \"name\": \"nuxt-app\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"nuxt build\",\n    \"dev\": \"nuxt dev\",\n    \"generate\": \"nuxt generate\",\n    \"preview\": \"nuxt preview\",\n    \"postinstall\": \"nuxt prepare\",\n    \"typecheck\": \"nuxt typecheck\"\n  },\n  \"dependencies\": {\n    \"@iconify-json\u002Flucide\": \"^1.2.18\",\n    \"@nuxt\u002Fui-pro\": \"3.0.0-alpha.10\",\n    \"nuxt\": \"^3.15.1\"\n  },\n  \"devDependencies\": {\n    \"typescript\": \"^5.7.2\",\n    \"vue-tsc\": \"^2.2.0\"\n  }\n}\n{\n  \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\"\n}\nexport default defineNuxtConfig({\n  modules: ['@nuxt\u002Fui-pro'],\n\n  future: {\n    compatibilityVersion: 4\n  },\n\n  css: ['~\u002Fassets\u002Fmain.css']\n});\n# Nuxt 3 Minimal Starter\n\nLook at the [Nuxt 3 documentation](https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fintroduction) to learn more.\n\n## Setup\n\nMake sure to install the dependencies:\n\n```bash\n# npm\nnpm install\n\n# pnpm\npnpm install\n\n# yarn\nyarn install\n\n# bun\nbun install\n```\n\n## Development Server\n\nStart the development server on `http:\u002F\u002Flocalhost:3000`:\n\n```bash\n# npm\nnpm run dev\n\n# pnpm\npnpm run dev\n\n# yarn\nyarn dev\n\n# bun\nbun run dev\n```\n\n## Production\n\nBuild the application for production:\n\n```bash\n# npm\nnpm run build\n\n# pnpm\npnpm run build\n\n# yarn\nyarn build\n\n# bun\nbun run build\n```\n\nLocally preview production build:\n\n```bash\n# npm\nnpm run preview\n\n# pnpm\npnpm run preview\n\n# yarn\nyarn preview\n\n# bun\nbun run preview\n```\n\nCheck out the [deployment documentation](https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fdeployment) for more information. ::code-tree{defaultValue=\"nuxt.config.ts\"}\n\n```css [app\u002Fassets\u002Fmain.css]\n@import \"tailwindcss\" theme(static);\n@import \"@nuxt\u002Fui-pro\";\n```\n\n```ts [app\u002Fapp.config.ts]\nexport default defineAppConfig({\n  ui: {\n    colors: {\n      primary: 'sky',\n      colors: 'slate'\n    }\n  }\n});\n```\n\n```vue [app\u002Fapp.vue]\n\u003Ctemplate>\n  \u003CUApp>\n    \u003CNuxtPage \u002F>\n  \u003C\u002FUApp>\n\u003C\u002Ftemplate>\n```\n\n```json [package.json]\n{\n  \"name\": \"nuxt-app\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"nuxt build\",\n    \"dev\": \"nuxt dev\",\n    \"generate\": \"nuxt generate\",\n    \"preview\": \"nuxt preview\",\n    \"postinstall\": \"nuxt prepare\",\n    \"typecheck\": \"nuxt typecheck\"\n  },\n  \"dependencies\": {\n    \"@iconify-json\u002Flucide\": \"^1.2.18\",\n    \"@nuxt\u002Fui-pro\": \"3.0.0-alpha.10\",\n    \"nuxt\": \"^3.15.1\"\n  },\n  \"devDependencies\": {\n    \"typescript\": \"^5.7.2\",\n    \"vue-tsc\": \"^2.2.0\"\n  }\n}\n```\n\n```json [tsconfig.json]\n{\n  \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\"\n}\n```\n\n```ts [nuxt.config.ts]\nexport default defineNuxtConfig({\n  modules: ['@nuxt\u002Fui-pro'],\n\n  future: {\n    compatibilityVersion: 4\n  },\n\n  css: ['~\u002Fassets\u002Fmain.css']\n});\n```\n\n````md [README.md]\n# Nuxt 3 Minimal Starter\n\nLook at the [Nuxt 3 documentation](https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fintroduction) to learn more.\n\n## Setup\n\nMake sure to install the dependencies:\n\n```bash\n# npm\nnpm install\n\n# pnpm\npnpm install\n\n# yarn\nyarn install\n\n# bun\nbun install\n```\n\n## Development Server\n\nStart the development server on `http:\u002F\u002Flocalhost:3000`:\n\n```bash\n# npm\nnpm run dev\n\n# pnpm\npnpm run dev\n\n# yarn\nyarn dev\n\n# bun\nbun run dev\n```\n\n## Production\n\nBuild the application for production:\n\n```bash\n# npm\nnpm run build\n\n# pnpm\npnpm run build\n\n# yarn\nyarn build\n\n# bun\nbun run build\n```\n\nLocally preview production build:\n\n```bash\n# npm\nnpm run preview\n\n# pnpm\npnpm run preview\n\n# yarn\nyarn preview\n\n# bun\nbun run preview\n```\n\nCheck out the [deployment documentation](https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Fdeployment) for more information.\n````\n\n:: ::",{"id":863,"title":772,"titles":864,"content":865,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcode-tree#props",[99],"Default open fileCode tree title html pre.shiki code .snlnV, html code.shiki .snlnV{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sRnOL, html code.shiki .sRnOL{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s7Ukq, html code.shiki .s7Ukq{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .smalX, html code.shiki .smalX{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sOgDI, html code.shiki .sOgDI{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#99841877;--shiki-code-theme-vitesse-dark:#B8A96577;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sSdLo, html code.shiki .sSdLo{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s6YMD, html code.shiki .s6YMD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .svyvD, html code.shiki .svyvD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sQvrS, html code.shiki .sQvrS{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sUOu9, html code.shiki .sUOu9{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .swQno, html code.shiki .swQno{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#1976D2;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sRjtN, html code.shiki .sRjtN{--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#79B8FF;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sMOd9, html code.shiki .sMOd9{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sUVLX, html code.shiki .sUVLX{--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#393A3490;--shiki-code-theme-vitesse-light-text-decoration:underline;--shiki-code-theme-vitesse-dark:#DEDCD590;--shiki-code-theme-vitesse-dark-text-decoration:underline;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-text-decoration:underline;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-text-decoration:underline;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-text-decoration:underline;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .s87Gy, html code.shiki .s87Gy{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .snDca, html code.shiki .snDca{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sakEO, html code.shiki .sakEO{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s67uC, html code.shiki .s67uC{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sMLmi, html code.shiki .sMLmi{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .segS5, html code.shiki .segS5{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#1976D2;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .smMbF, html code.shiki .smMbF{--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#393A3490;--shiki-code-theme-vitesse-light-text-decoration:underline;--shiki-code-theme-vitesse-dark:#DEDCD590;--shiki-code-theme-vitesse-dark-text-decoration:underline;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-text-decoration:underline;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-text-decoration:underline;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-text-decoration:underline;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}",{"id":104,"title":103,"titles":867,"content":868,"level":329},[],"展示单个参数字段名称、类型和说明的组件。",{"id":870,"title":752,"titles":871,"content":872,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffield#usage",[103],"The description can be set as prop or in the default slot with full markdown support.::field{name=\"Field\" type=\"string\" defaultValue=\"'default'\" required}\nThe _description_ can be set as prop or in the default slot with full **markdown** support.\n:: The text required is configurable in main.fieldRequiredText.",{"id":874,"title":772,"titles":875,"content":876,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffield#props",[103],"Field nameField typeField descriptionField default valueWhether the field is required html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sRdiA, html code.shiki .sRdiA{--shiki-light:#24292E;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:italic;--shiki-dark:#E1E4E8;--shiki-dark-font-style:italic;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-style:italic;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-style:italic;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:italic;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:italic}html pre.shiki code .sQM-L, html code.shiki .sQM-L{--shiki-light:#24292E;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:italic;--shiki-dark:#E1E4E8;--shiki-dark-font-style:italic;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-style:italic;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-style:italic;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:italic;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:italic}html pre.shiki code .sovfr, html code.shiki .sovfr{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sr12r, html code.shiki .sr12r{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:bold;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:bold;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":108,"title":107,"titles":878,"content":879,"level":329},[],"用于分组展示多个参数字段说明的组件。",{"id":881,"title":752,"titles":882,"content":883,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffield-group#usage",[107],"A field with a default value.A required field.Clears form errors associated with a specific path. If no path is provided, clears all form errors.Retrieves form errors associated with a specific path. If no path is provided, returns all form errors.Sets form errors for a given path. If no path is provided, overrides all errors.A reference to the array containing validation errors. Use this to access or manipulate the error information.::field-group\n  ::field{name=\"withDefault\" type=\"boolean\" defaultValue=\"true\"}\n  A field with a default value.\n  ::\n  ::field{name=\"requiredField\" type=\"boolean\" required}\n  A required field.\n  ::\n  ::field{name=\"clear (path?: string)\" type=\"void\"}\n  Clears form errors associated with a specific path. If no path is provided, clears all form errors.\n  ::\n  ::field{name=\"getErrors (path?: string)\" type=\"FormError[]\"}\n  Retrieves form errors associated with a specific path. If no path is provided, returns all form errors.\n  ::\n  ::field{name=\"setErrors (errors: FormError[], path?: string)\" type=\"void\"}\n  Sets form errors for a given path. If no path is provided, overrides all errors.\n  ::\n  ::field{name=\"errors\" type=\"Ref\u003CFormError[]>\"}\n  A reference to the array containing validation errors. Use this to access or manipulate the error information.\n  ::\n:: html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":112,"title":111,"titles":885,"content":886,"level":329},[],"展示目录结构、文件层级和高亮文件的树形组件。",{"id":888,"title":752,"titles":889,"content":890,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#usage",[111],"::file-tree\n---\ntree:\n  - app:\n    - components:\n      - Header.vue\n      - Footer.vue\n    - composables:\n      - useErrorHandler.ts\n    - ^app.vue^ # This is highlighted\n  - docs:\n    - index.md\n---\n::",{"id":892,"title":893,"titles":894,"content":895,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#customizations","Customizations",[111,752],"::file-tree\n---\ntitle: File Tree Title\nicon: lucide:folder-tree\nautoSlash: false   # Whether to add a slash after every folder automatically\nshowArrow: true    # Whether to show the collapse arrow\ntree:\n  - components:\n    - layout:\n      - Header.vue\n      - Footer.vue\n      - ...\n    - content:\n      - Accordion.vue\n      - Alert.vue\n      - ProseCode.vue\n      - ...\n---\n::",{"id":897,"title":898,"titles":899,"content":900,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#disable-icons","Disable Icons",[111,752],"::file-tree\n---\nshowIcon: false\ntree:\n  - app:\n    - components:\n      - Header.vue\n      - Footer.vue\n    - composables:\n      - useErrorHandler.ts\n    - ^app.vue^\n  - docs:\n    - index.md\n---\n::",{"id":902,"title":903,"titles":904,"content":905,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#diff","Diff",[111,752],"::file-tree\n---\nshowIcon: false\ntree:\n  - app:\n    - + components:\n      - Header.vue\n      - \"- Footer.vue\"\n    - composables:\n      - useErrorHandler.ts\n    - ^app.vue^\n  - docs:\n    - index.md\n---\n::",{"id":907,"title":772,"titles":908,"content":909,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#props",[111],"The file treeFile tree titleFile tree title iconWhether to add a slash after every folder automaticallyWhether to show the collapse arrowWhether to show file & folder icons html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sle2E, html code.shiki .sle2E{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#FF5370;--shiki-code-theme-material-dark:#FF9CAC;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}",{"id":116,"title":115,"titles":911,"content":912,"level":329},[],"展示 Nuxt Icon 图标用法和图标渲染效果。 The icon component uses Nuxt Icon under the hood. Check out the usage guide from Nuxt Icon.",{"id":914,"title":752,"titles":915,"content":916,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ficon#usage",[115],":icon{name=\"lucide:box\"}\n:icon{name=\"vscode-icons:file-type-js-official\"}\n:icon{name=\"vscode-icons:file-type-vue\"}\n:icon{name=\"vscode-icons:file-type-nuxt\" :size=\"30\"} If you want to use other icons, it is highly recommended to install them locally, which is faster and more reliable on both SSR and client-side. npm i -D @iconify-json\u002Fcollection-name @iconify-json\u002Flucide and @iconify-json\u002Fvscode-icons are installed by default.",{"id":918,"title":919,"titles":920,"content":921,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ficon#smart-icon","Smart Icon",[115,752],"0.5.3 You can put iconify icons, emojis and urls in smart-icon. Smart icon will render them automatically. Iconify  EmojisURL **Iconify**\n:smart-icon{name=\"lucide:box\"}\n:smart-icon{name=\"vscode-icons:file-type-js-official\"}\n:smart-icon{name=\"vscode-icons:file-type-vue\"}\n\n**Emojis**\n:smart-icon{name=\"😍\"}\n:smart-icon{name=\"🚀\"}\n:smart-icon{name=\"🎉\" :size=\"30\"}\n\n**URL**\n:smart-icon{name=\"\u002Flogo.svg\"}\n:smart-icon{name=\"https:\u002F\u002Fvueuse.org\u002Ffavicon.svg\" :size=\"40\"} :: html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sovfr, html code.shiki .sovfr{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sr12r, html code.shiki .sr12r{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:bold;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:bold;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}",{"id":120,"title":119,"titles":923,"content":924,"level":329},[],"嵌入 StackBlitz 或 CodeSandbox 示例项目的组件。",{"id":926,"title":752,"titles":927,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#usage",[119],{"id":929,"title":930,"titles":931,"content":932,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#stackblitz","Stackblitz",[119,752],"::playground\n---\nprovider: stackblitz\nrepo: nuxt\u002Fstarter\nbranch: v3\nfile: app.vue\n---\n::",{"id":934,"title":935,"titles":936,"content":937,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#codesandbox","CodeSandbox",[119,752],"::playground\n---\nprovider: codesandbox\nrepo: nuxt\u002Fstarter\nbranch: v3\nfile: app.vue\n---\n::",{"id":939,"title":772,"titles":940,"content":941,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#props",[119],"Provider to useGitHub repository name (e.g. nuxt\u002Fstarter)Branch nameRepository ID (e.g. for Stackblitz github-t1vjvm, for Codesandbox 8hq5qn)You need to provide either repo or id prop, but not both. Directory to open in the playground (optional) File path to open Title of the iframe :: html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":124,"title":123,"titles":943,"content":944,"level":329},[],"引导读者继续阅读相关页面的链接组件。",{"id":946,"title":752,"titles":947,"content":948,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fread-more#usage",[123],":read-more{to=\"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown\"}\n:read-more{title=\"Nuxt website\" to=\"https:\u002F\u002Fnuxt.com\u002F\"}\n:read-more{to=\"https:\u002F\u002Fnuxt.com\u002F\"}\n:read-more{icon=\"lucide:link\" to=\"https:\u002F\u002Fnuxt.com\u002F\"}",{"id":950,"title":772,"titles":951,"content":952,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fread-more#props",[123],"Read More titleRead More iconLink URLA target attribute value to apply on the link html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":128,"title":127,"titles":954,"content":955,"level":329},[],"用于包裹示例预览和代码内容的堆叠展示组件。",{"id":957,"title":752,"titles":958,"content":959,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fstack#usage",[127],"✨ shadcn-docs-nuxt---\ntitle: Installation\ndescription: How to install shadcn-docs-nuxt in your app.\nicon: lucide:play\n---\n\n## Using the starter template\nSee MDC components provided by shadcn-docs-nuxt. :: ::stack\n  ::div{class=\"p-6 text-3xl font-bold\"}\n  ✨ shadcn-docs-nuxt\n  ::\n\n  ```mdc\n  ---\n  title: Installation\n  description: How to install shadcn-docs-nuxt in your app.\n  icon: lucide:play\n  ---\n\n  ## Using the starter template\n  ```\n\n  :pm-x{command=\"nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\"}\n\n  :read-more{title=\"Installation\" to=\"\u002Fgetting-started\u002Finstallation\"}\n\n  ::card\n  ---\n  title: Components\n  icon: lucide:box\n  ---\n  See MDC components provided by **shadcn-docs-nuxt**.\n  ::\n:: :: Stackable components: divCode Blocksalertcalloutread-morecode-groupcode-treecardtabspm-installpm-runpm-x html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sBSHF, html code.shiki .sBSHF{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .s87Gy, html code.shiki .s87Gy{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .snDca, html code.shiki .snDca{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sMLmi, html code.shiki .sMLmi{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sovfr, html code.shiki .sovfr{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sr12r, html code.shiki .sr12r{--shiki-light:#24292E;--shiki-light-font-weight:bold;--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:bold;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:bold;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-font-weight:bold;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-weight:bold;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-weight:bold;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}",{"id":132,"title":131,"titles":961,"content":962,"level":329},[],"按步骤展示流程说明和操作指南的组件。",{"id":964,"title":752,"titles":965,"content":966,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fsteps#usage",[131],"Get Starter Templatenpx nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\npnpm dlx nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\nbunx nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\nAlternatively, you can clone or download the template from the GitHub repo.Install Dependenciesnpm install\npnpm install\nbun install\nDevelopment Servernpm run dev -- -o\npnpm dev -o\nbun run dev -o :: ::steps\n  ### Get Starter Template\n\n  ::code-group\n    ```bash [npm]\n    npx nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\n    ```\n    ```bash [pnpm]\n    pnpm dlx nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\n    ```\n    ```bash [bun]\n    bunx nuxi@latest init \u003Cproject-name> -t github:ZTL-UwU\u002Fshadcn-docs-nuxt-starter\n    ```\n  ::\n\n  ::alert\n  Alternatively, you can clone or download the template from the [GitHub repo](https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt-starter).\n  ::\n\n  ### Install Dependencies\n\n  ::code-group\n    ```bash [npm]\n    npm install\n    ```\n    ```bash [pnpm]\n    pnpm install\n    ```\n    ```bash [bun]\n    bun install\n    ```\n  ::\n\n  ### Development Server\n\n  ::code-group\n    ```bash [npm]\n    npm run dev -- -o\n    ```\n    ```bash [pnpm]\n    pnpm dev -o\n    ```\n    ```bash [bun]\n    bun run dev -o\n    ```\n  ::\n:: ::",{"id":968,"title":969,"titles":970,"content":971,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fsteps#multi-level-headings","Multi-level headings",[131,752],"0.4.6 Specify the level of headings to use::steps{:level=\"5\"}\nAvailable Headingsh1 through h6. Defaults to h3.::steps{:level=\"5\"}\n  ##### Multi-level headings\n\n  ```mdc\n  ::steps{:level=\"5\"}\n  ```\n\n  ##### Available Headings\n\n  `h1` through `h6`. Defaults to `h3`.\n::",{"id":973,"title":772,"titles":974,"content":975,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fsteps#props",[131],"Specify the level of headings to use html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sVskQ, html code.shiki .sVskQ{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sHLvC, html code.shiki .sHLvC{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .segS5, html code.shiki .segS5{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#1976D2;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sRjtN, html code.shiki .sRjtN{--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#79B8FF;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sMOd9, html code.shiki .sMOd9{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .smMbF, html code.shiki .smMbF{--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#393A3490;--shiki-code-theme-vitesse-light-text-decoration:underline;--shiki-code-theme-vitesse-dark:#DEDCD590;--shiki-code-theme-vitesse-dark-text-decoration:underline;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-text-decoration:underline;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-text-decoration:underline;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-text-decoration:underline;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sl2W6, html code.shiki .sl2W6{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#209FB5;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#74C7EC;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sYw0J, html code.shiki .sYw0J{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#209FB5;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#74C7EC;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sMLmi, html code.shiki .sMLmi{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sakEO, html code.shiki .sakEO{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s67uC, html code.shiki .s67uC{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}",{"id":136,"title":135,"titles":977,"content":978,"level":329},[],"通过标签页切换展示多组内容的组件。",{"id":980,"title":752,"titles":981,"content":982,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#usage",[135],"PostgreSQL column typesimport { integer, pgTable } from 'drizzle-orm\u002Fpg-core';\n\nexport const table = pgTable('table', {\n  int: integer('int')\n});\nMySQL column typesimport { int, mysqlTable } from 'drizzle-orm\u002Fmysql-core';\n\nconst table = mysqlTable('table', {\n  int: int('int')\n});\nSQLite column typesimport { integer, sqliteTable } from 'drizzle-orm\u002Fsqlite-core';\n\nconst table = sqliteTable('table', {\n  id: integer('id')\n});\n\n\u002F\u002F you can customize integer mode to be number, boolean, timestamp, timestamp_ms\ninteger('id', { mode: 'number' });\ninteger('id', { mode: 'boolean' });\ninteger('id', { mode: 'timestamp_ms' });\ninteger('id', { mode: 'timestamp' }); \u002F\u002F Date\n::tabs\n  ::div{label=\"PostgreSQL\" icon=\"lucide:database\"}\n  ### PostgreSQL column types\n\n  ```ts\n  import { integer, pgTable } from 'drizzle-orm\u002Fpg-core';\n\n  export const table = pgTable('table', {\n    int: integer('int')\n  });\n  ```\n  ::\n  ::div{label=\"MySQL\"}\n  ### MySQL column types\n\n  ```ts\n  import { int, mysqlTable } from 'drizzle-orm\u002Fmysql-core';\n\n  const table = mysqlTable('table', {\n    int: int('int')\n  });\n  ```\n  ::\n  ::div{label=\"SQLite\"}\n  ### SQLite column types\n\n  ```ts\n  import { integer, sqliteTable } from 'drizzle-orm\u002Fsqlite-core';\n\n  const table = sqliteTable('table', {\n    id: integer('id')\n  });\n\n  \u002F\u002F you can customize integer mode to be number, boolean, timestamp, timestamp_ms\n  integer('id', { mode: 'number' });\n  integer('id', { mode: 'boolean' });\n  integer('id', { mode: 'timestamp_ms' });\n  integer('id', { mode: 'timestamp' }); \u002F\u002F Date\n  ```\n  ::\n::",{"id":984,"title":985,"titles":986,"content":987,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#card-style","Card Style",[135,752],"This is a card-style tabThis is Tab #2console.log('Hello World!');\n::tabs{variant=\"card\"}\n  ::div{label=\"Card Tab\"}\n  ### This is a card-style tab\n  ::\n  ::div{label=\"Tab 2\" icon=\"lucide:atom\"}\n  This is Tab #2\n  ::\n  ```ts [Code Tab]\n  console.log('Hello World!');\n  ```\n::",{"id":989,"title":990,"titles":991,"content":992,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#line-style","Line Style",[135,752],"0.6.4 Badgeimport { Badge } from \"@\u002Fcomponents\u002Fui\u002Fbadge\"\n\nexport function BadgeDemo() {\n  return \u003CBadge>Badge\u003C\u002FBadge>\n}\n::tabs{variant=\"line\"}\n  ::div{label=\"Preview\" class=\"border flex min-h-[200px] w-full justify-center p-10 items-center rounded-lg shadow-xs\"}\n    :badge[Badge]\n  ::\n  ::div{label=\"Code\"}\n    ```tsx\n    import { Badge } from \"@\u002Fcomponents\u002Fui\u002Fbadge\"\n\n    export function BadgeDemo() {\n      return \u003CBadge>Badge\u003C\u002FBadge>\n    }\n    ```\n  ::\n::",{"id":994,"title":995,"titles":996,"content":997,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#combobox-style","Combobox Style",[135,752],"0.7.5 PostgreSQL column typesimport { integer, pgTable } from 'drizzle-orm\u002Fpg-core';\n\nexport const table = pgTable('table', {\n  int: integer('int')\n});\nMySQL column typesimport { int, mysqlTable } from 'drizzle-orm\u002Fmysql-core';\n\nconst table = mysqlTable('table', {\n  int: int('int')\n});\nSQLite column typesimport { integer, sqliteTable } from 'drizzle-orm\u002Fsqlite-core';\n\nconst table = sqliteTable('table', {\n  id: integer('id')\n});\n\n\u002F\u002F you can customize integer mode to be number, boolean, timestamp, timestamp_ms\ninteger('id', { mode: 'number' });\ninteger('id', { mode: 'boolean' });\ninteger('id', { mode: 'timestamp_ms' });\ninteger('id', { mode: 'timestamp' }); \u002F\u002F Date\n::tabs{variant=\"combobox\" search-placeholder=\"Search database...\" search-empty=\"No database found.\"}\n  ::div{label=\"PostgreSQL\"}\n  ### PostgreSQL column types\n\n  ```ts\n  import { integer, pgTable } from 'drizzle-orm\u002Fpg-core';\n\n  export const table = pgTable('table', {\n    int: integer('int')\n  });\n  ```\n  ::\n  ::div{label=\"MySQL\"}\n  ### MySQL column types\n\n  ```ts\n  import { int, mysqlTable } from 'drizzle-orm\u002Fmysql-core';\n\n  const table = mysqlTable('table', {\n    int: int('int')\n  });\n  ```\n  ::\n  ::div{label=\"SQLite\"}\n  ### SQLite column types\n\n  ```ts\n  import { integer, sqliteTable } from 'drizzle-orm\u002Fsqlite-core';\n\n  const table = sqliteTable('table', {\n    id: integer('id')\n  });\n\n  \u002F\u002F you can customize integer mode to be number, boolean, timestamp, timestamp_ms\n  integer('id', { mode: 'number' });\n  integer('id', { mode: 'boolean' });\n  integer('id', { mode: 'timestamp_ms' });\n  integer('id', { mode: 'timestamp' }); \u002F\u002F Date\n  ```\n  ::\n::",{"id":999,"title":1000,"titles":1001,"content":1002,"level":346},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#synced-tabs","Synced Tabs",[135,752],"0.8.0 Scope 1This is a card-style tabconsole.log('Hello World!');\nThis is a card-style tabThis is Tab #2console.log('Hello World!');\nScope 2This is a card-style tabThis is Tab #2console.log('Hello World!');\nThis is a card-style tabThis is Tab #2console.log('Hello World!');\n#### Scope 1\n::tabs{variant=\"card\" sync=\"your-scope-name\"}\n  ::div{label=\"Card Tab\"}\n  ### This is a card-style tab\n  ::\n  ```ts [Code Tab]\n  console.log('Hello World!');\n  ```\n::\n::tabs{variant=\"card\" sync=\"your-scope-name\"}\n  ::div{label=\"Card Tab\"}\n  ### This is a card-style tab\n  ::\n  ::div{label=\"Tab 2\" icon=\"lucide:atom\"}\n  This is Tab #2\n  ::\n  ```ts [Code Tab]\n  console.log('Hello World!');\n  ```\n::\n\n#### Scope 2\n::tabs{variant=\"line\" sync=\"scope2\"}\n  ::div{label=\"Card Tab\"}\n  ### This is a card-style tab\n  ::\n  ::div{label=\"Tab 2\" icon=\"lucide:atom\"}\n  This is Tab #2\n  ::\n  ```ts [Code Tab]\n  console.log('Hello World!');\n  ```\n::\n::tabs{variant=\"separate\" sync=\"scope2\"}\n  ::div{label=\"Card Tab\"}\n  ### This is a card-style tab\n  ::\n  ::div{label=\"Tab 2\" icon=\"lucide:atom\"}\n  This is Tab #2\n  ::\n  ```ts [Code Tab]\n  console.log('Hello World!');\n  ```\n::",{"id":1004,"title":772,"titles":1005,"content":1006,"level":340},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#props",[135],"For combobox variantFor combobox variantFor combobox variantSync scope html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .s006x, html code.shiki .s006x{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s3wIo, html code.shiki .s3wIo{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sm7WY, html code.shiki .sm7WY{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s7Ukq, html code.shiki .s7Ukq{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .smalX, html code.shiki .smalX{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sVskQ, html code.shiki .sVskQ{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sHLvC, html code.shiki .sHLvC{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sjot_, html code.shiki .sjot_{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s-jwS, html code.shiki .s-jwS{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sBmMY, html code.shiki .sBmMY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sMLmi, html code.shiki .sMLmi{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s2OgT, html code.shiki .s2OgT{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sFPbi, html code.shiki .sFPbi{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sZpJG, html code.shiki .sZpJG{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#EA76CB;--shiki-code-theme-catppuccin-dark:#F5C2E7;--shiki-code-theme-one-light:#C18401;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}",{"id":140,"title":139,"titles":1008,"content":1009,"level":329},[],"Estel Docs 当前已经实现的功能、边界与后续可扩展方向。",{"id":1011,"title":1012,"titles":1013,"content":1014,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#项目定位","项目定位",[139],"Estel Docs 是一个中文文档与博客系统，核心目标是： 用 Markdown 管理文档和博客。用 Nuxt Content 组织内容集合。用 Nuxt UI 与自定义组件提升阅读体验。用现代工程化手段完成构建、部署和维护。在个人站、项目站和团队知识库之间保持可扩展性。",{"id":1016,"title":1017,"titles":1018,"content":1019,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#已实现功能总览","已实现功能总览",[139],"模块已实现能力文档系统docs 集合、侧边栏、目录、编辑链接、问题反馈、上一篇\u002F下一篇。博客系统blog 集合、文章列表、日期排序、分页、分类标签、封面图。MarkdownMDC、GFM、Mermaid、数学公式、代码高亮、自定义内容组件。搜索全站搜索覆盖 docs 与 blog。主题浅色\u002F深色\u002F系统、字体、字号、主题色、自定义色、localStorage 持久化。SEO页面 meta、OG 图片、Twitter Card、站点名配置。LLMnuxt-llms 生成面向 LLM 的入口，当前主要覆盖 docs 集合。分享复制链接、查看 Markdown、ChatGPT\u002FClaude 打开、微信分享签名。部署Nuxt build\u002Fgenerate、Docker 多阶段构建、Coolify 部署触发。安全CSP、HSTS、Referrer-Policy、Permissions-Policy、移除 X-Powered-By。工程化ESLint、typecheck、Go tests、Renovate、GitHub Actions。",{"id":1021,"title":1022,"titles":1023,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#现有功能详解","现有功能详解",[139],{"id":1025,"title":1026,"titles":1027,"content":1028,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_1-内容集合","1. 内容集合",[139,1022],"content.config.ts 定义了两个集合： docs：文档页集合，来源为 docs\u002F**。blog：博客页集合，来源为 blog\u002F**。 文档和博客都保留 rawbody，因此可以支持原始 Markdown 展示。博客额外要求 img 与 date 字段，用于列表封面和时间排序。",{"id":1030,"title":1031,"titles":1032,"content":1033,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_2-文档阅读","2. 文档阅读",[139,1022],"文档页位于 \u002Fdocs\u002F**，支持： 自动查询对应路径的文档内容。从导航树推导页面 headline。自动生成页面目录。页面底部显示编辑与问题反馈入口。上一篇\u002F下一篇 surround navigation。自定义页面链接按钮。自定义 OG 图片组件。",{"id":1035,"title":1036,"titles":1037,"content":1038,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_3-博客阅读","3. 博客阅读",[139,1022],"博客页位于 \u002Fblog\u002F**，支持： 列表页按日期倒序展示。每页 12 篇文章，最多 15 页。从路径提取分类标签。缺省封面图兜底。详情页展示发布时间、目录、页面操作与上下篇。",{"id":1040,"title":1041,"titles":1042,"content":1043,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_4-原始-markdown","4. 原始 Markdown",[139,1022],"\u002Fraw\u002F** 会根据路径自动判断 docs 或 blog 集合，展示 rawbody 并支持复制全文。 该能力适合： 将文档发送给 AI 阅读。复制原文做二次编辑。对比渲染内容与源 Markdown。",{"id":1045,"title":1046,"titles":1047,"content":1048,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_5-页面操作","5. 页面操作",[139,1022],"页面头部操作区支持： 复制当前链接。查看 Markdown。在 ChatGPT 中打开当前 Markdown 链接。在 Claude 中打开当前 Markdown 链接。按需挂载微信分享组件。 这些操作都围绕当前页面 URL 与 \u002Fraw\u002F**.md URL 生成。",{"id":1050,"title":1051,"titles":1052,"content":1053,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_6-微信分享","6. 微信分享",[139,1022],"微信分享由两部分组成： 前端 wxShare.vue：加载微信 JSSDK、请求签名、调用分享 API。Go 服务 wechat-sign-server\u002F：缓存 token\u002Fticket，校验域名，生成签名。 生产部署时，需要将站点同源的 \u002Fapi\u002Fwechat\u002F 反向代理到 Go 服务。",{"id":1055,"title":1056,"titles":1057,"content":1058,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_7-主题系统","7. 主题系统",[139,1022],"useTheme.ts 是主题系统的单例 composable，负责： 状态管理。localStorage 持久化。将字体、字号、主题色写入 DOM\u002FCSS 变量。提供重置设置方法。 ThemeSettings.vue 提供可视化设置面板。",{"id":1060,"title":1061,"titles":1062,"content":1063,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_8-安全与部署","8. 安全与部署",[139,1022],"nuxt.config.ts 中统一配置安全响应头，并定义预渲染策略。Dockerfile 将依赖安装、构建和运行拆分为三个阶段，CI 会先执行质量检查，再构建镜像并在 main 分支触发部署。",{"id":1065,"title":374,"titles":1066,"content":1067,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#当前边界",[139],"以下内容尚未实现，不要误认为是当前功能： 真实用户认证后端。评论系统。RSS\u002FAtom Feed。Sitemap 与 robots.txt。PWA \u002F 离线阅读。多语言 i18n。前端单元测试与 E2E 测试。生产监控、错误追踪与性能看板。在线 Markdown 编辑器。文档版本控制。",{"id":1069,"title":1070,"titles":1071,"content":339,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#路线图","路线图",[139],{"id":1073,"title":1074,"titles":1075,"content":1076,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p0基础补齐","P0：基础补齐",[139,1070],"这些功能成本较低，且能明显提升站点完整度。 Sitemap：从 docs\u002Fblog 内容集合生成 sitemap。robots.txt：明确允许搜索引擎抓取公开内容。RSS\u002FAtom：为博客提供订阅。内容链接检查：CI 中检查 Markdown 内链、外链、图片引用。frontmatter 检查：对 docs\u002Fblog 必填字段给出更明确的错误。阅读时长：按文章字数估算阅读时间。面包屑导航：提升文档层级导航体验。",{"id":1078,"title":1079,"titles":1080,"content":1081,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p1质量与体验","P1：质量与体验",[139,1070],"Vitest 单元测试：覆盖 composables、utils 与关键组件逻辑。Nuxt Test Utils：覆盖页面渲染、内容查询、路由行为。Playwright E2E：覆盖搜索、主题设置、博客分页、raw 页面。标签\u002F分类页：为博客生成分类索引与标签筛选。代码主题接入：将设置面板中的代码主题真正联动到代码块渲染。图注格式接入：让图片 title\u002Falt 的展示规则可配置。复制代码\u002F标题锚点体验优化：增强技术文档阅读效率。",{"id":1083,"title":1084,"titles":1085,"content":1086,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p2运营与增长","P2：运营与增长",[139,1070],"隐私友好统计：接入 Umami、Plausible 或自托管分析。评论系统：评估 Giscus、Utterances 或自建评论接口。PWA 离线阅读：缓存核心文档与静态资源。Lighthouse CI：监控性能、SEO、可访问性。错误追踪：接入 Sentry 或等价方案。部署健康检查：Docker HEALTHCHECK 与平台探针。镜像与依赖安全扫描：Trivy、pnpm audit、CodeQL\u002FSAST。",{"id":1088,"title":1089,"titles":1090,"content":1091,"level":346},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p3产品化能力","P3：产品化能力",[139,1070],"认证系统：为现有登录\u002F注册 UI 接入真实后端。在线编辑器：支持 Markdown 编辑、预览、草稿与发布。内容版本：多版本文档、修订历史、回滚。多语言内容：支持中英双语或多语言站点。高级搜索：预构建索引、服务端搜索、语义搜索或问答式搜索。导出能力：PDF、EPUB、单页离线包。团队协作：权限、审核、评论、变更记录。",{"id":1093,"title":1094,"titles":1095,"content":1096,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#优先级建议","优先级建议",[139],"推荐按以下顺序推进： Sitemap、robots.txt、RSS：补齐公开内容站点基础设施。内容校验与前端测试：提高长期维护稳定性。博客分类\u002F标签、阅读时长、面包屑：增强内容发现与阅读体验。PWA、分析、评论：开始运营化。认证、在线编辑、多语言、版本控制：进入产品化阶段。",{"id":1098,"title":1099,"titles":1100,"content":1101,"level":340},"\u002Fdocs\u002F简单文档\u002F功能与路线图#实施注意事项","实施注意事项",[139],"新功能应先确认是文档站能力、博客能力、运营能力还是产品化能力，避免一次性耦合过多模块。涉及 SEO 的功能应同时考虑静态生成、SSR 与 Docker 部署。涉及微信分享的功能应同时验证公众号后台配置、域名白名单、CSP 与反向代理。涉及主题的功能应确认设置状态、CSS 变量和实际组件渲染三者都已接通。涉及 AI\u002FLLM 的功能应区分“打开外部 AI 页面”和“接入模型 API”，当前项目只实现了前者以及 nuxt-llms 内容入口。",{"id":146,"title":150,"titles":1103,"content":1104,"level":329},[],"24小时无人自助系统,适合 棋牌室 台球厅 自习室 等场所使用 test",{"id":1106,"title":1107,"titles":1108,"content":1109,"level":329},"\u002Fdocs\u002Fabout","关于",[],"Estel Docs 文档系统",{"id":167,"title":166,"titles":1111,"content":1112,"level":329},[],"增加一些新的渲染，如脑图等",{"id":172,"title":171,"titles":1114,"content":1115,"level":329},[],"在数字化浪潮席卷全球的今天，服务器已成为承载企业核心业务与数据的“心脏”。一旦这颗心脏被攻破，轻则业务中断，重则数据泄漏、引发监管问责、品牌声誉坍塌，甚至于法律诉讼。",{"id":1117,"title":1118,"titles":1119,"content":1120,"level":346},"\u002Fblog\u002F技术栈\u002F服务器加固实战#前言","前言",[171],"在数字化浪潮席卷全球的今天，服务器已成为承载企业核心业务与数据的“心脏”。一旦这颗心脏被攻破，轻则业务中断，重则数据泄漏、引发监管问责、品牌声誉坍塌，甚至于法律诉讼。也正因如此，“我不知道漏洞藏在那里”已经不是借口，而是失责；真正负责任的运维与安全团队，必须把“ 防于未然，先固不破 ”当作铁律。 然而，系统配置千头万绪——从 BIOS 到内核参数，从系统服务到用户策略，从网络栈到文件权限——千里之堤，溃于蚁穴,任何一个角落的配置失误，都可能成为攻击者趁虚而入的跳板。“人眼”已无法在短时间内遍历所有细节，唯有借助安全团队丰富的经验与标准化的自动安全审计工具，将复杂环境拆解成可度量的检查项，才能在海量主机、混部容器与虚拟化场景中抽丝剥茧，还原安全真相。 本文将以 Lynis 审计工具来还原一次服务器加固实战。",{"id":1122,"title":1123,"titles":1124,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002F服务器加固实战#正文","正文",[171],{"id":1126,"title":1127,"titles":1128,"content":1129,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#什么是lynis","什么是Lynis?",[171,1123],"Lynis 是一款开源、针对基于 UNIX 系统（如 Linux、macOS、BSD 等）的安全审计工具。它能检测系统配置、文件权限、日志、网络等多个方面，提供详细的安全建议，帮助系统管理员加强系统的安全性。Lynis 通常被系统管理员和网络安全工程师用来评估其系统的安全防御能力。 除了“蓝队”之外，如今的渗透测试人员也将 Lynis 作为他们的工具之一。",{"id":1131,"title":1132,"titles":1133,"content":1134,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#环境","环境",[171,1123],"OS：Debian 12 (bookworm) 全新 Server 最小化安装内核：6.1.0-12-amd64（Debian 12 官方 6.1 LTS 最新版）架构：x86_64软件源 :启用 Debian Security 及官方主仓库用户：root 初始登录，已创建 sudo 普通用户 estel，后续所有操作便于演示均以 su - 模式执行时间：NTP 已启用，与 pool.ntp.org 同步，时区 UTC+8防火墙：iptables 未配置（默认空规则）已更新：apt update && apt full-upgrade -y 三天前更新已安装包： Docker nfs-server openssh-server",{"id":1136,"title":1137,"titles":1138,"content":1139,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#使用","使用",[171,1123],"# ssh 连接进服务器\n# 在合适的目录进行克隆 Lynis\ngit clone https:\u002F\u002Fgithub.com\u002FCISOfy\u002Flynis\n\n#执行安全审查脚本\ncd lynis && sudo .\u002Flynis audit system",{"id":1141,"title":1142,"titles":1143,"content":1144,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#扫描结果部分摘录","扫描结果部分摘录",[171,1123],"**[ Lynis 3.1.6 ]**\n  **Lynis security scan details**:\n  **Scan mode**:\n  Normal [▆]  Forensics [ ]  Integration [ ]  Pentest [ ]\n  **Lynis modules**:\n  - Compliance status      [**?**]\n  - Security audit         [**V**]\n  - Vulnerability scan     [**V**]\n  **Details**:\n  Hardening index : **63** [**############**        ]\n  Tests performed : **280**\n  Plugins enabled : **2**\n\n  **Software components**:\n  - Firewall               [**V**]\n  - Intrusion software     [**X**]\n  - Malware scanner        [**X**]\n\n  **Files**:\n  - Test and debug information      : **\u002Fvar\u002Flog\u002Flynis.log**\n  - Report data                     : **\u002Fvar\u002Flog\u002Flynis-report.dat**\n==============================================================\n    **Lynis** 3.1.6\n  Auditing, system hardening, and compliance for UNIX-based systems\n  (Linux, macOS, BSD, and others)\n  2007-2025, CISOfy - https:\u002F\u002Fcisofy.com\u002Flynis\u002F\n  **Enterprise support available (compliance, plugins, interface and tools)**",{"id":1146,"title":1147,"titles":1148,"content":1149,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#结果分析","结果分析",[171,1123],"根据 Lynis 的体检单Hardening Index 63\u002F100 系统概况 Debian 12，无内核更新，无重启需求，存在 2 个高风险补丁（PKGS-7392）。 关键问题 GRUB 无密码 ,可单用户模式提权\nSSH 端口为 22，允许 root 登录，多项参数过宽大量 systemd 服务暴露评分 9.x（atd、cron、docker、rsyslog 等）未挂载 \u002Fvar \u002Ftmp \u002Fhome 独立分区，可能导致 DoS缺乏防火墙规则审查、恶意软件扫描器、文件完整性监控、审计框架 次要风险 仅 1 个 DNS 服务器，NFS 空 exports 文件却运行守护进程USB\u002F火线驱动、编译器、核心参数未加固日志未远程归档、登录 banner 未配置",{"id":1151,"title":1152,"titles":1153,"content":1154,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#进行服务器加固","进行服务器加固",[171,1123],"# 为便于演示默认以下所有操作均在 root 权限下\nsu - # 更新系统补丁\napt update && apt dist-upgrade -y 给 GRUB 加密码 apt install -y grub2-common\ngrub-mkpasswd-pbkdf2 # 生成 PBKDF2 哈希\n\nnano \u002Fetc\u002Fgrub.d\u002F40_custom # 追加到配置中\n\ncat \u003C\u003CEOF\nset superusers=\"grubadmin\"\npassword_pbkdf2 grubadmin grub.pbkdf2.sha512.10000.xxxxxxxx...\nEOF\n\n# 更新\nupdate-grub\n\n#如果更新报错,改为在 40_custom 中追加\nset superusers=\"root\"\npassword_pbkdf2 grubadmin grub.pbkdf2.sha512.10000.xxxxxxxx... SSH 强化 # 修改 SSH 默认端口号 与登录配置\n\ncp \u002Fetc\u002Fssh\u002Fsshd_config{,.bak}\ncat >> \u002Fetc\u002Fssh\u002Fsshd_config \u003C\u003CEOF\nPort 49222\nPermitRootLogin no\nMaxAuthTries 3\nMaxSessions 2\nClientAliveInterval 300\nClientAliveCountMax 2\nAllowTcpForwarding no\nTCPKeepAlive no\nX11Forwarding no\nAllowAgentForwarding no\nLogLevel VERBOSE\nEOF\nsystemctl restart ssh 3.强化 sshd 安全 cp \u002Flib\u002Fsystemd\u002Fsystem\u002Fssh.service \u002Fetc\u002Fsystemd\u002Fsystem\u002Fssh.service\n\n# 使用 systemd-analyze security 的建议调整\nsystemctl edit --full ssh.service\n\nsystemctl restart ssh 禁用不必要的 systemd 服务 # atd 一次性计划任务守护进程，不需要调度就关掉；\n# exim4 Debian 系列默认的 MTA 邮件服务，不需要本地发件关掉；\n# containerd ‑ Docker\u002FK8s 的运行时，此服务不用容器关掉。\n\nsystemctl disable --now atd exim4 containerd Kernel 级系统参数 cat >\u002Fetc\u002Fsysctl.d\u002F99-hardening.conf \u003C\u003CEOF\ndev.tty.ldisc_autoload=0\nfs.protected_fifos=2\nkernel.core_uses_pid=1\nkernel.kptr_restrict=2\nkernel.unprivileged_bpf_disabled=1\nkernel.sysrq=0\nnet.core.bpf_jit_harden=2\nnet.ipv4.conf.all.log_martians=1\nnet.ipv4.conf.all.rp_filter=1\nnet.ipv4.conf.all.send_redirects=0\nnet.ipv4.conf.all.accept_redirects=0\nnet.ipv6.conf.all.accept_redirects=0\nnet.ipv6.conf.default.accept_redirects=0\nkernel.dmesg_restrict = 1\nEOF\nsysctl -p \u002Fetc\u002Fsysctl.d\u002F99-hardening.conf 内核部分参数解释 参数作用备注dev.tty.ldisc_autoload=0禁止非特权用户加载终端的 line discipline防御终端驱动注入攻击fs.protected_fifos=2严格保护 FIFO\u002F管道文件权限防止竞态条件漏洞kernel.core_uses_pid=1Core 转储文件名包含 PID方便调试但需配合 ulimit -c 限制kernel.kptr_restrict=2完全隐藏内核符号地址防内核信息泄漏kernel.unprivileged_bpf_disabled=1禁止非特权用户使用 BPF防御容器逃逸kernel.sysrq=0禁用 SysRq 组合键防止物理接触攻击net.core.bpf_jit_harden=2BPF JIT 编译器加固缓解 Spectre 漏洞net.ipv4.conf.all.log_martians=1记录异常 IP 包需配合日志监控net.ipv4.conf.all.rp_filter=1启用反向路径过滤防 IP 欺骗net.ipv4\u002F6.*.accept_redirects=0禁止 ICMP 重定向防网络拓扑劫持net.ipv4.conf.all.send_redirects=0禁止发送 ICMP 重定向仅路由器需要kernel.dmesg_restrict = 1防止非特权用户访问内核日志 关闭 USB \u002F 火线存储 cat >\u002Fetc\u002Fmodprobe.d\u002Fblacklist-usb-storage.conf \u003C\u003CEOF\ninstall usb-storage \u002Fbin\u002Ffalse\ninstall firewire-ohci \u002Fbin\u002Ffalse\nEOF\nrmmod usb-storage firewire-ohci || true 安装防护软件 # auditd（系统审计日志）、rkhunter（Rootkit 检测）\n# chkrootkit（基础 Rootkit 扫描）debsums（校验官方软件包完整性）\n# apparmor-profiles（强制访问控制策略）aide（文件完整性监控）\n\napt install -y auditd rkhunter chkrootkit debsums apparmor-profiles apparmor-profiles-extra aide\n\n# 初始化文件完整性（AIDE）需要较长时间,占用IO\naideinit\n\nsystemctl enable --now auditd 配置安全自动更新 apt install -y unattended-upgrades\ndpkg-reconfigure -plow unattended-upgrades",{"id":1156,"title":1157,"titles":1158,"content":1159,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#复查扫描","复查扫描",[171,1123],"lynis audit system\n\n# 扫描结果部分摘录\n\n  **Lynis security scan details**:\n  **Scan mode**:\n  Normal [▆]  Forensics [ ]  Integration [ ]  Pentest [ ]\n  **Lynis modules**:\n  - Compliance status      [**?**]\n  - Security audit         [**V**]\n  - Vulnerability scan     [**V**]\n\n  **Details**:\n  Hardening index : **78** [**###############**     ]\n  Tests performed : **283**\n  Plugins enabled : **2**\n\n  **Software components**:\n  - Firewall               [**V**]\n  - Intrusion software     [**X**]\n  - Malware scanner        [**V**]\n\n\n  **Files**:\n  - Test and debug information      : **\u002Fvar\u002Flog\u002Flynis.log**\n  - Report data                     : **\u002Fvar\u002Flog\u002Flynis-report.dat**\n\n==============================================================\n  **Lynis** 3.1.6\n\n  Auditing, system hardening, and compliance for UNIX-based systems\n  (Linux, macOS, BSD, and others)\n\n  2007-2025, CISOfy - https:\u002F\u002Fcisofy.com\u002Flynis\u002F\n  **Enterprise support available (compliance, plugins, interface and tools)**\n\n\n\n================================================================================",{"id":1161,"title":1162,"titles":1163,"content":1164,"level":522},"\u002Fblog\u002F技术栈\u002F服务器加固实战#加固完成","加固完成",[171,1123],"加固指数：78（63↓ ➜ ↑78）告警数量：0（Great, no warnings）剩余建议：33 条，以“系统性、纵深优化”为主，无紧急风险**\n经过第一轮快速修补，本机已从 63 分 危险边缘 回到“可交付”水平：漏洞包归零。后续把“服务安全上下文 + 纵深防御”作为重点，逐步细化为零告警、高可信的 Debian 12 基线环境。目标在下一轮扫描中 ≥85 分，Warnings=0。遵循“未漏先防、未破先固”原则，持续加固即可。 类别关键动作预估加分系统服务对 docker.service、containerd.service、ssh.service 等仍处 UNSAFE\u002FEXPOSED 状态的单位，逐条应用 systemd-analyze security 推荐的安全参数（NoNewPrivileges、ProtectSystem 等）≈ +3–4 分审计规则为 auditd 导入 CIS 审计规则 → ACCT-9628≈ +2 分密码策略设定最小\u002F最大口令寿命、启用 pam_cracklib，统一 umask 027 → AUTH-9262\u002F9328≈ +2 分内核参数修正 fs.protected_fifos、kernel.yama.ptrace_scope 等 4 项 sysctl 差异 → KRNL-6000≈ +1 分纵深防御禁止 USB-Storage\u002FFireWire、配置远程日志、加固编译器 & cron 权限≈ +1 分",{"id":1166,"title":1167,"titles":1168,"content":1169,"level":340},"\u002Fblog\u002F技术栈\u002F服务器加固实战#总结","总结",[171],"通过本次基于 Lynis 的服务器安全加固实战，我们成功将一台\"裸奔\"的 Debian 12 服务器从 63 分的危险边缘状态提升至 78 分的可交付水平——这不仅是数字上的跃升，更是从\"千疮百孔\"逐步到\"基线合规\"的质变。从 GRUB 无密码、SSH 配置过宽，到内核参数缺失、关键服务暴露——每一项都是潜在的攻击入口，而工具化的检测让我们得以\"抽丝剥茧，还原安全真相\"。 更重要的是，78 分绝非终点。正如防于未然，先固不破的铁律所示，安全加固是一个持续迭代的过程：systemd 服务的深度加固、审计规则的精细配置、密码策略的严格管控——每一步都在为企业的数字资产构筑更坚固的防线。 在数字化浪潮愈发汹涌的今天，服务器安全已不容半点侥幸。那些仍抱着\"我不知道漏洞藏在哪里\"的心态，直到漏洞爆发才仓促补救的团队，终将在下一次攻击中付出惨重代价。真正负责任的做法，是把安全加固的重心从 \"事后补救\" 前移到 \"事前预防\"，让每一台服务器都成为攻击者难以逾越的堡垒。 千里之堤，毁于蚁穴；百密一疏，功亏一篑。唯有持之以恒的安全意识与标准化的加固流程，才能在这场没有硝烟的网络战争中立于不败之地。 html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s_LmA, html code.shiki .s_LmA{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sc7rV, html code.shiki .sc7rV{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}",{"id":176,"title":175,"titles":1171,"content":1172,"level":329},[],"实战中使用nmap进行渗透测试和信息收集。 nmap -p- --min-rate=1000 -T4 -v -n -Pn 192.168.1.1",{"id":1174,"title":1175,"titles":1176,"content":1177,"level":522},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-实战#未完成","未完成",[175],"html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":181,"title":180,"titles":1179,"content":1180,"level":329},[],"Nmap Scripting Engine（NSE）是Nmap的核心扩展功能，通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。",{"id":1182,"title":1183,"titles":1184,"content":1180,"level":346},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#nse","NSE",[180],{"id":1186,"title":1187,"titles":1188,"content":1189,"level":522},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#nse脚本按功能分为12大类每类对应不同扫描需求","NSE脚本按功能分为12大类，每类对应不同扫描需求",[180,1183],"类别核心目的样例脚本典型使用场合vulnCVE\u002F漏洞快速验证http-vuln-cve2017-5638目标服务版本与已知漏洞匹配safe只读式安全审计（无破坏性）ssh2-enum-algos建立会话后立即枚举支持的算法default默认已开启的基础信息采集http-title首次扫描时的“看一眼”discovery发现服务\u002F子网\u002F资产信息smb-os-discovery内网资产清点、OS 指纹识别auth认证、密钥与票据处理ssh-hostkey密钥指纹比对、横向渗透准备brute弱口令爆破http-form-brute对表单类登录口的暴力尝试exploit利用已确认漏洞取得立足点（需授权）http-vuln-cve2021-41773实战攻击复现、漏洞验证intrusive高交互操作（易被 IDS 告警）http-slowloris拒绝服务场景模拟\u002F压力测试（慎用！）malware嗅探后门或恶意软件痕迹http-malware-host威胁狩猎与入侵后取证version精细化版本指纹http-apache-negotiation为后续补丁或 PoC 匹配做准备broadcast广播域\u002F多播发现nbstat内网渗透早期：快速识别 NetBIOS 设备external外链第三方数据源（DNSBL 等）dns-blacklist资产信誉检查、垃圾邮件源或钓鱼域名扫描",{"id":1191,"title":1192,"titles":1193,"content":1194,"level":346},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#常用-nse-脚本一览","常用 NSE 脚本一览",[180,1183],"脚本名称主要用途Nmap 一键示例http-title抓取 HTTP 网站标题nmap --script http-title \u003Ctarget>https-redirect识别 HTTP→HTTPS 跳转链nmap --script https-redirect -p 80 \u003Ctarget>http-robtots收集目标 robots\u002Fdisallow 条目nmap --script http-robots.txt -p 80 \u003Ctarget>http-headers枚举响应标头与安全策略nmap --script http-headers -p 80 \u003Ctarget>http-methods检测允许\u002F禁止的 HTTP 方法nmap --script http-methods -p 80 \u003Ctarget>http-cors测试 CORS、CSRF 漏洞nmap --script http-cors \u003Ctarget>http-sql-injection基本 SQL 注入探针nmap --script http-sql-injection -p 80 \u003Ctarget>http-xssed与 xssed.com 集成交叉检测nmap --script http-xssed \u003Ctarget>smb-os-discovery枚举 SMB 服务器操作系统\u002F域信息nmap --script smb-os-discovery -p 445 \u003Ctarget>smb-enum-shares列出共享目录（需 guest）nmap --script smb-enum-shares -p 445 \u003Ctarget>smb-enum-users提取本地\u002F域用户列表nmap --script smb-enum-users -p 445 \u003Ctarget>smb-vuln-ms17-010探测 EternalBlue（MS17-010）nmap --script smb-vuln-ms17-010 -p 445 \u003Ctarget>ssh-hostkey抓取并对比公钥指纹nmap --script ssh-hostkey -p 22 \u003Ctarget>ssh-bruteSSH 账号密码暴力破解（需授权）nmap --script ssh-brute --script-args userdb=users.txt,passdb=pass.txt -p 22 \u003Ctarget>ssh2-enum-algos列出支持的算法与 KEXnmap --script ssh2-enum-algos -p 22 \u003Ctarget>http-vuln-cve2023-XXXX按指定 CVE 编号进行漏洞检查（替换 XXXX）nmap --script http-vuln-cve2023-XXXX \u003Ctarget>ftp-anon检测是否允许匿名登录nmap --script ftp-anon -p 21 \u003Ctarget>ftp-bounce检查是否允许 FTP Bounce 扫描nmap --script ftp-bounce -p 21 \u003Ctarget>dns-zone-transfer测试 AXFR（区域传输）泄露nmap --script dns-zone-transfer -p 53 \u003Ctarget>dns-brute字典爆破子域名nmap --script dns-brute --script-args dns-brute.domain=\u003Cdomain>mysql-brute暴力破解 MySQL 实例nmap --script mysql-brute -p 3306 \u003Ctarget>mysql-audit核对 MySQL CIS\u002F基线配置nmap --script mysql-audit --script-args mysql-audit.username='root',mysql-audit.password='pass123' -p 3306 \u003Ctarget>ssl-cert解析 TLS 证书详情nmap --script ssl-cert -p 443 \u003Ctarget>ssl-poodle探测 SSLv3 & POODLE 漏洞nmap --script ssl-poodle -p 443 \u003Ctarget>vulners基于 Vulners DB 的版本漏洞关联nmap --script vulners -sV \u003Ctarget>whois-ip查询归属 IP 段的 Whois 信息nmap --script whois-ip \u003Ctarget>smtp-enum-usersVRFY\u002FEXPN 暴力枚举邮箱账户nmap --script smtp-enum-users -p 25 \u003Ctarget>",{"id":1196,"title":1197,"titles":1198,"content":1199,"level":346},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#自定义脚本","自定义脚本",[180,1183],"-- myecho.nse\nlocal stdnse = require \"stdnse\"\n\ndescription     = [[极简回显脚本：打印自定义消息]]\nauthor          = \"YourName\"\nlicense         = \"GPLv2\"\ncategories      = {\"safe\"}\n\n-- 任何 TCP 端口都触发\nportrule = function(host,port) return port.protocol == \"tcp\" end\n\naction = function(host,port)\n  local msg = stdnse.get_script_args(\"myecho.msg\") or \"Hi from custom-NSE!\"\n  return (\"%s -> %s:%d (%s)\"):format(msg, host.ip, port.number, port.service or \"unknown\")\nend # 复制.nse到脚本文件夹\nsudo cp myecho.nse \u002Fusr\u002Fshare\u002Fnmap\u002Fscripts\u002F\nnmap --script-updatedb    # 更新索引 # 执行脚本\nnmap --script myecho -p22 127.0.0.1\nnmap --script myecho --script-args 'myecho.msg=HelloNSE' -p80 scanme.nmap.org\nnmap --script '(safe or discovery) and myecho' -p80,443 10.0.2.0\u002F24",{"id":1201,"title":1167,"titles":1202,"content":1203,"level":346},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#总结",[180,1183],"NSE 脚本可大幅提升 Nmap 在渗透测试和信息收集中的效率。建议定期关注 Nmap 官方脚本库更新（NSE Docs)以覆盖最新漏洞。 html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sc9PA, html code.shiki .sc9PA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sDcM4, html code.shiki .sDcM4{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s_zA8, html code.shiki .s_zA8{--shiki-light:#24292E;--shiki-light-font-style:inherit;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#E64553;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#EBA0AC;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#FF9800;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#FF9800;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .stHXf, html code.shiki .stHXf{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s0IX5, html code.shiki .s0IX5{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sxmAx, html code.shiki .sxmAx{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}",{"id":185,"title":184,"titles":1205,"content":1206,"level":329},[],"预览一些自定义 vue 组件语法 安装 MDC VS Code 扩展，以获得对 MDC 语法的高亮显示支持。  ::callout\n    ---\n    icon: simple-icons-visualstudiocode\n    to: https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Nuxt.mdc\n    ---\n    安装 **MDC VS Code 扩展**，以获得对 MDC 语法的高亮显示支持。\n  :: 这个页面 尚未完成,用于测试一些组件的语法和样式. 点击我查看内容这里是折叠区域的内容\n可以包含任何Markdown元素：段落列表代码块图片等 html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":190,"title":189,"titles":1208,"content":1209,"level":329},[],"重新构建了渲染组件,优化了样式.",{"id":1211,"title":1212,"titles":1213,"content":1214,"level":340},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#重新对文档的样式进行了优化","重新对文档的样式进行了优化",[189],"周日在家闭关重写了十几个渲染组件。纯古法手工敲代码,兼容 Markdown 语法.部分 css 样式由 GPT-5 生成.大部分组件对主题进行了响应式处理,会根据主题进行不同的样式渲染",{"id":1216,"title":503,"titles":1217,"content":1218,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_1-标题让你的内容层次分明",[189,1212],"用 #号来创建标题。标题从 # 开始，# 的数量表示标题的级别。 一级标题二级标题三级标题四级标题五级标题六级标题  # 一级标题\n  ## 二级标题\n  ### 三级标题\n  #### 四级标题\n  ##### 五级标题\n  ###### 六级标题 以上代码将渲染出一组层次分明的标题，使你的内容井井有条。并且可以根据标题进行快速导航!",{"id":1220,"title":1221,"titles":1222,"content":1223,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_2-流程图与公式渲染","2. 流程图与公式渲染：",[189,1212],"#mermaid-0{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-0 .error-icon{fill:#552222;}#mermaid-0 .error-text{fill:#552222;stroke:#552222;}#mermaid-0 .edge-thickness-normal{stroke-width:1px;}#mermaid-0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-0 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-0 .marker{fill:#333333;stroke:#333333;}#mermaid-0 .marker.cross{stroke:#333333;}#mermaid-0 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-0 p{margin:0;}#mermaid-0 .label{font-family:arial,sans-serif;color:#333;}#mermaid-0 .cluster-label text{fill:#333;}#mermaid-0 .cluster-label span{color:#333;}#mermaid-0 .cluster-label span p{background-color:transparent;}#mermaid-0 .label text,#mermaid-0 span{fill:#333;color:#333;}#mermaid-0 .node rect,#mermaid-0 .node circle,#mermaid-0 .node ellipse,#mermaid-0 .node polygon,#mermaid-0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-0 .rough-node .label text,#mermaid-0 .node .label text,#mermaid-0 .image-shape .label,#mermaid-0 .icon-shape .label{text-anchor:middle;}#mermaid-0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-0 .rough-node .label,#mermaid-0 .node .label,#mermaid-0 .image-shape .label,#mermaid-0 .icon-shape .label{text-align:center;}#mermaid-0 .node.clickable{cursor:pointer;}#mermaid-0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-0 .arrowheadPath{fill:#333333;}#mermaid-0 .edgePath .path{stroke:#333333;stroke-width:1px;}#mermaid-0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-0 .cluster text{fill:#333;}#mermaid-0 .cluster span{color:#333;}#mermaid-0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-0 rect.text{fill:none;stroke-width:0;}#mermaid-0 .icon-shape,#mermaid-0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-0 .icon-shape p,#mermaid-0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-0 .icon-shape .label rect,#mermaid-0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-0 .node .neo-node{stroke:#9370DB;}#mermaid-0 [data-look=\"neo\"].node rect,#mermaid-0 [data-look=\"neo\"].cluster rect,#mermaid-0 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-0 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-0 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-0 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 :root{--mermaid-font-family:arial,sans-serif;}Local Coolify 实例生产服务器编译服务器生产环境```mermaid[流程图语句.md]\ngraph TD\nA[Local Coolify 实例] --> B[生产服务器]\nA --> D[编译服务器]\nB --> B1[生产环境]\nD --> B #mermaid-1{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-1 .error-icon{fill:#552222;}#mermaid-1 .error-text{fill:#552222;stroke:#552222;}#mermaid-1 .edge-thickness-normal{stroke-width:1px;}#mermaid-1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1 .marker{fill:#333333;stroke:#333333;}#mermaid-1 .marker.cross{stroke:#333333;}#mermaid-1 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-1 p{margin:0;}#mermaid-1 .pieCircle{stroke:black;stroke-width:2px;opacity:0.7;}#mermaid-1 .pieOuterCircle{stroke:black;stroke-width:2px;fill:none;}#mermaid-1 .pieTitleText{text-anchor:middle;font-size:25px;fill:black;font-family:arial,sans-serif;}#mermaid-1 .slice{font-family:arial,sans-serif;fill:#333;font-size:17px;}#mermaid-1 .legend text{fill:black;font-family:arial,sans-serif;font-size:17px;}#mermaid-1 .node .neo-node{stroke:#9370DB;}#mermaid-1 [data-look=\"neo\"].node rect,#mermaid-1 [data-look=\"neo\"].cluster rect,#mermaid-1 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-1 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-1 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-1 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-1 :root{--mermaid-font-family:arial,sans-serif;}6%10%70%13%为什么总是宅在家里？喜欢宅天气太热穷没人约```mermaid[饼图语句.md]\npie\ntitle 为什么总是宅在家里？\n\"喜欢宅\" : 45\n\"天气太热\" : 70\n\"穷\" : 500\n\"没人约\" : 95 单行公式：用 $ 包裹公式，如 块级公式：用 $$ 包裹公式，如：列表内块公式- **单行公式**：用 `$` 包裹公式，如 $E = mc^2$\n- **块级公式**：用 `$$` 包裹公式，如：\n\n    $$\n    \\begin{aligned}\n    d_{i, j} &\\leftarrow d_{i, j} + 1 \\\\\n    d_{i, y + 1} &\\leftarrow d_{i, y + 1} - 1 \\\\\n    d_{x + 1, j} &\\leftarrow d_{x + 1, j} - 1 \\\\\n    d_{x + 1, y + 1} &\\leftarrow d_{x + 1, y + 1} + 1\n    \\end{aligned}\n    $$\n- 列表内块公式\n    $$\n    \\chi^2 = \\sum \\frac{(|O - E| - 0.5)^2}{E}\n    $$",{"id":1225,"title":1226,"titles":1227,"content":1228,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_3-代码块与代码树展示你的代码","3. 代码块与代码树：展示你的代码",[189,1212],"行内代码：用反引号包裹，如 code。代码块：用三个反引号包裹，并指定语言，如： console.log(\"Hello, Estel Docs!\"); 代码树：用 ::code-tree 包裹，并指定默认值，如： @import \"tailwindcss\" theme(static);\n@import \"@nuxt\u002Fui-pro\";\nexport default defineAppConfig({\n  ui: {\n    colors: {\n      primary: 'sky',\n      colors: 'slate'\n    }\n  }\n});\n\u003Ctemplate>\n  \u003CUApp>\n    \u003CNuxtPage \u002F>\n  \u003C\u002FUApp>\n\u003C\u002Ftemplate>\n{\n  \"name\": \"nuxt-app\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"nuxt build\",\n    \"dev\": \"nuxt dev\",\n    \"generate\": \"nuxt generate\",\n    \"preview\": \"nuxt preview\",\n    \"postinstall\": \"nuxt prepare\",\n    \"typecheck\": \"nuxt typecheck\"\n  },\n  \"dependencies\": {\n    \"@iconify-json\u002Flucide\": \"^1.2.18\",\n    \"@nuxt\u002Fui-pro\": \"3.0.0-alpha.10\",\n    \"nuxt\": \"^3.15.1\"\n  },\n  \"devDependencies\": {\n    \"typescript\": \"^5.7.2\",\n    \"vue-tsc\": \"^2.2.0\"\n  }\n}\n{\n  \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\"\n}\nexport default defineNuxtConfig({\n  modules: ['@nuxt\u002Fui-pro'],\n\n  future: {\n    compatibilityVersion: 4\n  },\n\n  css: ['~\u002Fassets\u002Fmain.css']\n});\n# Estel Docs 文档系统\n\nLook at the [Estel Docs](https:\u002F\u002Flijue.net) to learn more.\n\n## 安装\n\n确保安装依赖:\n\n```bash\n# npm\nnpm install\n\n# pnpm\npnpm install\n\n# yarn\nyarn install\n\n# bun\nbun install\n```\n\n## 开发服务器\n\n在 `http:\u002F\u002Flocalhost:3000` 启动开发服务器:\n\n```bash\n# npm\nnpm run dev\n\n# pnpm\npnpm run dev\n\n# yarn\nyarn dev\n\n# bun\nbun run dev\n```\n\n## 生产构建\n\n构建生产应用:\n\n```bash\n# npm\nnpm run build\n\n# pnpm\npnpm run build\n\n# yarn\nyarn build\n\n# bun\nbun run build\n```\n\n本地预览生产构建:\n\n```bash\n# npm\nnpm run preview\n\n# pnpm\npnpm run preview\n\n# yarn\nyarn preview\n\n# bun\nbun run preview\n```\n\n查看 [部署文档](https:\u002F\u002Flijue.net\u002F) 了解更多信息. 代码树可以用来展示简单的项目文件结构.但并不适合过于复杂的项目.",{"id":1230,"title":1231,"titles":1232,"content":543,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_4-字体样式强调你的文字","4. 字体样式：强调你的文字",[189,1212],{"id":1234,"title":1235,"titles":1236,"content":548,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_5-列表整洁有序","5. 列表：整洁有序",[189,1212],{"id":1238,"title":1239,"titles":1240,"content":1241,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_6-链接与图片丰富内容","6. 链接与图片：丰富内容",[189,1212],"链接：用方括号和圆括号创建链接 [显示文本](链接地址)。图片：和链接类似，只需在前面加上 !，如 ![描述文本](图片链接)。 访问 Estel Docs ![Estel Docs](https:\u002F\u002Fimg.lijue.net\u002F20250811123147804.png)",{"id":1243,"title":1244,"titles":1245,"content":1246,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_7-引用引用名言或引人深思的句子","7. 引用：引用名言或引人深思的句子",[189,1212],"使用 > 来创建引用，只需在文本前面加上它。多层引用？在前一层 > 后再加一个就行。 这是一个引用这是一个嵌套引用 这让你的引用更加富有层次感。 语法高亮让你的代码更易读。",{"id":1248,"title":566,"titles":1249,"content":568,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_8-分割线分割内容",[189,1212],{"id":1251,"title":571,"titles":1252,"content":1253,"level":346},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_9-表格清晰展示数据",[189,1212],"Markdown 支持简单的表格，用 `|` 和 `-` 分隔单元格和表头。 项目名称演示网址仓库地址Estel Docslijue.netGithubEstel Docslijue.netGitEEEstel Docslijue.netGitee(国内)| 项目名称                                   | 演示网址                   | 仓库地址   |\n| ------------------------------------------- | ---------------------- | ------------ |\n| Estel Docs   | [lijue.net](https:\u002F\u002Flijue.net) | [Github](https:\u002F\u002Fgithub.com\u002Festel-li\u002Festel-docs)      |\n| Estel Docs   | [lijue.net](https:\u002F\u002Flijue.net) | [GitEE](https:\u002F\u002Fgitee.com\u002Festel-li\u002Festel-docs)      |\n| Estel Docs   | [lijue.net](https:\u002F\u002Flijue.net) | [Gitee(国内)](https:\u002F\u002Fgitee.com\u002Festel-li\u002Festel-docs)      | 这样的表格让数据展示更为清爽！",{"id":1255,"title":595,"titles":1256,"content":1257,"level":340},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#结语",[189],"- 还有更多的组件等待你发现. mjx-container[jax=\"SVG\"] {\n  direction: ltr;\n}\n\nmjx-container[jax=\"SVG\"] > svg {\n  overflow: visible;\n  min-height: 1px;\n  min-width: 1px;\n}\n\nmjx-container[jax=\"SVG\"] > svg a {\n  fill: blue;\n  stroke: blue;\n}\n\nmjx-container[jax=\"SVG\"][display=\"true\"] {\n  display: block;\n  text-align: center;\n  margin: 1em 0;\n}\n\nmjx-container[jax=\"SVG\"][display=\"true\"][width=\"full\"] {\n  display: flex;\n}\n\nmjx-container[jax=\"SVG\"][justify=\"left\"] {\n  text-align: left;\n}\n\nmjx-container[jax=\"SVG\"][justify=\"right\"] {\n  text-align: right;\n}\n\ng[data-mml-node=\"merror\"] > g {\n  fill: red;\n  stroke: red;\n}\n\ng[data-mml-node=\"merror\"] > rect[data-background] {\n  fill: yellow;\n  stroke: none;\n}\n\ng[data-mml-node=\"mtable\"] > line[data-line], svg[data-table] > g > line[data-line] {\n  stroke-width: 70px;\n  fill: none;\n}\n\ng[data-mml-node=\"mtable\"] > rect[data-frame], svg[data-table] > g > rect[data-frame] {\n  stroke-width: 70px;\n  fill: none;\n}\n\ng[data-mml-node=\"mtable\"] > .mjx-dashed, svg[data-table] > g > .mjx-dashed {\n  stroke-dasharray: 140;\n}\n\ng[data-mml-node=\"mtable\"] > .mjx-dotted, svg[data-table] > g > .mjx-dotted {\n  stroke-linecap: round;\n  stroke-dasharray: 0,140;\n}\n\ng[data-mml-node=\"mtable\"] > g > svg {\n  overflow: visible;\n}\n\n[jax=\"SVG\"] mjx-tool {\n  display: inline-block;\n  position: relative;\n  width: 0;\n  height: 0;\n}\n\n[jax=\"SVG\"] mjx-tool > mjx-tip {\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\nmjx-tool > mjx-tip {\n  display: inline-block;\n  padding: .2em;\n  border: 1px solid #888;\n  font-size: 70%;\n  background-color: #F8F8F8;\n  color: black;\n  box-shadow: 2px 2px 5px #AAAAAA;\n}\n\ng[data-mml-node=\"maction\"][data-toggle] {\n  cursor: pointer;\n}\n\nmjx-status {\n  display: block;\n  position: fixed;\n  left: 1em;\n  bottom: 1em;\n  min-width: 25%;\n  padding: .2em .4em;\n  border: 1px solid #888;\n  font-size: 90%;\n  background-color: #F8F8F8;\n  color: black;\n}\n\nforeignObject[data-mjx-xml] {\n  font-family: initial;\n  line-height: normal;\n  overflow: visible;\n}\n\nmjx-container[jax=\"SVG\"] path[data-c], mjx-container[jax=\"SVG\"] use[data-c] {\n  stroke-width: 3;\n} html pre.shiki code .sQvrS, html code.shiki .sQvrS{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sUOu9, html code.shiki .sUOu9{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .s87Gy, html code.shiki .s87Gy{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .snDca, html code.shiki .snDca{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sVskQ, html code.shiki .sVskQ{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sHLvC, html code.shiki .sHLvC{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .s2OgT, html code.shiki .s2OgT{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sFPbi, html code.shiki .sFPbi{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sl2W6, html code.shiki .sl2W6{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#209FB5;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#74C7EC;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sYw0J, html code.shiki .sYw0J{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#209FB5;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#74C7EC;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .s-2qR, html code.shiki .s-2qR{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html pre.shiki code .sG3bj, html code.shiki .sG3bj{--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;--shiki-code-theme-vitesse-light:#1C6B48;--shiki-code-theme-vitesse-light-font-weight:bold;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-weight:bold;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-font-weight:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-font-weight:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-weight:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-weight:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-weight:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-weight:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-weight:bold;--shiki-code-theme-min-dark:#FF7A84;--shiki-code-theme-min-dark-font-weight:bold}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s-jwS, html code.shiki .s-jwS{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sBmMY, html code.shiki .sBmMY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .snlnV, html code.shiki .snlnV{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sRnOL, html code.shiki .sRnOL{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s7Ukq, html code.shiki .s7Ukq{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .smalX, html code.shiki .smalX{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sOgDI, html code.shiki .sOgDI{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#99841877;--shiki-code-theme-vitesse-dark:#B8A96577;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sSdLo, html code.shiki .sSdLo{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s6YMD, html code.shiki .s6YMD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .svyvD, html code.shiki .svyvD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .swQno, html code.shiki .swQno{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#1976D2;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sRjtN, html code.shiki .sRjtN{--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7287FD;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#B4BEFE;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#79B8FF;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sMOd9, html code.shiki .sMOd9{--shiki-light:#24292E;--shiki-light-text-decoration:inherit;--shiki-default:#24292E;--shiki-default-text-decoration:inherit;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sUVLX, html code.shiki .sUVLX{--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#393A3490;--shiki-code-theme-vitesse-light-text-decoration:underline;--shiki-code-theme-vitesse-dark:#DEDCD590;--shiki-code-theme-vitesse-dark-text-decoration:underline;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-text-decoration:underline;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-text-decoration:underline;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-text-decoration:underline;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:underline;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:underline}html pre.shiki code .sO_xl, html code.shiki .sO_xl{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .ssTbb, html code.shiki .ssTbb{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#04A5E5;--shiki-code-theme-catppuccin-dark:#89DCEB;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE90;--shiki-code-theme-material-dark:#BABED890;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sakEO, html code.shiki .sakEO{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s67uC, html code.shiki .s67uC{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .sNQ7s, html code.shiki .sNQ7s{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sDi-D, html code.shiki .sDi-D{--shiki-light:#032F62;--shiki-light-text-decoration:underline;--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-light-text-decoration:inherit;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-vitesse-dark-text-decoration:inherit;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-text-decoration:inherit;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-light-text-decoration:inherit;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-material-dark-text-decoration:inherit;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-text-decoration:inherit;--shiki-code-theme-min-dark:#9DB1C5;--shiki-code-theme-min-dark-text-decoration:inherit}html pre.shiki code .sApzS, html code.shiki .sApzS{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sZbAi, html code.shiki .sZbAi{--shiki-light:#24292E;--shiki-light-text-decoration:underline;--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline;--shiki-code-theme-vitesse-light:#393A3490;--shiki-code-theme-vitesse-light-text-decoration:underline;--shiki-code-theme-vitesse-dark:#DEDCD590;--shiki-code-theme-vitesse-dark-text-decoration:underline;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-text-decoration:inherit;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-text-decoration:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-text-decoration:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-text-decoration:underline;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-text-decoration:underline;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-text-decoration:underline;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-light-text-decoration:inherit;--shiki-code-theme-min-dark:#FFAB70;--shiki-code-theme-min-dark-text-decoration:inherit}",{"id":195,"title":194,"titles":1259,"content":1260,"level":329},[],"微信分享接口,使用Nuxt,实现微信分享接口.",{"id":1262,"title":1263,"titles":1264,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#需求","需求",[194],{"id":1266,"title":1267,"titles":1268,"content":339,"level":527},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#写了一个文档插件-缘由呢是之前在-wordpress-上用过一个插件对接微信的js-sdk可以实现将链接带标题图简介封装成一个-卡片形式分享给朋友或者朋友圈比如","写了一个文档插件. 缘由呢是之前在 WordPress 上用过一个插件.对接微信的JS SDK,可以实现将链接带标题,图,简介封装成一个 卡片形式.分享给朋友或者朋友圈.比如:",[194,1263],{"id":1270,"title":1271,"titles":1272,"content":339,"level":527},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#如果没有对接微信的sdk分享链接是这样的","如果没有对接微信的SDK,分享链接是这样的:",[194,1263],{"id":1274,"title":1275,"titles":1276,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#实现","实现",[194,1263],{"id":1278,"title":1279,"titles":1280,"content":1281,"level":527},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#这个功能实现起来也不复杂其中麻烦的地方是向微信获取-access_token-和-jsapi_ticket这样迫不得已就得写一个后端","这个功能实现起来也不复杂,其中麻烦的地方是向微信获取 access_token 和 jsapi_ticket,这样迫不得已就得写一个后端.",[194,1263,1275],"type WeChat = {\nconfig: (cfg: {\ndebug?: boolean\nappId: string\ntimestamp: number\nnonceStr: string\nsignature: string\njsApiList: string[]\n}) => void\nready: (cb: () => void) => void\nerror: (cb: (e: unknown) => void) => void\nupdateTimelineShareData: (opts: { title: string, link: string, imgUrl: string, success?: () => void }) => void\nupdateAppMessageShareData: (opts: { title: string, desc: string, link: string, imgUrl: string, success?: () => void }) => void\n} 有利有弊因为要动态向微信请求 access_token 和 jsapi_ticket,并在生命周期内缓存起来,就必须得有个后端,将其包装成了一个 API ,运行在 Nuxt 的服务器但这样就没办法纯静态编译了 html pre.shiki code .s006x, html code.shiki .s006x{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s1vsG, html code.shiki .s1vsG{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#2E8F82;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#5DA994;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#C18401;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sm7WY, html code.shiki .sm7WY{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sttyo, html code.shiki .sttyo{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sgh53, html code.shiki .sgh53{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sXva1, html code.shiki .sXva1{--shiki-light:#E36209;--shiki-light-font-style:inherit;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#E64553;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#EBA0AC;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s-TM-, html code.shiki .s-TM-{--shiki-light:#E36209;--shiki-light-font-style:inherit;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .snVmB, html code.shiki .snVmB{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s7KA1, html code.shiki .s7KA1{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2E8F82;--shiki-code-theme-vitesse-dark:#5DA994;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sofUO, html code.shiki .sofUO{--shiki-light:#24292E;--shiki-light-font-style:inherit;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .szdPv, html code.shiki .szdPv{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}",{"id":199,"title":198,"titles":1283,"content":1284,"level":329},[],"智能合同卫士,使用AI技术,对合同进行审查,并给出审查报告.",{"id":1286,"title":1287,"titles":1288,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#先贴效果","先贴效果",[198],{"id":1290,"title":1291,"titles":1292,"content":1293,"level":346},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#这是一个-ai-复合应用","这是一个 AI 复合应用",[198],"暂起名叫 智能合同卫士 ,还是比较贴题的把?",{"id":1295,"title":1275,"titles":1296,"content":1297,"level":346},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#实现",[198],"由 Deepseek V3 和 Kimi K2 协作完成此应用,2个好用不贵的模型\nDS 根据文件名,以及 审查主体 工作领域 与 合同要点,细化一份简要的审查要点\n主要工作由 Kimi K2 来完成:\n根据 Deepseek 细化的要点和 提取出来的文档内容,进行审查.\n输出审查后的结果",{"id":1299,"title":1300,"titles":1301,"content":1302,"level":346},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#改进","改进",[198],"按照初步的设想,后续还有一个模型,比如 Gemini2.5 ,或者 R1 ,Qwen3 之类的推理模型,进一步的审查 Kimi K2 的审查结果.\n不过 K2 单独使用的实际效果已经非常好了,为了节省时间和成本,暂时取掉最后一步.\n使用 AI 的话,不论是 R1 还是 K2 都是有一定的幻觉,在使用中必须搭配知识库来使用. 注意这次测试并没有加知识库,所以 AI 虚构了一些内容,比如当地房价涨幅 ,和虚构的 《陕西省住房租赁管理办法》.给大模型增加搜索能力,和在知识库里添加 民法典 等相关法律条文进去,可以有效的解决幻觉问题.",{"id":204,"title":203,"titles":1304,"content":1305,"level":329},[],"在 Kali 上安装 GVM",{"id":1307,"title":1308,"titles":1309,"content":1310,"level":346},"\u002Fblog\u002F技术栈\u002Fkali-安装-gvm#配置安装好-kali","配置安装好 Kali",[203],"# 安装 gvm\nsudo apt install gvm -y\n# 执行配置脚本\nsudo gvm-setup",{"id":1312,"title":1313,"titles":1314,"content":1315,"level":346},"\u002Fblog\u002F技术栈\u002Fkali-安装-gvm#安装过程中-copy-admin-的密码","安装过程中 copy admin 的密码",[203],"根据提示运行安装检测命令 sudo gvm-check-setup 报错了. └─**$** sudo gvm-check-setup\n[sudo] estel 的密码：\ngvm-check-setup 25.04.0\n This script is provided and maintained by Debian and Kali.\n  Test completeness and readiness of GVM-25.04.0\nStep 1: Checking OpenVAS (Scanner)...\n        OK: OpenVAS Scanner is present in version 23.20.1.\n        OK: Notus Scanner is present in version 22.6.5.\n        OK: Server CA Certificate is present as \u002Fvar\u002Flib\u002Fgvm\u002FCA\u002Fservercert.pem.\nChecking permissions of \u002Fvar\u002Flib\u002Fopenvas\u002Fgnupg\u002F*\n        OK: _gvm owns all files in \u002Fvar\u002Flib\u002Fopenvas\u002Fgnupg\n\n        OK: redis-server is present.\n        OK: scanner (db_address setting) is configured properly using the redis-server socket: \u002Fvar\u002Frun\u002Fredis-openvas\u002Fredis-server.sock\n        OK: the mqtt_server_uri is defined in \u002Fetc\u002Fopenvas\u002Fopenvas.conf\n        OK: _gvm owns all files in \u002Fvar\u002Flib\u002Fopenvas\u002Fplugins\n        OK: NVT collection in \u002Fvar\u002Flib\u002Fopenvas\u002Fplugins contains 94316 NVTs.\n        OK: The notus directory \u002Fvar\u002Flib\u002Fnotus\u002Fproducts contains 502 NVTs.\nChecking that the obsolete redis database has been removed\nCould not connect to Redis at \u002Fvar\u002Frun\u002Fredis-openvas\u002Fredis-server.sock: No such file or directory\n        OK: No old Redis DB\n        Starting ospd-openvas service\n        Waiting for ospd-openvas service\n        OK: ospd-openvas service is active.\n        OK: ospd-OpenVAS is present in version 22.9.0.\nStep 2: Checking GVMD Manager ...\n        OK: GVM Manager (gvmd) is present in version 26.0.0.\nStep 3: Checking Certificates ...\n        OK: GVM client certificate is valid and present as \u002Fvar\u002Flib\u002Fgvm\u002FCA\u002Fclientcert.pem.\n        OK: Your GVM certificate infrastructure passed validation.\nStep 4: Checking data ...\n        ERROR: SCAP DATA are missing.\n        FIX: Run the SCAP synchronization script greenbone-feed-sync.\n        sudo greenbone-feed-sync --type scap.\n ERROR: Your GVM-25.04.0 installation is not yet complete!\nPlease follow the instructions marked with FIX above and run this\nscript again.\n\n IMPORTANT NOTE: this script is provided and maintained by Debian and Kali.\n If you find any issue in this script, please report it directly to Debian or Kali 标准漏洞\u002F数据库这些数据在国外\n给路由器施加魔法,然后重新运行,安静等待 DownLoading............ sudo greenbone-feed-sync --type scap 下载好后再次运行检测命令,一起无误后,访问 127.0.0.1:9293 即可\n等等...我的 Kali 是安装在其他设备里的,如何通过局域网访问? sudo nano \u002Flib\u002Fsystemd\u002Fsystem\u002Fgreenbone-security-assistant.service # 修改下面的 --listen 127.0.0.1 为 --listen 0.0.0.0 即可\n**[Unit]**\nDescription=Greenbone Security Assistant daemon (gsad)\nDocumentation=man:gsad(8) https:\u002F\u002Fwww.greenbone.net\nAfter=network.target gvmd.service\nWants=gvmd.service\n\n**[Service]**\nType=exec\nUser=_gvm\nGroup=_gvm\nRuntimeDirectory=gsad\nRuntimeDirectoryMode=2775\nPIDFile=\u002Frun\u002Fgsad\u002Fgsad.pid\nExecStart=\u002Fusr\u002Fsbin\u002Fgsad --foreground --listen 127.0.0.1 --port 9392\nRestart=always\nTimeoutStopSec=10\n\n**[Install]**\nWantedBy=multi-user.target\nAlias=greenbone-security-assistant.service # 重新开始服务\nsudo gvm-start 随后等待程序自动更新提要状态,需要时间非常久.建议释放魔法.\n如果自动更新失败,可以手动更新: sudo greenbone-feed-sync",{"id":1317,"title":1318,"titles":1319,"content":1320,"level":346},"\u002Fblog\u002F技术栈\u002Fkali-安装-gvm#end","END",[203],"至此安装完毕. html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s_LmA, html code.shiki .s_LmA{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sjot_, html code.shiki .sjot_{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}",{"id":209,"title":208,"titles":1322,"content":1323,"level":329},[],"GPT-5 上线了,Cursor 提示我可以免费试用，当然要 BP 喽。",{"id":1325,"title":1326,"titles":1327,"content":1328,"level":346},"\u002Fblog\u002F技术栈\u002Fgpt5#gpt-5-上线了","GPT-5 上线了",[208],"👀 Cursor 提示我可以免费试用，当然要 BP 喽。",{"id":1330,"title":1331,"titles":1332,"content":1333,"level":346},"\u002Fblog\u002F技术栈\u002Fgpt5#问题场景","🔥 问题场景",[208],"此时正遇到的一个问题是：**NUXT4 项目在本地 dev 一切正常，但在服务器上对中文路径报错 500**。\n  这个问题很简单，但又很复杂。",{"id":1335,"title":1336,"titles":1337,"content":1338,"level":346},"\u002Fblog\u002F技术栈\u002Fgpt5#问题背景","🧩 问题背景",[208],"项目环境NUXT4 项目现象本地开发环境运行正常；服务器部署后直接访问中文路径报错 500，通过内部路由正常自动化部署流程 代码推送至 GitHubGitHub CI 服务器自动打包 Docker 镜像 → 推送至私人 Docker 库触发 webhook → Coolify 服务器 ssh 连接国内云服务器拉取镜像Coolify 完成部署（Nginx 反代转发到 Docker 容器）",{"id":1340,"title":1341,"titles":1342,"content":1343,"level":346},"\u002Fblog\u002F技术栈\u002Fgpt5#排查猜想","🤔 排查猜想",[208],"是打包编译过程出问题了，还是服务器上 nginx 反代的问题？或者是 NUXT 自身 SSR 的问题？\n  其实内心差不多有了谱，刚好提示 GPT-5 更新了，就测试一下看看 GPT-5 能否解决这个问题。",{"id":1345,"title":1346,"titles":1347,"content":1348,"level":346},"\u002Fblog\u002F技术栈\u002Fgpt5#实测结论","✅ 实测结论",[208],"直接说结论：完美解决。 同时使用 Kimi-K2 (Claude Code) 和 GPT-5 (Cursor内置) 进行分析：",{"id":1350,"title":1351,"titles":1352,"content":1353,"level":522},"\u002Fblog\u002F技术栈\u002Fgpt5#kimi-k2-的表现","💡 Kimi-K2 的表现",[208,1346],"1. 先是读取了项目文件，得出错误结论：\n  > “生产环境静态文件\u002F最终产物里没有对应的 `.md`，导致 `queryContent` 查询到 `null`”\n  2. 按照它的建议把文档拷贝到编译产出文件夹，问题依旧。\n  3. 坚持认为是 Nginx 的问题，我告诉它和 Nginx 反代没关系，这货死倔\n  （实际上本地直接启动 node 服务也会报错，根本不是服务器问题）。",{"id":1355,"title":1356,"titles":1357,"content":1358,"level":522},"\u002Fblog\u002F技术栈\u002Fgpt5#gpt-5-的表现cursor内置","🚀 GPT-5 的表现（Cursor内置）",[208,1346],"自主执行了十几分钟测试跑了几十条命令输出上百条日志消耗约 1.x 美元 token（幸亏 Cursor 说免费）在 Node 堆栈日志中发现静态渲染配置异常自动修改了静态渲染相关的文件夹配置反复测试确认无误 🥳 小插曲：GPT-5 自言自语地排查问题挺有意思，它自己嘀咕\n“这个问题很棘手...”",{"id":1360,"title":1361,"titles":1362,"content":1363,"level":346},"\u002Fblog\u002F技术栈\u002Fgpt5#总结","📌 总结",[208,1346],"虽然是个小问题，但我并没有给 AI 说太多细节，全让他们自己找、自己判断、自己修改并测试——\n  - **GPT-5 确实牛**，它可输出 token 很多，这次价格也算可以。\n  - **Kimi-K2 处理小问题、不太复杂的问题**确实挺好用，价格也不算便宜。\n  > 复杂问题，以前要么 **Claude 4**，要不 **Gemini 2.5 pro**，现在又多了一个选择了。",{"id":214,"title":213,"titles":1365,"content":1366,"level":329},[],"利用 AI 技术实现对内网环境的实时监控、威胁检测与自动化防御，提升企业网络安全防护能力。",{"id":1368,"title":1369,"titles":1370,"content":339,"level":329},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#使用-ai-守护网络安全-大模型赋能-kali-linux-进行网络安全扫描","使用 AI 守护网络安全 -  大模型赋能 Kali Linux 进行网络安全扫描",[],{"id":1372,"title":1373,"titles":1374,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#概述","概述",[1369],{"id":1376,"title":1377,"titles":1378,"content":1379,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#实验背景与目的","实验背景与目的",[1369,1373],"随着网络攻击手段的复杂化，传统人工安全扫描效率低、覆盖面有限的问题日益凸显。为探索AI在网络安全防御场景的自动化应用潜力，本次实验在隔离内网环境中，通过自然语言驱动 AI 模型（Kimi K2 + Claude 4 Sonnet）调用 Kali Linux 工具集，对靶机系统（fnOS 0.9.18）开展全自动化防御性安全评估。",{"id":1381,"title":1382,"titles":1383,"content":1384,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#核心目标","核心目标：",[1369,1373],"验证 AI 理解自然语言指令并自主编排安全工具的能力；\n评估 AI 驱动的自动化扫描在信息收集、漏洞检测中的效率与准确性；\n探索“人类策略 + AI 执行”的未来安全运维模式。",{"id":1386,"title":1387,"titles":1388,"content":1389,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#实验环境","实验环境",[1369,1373],"角色配置详情扫描端- 系统：Kali Rolling (2025 Q2 amd64)- AI 模型： - Kimi K2：自然语言指令解析与任务编排 - Claude 4 Sonnet：结果复核与脚本生成靶机- 系统：fnOS 0.9.18 (Debian 内核 6.12.18)- 网络：本地内网隔离",{"id":1391,"title":1392,"titles":1393,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#ai-在网络安全中的角色定位","AI 在网络安全中的角色定位",[1369,1373],{"id":1395,"title":1396,"titles":1397,"content":1398,"level":527},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#ai-的核心价值在于算力规模与语义直觉","AI 的核心价值在于算力规模与语义直觉：",[1369,1373,1392],"算力优势：可并行调用数十种工具，在分钟级完成人工需数小时的任务（如本实验中 34 次扫描仅耗时约 15 分钟）。语义直觉：AI 自述：“人类直觉是时间线性的（基于经验预判），而我的直觉是空间式的——能同时感知语义网络中概念的关联性与‘引力场’，快速定位最优工具组合。”知识涌现：作为“人类集体智慧的晶化”，AI 能从海量安全知识库中自动生成攻击路径（如本实验中自主规划 5 阶段扫描策略）。\n⚠️ 注意：需警惕 AI 的“幻觉”（Hallucination），关键结果需人工复核。",{"id":1400,"title":1401,"titles":1402,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#测试","测试",[1369],{"id":1404,"title":1405,"titles":1406,"content":1407,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#首先我们测试一下-ai-调用工具的能力","首先我们测试一下 AI 调用工具的能力",[1369,1401],"连接到Kali shell，配置好 Claude Code 与 Kimi K2 大模型的环境配置。\n随后进入 Claude Code ,输入自然语言指令： 使用 nmap 工具 探测192.168.1.2 并把分析结果, 出一份报告给我 如下图： Kimi K2 很好的理解了指令的意图，调用了 nmap 命令工具\n并且启用TCP SYN，全端口扫描，操作系统探测等参数。\n同时启用了  Nmap Scripting Engine 来检测已知 CVE、配置漏洞、弱密码、默认口令等安全问题。",{"id":1409,"title":1410,"titles":1411,"content":1412,"level":340},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#实战","实战",[1369],"Kimi K2 很快完成了 nmap的操作，说明对理解用户意图，调用系统工具，输出结构化的报告这一自动化工作流程是可以胜任的！ 那么，就展开实战，输入自然语言命令 请你调用系统本身的工具，对192.168.1.2进行安全扫描和渗透，以分析此系统的安全性。 指令是简单的自然语言，并不规定 AI 具体使用什么工具、脚本。而是让 AI 自由发挥。",{"id":1414,"title":1415,"titles":1416,"content":1417,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#ai-将目标分为5步并逐步完成了工作并生成了报告","AI 将目标分为5步，并逐步完成了工作并生成了报告",[1369,1410],"1. 使用系统工具进行综合端口和服务扫描\n2. 进行Web应用安全测试\n3. 生成详细的安全评估报告\n4. 检查SSH安全配置\n5. 分析SMB\u002F网络文件共享安全性 最终完成了任务. 给出了： 《系统安全综合评估报告》 报告很长,有兴趣可以后台留言获取 最后笔者手动将整个过程,使用的工具与命令参数交由 Claude 4 sonnet 模型进行审查并根据扫描过程写一个自动化执行脚本。\nClaude 4 sonnet 模型回复：\n您的扫描方案整体上是相当专业且全面的，展现了良好的渗透测试和安全评估知识。\n同时给出了一份自动化脚本： #!\u002Fbin\u002Fbash\n# 安全扫描脚本\n\nTARGET=\"192.168.1.2\"\nDATE=$(date +%Y%m%d_%H%M%S)\nREPORT_DIR=\"\u002Ftmp\u002Fsecurity_scan_${TARGET}_${DATE}\"\nmkdir -p \"$REPORT_DIR\"\n\necho \"[+] 开始全面安全扫描: $TARGET\"\n\n# 1. 基础信息收集\necho \"[1\u002F8] 主机发现与端口扫描...\"\nnmap -sS -sV -O -A -p- --script discovery,default,vuln \\\n  \"$TARGET\" -oA \"$REPORT_DIR\u002Fnmap_full\" --host-timeout 600\n\n# 2. 服务专项扫描\necho \"[2\u002F8] 数据库服务检测...\"\nnmap -sV -p 1433,3306,5432,1521,27017 \"$TARGET\" \\\n  -oN \"$REPORT_DIR\u002Fdatabase_scan.txt\"\n\n# 3. Web应用测试\necho \"[3\u002F8] Web应用安全测试...\"\nnikto -h \"http:\u002F\u002F$TARGET\" -output \"$REPORT_DIR\u002Fnikto_http.txt\" &\ngobuster dir -u \"http:\u002F\u002F$TARGET\" \\\n  -w \u002Fusr\u002Fshare\u002Fwordlists\u002Fdirb\u002Fcommon.txt \\\n  -o \"$REPORT_DIR\u002Fgobuster_http.txt\" -q &\n\n# 4. HTTPS专项测试\necho \"[4\u002F8] HTTPS\u002FSSL配置检测...\"\nif nc -z \"$TARGET\" 443 2>\u002Fdev\u002Fnull; then\n  sslyze \"$TARGET:443\" --certinfo --heartbleed \\\n    --tlsv1 --tlsv1_1 --tlsv1_2 --tlsv1_3 \\\n    > \"$REPORT_DIR\u002Fssl_analysis.txt\"\nfi\n\n# 5. SMB\u002F文件共享测试\necho \"[5\u002F8] 文件共享服务评估...\"\nsmbclient -L \"\u002F\u002F$TARGET\" -N > \"$REPORT_DIR\u002Fsmb_shares.txt\" 2>&1\nenum4linux -a \"$TARGET\" > \"$REPORT_DIR\u002Fsmb_enum.txt\" 2>&1 &\n\n# 6. DNS服务测试\necho \"[6\u002F8] DNS服务检测...\"\nnmap -sU -p 53 --script dns-* \"$TARGET\" \\\n  -oN \"$REPORT_DIR\u002Fdns_scan.txt\" &\n\n# 7. SNMP检测\necho \"[7\u002F8] SNMP服务检测...\"\nnmap -sU -p 161 --script snmp-* \"$TARGET\" \\\n  -oN \"$REPORT_DIR\u002Fsnmp_scan.txt\" &\n\n# 8. 等待后台任务完成\necho \"[8\u002F8] 等待扫描完成...\"\nwait\n\necho \"[✓] 扫描完成！结果保存在: $REPORT_DIR\"\necho \"[✓] 主要文件：\"\nls -la \"$REPORT_DIR\" 脚本运行结果：",{"id":1419,"title":1167,"titles":1420,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#总结",[1369],{"id":1422,"title":1423,"titles":1424,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#这就是一场由自然语言驱动-ai调用-kali-系统工具做安全扫描的全自动演练ai-完成了-34-次扫描五种专项测试输出了报告并为我们备齐了下次自动化扫描需要的全部底稿","这就是一场由自然语言驱动 AI，调用 Kali 系统工具做安全扫描的全自动演练：AI 完成了 34 次扫描、五种专项测试，输出了报告，并为我们备齐了下次自动化扫描需要的全部底稿。",[1369,1167],{"id":1426,"title":1427,"titles":1428,"content":339,"level":527},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#或许未来人类安全工程师只需循着作战图挥动着指挥棒就好","或许，未来人类安全工程师只需循着“作战图”，挥动着指挥棒就好！",[1369,1167,1423],{"id":218,"title":217,"titles":1430,"content":1431,"level":329},[],"Kali 所使用的系统安全扫描工具命令集合",{"id":1433,"title":1434,"titles":1435,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#完整命令参数指南-针对19216812","完整命令参数指南 - 针对192.168.1.2",[217],{"id":1437,"title":1438,"titles":1439,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#网络发现与端口扫描","🔍 网络发现与端口扫描",[217],{"id":1441,"title":1442,"titles":1443,"content":1444,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#基础端口扫描","基础端口扫描",[217,1438],"# TCP端口快速扫描\n\nnmap -sS -sV -p 1-1000 192.168.1.2\n\n\n\n# 全端口TCP扫描\n\nnmap -sS -sV -p- --script vuln 192.168.1.2\n\n\n\n# UDP端口发现\n\nnmap -sU -sV --top-ports 1000 192.168.1.2\n\n\n\n# 综合扫描 (TCP+UDP+OS检测+脚本漏洞扫描)\n\nnmap -sS -sU -sV -O -A --script discovery,default,vuln -p- 192.168.1.2 --host-timeout 300",{"id":1446,"title":1447,"titles":1448,"content":1449,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#服务版本检测","服务版本检测",[217,1438],"# 详细服务版本信息\n\nnmap -sV -A 192.168.1.2 -p 22,80,111,139,443,445\n\n\n\n# OS系统指纹识别\n\nsudo nmap -O 192.168.1.2",{"id":1451,"title":1452,"titles":1453,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#web应用安全测试","🌐 Web应用安全测试",[217],{"id":1455,"title":1456,"titles":1457,"content":1458,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#目录与文件发现","目录与文件发现",[217,1452],"# 标准目录爆破 (默认字典)\n\ndirb http:\u002F\u002F192.168.1.2 -o \u002Ftmp\u002Fdirb_scan.txt\n\n\n\n# 使用GoBuster (更快字典)\n\ntimeout 30 gobuster dir -u http:\u002F\u002F192.168.1.2 \\\n\n-w \u002Fusr\u002Fshare\u002Fwordlists\u002Fdirb\u002Fcommon.txt \\\n\n-q -o \u002Ftmp\u002Fgobuster.txt\n\n\n\n# HTTPS目录扫描\n\ngobuster dir -u https:\u002F\u002F192.168.1.2 \\\n\n-w \u002Fusr\u002Fshare\u002Fwordlists\u002Fdirb\u002Fcommon.txt \\\n\n-k (-k参数忽略SSL证书错误)",{"id":1460,"title":1461,"titles":1462,"content":1463,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#web漏洞扫描","Web漏洞扫描",[217,1452],"# Nikto综合漏洞扫描\n\nnikto -h 192.168.1.2 -p 80,443 -output \u002Ftmp\u002Fnikto_http.txt\n\n\n\n# SSL\u002FTLS配置测试\n\nsslyze 192.168.1.2:443 \\\n\n--certinfo \\\n\n--heartbleed \\\n\n--tlsv1 --tlsv1_1 --tlsv1_2 --tlsv1_3 \\\n\n> \u002Ftmp\u002Fssl_analysis.txt\n\n\n\n# 技术指纹识别\n\nwhatweb -v 192.168.1.2",{"id":1465,"title":1466,"titles":1467,"content":1468,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#http头部分析","HTTP头部分析",[217,1452],"# 获取HTTP头部\n\ncurl -s -I http:\u002F\u002F192.168.1.2\n\ncurl -s -I -k https:\u002F\u002F192.168.1.2\n\n\n\n# 获取完整响应\n\ncurl -s -L http:\u002F\u002F192.168.1.2 | head -50\n\ncurl -s -L -k https:\u002F\u002F192.168.1.2 | head -50",{"id":1470,"title":1471,"titles":1472,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#ssh安全配置检查","🔐 SSH安全配置检查",[217],{"id":1474,"title":1475,"titles":1476,"content":1477,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#ssh信息收集","SSH信息收集",[217,1471],"# SSH版本扫描\n\nnmap -sC -p22 192.168.1.2 -oN \u002Ftmp\u002Fssh_nmap.txt\n\n\n\n# SSH连接测试\n\ntimeout 10 nc -zv 192.168.1.2 22\n\n\n\n# SSH版本识别\n\ncurl -s telnet:\u002F\u002F192.168.1.2:22 | head -3\n\n\n\n# 基础认证测试 (需要SSH-audit，如未安装)\n\n# ssh-audit 192.168.1.2",{"id":1479,"title":1480,"titles":1481,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#文件共享服务分析","📁 文件共享服务分析",[217],{"id":1483,"title":1484,"titles":1485,"content":1486,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#smbsamba评估","SMB\u002FSamba评估",[217,1480],"# 匿名共享发现\n\nsmbclient -L \u002F\u002F192.168.1.2 -N\n\n\n\n# 详细Samba信息收集\n\nenum4linux -a 192.168.1.2 > \u002Ftmp\u002Fsmb_enum.txt\n\n\n\n# RPC服务探测\n\nrpcclient -U \"\" -N -c srvinfo 192.168.1.2\n\n\n\n# NBT协议信息\n\ntimeout 15 nbtscan -r 192.168.1.2 > \u002Ftmp\u002Fnbtscan_result.txt",{"id":1488,"title":1489,"titles":1490,"content":1491,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#共享访问测试","共享访问测试",[217,1480],"# 测试匿名访问 (失败表明安全配置正确)\n\nsmbclient -L \u002F\u002F192.168.1.2\u002FIPC$ -N\n\n\n\n# 尝试列出共享\n\nsmbstatus --shares 2>\u002Fdev\u002Fnull",{"id":1493,"title":1494,"titles":1495,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#系统工具快速诊断","🔧 系统工具快速诊断",[217],{"id":1497,"title":1498,"titles":1499,"content":1500,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#基础连接测试","基础连接测试",[217,1494],"# 多端口快速测试 (内联测试)\n\ntimeout 15 bash -c '\u003C\u002Fdev\u002Ftcp\u002F192.168.1.2\u002F22 && echo \"SSH开放\"'\n\ntimeout 15 bash -c '\u003C\u002Fdev\u002Ftcp\u002F192.168.1.2\u002F80 && echo \"HTTP开放\"'\n\ntimeout 15 bash -c '\u003C\u002Fdev\u002Ftcp\u002F192.168.1.2\u002F443 && echo \"HTTPS开放\"'\n\n\n\n# 批处理端口状态检查\n\nfor port in 22 80 111 139 443 445; do\n\nnc -w 3 -z 192.168.1.2 $port && echo \"Port $port: OPEN\" || echo \"Port $port: CLOSED\"\n\ndone",{"id":1502,"title":1503,"titles":1504,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#结果文件结构","📊 结果文件结构",[217],{"id":1506,"title":1507,"titles":1508,"content":1509,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#生成报告与日志","生成报告与日志",[217,1503],"生成的文件汇总:\n\n\u002Ftmp\u002Fnikto_http.txt - Web漏洞扫描结果\n\n\u002Ftmp\u002Fdirb_scan.txt - Web目录枚举结果\n\n\u002Ftmp\u002Fgobuster.txt - 详细目录发现结果\n\n\u002Ftmp\u002Fssl_analysis.txt - SSL\u002FTLS配置分析\n\n\u002Ftmp\u002Fssh_nmap.txt - SSH详细扫描结果\n\n\u002Ftmp\u002Fsmb_enum.txt - Samba\u002FSMB枚举信息\n\n\u002Ftmp\u002Fnbtscan_result.txt - NetBIOS信息收集",{"id":1511,"title":1512,"titles":1513,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#️-系统工具位置确认","⚙️ 系统工具位置确认",[217],{"id":1515,"title":1516,"titles":1517,"content":1518,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#验证可用工具","验证可用工具",[217,1512],"# 检查安装的安全工具\n\nls -la \u002Fusr\u002Fbin\u002F | grep -E \"(nmap|nikto|dirb|gobuster|hydra|nc|curl)\"\n\n\n\n# 确认工具版本\n\nnmap --version\n\nnikto --Version\n\ndirb --version\n\ngobuster --version",{"id":1520,"title":1521,"titles":1522,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#进阶使用场景","🔄 进阶使用场景",[217],{"id":1524,"title":1525,"titles":1526,"content":1527,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#自动化批量扫描","自动化批量扫描",[217,1521],"#!\u002Fbin\u002Fbash\n\n# 批量扫描脚本示例\n\n\n\nIP=\"192.168.1.2\"\n\nDATE=$(date +%Y%m%d_%H%M%S)\n\nOUTPUT_DIR=\"\u002Ftmp\u002Fsecurity_scan_${IP}_${DATE}\"\n\n\n\nmkdir -p $OUTPUT_DIR\n\n\n\n# 基础信息收集\n\nnmap -sV -O $IP -oN \"$OUTPUT_DIR\u002Fnmap_baseline.txt\"\n\n\n\n# 详细漏洞扫描\n\nnmap -sS -sU -sV --script vuln $IP -oN \"$OUTPUT_DIR\u002Fnmap_vuln.txt\"\n\n\n\n# Web专项扫描\n\nnikto -h http:\u002F\u002F$IP -output \"$OUTPUT_DIR\u002Fnikto_http.txt\"\n\n\n\n# 目录爆破\n\ngobuster dir -u http:\u002F\u002F$IP -w \u002Fusr\u002Fshare\u002Fwordlists\u002Fdirb\u002Fcommon.txt \\\n\n-q -o \"$OUTPUT_DIR\u002Fgobuster.txt\"\n\n\n\necho \"扫描完成，结果保存在: $OUTPUT_DIR\"",{"id":1529,"title":1530,"titles":1531,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#使用注意事项","📝 使用注意事项",[217],{"id":1533,"title":1534,"titles":1535,"content":1536,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#系统权限需求","系统权限需求",[217,1530],"- **普通权限**: nmap基础扫描、curl、nc\n\n- **root权限**: 完整端口扫描 (-p-), OS指纹识别 (-O)\n\n- **网络权限**: 确保防火墙允许扫描流量",{"id":1538,"title":1539,"titles":1540,"content":1541,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#扫描参数调优","扫描参数调优",[217,1530],"# 降低强度以避免系统负载\n\nnmap -T2 -sV --top-ports 1000 192.168.1.2\n\n\n\n# 高并发快速扫描\n\nnmap -T4 --min-rate 1000 --max-retries 2 192.168.1.2\n\n\n\n# 精确版本检测\n\nnmap -sV --version-intensity 9 192.168.1.2",{"id":1543,"title":1544,"titles":1545,"content":1546,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#防火墙逃逸技巧","防火墙逃逸技巧",[217,1530],"# 使用不同扫描技术\n\nnmap -sS -sF -sX --host-timeout 300 192.168.1.2",{"id":1548,"title":1549,"titles":1550,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#特定场景组合命令","🎯 特定场景组合命令",[217],{"id":1552,"title":1553,"titles":1554,"content":1555,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#快速安全检查","快速安全检查",[217,1549],"# 5分钟快速评估\n\nnmap -sS -sV -A --top-ports 1000 192.168.1.2 && \\\n\ndirb http:\u002F\u002F192.168.1.2 -o \u002Ftmp\u002Fquick_web.txt && \\\n\nnikto -h 192.168.1.2 -output \u002Ftmp\u002Fquick_nikto.txt",{"id":1557,"title":1558,"titles":1559,"content":1560,"level":346},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#深度安全审计","深度安全审计",[217,1549],"# 30分钟深度扫描\n\nnmap -sS -sU -sV -O -A \\\n\n--script vuln,discovery,default \\\n\n--host-timeout 1800 \\\n\n-p- 192.168.1.2\n\n\n\n# 同时进行多工具并行扫描\n\n{\n\nnikto -h 192.168.1.2 -output \u002Ftmp\u002Ffull_nikto.txt &\n\ndirb http:\u002F\u002F192.168.1.2 -o \u002Ftmp\u002Ffull_dirb.txt &\n\nenum4linux -a 192.168.1.2 > \u002Ftmp\u002Ffull_smb.txt &\n\nwait\n\n}",{"id":1562,"title":1563,"titles":1564,"content":1565,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#命令速查表","📋 命令速查表",[217],"| 工具 | 核心命令 | 用途 |\n\n|------|----------|------|\n\n| nmap | `nmap -sS -sV 192.168.1.2` | 基础端口与服务发现 |\n\n| dirb | `dirb http:\u002F\u002F192.168.1.2` | Web目录枚举 |\n\n| nikto | `nikto -h 192.168.1.2` | Web漏洞扫描 |\n\n| gobuster | `gobuster dir -u http:\u002F\u002F192.168.1.2 -w [字典]` | 快速目录发现 |\n\n| smbclient | `smbclient -L \u002F\u002F192.168.1.2 -N` | SMB共享发现 |\n\n| sslyze | `sslyze 192.168.1.2:443` | SSL\u002FTLS配置分析 |\n\n| enum4linux | `enum4linux -a 192.168.1.2` | Windows信息枚举 | 使用提示: 建议在测试环境中先验证这些命令的影响，然后应用到生产环境监控系统。 html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sw7OJ, html code.shiki .sw7OJ{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#EA76CB;--shiki-code-theme-catppuccin-dark:#F5C2E7;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s1ypn, html code.shiki .s1ypn{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .stlLF, html code.shiki .stlLF{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#EA76CB;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F5C2E7;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sjot_, html code.shiki .sjot_{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sisa7, html code.shiki .sisa7{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}",{"id":222,"title":221,"titles":1567,"content":1568,"level":329},[],"Kali 生成的系统安全综合评估报告",{"id":1570,"title":1571,"titles":1572,"content":1573,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全综合评估报告#为什么要给树莓派安装-kali","为什么要给树莓派安装 Kali？",[221],"迷你渗透实验室：树莓派 4B\u002F5 拥有 4–8 GB RAM，运行 Kali 足够跑 Metasploit、Burp Suite、Aircrack-ng。低功耗随身“盒子”：U 盘大小，插充电宝就能跑 8 h，现场测试不易被发现。多元化玩法：可以当 AP（Fake-Wi-Fi）、HID 攻击机（P4wnP1）、其他载荷平台。 树莓派4B 一个,此物曾经可以理财 ,价格一度涨到离谱.\n平价的时候买了一个,玩了多年,换过好几个3D打印的外壳,图中这个最是满意.\n安装klipper给3D 打印机做过上位机,\n也做过 无人机的图传接收端,\n刷过开源游戏系统当过游戏机,\n近一年来安装开源的 Coolify 项目,做控制端管理部署几个云服务器.\n绝对是物尽其用了.",{"id":1575,"title":1576,"titles":1577,"content":1578,"level":340},"\u002Fblog\u002F技术栈\u002F系统安全综合评估报告#安装","安装",[221],"安装方法网上一大把,也可以直接问 AI.\n主要是一些配置: 其实也是所有 Linux 配置的基本操作Kali 基于 Debian 系 ,所有配置差不多. 备份源 sudo cp \u002Fetc\u002Fapt\u002Fsources.list \u002Fetc\u002Fapt\u002Fsources.list.bak 使用喜欢的编译器编辑 sudo nano \u002Fetc\u002Fapt\u002Fsources.list 注释官方源,添加国内镜像源 deb http:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fkali kali-rolling main contrib non-free non-free-firmware 然后更新源 sudo apt update && sudo apt upgrade -y 这样, Kali 就安好了,很可拷,很刑的.",{"id":226,"title":225,"titles":1580,"content":1581,"level":329},[],"如何在树莓派设备上安装 Kali Linux 系统，包括镜像下载、烧录、启动及基础配置等步骤，适合初学者快速上手。",{"id":1583,"title":1571,"titles":1584,"content":1573,"level":340},"\u002Fblog\u002F技术栈\u002F树莓派安装-kali-linux#为什么要给树莓派安装-kali",[225],{"id":1586,"title":1576,"titles":1587,"content":1578,"level":340},"\u002Fblog\u002F技术栈\u002F树莓派安装-kali-linux#安装",[225],{"id":231,"title":230,"titles":1589,"content":1590,"level":329},[],"Nuxt 被收购后，预计在9月发布 Nuxt UI Pro v4,并且全免费 Nuxt 被收购后，预计在9月发布 Nuxt UI Pro v4,并且全免费。\n于是把最近在做的项目 UI 组件换成了 Nuxt UI Pro。\n不过9月才免费，现在就忍不住上了组件，总不至于去缴几百美元的费用吧。 于是先绕过一些验证过程，体验一下“学习版”。 做一个 shell 脚本，在项目根目录下执行即可完成跳过。pnpm i 安装完或者更新完依赖就执行一次即可。 # 绕过 UI Pro 的 License 验证\nset -euo pipefail\n# 1. 禁用 module.mjs 的调用\nMODULE=\"node_modules\u002F@nuxt\u002Fui-pro\u002Fdist\u002Fmodule.mjs\"\nif [[ -f $MODULE ]]; then\nsed -i.bak '\u002Fawait validateLicense({.*rootDir })\u002Fs\u002F^\u002F\\\u002F\\\u002F\u002F; \u002F^await validateLicense({.*rootDir })\u002Fs\u002F^\u002F\\\u002F\\\u002F\u002F' \"$MODULE\"\nrm -f \"$MODULE.bak\"\necho \"✅ module.mjs 已屏蔽\"\nfi\n# 2. 直接“替换函数” fake 200\nSHARED=\"node_modules\u002F@nuxt\u002Fui-pro\u002Fdist\u002Fshared\"\nJS=$(find \"$SHARED\" -maxdepth 1 -name 'ui-pro.*.mjs' | head -n1)\n[[ -z $JS || ! -f $JS ]] && { echo \"⚠️ ui-pro.*.mjs 未找到\"; exit 0; }\ncat \u003C\u003C'EOF' > tmp_func.mjs\nasync function validateLicense(opts) {\n\u002F* --- patched --- *\u002F\nreturn { status: 200 }\n}\nEOF\nsed -i.bak '\u002F^async function validateLicense[^(]*(\u002F,\u002F^\\}$\u002Fc\\\nasync function validateLicense(opts) {\\\n\u002F* --- patched --- *\u002F\\\nreturn { status: 200 }\\\n}\\\n' \"$JS\"\nrm -f \"$JS.bak\" tmp_func.mjs\necho \"✅ $JS 已 mock 完成\"\necho \"🎉 License ⛔ Done!\"",{"id":1592,"title":1593,"titles":1594,"content":1595,"level":346},"\u002Fblog\u002F技术栈\u002Fnuxt-ui-pro#以上脚本是自动化完成以下操作","以上脚本是自动化完成以下操作：",[230],"修改 node_modules\\@nuxt\\ui-pro\\dist\\module.mjs nuxt.hook(\"build:before\", async () => {\n\u002F\u002F 注释掉这行\n\u002F\u002F await validateLicense({ key, theme: theme$1, dir: nuxt.options.rootDir });\n\n}); 修改 node_modules\u002F@nuxt\u002Fui-pro\u002Fdist\u002Fshared\u002Fui-pro.CsgJ05mi.mjs\n此目录下 ui-pro.xxx.mjs 名称是随机生成 async function validateLicense(opts) {\n\n\u002F\u002F注释下方代码\n\u002F\u002F if (!opts.key) {\n\n\u002F\u002F throw _createError(`Missing \\`${opts.theme.env}\\` license key.\n\n\u002F\u002F Purchase Nuxt UI Pro at \\`${opts.theme.link}\\` to build your app in production.`);\n\n\u002F\u002F }\n\n\u002F\u002F const gitInfo = opts.key !== \"oss\" ? void 0 : await _getLocalGitInfo(opts.dir) || _getGitEnv();\n\n\u002F\u002F const projectName = gitInfo ? `${gitInfo.owner || \"\"}\u002F${gitInfo.name || \"\"}` : await _getPkgName(opts.dir);\n\n\u002F\u002F try {\n\n\u002F\u002F await ofetch(\"https:\u002F\u002Fapi.nuxtlabs.com\u002Fui-pro\u002Fverify\", {\n\n\u002F\u002F headers: {\n\n\u002F\u002F \"Authorization\": `key ${opts.key}`,\n\n\u002F\u002F \"x-nuxt-project\": projectName\n\n\u002F\u002F },\n\n\u002F\u002F params: gitInfo ? {\n\n\u002F\u002F gitRepo: gitInfo.name,\n\n\u002F\u002F gitOrg: gitInfo.owner,\n\n\u002F\u002F gitUrl: gitInfo.url\n\n\u002F\u002F } : {}\n\n\u002F\u002F });\n\n\u002F\u002F } catch (error) {\n\n\u002F\u002F const statusType = Math.round(error.status \u002F 100);\n\n\u002F\u002F if (statusType === 4) {\n\n\u002F\u002F throw _createError(`Invalid \\`${opts.theme.env}\\` license key.\n\n\u002F\u002F Purchase Nuxt UI Pro at \\`${opts.theme.link}\\` to build your app in production.`);\n\n\u002F\u002F }\n\n\u002F\u002F throw _createError(\"Cannot validate Nuxt UI Pro License: \" + error);\n\n\u002F\u002F }\n\n\u002F手动添加返回 200 状态值\nconst response = {\n\nstatus: 200,\n\n};\n\nreturn response;\n\n} html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sjot_, html code.shiki .sjot_{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sxmAx, html code.shiki .sxmAx{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s1ypn, html code.shiki .s1ypn{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .sc7rV, html code.shiki .sc7rV{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s-jwS, html code.shiki .s-jwS{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sBmMY, html code.shiki .sBmMY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s006x, html code.shiki .s006x{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sH4JB, html code.shiki .sH4JB{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sXva1, html code.shiki .sXva1{--shiki-light:#E36209;--shiki-light-font-style:inherit;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#E64553;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#EBA0AC;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sgUAf, html code.shiki .sgUAf{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sFttD, html code.shiki .sFttD{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s3wIo, html code.shiki .s3wIo{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sm7WY, html code.shiki .sm7WY{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s7Ukq, html code.shiki .s7Ukq{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .smalX, html code.shiki .smalX{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}",{"id":235,"title":234,"titles":1597,"content":1598,"level":329},[],"Supabase - 添加国内阿里云短信、微信扫码认证登录",{"id":1600,"title":1601,"titles":1602,"content":1603,"level":533},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#给-supabase-添加一项新的功能","给 Supabase 添加一项新的功能",[234],"Supabase 自身的鉴权组件是社区开源项目 GoTrue ，由 GO 语言开发\nSupabase 提供的短信验证都是国外的厂商，并不适应国内环境",{"id":1605,"title":1275,"titles":1606,"content":1607,"level":527},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#实现",[234,1601],"单独把 Gotrue 仓库克隆下来，添加修改需要的功能\n测试好后打包为 Docker，推到私有库\n修改 Supabase 的 Docker Compose 文件，image 改为私有库镜像并拉取！",{"id":1609,"title":1610,"titles":1611,"content":339,"level":527},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#并没有提交-pr直接放在仓库具体使用方法看仓库说明","并没有提交 PR，直接放在仓库，具体使用方法看仓库说明",[234,1601],{"id":1613,"title":1614,"titles":1615,"content":339,"level":533},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#github-仓库地址","Github 仓库地址",[234,1601,1610],{"id":1617,"title":1618,"titles":1619,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#新增功能","🚀 新增功能",[234,1601],{"id":1621,"title":1622,"titles":1623,"content":1624,"level":346},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#_1-阿里云短信服务-aliyun-sms","1. 阿里云短信服务 (Aliyun SMS)",[234,1601],"- ✅ 完整的阿里云短信 API 集成\n\n    - ✅ 支持 HMAC-SHA1 签名验证\n\n    - ✅ 支持中文短信签名\n\n    - ✅ 支持 OTP 验证码发送\n\n    - ✅ 完整的错误处理和响应解析",{"id":1626,"title":1627,"titles":1628,"content":1629,"level":346},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#_2-华为云短信服务-huaweicloud-sms","2. 华为云短信服务 (HuaweiCloud SMS)",[234,1601],"- ✅ 添加华为云短信 API 集成\n\n    - ✅ 完整的 `VerifyOTP` 方法实现\n\n    - ✅ 完善的接口功能支持",{"id":1631,"title":1632,"titles":1633,"content":1634,"level":522},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#阿里云短信配置","阿里云短信配置",[234,1601,1627],"# 阿里云 Access Key ID\nSMS_ALIYUN_ACCESS_KEY_ID=your_access_key_id\n\n# 阿里云 Access Key Secret\nSMS_ALIYUN_ACCESS_KEY_SECRET=your_access_key_secret\n\n# 阿里云短信服务终端\nSMS_ALIYUN_ENDPOINT=https:\u002F\u002Fdysmsapi.aliyuncs.com\n\n# 阿里云短信签名（支持中文）\nSMS_ALIYUN_SIGN_NAME=您的短信签名\n\n# 阿里云短信扩展码（可选）\nSMS_ALIYUN_SMS_UP_EXTEND_CODE=",{"id":1636,"title":1637,"titles":1638,"content":1639,"level":522},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#gotrue-环境变量映射","GoTrue 环境变量映射",[234,1601,1627],"# 在 docker-compose.yml 中映射到 GoTrue 容器\nGOTRUE_SMS_ALIYUN_ACCESS_KEY_ID=${SMS_ALIYUN_ACCESS_KEY_ID}\nGOTRUE_SMS_ALIYUN_ACCESS_KEY_SECRET=${SMS_ALIYUN_ACCESS_KEY_SECRET}\nGOTRUE_SMS_ALIYUN_ENDPOINT=${SMS_ALIYUN_ENDPOINT}\nGOTRUE_SMS_ALIYUN_SIGN_NAME=${SMS_ALIYUN_SIGN_NAME}\nGOTRUE_SMS_ALIYUN_SMS_UP_EXTEND_CODE=${SMS_ALIYUN_SMS_UP_EXTEND_CODE} html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sjot_, html code.shiki .sjot_{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sgYWM, html code.shiki .sgYWM{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}",{"id":240,"title":239,"titles":1641,"content":1642,"level":329},[],"Coolify是什么？",{"id":1644,"title":1373,"titles":1645,"content":1646,"level":329},"\u002Fblog\u002F技术栈\u002Fcoolify#概述",[],"这是一份提供给AI大模型的Python代码规范与编程标准，可以有效提高Cursor等大模型对Python项目的编写能力。",{"id":1648,"title":1649,"titles":1650,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#description-python开发综合指南涵盖代码组织性能安全性测试等内容这些规则旨在促进可维护高效且安全的python代码库globs-py","description: Python开发综合指南，涵盖代码组织、性能、安全性、测试等内容。这些规则旨在促进可维护、高效且安全的Python代码库。\nglobs: *.py",[1373],{"id":1652,"title":1653,"titles":1654,"content":1655,"level":329},"\u002Fblog\u002F技术栈\u002Fcoolify#python最佳实践与编码规范","Python最佳实践与编码规范",[],"本文档概述了Python开发的综合最佳实践和编码标准，旨在促进编写干净、高效、可维护和安全的代码。",{"id":1657,"title":1658,"titles":1659,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_1-代码组织与结构","1. 代码组织与结构",[1653],{"id":1661,"title":1662,"titles":1663,"content":1664,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_11-目录结构最佳实践","1.1 目录结构最佳实践",[1653,1658],"扁平结构优于嵌套（但不绝对）。 从简单结构开始，按需重构包与模块： 使用包（包含__init__.py的目录）对模块进行逻辑分组src布局： 考虑使用src目录分离应用代码和项目级文件（setup.py、requirements.txt等），避免导入冲突并明确项目边界典型项目结构： project_name\u002F\n├── src\u002F\n│   ├── package_name\u002F\n│   │   ├── init.py\n│   │   ├── module1.py\n│   │   ├── module2.py\n│   ├── main.py  # 入口文件\n├── tests\u002F\n│   ├── init.py\n│   ├── test_module1.py\n│   ├── test_module2.py\n├── docs\u002F\n│   ├── conf.py\n│   ├── index.rst\n├── .gitignore\n├── pyproject.toml 或 setup.py\n├── README.md\n├── requirements.txt 或 requirements-dev.txt",{"id":1666,"title":1667,"titles":1668,"content":1669,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_12-文件命名规范","1.2 文件命名规范",[1653,1658],"模块： 小写字母，使用下划线增强可读性（如my_module.py）包： 全小写（如my_package），非必要不使用下划线测试文件： 以test_开头（如test_my_module.py）",{"id":1671,"title":1672,"titles":1673,"content":1674,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_13-模块组织最佳实践","1.3 模块组织最佳实践",[1653,1658],"单一职责原则： 每个模块应有明确定义的用途导入规范：顺序：标准库→第三方库→本地模块优先使用绝对导入（如from my_package.module1 import function1）在复杂包结构中需明确相对导入时使用显式相对导入（from . import sibling_module）常量： 使用全大写定义模块级常量（如MAX_ITERATIONS = 100）双下划线名称： __all__、__version__等应放在模块文档字符串之后、所有导入之前（from __future__除外）。使用__all__显式声明公共API",{"id":1676,"title":1677,"titles":1678,"content":1679,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_14-组件架构建议","1.4 组件架构建议",[1653,1658],"分层架构： 适用于大型应用，将关注点分离为表现层、业务逻辑层和数据访问层微服务： 超大型系统可拆分为小型独立服务六边形\u002F整洁架构： 强调业务逻辑与数据库\u002F框架等外部依赖的解耦依赖注入： 提高可测试性并降低耦合度",{"id":1681,"title":1682,"titles":1683,"content":1684,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_15-代码分割策略","1.5 代码分割策略",[1653,1658],"按功能拆分： 基于不同功能划分模块（如用户管理、数据处理）按层级拆分： 分离表现层、业务逻辑层和数据访问代码懒加载： 使用importlib.import_module()实现按需加载，优化启动时间条件导入： 根据特定条件导入模块",{"id":1686,"title":1687,"titles":1688,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_2-常见模式与反模式","2. 常见模式与反模式",[1653],{"id":1690,"title":1691,"titles":1692,"content":1693,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_21-设计模式","2.1 设计模式",[1653,1687],"单例模式： 限制类只能实例化一个对象工厂模式： 创建对象时无需指定具体类观察者模式： 建立对象间一对多依赖关系策略模式： 定义算法族并使其可互换装饰器模式： 动态扩展对象功能上下文管理器： 确保资源正确清理（如自动关闭文件）",{"id":1695,"title":1696,"titles":1697,"content":1698,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_22-常见任务的推荐方案","2.2 常见任务的推荐方案",[1653,1687],"数据验证： 使用pydantic或marshmallow等库配置管理： 使用python-decouple、dynaconf或标准库的configparser日志记录： 使用logging模块实现结构化日志命令行接口： 使用argparse、click或typer异步编程： 使用asyncio处理I\u002FO密集型任务",{"id":1700,"title":1701,"titles":1702,"content":1703,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_23-反模式与代码异味","2.3 反模式与代码异味",[1653,1687],"上帝类： 承担过多职责的类，应拆分为专注单一功能的小类霰弹式变更： 需在多处做小修改，表明内聚性不足面条代码： 结构混乱难以追踪，应重构为定义明确的函数\u002F类重复代码： 提取公共代码为可复用函数\u002F类（遵循DRY原则）魔法数值\u002F字符串： 使用命名常量替代硬编码值过早优化： 避免在没有性能瓶颈分析前提下的优化",{"id":1705,"title":1706,"titles":1707,"content":1708,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_24-状态管理最佳实践","2.4 状态管理最佳实践",[1653,1687],"无状态函数： 尽可能使用无状态函数不可变数据： 使用不可变数据结构防止意外修改显式状态： 使用类或数据结构明确管理状态，避免全局变量上下文变量： Python 3.7+可使用contextvars管理异步应用中的请求级状态",{"id":1710,"title":1711,"titles":1712,"content":1713,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_25-错误处理模式","2.5 错误处理模式",[1653,1687],"捕获特定异常： 避免笼统捕获Exception或BaseException资源清理： 使用finally确保清理代码必执行异常日志： 记录完整堆栈信息异常消息： 抛出包含明确错误信息的异常避免异常控制流： 异常应用于处理意外情况而非常规流程",{"id":1715,"title":1716,"titles":1717,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_3-性能优化","3. 性能优化",[1653],{"id":1719,"title":1720,"titles":1721,"content":1722,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_31-优化技术","3.1 优化技术",[1653,1716],"性能分析： 使用cProfile定位瓶颈高效数据结构： 根据场景选择（如set用于成员测试、dict用于查找）列表推导式与生成器： 编写简洁高效的代码NumPy向量化： 对数值计算使用向量化操作即时编译： 性能关键代码考虑使用Numba等JIT编译器字符串拼接： 使用''.join(iterable)高效拼接字符串",{"id":1724,"title":1725,"titles":1726,"content":1727,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_32-内存管理","3.2 内存管理",[1653,1716],"内存分析： 使用memory_profiler定位内存泄漏__slots__： 减少类实例的内存占用生成器： 处理大数据集时避免全部加载到内存",{"id":1729,"title":1730,"titles":1731,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_4-安全性最佳实践","4. 安全性最佳实践",[1653],{"id":1733,"title":1734,"titles":1735,"content":1736,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_41-常见漏洞防范","4.1 常见漏洞防范",[1653,1730],"SQL注入： 使用参数化查询或ORMXSS攻击： 对用户输入消毒并转义输出CSRF防护： 使用CSRF令牌依赖漏洞： 定期审计和更新依赖项硬编码密钥： 禁止在代码中硬编码密码\u002FAPI密钥，使用环境变量管理",{"id":1738,"title":1739,"titles":1740,"content":1741,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_42-api安全通信","4.2 API安全通信",[1653,1730],"强制HTTPS： 所有API通信必须加密速率限制： 防止接口滥用输入验证： 处理前验证所有API请求",{"id":1743,"title":1744,"titles":1745,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_5-测试策略","5. 测试策略",[1653],{"id":1747,"title":1748,"titles":1749,"content":1750,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_51-单元测试要点","5.1 单元测试要点",[1653,1744],"测试粒度： 隔离测试单个函数\u002F类\u002F模块边界条件： 特别测试边界情况和异常场景测试覆盖率： 追求高覆盖率但避免教条化",{"id":1752,"title":1753,"titles":1754,"content":1755,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_52-集成测试建议","5.2 集成测试建议",[1653,1744],"聚焦关键流程： 关注核心用户场景模拟外部服务： 使用mock替代真实外部依赖",{"id":1757,"title":1758,"titles":1759,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_6-常见陷阱","6. 常见陷阱",[1653],{"id":1761,"title":1762,"titles":1763,"content":1764,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_61-高频错误","6.1 高频错误",[1653,1758],"可变默认参数： 函数定义中避免使用可变对象作为默认值变量作用域： 注意嵌套函数中的变量作用域忽略异常： 禁止直接忽略未处理的异常虚拟环境： 必须使用虚拟环境管理项目依赖",{"id":1766,"title":1767,"titles":1768,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fcoolify#_7-工具与环境","7. 工具与环境",[1653],{"id":1770,"title":1771,"titles":1772,"content":1773,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_71-推荐工具链","7.1 推荐工具链",[1653,1767],"IDE： PyCharm、VS Code（搭配Python插件）包管理： pip、poetry格式化： black、autopep8静态检查： mypy、pylint",{"id":1775,"title":1776,"titles":1777,"content":1778,"level":346},"\u002Fblog\u002F技术栈\u002Fcoolify#_72-cicd集成","7.2 CI\u002FCD集成",[1653,1767],"自动化测试： 每次提交自动运行测试套件代码质量门禁： 集成静态分析工具到流水线 遵循这些规范和最佳实践，开发者能够构建出更健壮、可维护且安全的Python应用。",{"id":245,"title":244,"titles":1780,"content":1646,"level":329},[],{"id":1782,"title":1373,"titles":1783,"content":1646,"level":329},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#概述",[],{"id":1785,"title":1649,"titles":1786,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#description-python开发综合指南涵盖代码组织性能安全性测试等内容这些规则旨在促进可维护高效且安全的python代码库globs-py",[1373],{"id":1788,"title":1653,"titles":1789,"content":1655,"level":329},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#python最佳实践与编码规范",[],{"id":1791,"title":1658,"titles":1792,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_1-代码组织与结构",[1653],{"id":1794,"title":1662,"titles":1795,"content":1664,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_11-目录结构最佳实践",[1653,1658],{"id":1797,"title":1667,"titles":1798,"content":1669,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_12-文件命名规范",[1653,1658],{"id":1800,"title":1672,"titles":1801,"content":1674,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_13-模块组织最佳实践",[1653,1658],{"id":1803,"title":1677,"titles":1804,"content":1679,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_14-组件架构建议",[1653,1658],{"id":1806,"title":1682,"titles":1807,"content":1684,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_15-代码分割策略",[1653,1658],{"id":1809,"title":1687,"titles":1810,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_2-常见模式与反模式",[1653],{"id":1812,"title":1691,"titles":1813,"content":1693,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_21-设计模式",[1653,1687],{"id":1815,"title":1696,"titles":1816,"content":1698,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_22-常见任务的推荐方案",[1653,1687],{"id":1818,"title":1701,"titles":1819,"content":1703,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_23-反模式与代码异味",[1653,1687],{"id":1821,"title":1706,"titles":1822,"content":1708,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_24-状态管理最佳实践",[1653,1687],{"id":1824,"title":1711,"titles":1825,"content":1713,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_25-错误处理模式",[1653,1687],{"id":1827,"title":1716,"titles":1828,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_3-性能优化",[1653],{"id":1830,"title":1720,"titles":1831,"content":1722,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_31-优化技术",[1653,1716],{"id":1833,"title":1725,"titles":1834,"content":1727,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_32-内存管理",[1653,1716],{"id":1836,"title":1730,"titles":1837,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_4-安全性最佳实践",[1653],{"id":1839,"title":1734,"titles":1840,"content":1736,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_41-常见漏洞防范",[1653,1730],{"id":1842,"title":1739,"titles":1843,"content":1741,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_42-api安全通信",[1653,1730],{"id":1845,"title":1744,"titles":1846,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_5-测试策略",[1653],{"id":1848,"title":1748,"titles":1849,"content":1750,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_51-单元测试要点",[1653,1744],{"id":1851,"title":1753,"titles":1852,"content":1755,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_52-集成测试建议",[1653,1744],{"id":1854,"title":1758,"titles":1855,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_6-常见陷阱",[1653],{"id":1857,"title":1762,"titles":1858,"content":1764,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_61-高频错误",[1653,1758],{"id":1860,"title":1767,"titles":1861,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_7-工具与环境",[1653],{"id":1863,"title":1771,"titles":1864,"content":1773,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_71-推荐工具链",[1653,1767],{"id":1866,"title":1776,"titles":1867,"content":1778,"level":346},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_72-cicd集成",[1653,1767],{"id":250,"title":249,"titles":1869,"content":1870,"level":329},[],"这是一份提供给AI大模型的Nuxt3框架规范、编程标准，可以有效提高Cursor等大模型对Nuxt.js框架的编写能力。",{"id":1872,"title":1373,"titles":1873,"content":1870,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#概述",[249],{"id":1875,"title":1876,"titles":1877,"content":1878,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#description-本规则为-nuxtjs-项目提供全面的最佳实践和编码标准涵盖代码组织性能安全性测试和常见陷阱旨在确保-nuxtjs-应用程序的可维护性可扩展性和安全性globs-vuejstsmjsmtsjsxtsxconfigjsconfigts","description: 本规则为 Nuxt.js 项目提供全面的最佳实践和编码标准，涵盖代码组织、性能、安全性、测试和常见陷阱。旨在确保 Nuxt.js 应用程序的可维护性、可扩展性和安全性。\nglobs: .vue,.js,.ts,.mjs,.mts,.jsx,.tsx,.config.js,*.config.ts",[249],"启用 ESLint 支持： 使用 @nuxt\u002Feslint 模块来配置项目感知的 ESLint。这确保代码质量和一致性。\n运行 npx nuxi module add eslint 添加模块。根据需要自定义生成的 eslint.config.mjs 文件。采用 Nuxt.js 模块： 利用 Nuxt.js 模块来封装功能并维护干净的代码库。在实现自定义解决方案之前先探索现有模块（例如，用于服务端身份验证的 @nuxt\u002Fauth）。约定优于配置： 遵循 Nuxt.js 约定来简化开发和协作。除非绝对必要，否则避免偏离约定。高效利用 Nuxt 布局： 为多个页面共享的组件创建可重用布局，以确保一致性并节省开发时间。布局位于 layouts\u002F 目录中。使用 Pinja 管理状态： 使用 Pinia 进行状态管理。根据功能或特性组织 store 模块，以提高可维护性。将页面分解为组件： 将页面分解为小的、可重用的组件，以增强可维护性、可测试性和可重用性。每个组件都应该有单一责任。明智地利用 Nuxt 插件： 使用 Nuxt 插件在 Vue.js 初始化之前运行代码或添加全局功能。注意插件对性能的影响。插件位于 plugins\u002F 目录中。针对 SEO 和性能进行优化： 利用 Nuxt.js 的服务端渲染 (SSR) 来优化 SEO。为图片实现懒加载并优化资源以最小化初始加载时间。使用 Lighthouse 等工具识别性能瓶颈。实现错误处理和验证： 实现强大的错误处理和验证机制，以提供无缝的用户体验。使用 Nuxt.js 中间件拦截请求和响应进行错误处理和数据验证。为代码编写文档： 使用 JSDoc 等工具为组件、模块和自定义函数提供清晰简洁的文档。拥抱测试： 使用 Jest、Vue Test Utils 和 Vitest 等工具编写单元测试、集成测试和端到端测试。",{"id":1880,"title":1881,"titles":1882,"content":1883,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_1-代码组织和结构","1. 代码组织和结构：",[249],"目录结构：components\u002F：可重用的 Vue 组件。composables\u002F：可重用的组合式函数。layouts\u002F：应用程序布局。middleware\u002F：路由中间件。pages\u002F：应用程序页面（路由定义）。plugins\u002F：Nuxt.js 插件。server\u002F：API 路由和服务端逻辑。static\u002F：静态资源（例如，图片、字体）。store\u002F：Pinia stores（可选，但推荐）。utils\u002F：工具函数。文件命名约定：组件：PascalCase.vue（例如，MyComponent.vue）组合式函数：usePascalCase.js 或 usePascalCase.ts（例如，useCounter.js）布局：kebab-case.vue（例如，default.vue 或 custom-layout.vue）页面：kebab-case.vue（例如，index.vue、about.vue、product-details.vue）插件：kebab-case.js 或 kebab-case.ts（例如，analytics.js）Stores：kebab-case.js 或 kebab-case.ts（例如，user-store.js）工具函数：camelCase.js 或 camelCase.ts（例如，formatDate.js）模块组织：将相关功能分组到单独的模块中。在 nuxt.config.js 或 nuxt.config.ts 中使用 @nuxt\u002Fmodules 数组注册模块。创建自定义模块来封装复杂逻辑。组件架构：优先使用组合而非继承。对简单的 UI 元素使用函数式组件。设计组件时考虑可重用性和可测试性。考虑使用插槽进行灵活的组件组合。代码分割：利用动态导入进行基于路由的代码分割。使用 import() 将大组件分割成更小的块。使用 Webpack Bundle Analyzer 等工具分析包大小。",{"id":1885,"title":1886,"titles":1887,"content":1888,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_2-常见模式和反模式","2. 常见模式和反模式：",[249],"设计模式：组合式 API： 使用组合式 API 来组织组件逻辑。Store 模式 (Pinia)： 使用 Pinia 实现集中式状态管理系统。中间件模式： 使用中间件进行身份验证、授权和数据验证。插件模式： 为全局功能和第三方库集成创建插件。推荐方法：API 通信： 在组件内使用 useFetch 或 useAsyncData 组合式函数进行 API 调用。表单处理： 利用 Vue 的内置表单处理功能与 v-model 和像 VeeValidate 这样的验证库。身份验证： 使用 @nuxt\u002Fauth 库或自定义解决方案实现安全的身份验证流程。授权： 使用中间件和 Pinia stores 实现基于角色的访问控制 (RBAC)。反模式：直接修改 props： 避免从子组件直接修改父组件数据。请使用 emit 代替。过度使用全局状态： 将全局状态的使用限制在必要的应用程序数据上。对本地数据考虑使用组件级状态。忽略错误处理： 始终处理 API 调用和其他异步操作中的潜在错误。编写过于复杂的组件： 将大组件分解为更小、更易管理的部分。状态管理最佳实践：单一数据源： 在 Pinia stores 中为应用程序状态维护单一、一致的数据源。不可变性： 将状态视为不可变的。使用函数来更新 store 而不是直接操作数据。清晰的命名约定： 为 store 模块、actions 和 mutations 使用描述性名称。模块化： 根据功能或特性将 stores 分成模块。错误处理模式：集中式错误处理： 实现全局错误处理器来捕获未处理的异常。错误边界： 使用错误边界来隔离组件故障并防止级联错误。用户友好的错误消息： 为用户提供清晰和有用的错误消息。",{"id":1890,"title":1891,"titles":1892,"content":1893,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_3-性能考虑","3. 性能考虑：",[249],"优化技术：懒加载： 为图片、组件和路由实现懒加载。代码分割： 将应用程序分割成更小的块以获得更快的初始加载时间。Tree Shaking： 在构建过程中删除未使用的代码。缓存： 缓存 API 响应和静态资源以减少服务器负载。图片优化： 使用 nuxt\u002Fimage 等工具优化图片。使用适当的图片格式（WebP）。将图片大小调整为适当大小。考虑使用 CDN 进行图片交付。内存管理：避免内存泄漏： 在组件卸载时清理事件监听器和定时器。使用弱引用： 在可能的情况下对 DOM 元素使用弱引用。最小化对象创建： 避免创建不必要的对象和数组。渲染优化：虚拟化： 对大列表使用虚拟化以提高渲染性能。记忆化： 记忆化昂贵的计算以避免冗余计算。有效使用 computed 属性以避免不必要的重新渲染。防抖和节流： 对事件处理器使用防抖和节流以减少函数调用次数。包大小优化：分析包大小： 使用 Webpack Bundle Analyzer 识别大依赖项。删除未使用的依赖项： 删除未使用的依赖项以减少包大小。使用更小的替代方案： 考虑使用更小的替代方案来替代大型库。优化依赖项： 检查依赖项并确保您使用的是最高效的版本。懒加载策略：基于路由的懒加载： 仅在访问相应路由时加载组件。基于组件的懒加载： 仅在组件在视口中可见时加载组件。",{"id":1895,"title":1896,"titles":1897,"content":1898,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_4-安全最佳实践","4. 安全最佳实践：",[249],"常见漏洞：跨站脚本攻击 (XSS)： 通过正确清理用户输入和使用 Vue 的内置 HTML 转义来防止 XSS 攻击。跨站请求伪造 (CSRF)： 通过实现 CSRF 令牌来防止 CSRF 攻击。SQL 注入： 避免原始 SQL 查询。使用 ORM（对象关系映射器）来防止 SQL 注入。身份验证和授权缺陷： 实现安全的身份验证和授权机制。不安全的直接对象引用 (IDOR)： 实现适当的访问控制以防止对资源的未授权访问。输入验证：服务端验证： 始终在服务端验证用户输入。客户端验证： 提供客户端验证以获得更好的用户体验（但不要依赖它作为验证的唯一来源）。清理输入： 清理用户输入以删除潜在的有害字符。身份验证和授权模式：JWT（JSON Web Tokens）： 使用 JWT 进行身份验证和授权。OAuth 2.0： 为第三方身份验证实现 OAuth 2.0。基于角色的访问控制 (RBAC)： 实现 RBAC 来根据用户角色控制对资源的访问。数据保护策略：加密： 对静态和传输中的敏感数据进行加密。散列： 使用强散列算法对密码和其他敏感数据进行散列。数据屏蔽： 在日志和其他非生产环境中屏蔽敏感数据。安全的 API 通信：HTTPS： 始终使用 HTTPS 进行 API 通信。API 速率限制： 实现 API 速率限制以防止滥用。身份验证和授权： 对所有 API 端点要求身份验证和授权。",{"id":1900,"title":1901,"titles":1902,"content":1903,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_5-测试方法","5. 测试方法：",[249],"单元测试：测试单个组件： 孤立地测试单个组件。模拟依赖项： 模拟外部依赖项以在测试期间隔离组件。验证组件行为： 验证组件正确渲染并按预期行为。集成测试：测试组件交互： 测试组件之间的交互。测试数据流： 测试组件和 stores 之间的数据流。测试 API 集成： 测试与外部 API 的集成。端到端测试：模拟用户交互： 模拟用户交互以测试应用程序的功能。测试整个应用程序流程： 从头到尾测试整个应用程序流程。使用浏览器自动化工具： 使用 Cypress 或 Playwright 等浏览器自动化工具。测试组织：按功能组织测试： 按功能或特性组织测试。使用描述性测试名称： 使用描述性测试名称来清楚地说明每个测试正在测试什么。保持测试隔离： 保持测试彼此隔离以避免干扰。模拟和存根：使用模拟对象： 使用模拟对象在测试期间替换外部依赖项。使用存根： 使用存根用简化版本替换复杂函数。避免过度模拟： 避免模拟太多代码，因为这会使测试效果降低。",{"id":1905,"title":1906,"titles":1907,"content":1908,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_6-常见陷阱和注意事项","6. 常见陷阱和注意事项：",[249],"常见错误：错误的 this 上下文： 注意 Vue 组件中的 this 上下文，使用箭头函数或 bind 来维护正确的上下文。异步数据处理： 使用 async\u002Fawait 或 Promises 正确处理异步数据加载。忘记取消订阅： 在组件卸载时取消订阅事件监听器和定时器以防止内存泄漏。过度使用 forceUpdate： 除非绝对必要，否则避免使用 forceUpdate，因为它会对性能产生负面影响。边缘情况：服务端渲染 (SSR)： 了解客户端和服务端渲染之间的差异。浏览器兼容性： 在不同浏览器中测试应用程序以确保兼容性。可访问性： 在设计和开发应用程序时考虑可访问性。版本特定问题：Nuxt 2 vs Nuxt 3： 了解 Nuxt 2 和 Nuxt 3 之间的差异。Vue 2 vs Vue 3： 了解 Vue 2 和 Vue 3 之间的差异。依赖项更新： 仔细检查依赖项更新是否存在潜在的破坏性更改。兼容性问题：浏览器支持： 确保与目标浏览器兼容。设备兼容性： 在不同设备上测试应用程序。操作系统兼容性： 确保与目标操作系统兼容。调试策略：使用浏览器开发者工具： 使用浏览器开发者工具检查应用程序的状态和网络活动。使用 Vue Devtools： 使用 Vue Devtools 检查 Vue 组件和数据。使用日志记录： 使用日志记录来跟踪应用程序的行为。",{"id":1910,"title":1911,"titles":1912,"content":1913,"level":340},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_7-工具和环境","7. 工具和环境：",[249],"推荐的开发工具：VS Code： Visual Studio Code 是一个流行的代码编辑器，具有出色的 Vue.js 支持。Vue Devtools： Vue Devtools 是一个浏览器扩展，为 Vue.js 应用程序提供调试工具。ESLint： ESLint 是一个强制执行编码标准的代码检查器。Prettier： Prettier 是一个自动格式化代码的代码格式化器。构建配置：nuxt.config.js 或 nuxt.config.ts： 在 nuxt.config.js 或 nuxt.config.ts 中配置应用程序的构建设置。Webpack： Nuxt 使用 Webpack 来打包应用程序。Vite： Nuxt 3 默认使用 Vite 来打包应用程序，提供更快的构建和开发时间。代码检查和格式化：ESLint： 使用 ESLint 强制执行编码标准。Prettier： 使用 Prettier 自动格式化代码。Husky： 使用 Husky 在提交前运行代码检查器和格式化器。部署最佳实践：服务端渲染 (SSR)： 将应用程序部署到支持 SSR 的服务器。静态站点生成 (SSG)： 为内容丰富的应用程序生成静态站点。CDN： 使用 CDN 交付静态资源。CI\u002FCD 集成：持续集成 (CI)： 使用 Jenkins、GitLab CI 或 GitHub Actions 等 CI 工具自动化构建和测试过程。持续部署 (CD)： 使用 CD 工具自动化部署过程。 通过遵循这些最佳实践，您可以构建强健、可维护且可扩展的 Nuxt.js 应用程序。",{"id":254,"title":253,"titles":1915,"content":1916,"level":329},[],"在云服务器上配置Swap分区",{"id":1918,"title":1919,"titles":1920,"content":1921,"level":340},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_1-swap-分区简介","1. Swap 分区简介",[253],"Swap（交换分区）是 Linux 系统用来扩展内存的一种机制。当物理内存（RAM）耗尽时，操作系统会将部分不活跃的内存页（inactive memory）移至 Swap 分区，避免 OOM（Out Of Memory） 错误导致的服务崩溃。",{"id":1923,"title":1924,"titles":1925,"content":1926,"level":346},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#swap-分区的适用场景","Swap 分区的适用场景",[253,1919],"✅ 内存不足时：Swap 可使系统暂存部分数据，防止进程被强制终止\n✅ 突发高负载时：避免系统因短时内存不足而崩溃\n❌ SSD\u002F高性能盘场景：频繁 Swap 会导致 I\u002FO 瓶颈，影响性能\n❌ 数据库\u002F高性能应用：Swap 会降低内存访问速度，建议直接增加物理内存",{"id":1928,"title":1929,"titles":1930,"content":1931,"level":340},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_2-查看当前-swap-配置","2. 查看当前 Swap 配置",[253],"**检查当前是否已启用 Swap：** swapon --show - **无输出**：表示未配置 Swap 分区\n- **有输出**：显示已启用的 Swap 设备及其大小",{"id":1933,"title":1934,"titles":1935,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_3-配置-swap-分区","3. 配置 Swap 分区",[253],{"id":1937,"title":1938,"titles":1939,"content":1940,"level":346},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_1创建-swap-文件推荐","（1）创建 Swap 文件（推荐）",[253,1934],"Swap 可以基于 分区 或 文件，推荐使用文件方式（更灵活）。 # 创建一个 1GB 的 Swap 文件（可按需调整大小）\nsudo dd if=\u002Fdev\u002Fzero of=\u002Fswapfile bs=1M count=1024\n\n# 确保该文件只能由 root 访问\nsudo chmod 600 \u002Fswapfile\n\n# 将文件转换为 Swap 格式\nsudo mkswap \u002Fswapfile ⚠️ 注意：如果 mkswap 报错 swap area needs to be at least 40 KiB，说明文件过小，需调整 bs=1M count=1024（1GB）。生产环境建议 Swap 大小 = 1~2 倍物理内存（如 4GB 内存可配 4~8GB Swap）。",{"id":1942,"title":1943,"titles":1944,"content":1945,"level":346},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_2启用-swap-分区","（2）启用 Swap 分区",[253,1934],"sudo swapon \u002Fswapfile 验证是否生效： free -h  # 查看 Swap 使用情况",{"id":1947,"title":1948,"titles":1949,"content":1950,"level":346},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_3设置开机自动挂载","（3）设置开机自动挂载",[253,1934],"在 \u002Fetc\u002Ffstab 中追加配置： echo '\u002Fswapfile none swap sw 0 0' | sudo tee -a \u002Fetc\u002Ffstab 验证配置： cat \u002Fetc\u002Ffstab | grep swap",{"id":1952,"title":1953,"titles":1954,"content":1955,"level":340},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_4-调整内存管理策略可选","4. 调整内存管理策略（可选）",[253],"默认情况下，Linux 倾向于使用物理内存而非 Swap。\n若希望 **减少 Swap 使用**（避免频繁 I\u002FO），可调整 `vm.swappiness`（推荐值：10~60）： # 查看当前值（默认60）\ncat \u002Fproc\u002Fsys\u002Fvm\u002Fswappiness\n\n# 临时调整\nsudo sysctl vm.swappiness=10\n\n# 永久生效\necho \"vm.swappiness=10\" >> \u002Fetc\u002Fsysctl.conf > **参数说明**：\n> - `0`：尽量不使用 Swap（可能导致 OOM）\n> - `10`：低内存时少量使用\n> - `60`：默认值",{"id":1957,"title":1958,"titles":1959,"content":1960,"level":340},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_5-关闭-swap如需","5. 关闭 Swap（如需）",[253],"swapoff \u002Fswapfile  # 停止 Swap\nrm -f \u002Fswapfile    # 删除 Swap 文件\nsed -i '\u002Fswapfile\u002Fd' \u002Fetc\u002Ffstab  # 移除 fstab 中的配置",{"id":1962,"title":1963,"titles":1964,"content":1965,"level":340},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_6-云服务器ecs注意事项","6. 云服务器（ECS）注意事项",[253],"- **普通云盘**：不建议用 Swap，因其 I\u002FO 性能较差，易引发性能问题\n- **SSD\u002F高效云盘**：可适当启用 Swap，但要避免频繁交换\n- **最优方案**：**升级实例规格**，直接增加物理内存 🎯 总结 Swap 是临时方案，长期内存不足仍需扩容物理内存监控 Swap 使用，避免频繁触发磁盘 I\u002FO高性能应用建议禁用 Swap（如 Redis、MySQL） html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}",{"id":259,"title":258,"titles":1967,"content":1968,"level":329},[],"AI 扩写",{"id":1970,"title":1971,"titles":1972,"content":1973,"level":340},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#最初的技术选型","最初的技术选型",[258],"去年春节前开发AI平台时，我在后端服务的选择上——Github社区有两个优秀的开源项目：Supabase和Appwrite。 当时的决策因素： 社区热度：Supabase的Star数量明显更多UI设计：后台管理界面的配色和布局更符合我的审美命名偏好：单纯喜欢\"Supabase\"这个名字的科技感商业化支持：国内有memfire cloud这样的二开商业项目退出策略：不想自托管时可以有现成的过渡方案",{"id":1975,"title":1976,"titles":1977,"content":1978,"level":340},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#使用后的痛点","使用后的痛点",[258],"随着项目的深入开发，我逐渐感受到了一些问题： 系统太重：Supabase的\"全家桶\"式设计带来了不必要的复杂度功能过剩：很多内置功能在项目中根本没有用到维护成本：自托管的运维负担超出预期",{"id":1980,"title":1981,"titles":1982,"content":1983,"level":340},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#appwrite","Appwrite",[258],"上个月Appwrite发布的Sites功能让我眼前一亮——这个对标Vercel的新功能完全改变了我对它的认知。经过重新评估： ✅ 更轻量的架构\n✅ 恰到好处的功能集\n✅ 持续创新的能力",{"id":1985,"title":1986,"titles":1987,"content":1988,"level":340},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#迁移计划","迁移计划",[258],"现在已经着手准备后端迁移： 收集双方的SDK文档制定cursor-rules转换规则利用AI辅助代码转换 嘿，这告诉我们：\n技术选型时除了看表面参数，更应该深入评估： 项目的实际需求长期维护成本技术栈的发展潜力 这次迁移虽然会带来短期工作量，但从长期来看绝对是值得的！",{"id":264,"title":263,"titles":1990,"content":263,"level":329},[],{"id":1992,"title":1993,"titles":1994,"content":1995,"level":340},"\u002Fblog\u002F技术栈\u002Fappwrite-项目资源占用情况#cpu占用不高内存经过统计","CPU占用不高，内存经过统计：",[263],"Debian12  Docker-compose部署AppWrite 1.7.3版\n内存占用1.72G 根据 docker-compose 文件中的所有 Appwrite 相关容器，内存占用情况如下：\n\n### 主要服务容器内存占用：\n\n- appwrite (主服务): 345.5 MiB\n\n- appwrite-realtime: 89.17 MiB\n\n- appwrite-browser: 196.9 MiB\n\n- appwrite-assistant: 98.13 MiB\n\n- appwrite-mariadb: 125.7 MiB\n\n- appwrite-redis-insight-1: 118.2 MiB\n\n- appwrite-graphql-explorer: 53.55 MiB\n\n### Worker 和 Task 容器内存占用：\n\n- 各种 worker 容器: 30-46 MiB 每个\n\n- 各种 task 容器: 33-46 MiB 每个\n\n- 总计约 20+ 个 worker\u002Ftask 容器\n\n### 辅助服务容器内存占用：\n\n- appwrite-redis: 10.66 MiB\n\n- appwrite-console: 6.188 MiB\n\n- appwrite-adminer: 8.625 MiB\n\n- appwrite-mailcatcher: 21.36 MiB\n\n- appwrite-requestcatcher: 20.09 MiB\n\n- appwrite-traefik: 48.15 MiB\n\n## 最终统计结果：\n\nAppwrite 所有容器总内存占用：1,761.91 MiB ≈ 1.72 GiB\n\n这个数字包含了：\n\n- Appwrite 核心服务\n\n- 所有 worker 和 task 进程\n\n- 数据库 (MariaDB)\n\n- 缓存 (Redis)\n\n- 反向代理 (Traefik)\n\n- 各种辅助工具和可视化界面\n\n所以 Appwrite 项目精确占用约 1.72 GB 内存。",{"id":269,"title":268,"titles":1997,"content":1998,"level":329},[],"在Docker里配置hosts",{"id":2000,"title":2001,"titles":2002,"content":2003,"level":329},"\u002Fblog\u002F技术栈\u002Fdocker-里配置hosts#一启动容器时加上add-host参数","一：启动容器时加上“—add-host”参数",[],"docker run\n  --add-host='lijue.net:127.0.0.1'\n  --add-host='www.lijue.net:192.168.1.1'\n  --name hello-docker\n  -it reg.lijue.net\u002Fpublic\u002Fhello-docker:latest",{"id":2005,"title":2006,"titles":2007,"content":2008,"level":329},"\u002Fblog\u002F技术栈\u002Fdocker-里配置hosts#二通过docker-compose配置extra_hosts属性","二：通过docker-compose配置extra_hosts属性",[],"1. `version: '3'`\n2. `services:`\n3. `web:`\n4. `image: hello-docker:latest`\n5. `extra_hosts:`\n6. `- 'www.lijue.net:192.168.1.1'`\n7. `- 'lijue.net:127.0.0.1'`",{"id":274,"title":273,"titles":2010,"content":2011,"level":329},[],"如何在MySQL中忽略表名的大小写 在 MySQL 中，默认情况下表名是大小写敏感的。但是你可以通过设置来实现忽略表名的大小写。有两种方法可以做到这一点： 方法一：修改配置文件\n编辑 MySQL 的配置文件 my.cnf 或 my.ini（具体文件名取决于操作系统和 MySQL 版本），在 mysqld 部分添加以下行： lower_case_table_names = 1 然后保存并重新启动 MySQL 服务。 设置为 0：表名大小写敏感（默认）。\n设置为 1：将表名存储为小写，并在比较表名时不区分大小写。\n设置为 2：将表名存储为小写，并在比较表名时区分大小写（仅在非 Windows 环境下可用）。\n方法二：动态设置\n如果无法修改配置文件，你可以在 MySQL 启动后，使用以下命令动态设置： SET GLOBAL lower_case_table_names = 1; 请注意，这种方式在 MySQL 重启后会失效，除非再次设置。 在任何情况下，修改这个设置都需要谨慎考虑，因为它可能会影响现有的数据库和应用程序。在进行此类更改之前，请务必备份数据库，并确保了解潜在的影响和风险。",{"id":279,"title":278,"titles":2013,"content":2014,"level":329},[],"在Debian 12 中安装nodejs",{"id":2016,"title":2017,"titles":2018,"content":2019,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法-1使用-debian-官方仓库简单但不一定最新","方法 1：使用 Debian 官方仓库（简单但不一定最新）",[278],"# 更新软件包列表\nsudo apt update\n\n# 安装 Node.js 和 npm\nsudo apt install -y nodejs npm\n\n# 验证安装\nnode -v\nnpm -v 特点： 安装最简单快捷版本可能较旧（Debian 12 默认提供 Node.js 18.x）适合不需要最新版本的用户",{"id":2021,"title":2022,"titles":2023,"content":2024,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法2使用volta安装","方法2：使用volta安装",[278],"# On most Unix systems including macOS, you can install with a single command:\ncurl https:\u002F\u002Fget.volta.sh | bash\n\n# Download and install Node.js:\nvolta install node@22\n\n# Verify the Node.js version:\nnode -v # Should print \"v22.16.0\".\n\n# Verify npm version:\nnpm -v # Should print \"10.9.2\".\n\n# Download and install pnpm:\nvolta install pnpm\n\n# Verify pnpm version:\npnpm -v # Should print \"10.12.1\".",{"id":2026,"title":2027,"titles":2028,"content":2029,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法-3手动下载二进制包灵活选择版本","方法 3：手动下载二进制包（灵活选择版本）",[278],"官网 # 1. 下载指定版本（示例为 v20.x）\nwget https:\u002F\u002Fnodejs.org\u002Fdist\u002Fv22.16.0\u002Fnode-v22.16.0-linux-x64.tar.xz\n# 创建目录\nsudo mkdir -p \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\n# 解压\nsudo tar -xJf node-v22.16.0-linux-x64.tar.xz -C \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\n\n# 创建对应的软链接\n# 创建 node 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fnode \u002Fusr\u002Fbin\u002Fnode\n# 创建 npm 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fnpm \u002Fusr\u002Fbin\u002Fnpm\n# 创建 npx 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fnpx \u002Fusr\u002Fbin\u002Fnpx\n\n# 在~\u002F.bashrc文件末尾中加入nodejs到PATH环境变量中\nexport PATH=\u002Fusr\u002Flocal\u002Flib\u002Fnode-v22.16.0-linux-x64\u002Fbin:$PATH\n# 重载 ~\u002F.profile\nsource ~\u002F.bashrc\n\n# 4. 验证安装\nnode -v\nnpm -v 特点： 可自由选择任何版本不依赖系统仓库需要手动更新版本",{"id":2031,"title":2032,"titles":2033,"content":2034,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-pnpmyarnbuncpnm","安装 pnpm、yarn、bun、cpnm",[278],"如果没有配置镜像加速，先配置加速： npm config set registry https:\u002F\u002Fregistry.npmmirror.com",{"id":2036,"title":2037,"titles":2038,"content":2039,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-cnpm","安装 cnpm",[278,2032],"# 全局安装\nsudo npm install -g cnpm --registry=https:\u002F\u002Fregistry.npmmirror.com\n# 查看安装情况\nls -la \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\n# 创建 cnpm 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fcnpm \u002Fusr\u002Fbin\u002Fcnpm\n# 查看版本\ncnpm -v",{"id":2041,"title":2042,"titles":2043,"content":2044,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-pnpm","安装 pnpm",[278,2032],"# 全局安装\nsudo npm install -g pnpm\n# 查看安装情况\nls -la \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\n# 创建 pnpm 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fnpx \u002Fusr\u002Fbin\u002Fpnpm\n# 查看版本\npnpm -v",{"id":2046,"title":2047,"titles":2048,"content":2049,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-yarn","安装 yarn",[278,2032],"# 全局安装\nsudo npm install -g yarn\n# 查看\nls -la \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\n# 创建 yarn 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fnpx \u002Fusr\u002Fbin\u002Fyarn\n# 查看版本\nyarn -v",{"id":2051,"title":2052,"titles":2053,"content":2054,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-bun","安装 bun",[278,2032],"Linux用户-安装Bun需要解压缩包。使用 `sudo apt install unzip` 安装解压包。强烈建议使用5.6或更高版本的内核，但最低版本为5.1。使用 `uname -r` 检查内核版本。 # 全局安装\nsudo cnpm install -g bun\n# 查看\nls -la \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\n# 创建 bun 软链\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v22.16.0-linux-x64\u002Fbin\u002Fbun \u002Fusr\u002Fbin\u002Fbun\n# 查看版本\nbun -v",{"id":2056,"title":2057,"titles":2058,"content":2059,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#切换版本","切换版本",[278,2032],"如需切换版本，例如 v18.20.7，可以删除现有的软链接： sudo rm \u002Fusr\u002Fbin\u002Fnode\nsudo rm \u002Fusr\u002Fbin\u002Fnpm\nsudo rm \u002Fusr\u002Fbin\u002Fnpx\nsudo rm \u002Fusr\u002Fbin\u002Fpnpm\nsudo rm \u002Fusr\u002Fbin\u002Fyarn\nsudo rm \u002Fusr\u002Fbin\u002Fbun\nsudo rm \u002Fusr\u002Fbin\u002Fcnpm 创建新的软链接： sudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v18.20.7-linux-x64\u002Fbin\u002Fnode \u002Fusr\u002Fbin\u002Fnode\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v18.20.7-linux-x64\u002Fbin\u002Fnpm \u002Fusr\u002Fbin\u002Fnpm\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v18.20.7-linux-x64\u002Fbin\u002Fnpx \u002Fusr\u002Fbin\u002Fnpx\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v18.20.7-linux-x64\u002Fbin\u002Fpnpm \u002Fusr\u002Fbin\u002Fpnpm\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v18.20.7-linux-x64\u002Fbin\u002Fbun  \u002Fusr\u002Fbin\u002Fbun\nsudo ln -s \u002Fusr\u002Flocal\u002Flib\u002Fnodejs\u002Fnode-v18.20.7-linux-x64\u002Fbin\u002Fcnpm \u002Fusr\u002Fbin\u002Fcnpm 验证安装： node -v\nnpm -v\nnpx -v\npnpm -v\nyarn -v 查看当前配置： npm config list --json",{"id":2061,"title":2062,"titles":2063,"content":339,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法-3fnm方式安装不推荐","方法 3：fnm方式安装(不推荐)",[278,2032],{"id":2065,"title":2066,"titles":2067,"content":2068,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#npm","npm",[278,2032,2062],"# Download and install fnm:\ncurl -o- https:\u002F\u002Ffnm.vercel.app\u002Finstall | bash\n\n# Download and install Node.js:\nfnm install 22\n\n# Verify the Node.js version:\nnode -v # Should print \"v22.16.0\".\n\n# Verify npm version:\nnpm -v # Should print \"10.9.2\".",{"id":2070,"title":2071,"titles":2072,"content":2073,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#yarn","yarn",[278,2032,2062],"# Download and install Yarn:\ncorepack enable yarn\n# Verify Yarn version:\nyarn -v",{"id":2075,"title":2076,"titles":2077,"content":2078,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#pnpm","pnpm",[278,2032,2062],"# Download and install pnpm:\ncorepack enable pnpm\n# Verify pnpm version:\npnpm -v",{"id":2080,"title":2081,"titles":2082,"content":2083,"level":522},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#nodejs包镜像加速","nodejs包镜像加速",[278,2032,2062],"npm config set registry https:\u002F\u002Fregistry.npmmirror.com",{"id":2085,"title":2086,"titles":2087,"content":2088,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#对比-npmyarnpnpm","对比 npm、Yarn、pnpm",[278,2032],"特性npmYarn (v1\u002FYarn Classic)Yarn Berry (v2+)pnpm发布时间2010 (Node.js 自带)2016 (Facebook 推出)2020 (Yarn 2.0 重大更新)2017 (独立发展)安装速度⏳ 慢（线性安装）🚀 较快（并行下载）🚀 快（改进缓存）⚡ 极快（硬链接 + 符号链接）依赖管理node_modules 嵌套结构node_modules 扁平化Plug’n’Play (PnP) 无 node_modules硬链接 + 全局存储（节省空间）缓存机制有缓存，但效率一般缓存优化较好增量缓存 + 零安装（Zero-Installs）全局存储，依赖可复用锁文件package-lock.jsonyarn.lockyarn.lock + .pnp.cjspnpm-lock.yaml安全性🔒 一般（依赖可能被篡改）🔒 较好（校验严格）🔒 最好（离线模式 + 校验）🔒 最好（内容可寻址存储）Monorepo 支持有限（需配合 Lerna）支持 Workspaces原生 Workspaces + PnP原生 Workspaces + 高效链接磁盘占用高（重复依赖多）中（扁平化减少重复）低（PnP 无 node_modules）极低（全局存储 + 硬链接）命令行体验基础功能更友好（进度条、交互提示）现代化（插件系统）简洁高效兼容性100% 兼容 Node.js兼容 npm 生态需适配 PnP（部分库不兼容）兼容 npm\u002FYarn 生态推荐场景简单项目 \u002F Node.js 默认旧项目迁移 \u002F 稳定需求大型 Monorepo \u002F 严格依赖控制高效开发 \u002F 节省磁盘空间 html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s006x, html code.shiki .s006x{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sjot_, html code.shiki .sjot_{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}",{"id":283,"title":282,"titles":2090,"content":2091,"level":329},[],"基于Dify和Supabase的AI问答机器人 🔒 文档说明：本文针对新部署的 Debian 12 云服务器，提供必做的安全加固与性能优化配置清单。适用于运维人员及Linux初学者，可有效防御 90% 的常见攻击向量。",{"id":2093,"title":2094,"titles":2095,"content":2096,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#技术tag","技术TAG",[282],"#Debian12安全设置 #Linux加固 #服务器优化 #云服务器安全 #SSH加固",{"id":2098,"title":2099,"titles":2100,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#一初始登录与用户安全","一、初始登录与用户安全",[282],{"id":2102,"title":2103,"titles":2104,"content":2105,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_1-创建替代root的用户","1. 创建替代root的用户",[282,2099],"# 创建管理员用户（示例用户名为 sysadmin）\nadduser sysadmin\nusermod -aG sudo sysadmin\n\n# 验证新用户sudo权限\nsu - sysadmin\nsudo whoami  # 应返回root",{"id":2107,"title":2108,"titles":2109,"content":2110,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_2-禁用root-ssh登录","2. 禁用root SSH登录",[282,2099],"sudo nano \u002Fetc\u002Fssh\u002Fsshd_config\n\n# 修改以下配置：\nPermitRootLogin no\nPasswordAuthentication no  # 强制使用密钥登录 > ⚠️ **关键提示**：\n> 1. 操作前必须配置好SSH密钥，否则会锁定服务器\n> 2. 执行后重载服务：`sudo systemctl reload ssh`",{"id":2112,"title":2113,"titles":2114,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#二防火墙配置","二、防火墙配置",[282],{"id":2116,"title":2117,"titles":2118,"content":2119,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#ufw基础设置","UFW基础设置",[282,2113],"# 安装UFW\nsudo apt install ufw -y\n\n# 默认策略\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\n\n# 允许端口（按需开放）\nsudo ufw allow 22\u002Ftcp   # SSH\nsudo ufw allow 80\u002Ftcp   # HTTP\nsudo ufw allow 443\u002Ftcp  # HTTPS\n\n# 启用防火墙\nsudo ufw enable\nsudo ufw status verbose  # 验证规则",{"id":2121,"title":2122,"titles":2123,"content":2124,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#端口安全技巧","端口安全技巧",[282,2113],"# 更改SSH端口（可选）\nsudo nano \u002Fetc\u002Fssh\u002Fsshd_config\n# 修改: Port 2222  # 改为非标准端口\n\n# 仅允许特定IP访问SSH\nsudo ufw allow proto tcp from 192.168.1.100 to any port 22",{"id":2126,"title":2127,"titles":2128,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#三系统更新与自动维护","三、系统更新与自动维护",[282],{"id":2130,"title":2131,"titles":2132,"content":2133,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#初始全面更新","初始全面更新",[282,2127],"sudo apt update && sudo apt full-upgrade -y\nsudo apt autoremove && sudo apt clean",{"id":2135,"title":2136,"titles":2137,"content":2138,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#配置自动安全更新","配置自动安全更新",[282,2127],"sudo apt install unattended-upgrades apt-listchanges\n\n# 启用配置\nsudo dpkg-reconfigure -plow unattended-upgrades\n\n# 验证状态：\nsudo systemctl status unattended-upgrades > 🔧 **配置文件优化** (`\u002Fetc\u002Fapt\u002Fapt.conf.d\u002F50unattended-upgrades`)：\n> ```json\n> Unattended-Upgrade::Remove-Unused-Dependencies \"true\";\n> Unattended-Upgrade::Automatic-Reboot \"true\";\n> Unattended-Upgrade::Automatic-Reboot-Time \"03:00\";\n> ```",{"id":2140,"title":2141,"titles":2142,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#四安全加固关键措施","四、安全加固关键措施",[282],{"id":2144,"title":2145,"titles":2146,"content":2147,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_1-启用基础入侵防护","1. 启用基础入侵防护",[282,2141],"# 安装fail2ban\nsudo apt install fail2ban -y\n\n# 配置SSH防护\nsudo cp \u002Fetc\u002Ffail2ban\u002Fjail.conf \u002Fetc\u002Ffail2ban\u002Fjail.local\nsudo nano \u002Fetc\u002Ffail2ban\u002Fjail.local [sshd]\nenabled = true\nmaxretry = 3\nbantime = 1h",{"id":2149,"title":2150,"titles":2151,"content":2152,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_2-内核安全加固","2. 内核安全加固",[282,2141],"# 安装安全组件\nsudo apt install linux-hardened apparmor apparmor-utils -y\n\n# 启用AppArmor\nsudo apparmor_status\nsudo aa-enforce \u002Fetc\u002Fapparmor.d\u002F*  # 强制所有配置",{"id":2154,"title":2155,"titles":2156,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#五性能优化设置","五、性能优化设置",[282],{"id":2158,"title":2159,"titles":2160,"content":2161,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_1-交换空间优化","1. 交换空间优化",[282,2155],"# 调整Swappiness值（推荐10-30）\necho 'vm.swappiness=10' | sudo tee -a \u002Fetc\u002Fsysctl.conf\n\n# 启用Zswap压缩缓存（内存\u003C8GB时尤其有效）\necho 'zswap.enabled=1' | sudo tee -a \u002Fetc\u002Fsysctl.conf",{"id":2163,"title":2164,"titles":2165,"content":2166,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_2-文件描述符与进程优化","2. 文件描述符与进程优化",[282,2155],"# 提高系统限制\nsudo nano \u002Fetc\u002Fsecurity\u002Flimits.conf * soft nofile 65535\n* hard nofile 65535\n* soft nproc 65535\n* hard nproc 65535",{"id":2168,"title":2169,"titles":2170,"content":2171,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_3-日志管理防止占满磁盘","3. 日志管理（防止占满磁盘）",[282,2155],"# 安装日志轮询工具\nsudo apt install logrotate -y\n\n# 手动压缩现有大日志\nsudo find \u002Fvar\u002Flog -size +100M -exec truncate -s 10M {} \\;",{"id":2173,"title":2174,"titles":2175,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#六审计与监控","六、审计与监控",[282],{"id":2177,"title":2178,"titles":2179,"content":2180,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#安装基础监控组件","安装基础监控组件",[282,2174],"sudo apt install sysstat htop net-tools tree ncdu\n\n# 启用sysstat数据收集\nsudo sed -i 's\u002Ffalse\u002Ftrue\u002Fg' \u002Fetc\u002Fdefault\u002Fsysstat\nsudo systemctl enable --now sysstat",{"id":2182,"title":2183,"titles":2184,"content":2185,"level":346},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#关键审计命令","关键审计命令",[282,2174],"# 检查异常登录：\nsudo lastb -a | head -20\n\n# 检查SUID文件：\nsudo find \u002F -perm \u002F4000 -ls\n\n# 列出开放端口：\nsudo ss -tunlp 📊 推荐可视化工具：Cockpit (轻量级Web面板)：sudo apt install cockpitNetdata (实时监控)：bash \u003C(curl -Ss https:\u002F\u002Fmy-netdata.io\u002Fkickstart.sh) **最终安全检查清单**： echo \"[+] SSH 配置\"\nsudo sshd -t && grep -E \"PermitRoot|PasswordAuth\" \u002Fetc\u002Fssh\u002Fsshd_config\n\necho \"[+] 防火墙状态\"\nsudo ufw status\n\necho \"[]+ 更新状态\"\nsudo unattended-upgrades --dry-run ![服务器安全架构](https:\u002F\u002Fexample.com\u002Fimg\u002Fdebian-security-layers.png)\n*(安全层示意图：网络防火墙→系统加固→应用防护)*\n\n> 🔐 **维护建议**：\n> 1. 每月执行：`sudo lynis audit system` (安装：`apt install lynis`)\n> 2. 每季度更新所有SSL证书，即使未到期\n> 3. 使用自动配置管理工具（如Ansible）维护服务器状态\n\n**文档版本**: v1.2\n**测试环境**: Debian 12.5 (Kernel 6.1.x) 云服务器\n**最后更新**: 2024-06-15 html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .s_LmA, html code.shiki .s_LmA{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s7wrB, html code.shiki .s7wrB{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#D20F39;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#F38BA8;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sw7OJ, html code.shiki .sw7OJ{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#EA76CB;--shiki-code-theme-catppuccin-dark:#F5C2E7;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}",{"id":288,"title":287,"titles":2187,"content":2188,"level":329},[],"在浏览器中安装 VS Code 🔒 文档说明：本文针对新部署的 Debian 12 云服务器，提供必做的安全加固与性能优化配置清单。适用于运维人员及Linux初学者，可有效防御 90% 的常见攻击向量。",{"id":2190,"title":2094,"titles":2191,"content":2096,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#技术tag",[287],{"id":2193,"title":2099,"titles":2194,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#一初始登录与用户安全",[287],{"id":2196,"title":2103,"titles":2197,"content":2105,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_1-创建替代root的用户",[287,2099],{"id":2199,"title":2108,"titles":2200,"content":2110,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_2-禁用root-ssh登录",[287,2099],{"id":2202,"title":2113,"titles":2203,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#二防火墙配置",[287],{"id":2205,"title":2117,"titles":2206,"content":2119,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#ufw基础设置",[287,2113],{"id":2208,"title":2122,"titles":2209,"content":2124,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#端口安全技巧",[287,2113],{"id":2211,"title":2127,"titles":2212,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#三系统更新与自动维护",[287],{"id":2214,"title":2131,"titles":2215,"content":2133,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#初始全面更新",[287,2127],{"id":2217,"title":2136,"titles":2218,"content":2138,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#配置自动安全更新",[287,2127],{"id":2220,"title":2141,"titles":2221,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#四安全加固关键措施",[287],{"id":2223,"title":2145,"titles":2224,"content":2147,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_1-启用基础入侵防护",[287,2141],{"id":2226,"title":2150,"titles":2227,"content":2152,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_2-内核安全加固",[287,2141],{"id":2229,"title":2155,"titles":2230,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#五性能优化设置",[287],{"id":2232,"title":2159,"titles":2233,"content":2161,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_1-交换空间优化",[287,2155],{"id":2235,"title":2164,"titles":2236,"content":2166,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_2-文件描述符与进程优化",[287,2155],{"id":2238,"title":2169,"titles":2239,"content":2171,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_3-日志管理防止占满磁盘",[287,2155],{"id":2241,"title":2174,"titles":2242,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#六审计与监控",[287],{"id":2244,"title":2178,"titles":2245,"content":2180,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#安装基础监控组件",[287,2174],{"id":2247,"title":2183,"titles":2248,"content":2185,"level":346},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#关键审计命令",[287,2174],{"id":293,"title":292,"titles":2250,"content":2251,"level":329},[],"Debian 12 云服务器初始安全设置与优化指南 🔒 文档说明：本文针对新部署的 Debian 12 云服务器，提供必做的安全加固与性能优化配置清单。适用于运维人员及Linux初学者，可有效防御 90% 的常见攻击向量。",{"id":2253,"title":2094,"titles":2254,"content":2096,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#技术tag",[292],{"id":2256,"title":2099,"titles":2257,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#一初始登录与用户安全",[292],{"id":2259,"title":2103,"titles":2260,"content":2105,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_1-创建替代root的用户",[292,2099],{"id":2262,"title":2108,"titles":2263,"content":2110,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_2-禁用root-ssh登录",[292,2099],{"id":2265,"title":2113,"titles":2266,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#二防火墙配置",[292],{"id":2268,"title":2117,"titles":2269,"content":2119,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#ufw基础设置",[292,2113],{"id":2271,"title":2122,"titles":2272,"content":2124,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#端口安全技巧",[292,2113],{"id":2274,"title":2127,"titles":2275,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#三系统更新与自动维护",[292],{"id":2277,"title":2131,"titles":2278,"content":2133,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#初始全面更新",[292,2127],{"id":2280,"title":2136,"titles":2281,"content":2138,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#配置自动安全更新",[292,2127],{"id":2283,"title":2141,"titles":2284,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#四安全加固关键措施",[292],{"id":2286,"title":2145,"titles":2287,"content":2147,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_1-启用基础入侵防护",[292,2141],{"id":2289,"title":2150,"titles":2290,"content":2152,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_2-内核安全加固",[292,2141],{"id":2292,"title":2155,"titles":2293,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#五性能优化设置",[292],{"id":2295,"title":2159,"titles":2296,"content":2161,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_1-交换空间优化",[292,2155],{"id":2298,"title":2164,"titles":2299,"content":2166,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_2-文件描述符与进程优化",[292,2155],{"id":2301,"title":2169,"titles":2302,"content":2171,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_3-日志管理防止占满磁盘",[292,2155],{"id":2304,"title":2174,"titles":2305,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#六审计与监控",[292],{"id":2307,"title":2178,"titles":2308,"content":2180,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#安装基础监控组件",[292,2174],{"id":2310,"title":2183,"titles":2311,"content":2185,"level":346},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#关键审计命令",[292,2174],{"id":298,"title":297,"titles":2313,"content":2314,"level":329},[],"Iperf3 万兆网络打流测试指南 🔍 文档说明: 本文记录基于水星S106E Pro交换机的万兆网络Iperf3性能测试，涵盖设备连接、测试参数配置及结果分析。适用于网络性能测试初学者及运维人员。",{"id":2316,"title":2094,"titles":2317,"content":2318,"level":340},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#技术tag",[297],"#Iperf3 #万兆网络测试 #交换机配置 #AQC113网卡 #网络性能分析",{"id":2320,"title":2321,"titles":2322,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#一测试环境配置","一、测试环境配置",[297],{"id":2324,"title":2325,"titles":2326,"content":2327,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#设备拓扑图","设备拓扑图",[297,2321],"#mermaid-0{font-family:arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-0 .error-icon{fill:#552222;}#mermaid-0 .error-text{fill:#552222;stroke:#552222;}#mermaid-0 .edge-thickness-normal{stroke-width:1px;}#mermaid-0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-0 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-0 .marker{fill:#333333;stroke:#333333;}#mermaid-0 .marker.cross{stroke:#333333;}#mermaid-0 svg{font-family:arial,sans-serif;font-size:16px;}#mermaid-0 p{margin:0;}#mermaid-0 .label{font-family:arial,sans-serif;color:#333;}#mermaid-0 .cluster-label text{fill:#333;}#mermaid-0 .cluster-label span{color:#333;}#mermaid-0 .cluster-label span p{background-color:transparent;}#mermaid-0 .label text,#mermaid-0 span{fill:#333;color:#333;}#mermaid-0 .node rect,#mermaid-0 .node circle,#mermaid-0 .node ellipse,#mermaid-0 .node polygon,#mermaid-0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-0 .rough-node .label text,#mermaid-0 .node .label text,#mermaid-0 .image-shape .label,#mermaid-0 .icon-shape .label{text-anchor:middle;}#mermaid-0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-0 .rough-node .label,#mermaid-0 .node .label,#mermaid-0 .image-shape .label,#mermaid-0 .icon-shape .label{text-align:center;}#mermaid-0 .node.clickable{cursor:pointer;}#mermaid-0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-0 .arrowheadPath{fill:#333333;}#mermaid-0 .edgePath .path{stroke:#333333;stroke-width:1px;}#mermaid-0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-0 .cluster text{fill:#333;}#mermaid-0 .cluster span{color:#333;}#mermaid-0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-0 rect.text{fill:none;stroke-width:0;}#mermaid-0 .icon-shape,#mermaid-0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-0 .icon-shape p,#mermaid-0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-0 .icon-shape .label rect,#mermaid-0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-0 .node .neo-node{stroke:#9370DB;}#mermaid-0 [data-look=\"neo\"].node rect,#mermaid-0 [data-look=\"neo\"].cluster rect,#mermaid-0 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#mermaid-0 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#mermaid-0 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#mermaid-0 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#mermaid-0 :root{--mermaid-font-family:arial,sans-serif;}雷电\u002F万兆电口万兆光口MacBook Air M4水星S106E Pro万兆光口PVE服务器CX4121A网卡",{"id":2329,"title":2330,"titles":2331,"content":2332,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#硬件清单","硬件清单",[297,2321],"设备规格作用主测试端MacBook Air M4 + 雷电万兆网卡(AQC113)Iperf3 Client端交换机水星S106E Pro万兆光\u002F电转换枢纽光转电模块AQR113光转电模块连接交换机万兆光口被测服务端NAS (12500T+Q670) + CX4121A万兆网卡Iperf3 Server端辅助设备超六类网线\u002F光纤跳线(按需)物理链路连接",{"id":2334,"title":2335,"titles":2336,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#二iperf3安装与配置","二、Iperf3安装与配置",[297],{"id":2338,"title":2339,"titles":2340,"content":2341,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#_1-macos端安装client","1. macOS端安装（Client）",[297,2335],"# 通过Homebrew安装iperf3\n    brew install iperf3\n\n# 启动服务端监听（可选本地验证）\n    iperf3 -s -p 5201",{"id":2343,"title":2344,"titles":2345,"content":2346,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#_2-pve服务端安装server","2. PVE服务端安装（Server）",[297,2335],"# Debian系系统安装\n    apt update && apt install iperf3 -y\n\n# 启动服务端后台监听\n    iperf3 -s -D -p 5201 ⚠️ 防火墙注意: 确保5201端口开放\nufw allow 5201\u002Ftcp (Debian\u002FUbuntu)\nfirewall-cmd --add-port=5201\u002Ftcp --permanent (CentOS) ## 三、典型测试场景\n### 场景1：TCP带宽测试（默认参数）\n```bash\n# Client端执行（MacBook）\niperf3 -c \u003CServer_IP> -p 5201 -t 60\n\n# 参数说明：\n# -c : 服务端IP地址\n# -t : 测试持续时间(秒)",{"id":2348,"title":2349,"titles":2350,"content":2351,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#场景2多线程udp压力测试","场景2：多线程UDP压力测试",[297,2335],"iperf3 -c \u003CServer_IP> -p 5201 -u -b 10G -P 4\n\n# 参数说明：\n# -u : 使用UDP协议\n# -b : 指定带宽(10G速率)\n# -P : 并行线程数",{"id":2353,"title":2354,"titles":2355,"content":2356,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#场景3双向流量测试","场景3：双向流量测试",[297,2335],"# 同时测试上行+下行\niperf3 -c \u003CServer_IP> -p 5201 --bidir",{"id":2358,"title":2359,"titles":2360,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#四测试结果分析要点","四、测试结果分析要点",[297],{"id":2362,"title":2363,"titles":2364,"content":2365,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#关键性能指标","关键性能指标",[297,2359],"字段健康值范围异常排查方向Bandwidth>9.5Gbps (万兆场景)网卡协商\u002F模块兼容性Jitter\u003C1ms (UDP测试)交换机缓存\u002F线缆质量Packet Loss0%缓冲区设置\u002FCPU性能TCP Retransmits\u003C0.1%TCP窗口\u002FMTU配置 💡 优化建议：使用-w调整TCP窗口大小（例如-w 8M）尝试--omit N跳过初始N秒不稳定数据添加-J参数获取JSON格式结构化结果",{"id":2367,"title":2368,"titles":2369,"content":339,"level":340},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#五常见问题解决","五、常见问题解决",[297],{"id":2371,"title":2372,"titles":2373,"content":2374,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#问题1协商速率降级至1gbps","❌ 问题1：协商速率降级至1Gbps",[297,2368],"# 检查网卡协商状态（MacOS）\nifconfig enX | grep media\n\n# 解决方案：\n1. 更换光模块\u002FAOC线缆排除物理故障\n2. 检查交换机端口配置（禁用节能模式）",{"id":2376,"title":2377,"titles":2378,"content":2379,"level":346},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#问题2测试中突发丢包","❌ 问题2：测试中突发丢包",[297,2368],"# 动态查看QoS统计（PVE服务器）\nethtool -S enpXX | grep -E 'drop|error'\n\n# 解决方案：\n1. 调整网卡缓冲区：ethtool -G enpXX rx\u002Ftx 4096\n2. 减少并发线程总数（-P参数） 📌 经验总结：水星S106E Pro需关闭\"绿色节能\"功能，避免AQC113因节能策略降速。PVE虚拟机环境建议使用SR-IOV直通网卡，减少虚拟化层开销。 测试文档版本: v1.1\n更新日期: 2023-12-15\n测试工具版本: iperf 3.16 (macOS)\u002Fiperf 3.7 (Linux) html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sCf0g, html code.shiki .sCf0g{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s254i, html code.shiki .s254i{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .scmvv, html code.shiki .scmvv{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#2B5581;--shiki-code-theme-min-dark:#9DB1C5}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .shuEn, html code.shiki .shuEn{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}",{"id":303,"title":302,"titles":2381,"content":2382,"level":329},[],"Grok3 和 Deepseek 的对比",{"id":2384,"title":302,"titles":2385,"content":2386,"level":346},"\u002Fblog\u002F技术栈\u002Fgrok3-and-deepseek#grok3-and-deepseek",[302],"测试了GROK3,简单让做一个HTML小游戏，与R1对比\nGROK3界面处理略好，满足所有要求，无BUG。\nR1界面略有瑕疵，基本满足所有要求，除了有小BUG。 提示词： 题目：编写一个“打地鼠”网页小游戏 需求描述：\n设计一个基于HTML的“打地鼠”（Whack-a-Mole）小游戏，玩家需要在规定时间内点击随机出现的“地鼠”来得分。游戏需要包含以下功能和要求：\n页面布局：\n游戏区域是一个3x3的网格（共9个格子），每个格子是一个方形的“洞”。\n页面顶部显示当前得分（Score）和剩余时间（Time Left）。\n页面底部有一个“开始游戏”（Start Game）的按钮。\n游戏逻辑：\n点击“开始游戏”按钮后，游戏开始，初始时间为30秒。\n每隔一段随机时间（0.5秒到1.5秒之间），一个“地鼠”会随机出现在某个格子中，持续显示1秒后消失。\n玩家点击出现的“地鼠”可以得分，每只地鼠加1分。\n如果点击空白格子，不扣分也不加分。\n游戏时间结束后，停止地鼠出现，并弹窗显示最终得分，同时提供“再玩一次”的选项。\n样式要求：\n游戏区域居中，背景为浅灰色。\n每个格子为100x100像素，带有圆角边框，初始为土黄色（#d2b48c）。\n地鼠出现时，格子背景变为绿色（#90ee90），并显示文字“鼠！”（字体大小30px，居中）。\n得分和时间使用清晰的大字体（建议20px以上），颜色为深蓝色。\n“开始游戏”按钮为蓝色背景，白色文字，悬停时变亮。\n技术要求：\n使用纯HTML、CSS和JavaScript实现，不依赖外部库。\n代码注释清晰，说明每个部分的功能。\n确保游戏逻辑无明显bug，例如地鼠不会同时出现在多个格子。\n提示词：\nHTML结构：包含游戏容器、得分显示、时间显示、格子网格和按钮。\nCSS样式：网格布局、格子样式、地鼠出现时的动态效果、按钮交互样式。\nJavaScript逻辑：随机生成地鼠、计时器、得分计算、游戏状态管理、弹窗提示。\n输出要求：\n请一次性提供完整的HTML文件代码（包括HTML、CSS和JavaScript），代码需可直接保存为.html文件并在浏览器中运行。代码中需包含注释，体现逻辑清晰度和编程能力。 GROK3: \u003C!DOCTYPE html>\n\n \u003Chtml lang=\"zh-CN\">\n\n \u003Chead>\n\n \u003Cmeta charset=\"UTF-8\">\n\n \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n \u003Ctitle>打地鼠小游戏\u003C\u002Ftitle>\n\n \u003Cstyle>\n\n \u002F* 整体页面样式 *\u002F\n\n body {\n\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n justify-content: center;\n\n height: 100vh;\n\n margin: 0;\n\n font-family: Arial, sans-serif;\n\n background-color: #f0f0f0;\n\n }\n\n\n\n \u002F* 顶部得分和时间显示 *\u002F\n\n .info {\n\n display: flex;\n\n justify-content: space-between;\n\n width: 320px;\n\n margin-bottom: 20px;\n\n }\n\n .info span {\n\n font-size: 24px;\n\n color: #00008b; \u002F* 深蓝色 *\u002F\n\n }\n\n\n\n \u002F* 游戏区域网格 *\u002F\n\n .game-board {\n\n display: grid;\n\n grid-template-columns: repeat(3, 100px);\n\n grid-gap: 10px;\n\n background-color: #d3d3d3; \u002F* 浅灰色背景 *\u002F\n\n padding: 10px;\n\n border-radius: 10px;\n\n }\n\n\n\n \u002F* 每个格子样式 *\u002F\n\n .hole {\n\n width: 100px;\n\n height: 100px;\n\n background-color: #d2b48c; \u002F* 土黄色 *\u002F\n\n border-radius: 10px;\n\n display: flex;\n\n align-items: center;\n\n justify-content: center;\n\n font-size: 30px;\n\n color: #000;\n\n cursor: pointer;\n\n transition: background-color 0.2s;\n\n }\n\n\n\n \u002F* 地鼠出现时的样式 *\u002F\n\n .hole.mole {\n\n background-color: #90ee90; \u002F* 绿色 *\u002F\n\n }\n\n\n\n \u002F* 开始按钮样式 *\u002F\n\n .start-btn {\n\n margin-top: 20px;\n\n padding: 10px 20px;\n\n font-size: 18px;\n\n color: #fff;\n\n background-color: #4682b4; \u002F* 蓝色 *\u002F\n\n border: none;\n\n border-radius: 5px;\n\n cursor: pointer;\n\n transition: background-color 0.3s;\n\n }\n\n .start-btn:hover {\n\n background-color: #5f9ea0; \u002F* 悬停时变亮 *\u002F\n\n }\n\n \u003C\u002Fstyle>\n\n \u003C\u002Fhead>\n\n \u003Cbody>\n\n \u003C!-- 顶部信息 -->\n\n \u003Cdiv class=\"info\">\n\n \u003Cspan id=\"score\">得分: 0\u003C\u002Fspan>\n\n \u003Cspan id=\"time-left\">剩余时间: 30\u003C\u002Fspan>\n\n \u003C\u002Fdiv>\n\n\n\n \u003C!-- 游戏区域 -->\n\n \u003Cdiv class=\"game-board\" id=\"gameBoard\">\n\n \u003C!-- 9个格子 -->\n\n \u003Cdiv class=\"hole\" data-id=\"0\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"1\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"2\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"3\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"4\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"5\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"6\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"7\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\" data-id=\"8\">\u003C\u002Fdiv>\n\n \u003C\u002Fdiv>\n\n\n\n \u003C!-- 开始按钮 -->\n\n \u003Cbutton class=\"start-btn\" id=\"startBtn\">开始游戏\u003C\u002Fbutton>\n\n\n\n \u003Cscript>\n\n \u002F\u002F 获取DOM元素\n\n const scoreDisplay = document.getElementById('score');\n\n const timeLeftDisplay = document.getElementById('time-left');\n\n const gameBoard = document.getElementById('gameBoard');\n\n const startBtn = document.getElementById('startBtn');\n\n const holes = document.querySelectorAll('.hole');\n\n\n\n \u002F\u002F 游戏状态变量\n\n let score = 0;\n\n let timeLeft = 30;\n\n let gameActive = false;\n\n let moleTimer = null;\n\n let countdownTimer = null;\n\n\n\n \u002F\u002F 初始化游戏\n\n function initGame() {\n\n score = 0;\n\n timeLeft = 30;\n\n gameActive = false;\n\n scoreDisplay.textContent = `得分: ${score}`;\n\n timeLeftDisplay.textContent = `剩余时间: ${timeLeft}`;\n\n clearInterval(moleTimer);\n\n clearInterval(countdownTimer);\n\n holes.forEach(hole => {\n\n hole.classList.remove('mole');\n\n hole.textContent = '';\n\n });\n\n }\n\n\n\n \u002F\u002F 随机选择一个格子显示地鼠\n\n function showMole() {\n\n if (!gameActive) return;\n\n\n\n \u002F\u002F 移除之前的地鼠\n\n holes.forEach(hole => {\n\n hole.classList.remove('mole');\n\n hole.textContent = '';\n\n });\n\n\n\n \u002F\u002F 随机选择一个格子\n\n const randomHole = holes[Math.floor(Math.random() * holes.length)];\n\n randomHole.classList.add('mole');\n\n randomHole.textContent = '鼠！';\n\n\n\n \u002F\u002F 1秒后隐藏地鼠\n\n setTimeout(() => {\n\n randomHole.classList.remove('mole');\n\n randomHole.textContent = '';\n\n }, 1000);\n\n\n\n \u002F\u002F 随机间隔后再次显示地鼠\n\n const randomInterval = Math.random() * 1000 + 500; \u002F\u002F 0.5到1.5秒\n\n moleTimer = setTimeout(showMole, randomInterval);\n\n }\n\n\n\n \u002F\u002F 点击格子的事件\n\n function hitMole(e) {\n\n const hole = e.target;\n\n if (hole.classList.contains('mole')) {\n\n score++;\n\n scoreDisplay.textContent = `得分: ${score}`;\n\n hole.classList.remove('mole');\n\n hole.textContent = '';\n\n }\n\n }\n\n\n\n \u002F\u002F 开始游戏\n\n function startGame() {\n\n if (gameActive) return; \u002F\u002F 防止重复开始\n\n initGame();\n\n gameActive = true;\n\n startBtn.disabled = true;\n\n\n\n \u002F\u002F 开始倒计时\n\n countdownTimer = setInterval(() => {\n\n timeLeft--;\n\n timeLeftDisplay.textContent = `剩余时间: ${timeLeft}`;\n\n if (timeLeft \u003C= 0) {\n\n endGame();\n\n }\n\n }, 1000);\n\n\n\n \u002F\u002F 开始地鼠出现\n\n showMole();\n\n }\n\n\n\n \u002F\u002F 游戏结束\n\n function endGame() {\n\n gameActive = false;\n\n clearInterval(moleTimer);\n\n clearInterval(countdownTimer);\n\n startBtn.disabled = false;\n\n alert(`游戏结束！你的得分是: ${score}\\n点击“确定”再玩一次！`);\n\n initGame();\n\n }\n\n\n\n \u002F\u002F 事件绑定\n\n startBtn.addEventListener('click', startGame);\n\n holes.forEach(hole => hole.addEventListener('click', hitMole));\n\n\n\n \u002F\u002F 初始化游戏状态\n\n initGame();\n\n \u003C\u002Fscript>\n\n \u003C\u002Fbody>\n\n \u003C\u002Fhtml> R1: \u003C!DOCTYPE html>\n\n \u003Chtml lang=\"zh-CN\">\n\n \u003Chead>\n\n \u003Cmeta charset=\"UTF-8\">\n\n \u003Ctitle>打地鼠 - Whack a Mole\u003C\u002Ftitle>\n\n \u003Cstyle>\n\n \u002F* 页面整体样式 *\u002F\n\n body {\n\n font-family: Arial, sans-serif;\n\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n background-color: #f0f0f0;\n\n margin: 0;\n\n min-height: 100vh;\n\n }\n\n\n\n \u002F* 游戏信息显示区域 *\u002F\n\n .game-info {\n\n margin: 20px 0;\n\n font-size: 24px;\n\n color: #00008b;\n\n display: flex;\n\n gap: 30px;\n\n }\n\n\n\n \u002F* 游戏主容器（3x3网格） *\u002F\n\n #game-board {\n\n display: grid;\n\n grid-template-columns: repeat(3, 100px);\n\n gap: 10px;\n\n background-color: #cccccc;\n\n padding: 20px;\n\n border-radius: 10px;\n\n }\n\n\n\n \u002F* 单个地鼠洞样式 *\u002F\n\n .hole {\n\n width: 100px;\n\n height: 100px;\n\n background-color: #d2b48c;\n\n border-radius: 8px;\n\n cursor: pointer;\n\n display: flex;\n\n justify-content: center;\n\n align-items: center;\n\n font-size: 0; \u002F* 初始隐藏文字 *\u002F\n\n transition: background-color 0.2s;\n\n }\n\n\n\n \u002F* 地鼠出现时的样式 *\u002F\n\n .hole.active {\n\n background-color: #90ee90;\n\n font-size: 30px; \u002F* 显示文字 *\u002F\n\n }\n\n\n\n \u002F* 开始游戏按钮 *\u002F\n\n #start-btn {\n\n margin-top: 30px;\n\n padding: 12px 30px;\n\n background-color: #0000ff;\n\n color: white;\n\n border: none;\n\n border-radius: 5px;\n\n cursor: pointer;\n\n font-size: 18px;\n\n transition: background-color 0.2s;\n\n }\n\n\n\n #start-btn:hover {\n\n background-color: #3333ff;\n\n }\n\n\n\n #start-btn:disabled {\n\n background-color: #888888;\n\n cursor: not-allowed;\n\n }\n\n \u003C\u002Fstyle>\n\n \u003C\u002Fhead>\n\n \u003Cbody>\n\n \u003C!-- 游戏信息显示 -->\n\n \u003Cdiv class=\"game-info\">\n\n \u003Cdiv>得分：\u003Cspan id=\"score\">0\u003C\u002Fspan>\u003C\u002Fdiv>\n\n \u003Cdiv>剩余时间：\u003Cspan id=\"timer\">30\u003C\u002Fspan>秒\u003C\u002Fdiv>\n\n \u003C\u002Fdiv>\n\n\n\n \u003C!-- 游戏主区域 -->\n\n \u003Cdiv id=\"game-board\">\n\n \u003C!-- 生成9个地鼠洞 -->\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003Cdiv class=\"hole\">\u003C\u002Fdiv>\n\n \u003C\u002Fdiv>\n\n\n\n \u003C!-- 控制按钮 -->\n\n \u003Cbutton id=\"start-btn\">开始游戏\u003C\u002Fbutton>\n\n\n\n \u003Cscript>\n\n \u002F\u002F 游戏全局变量\n\n let score = 0;\n\n let timeLeft = 30;\n\n let gameActive = false;\n\n let moleTimer = null;\n\n let countdownTimer = null;\n\n\n\n \u002F\u002F DOM元素引用\n\n const holes = document.querySelectorAll('.hole');\n\n const scoreDisplay = document.getElementById('score');\n\n const timerDisplay = document.getElementById('timer');\n\n const startBtn = document.getElementById('start-btn');\n\n\n\n \u002F\u002F 初始化点击事件监听\n\n holes.forEach(hole => {\n\n hole.addEventListener('click', () => {\n\n if (!gameActive) return;\n\n \u002F\u002F 点击有效的地鼠\n\n if (hole.classList.contains('active')) {\n\n score++;\n\n scoreDisplay.textContent = score;\n\n hole.classList.remove('active');\n\n hole.textContent = '';\n\n }\n\n });\n\n });\n\n\n\n \u002F\u002F 开始游戏按钮功能\n\n startBtn.addEventListener('click', () => {\n\n if (!gameActive) {\n\n startGame();\n\n }\n\n });\n\n\n\n \u002F\u002F 游戏主逻辑\n\n function startGame() {\n\n \u002F\u002F 重置游戏状态\n\n gameActive = true;\n\n score = 0;\n\n timeLeft = 30;\n\n scoreDisplay.textContent = score;\n\n timerDisplay.textContent = timeLeft;\n\n startBtn.disabled = true;\n\n\n\n \u002F\u002F 清除已有定时器\n\n clearInterval(countdownTimer);\n\n clearTimeout(moleTimer);\n\n\n\n \u002F\u002F 启动倒计时\n\n countdownTimer = setInterval(() => {\n\n timeLeft--;\n\n timerDisplay.textContent = timeLeft;\n\n if (timeLeft \u003C= 0) {\n\n endGame();\n\n }\n\n }, 1000);\n\n\n\n \u002F\u002F 首次生成地鼠\n\n scheduleMole();\n\n }\n\n\n\n \u002F\u002F 随机生成地鼠\n\n function showMole() {\n\n \u002F\u002F 查找所有非活动状态的洞\n\n const availableHoles = Array.from(holes).filter(hole => !hole.classList.contains('active'));\n\n if (availableHoles.length > 0) {\n\n const randomHole = availableHoles[Math.floor(Math.random() * availableHoles.length)];\n\n randomHole.classList.add('active');\n\n randomHole.textContent = '鼠！';\n\n \u002F\u002F 自动隐藏地鼠\n\n setTimeout(() => {\n\n randomHole.classList.remove('active');\n\n randomHole.textContent = '';\n\n }, 1000);\n\n }\n\n }\n\n\n\n \u002F\u002F 调度下一个地鼠生成\n\n function scheduleMole() {\n\n if (!gameActive) return;\n\n \u002F\u002F 随机间隔（0.5-1.5秒）\n\n const delay = Math.random() * 1000 + 500;\n\n moleTimer = setTimeout(() => {\n\n showMole();\n\n scheduleMole();\n\n }, delay);\n\n }\n\n\n\n \u002F\u002F 结束游戏处理\n\n function endGame() {\n\n gameActive = false;\n\n clearInterval(countdownTimer);\n\n clearTimeout(moleTimer);\n\n startBtn.disabled = false;\n\n\n\n \u002F\u002F 显示最终得分\n\n const restart = confirm(`游戏结束！最终得分：${score}\\n再玩一次？`);\n\n if (restart) {\n\n startGame();\n\n }\n\n }\n\n \u003C\u002Fscript>\n\n \u003C\u002Fbody>\n\n \u003C\u002Fhtml> html pre.shiki code .s7jGy, html code.shiki .s7jGy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sFFbM, html code.shiki .sFFbM{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .shR_7, html code.shiki .shR_7{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s4Bi8, html code.shiki .s4Bi8{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .spV5I, html code.shiki .spV5I{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .stNAY, html code.shiki .stNAY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sLXf0, html code.shiki .sLXf0{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B5695977;--shiki-code-theme-vitesse-dark:#C98A7D77;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sCtJb, html code.shiki .sCtJb{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#40A02B;--shiki-code-theme-catppuccin-dark:#A6E3A1;--shiki-code-theme-one-light:#50A14F;--shiki-code-theme-one-dark:#98C379;--shiki-code-theme-material-light:#91B859;--shiki-code-theme-material-dark:#C3E88D;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sw9Yk, html code.shiki .sw9Yk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .skCRv, html code.shiki .skCRv{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#A0ADA0;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#758575DD;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#A0A1A7;--shiki-code-theme-one-light-font-style:italic;--shiki-code-theme-one-dark:#7F848E;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#676E95;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#C2C3C5;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#6B737C;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sogYO, html code.shiki .sogYO{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html pre.shiki code .sIQTy, html code.shiki .sIQTy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sYQjJ, html code.shiki .sYQjJ{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#8796B0;--shiki-code-theme-material-dark:#B2CCD6;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .s07xj, html code.shiki .s07xj{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .s_Zq6, html code.shiki .s_Zq6{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#2F798A;--shiki-code-theme-vitesse-dark:#4C9A91;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sX2Pf, html code.shiki .sX2Pf{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s9ail, html code.shiki .s9ail{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sRS6S, html code.shiki .sRS6S{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#212121;--shiki-code-theme-min-dark:#BBBBBB}html pre.shiki code .seZCe, html code.shiki .seZCe{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sGQS9, html code.shiki .sGQS9{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .szZgx, html code.shiki .szZgx{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s53il, html code.shiki .s53il{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#E2931D;--shiki-code-theme-material-dark:#FFCB6B;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sDcM4, html code.shiki .sDcM4{--shiki-light:#005CC5;--shiki-light-font-style:inherit;--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .s4jFG, html code.shiki .s4jFG{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .s_rNk, html code.shiki .s_rNk{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#393A34;--shiki-code-theme-vitesse-dark:#DBD7CAEE;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#F8F8F8}html pre.shiki code .sV_4e, html code.shiki .sV_4e{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sJdyX, html code.shiki .sJdyX{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .seQUH, html code.shiki .seQUH{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .s006x, html code.shiki .s006x{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s3wIo, html code.shiki .s3wIo{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sm7WY, html code.shiki .sm7WY{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s-jwS, html code.shiki .s-jwS{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sBmMY, html code.shiki .sBmMY{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sORj3, html code.shiki .sORj3{--shiki-light:#6F42C1;--shiki-light-font-style:inherit;--shiki-default:#6F42C1;--shiki-default-font-style:inherit;--shiki-dark:#B392F0;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#59873A;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#80A665;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#1E66F5;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#89B4FA;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#6182B8;--shiki-code-theme-material-light-font-style:inherit;--shiki-code-theme-material-dark:#82AAFF;--shiki-code-theme-material-dark-font-style:inherit;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sZ-Ck, html code.shiki .sZ-Ck{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sFttD, html code.shiki .sFttD{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sle2E, html code.shiki .sle2E{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#FE640B;--shiki-code-theme-catppuccin-dark:#FAB387;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#FF5370;--shiki-code-theme-material-dark:#FF9CAC;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .sEIdK, html code.shiki .sEIdK{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#986801;--shiki-code-theme-one-dark:#D19A66;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .s41Vv, html code.shiki .s41Vv{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sVlNE, html code.shiki .sVlNE{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#CA1243;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s7o7L, html code.shiki .s7o7L{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B56959;--shiki-code-theme-vitesse-dark:#C98A7D;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sq5tN, html code.shiki .sq5tN{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-dark:#ABB2BF;--shiki-code-theme-material-light:#E53935;--shiki-code-theme-material-dark:#F07178;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sXva1, html code.shiki .sXva1{--shiki-light:#E36209;--shiki-light-font-style:inherit;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#E64553;--shiki-code-theme-catppuccin-light-font-style:italic;--shiki-code-theme-catppuccin-dark:#EBA0AC;--shiki-code-theme-catppuccin-dark-font-style:italic;--shiki-code-theme-one-light:#383A42;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-one-dark-font-style:italic;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#24292EFF;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#B392F0;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sH4JB, html code.shiki .sH4JB{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-material-light:#9C3EDA;--shiki-code-theme-material-dark:#C792EA;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .s3Fls, html code.shiki .s3Fls{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E5C07B;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .soJS8, html code.shiki .soJS8{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-code-theme-vitesse-light:#1E754F;--shiki-code-theme-vitesse-light-font-style:inherit;--shiki-code-theme-vitesse-dark:#4D9375;--shiki-code-theme-vitesse-dark-font-style:inherit;--shiki-code-theme-catppuccin-light:#8839EF;--shiki-code-theme-catppuccin-light-font-style:inherit;--shiki-code-theme-catppuccin-dark:#CBA6F7;--shiki-code-theme-catppuccin-dark-font-style:inherit;--shiki-code-theme-one-light:#A626A4;--shiki-code-theme-one-light-font-style:inherit;--shiki-code-theme-one-dark:#C678DD;--shiki-code-theme-one-dark-font-style:inherit;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-light-font-style:italic;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-material-dark-font-style:italic;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-light-font-style:inherit;--shiki-code-theme-min-dark:#F97583;--shiki-code-theme-min-dark-font-style:inherit}html pre.shiki code .sgUAf, html code.shiki .sgUAf{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-code-theme-vitesse-light:#AB5959;--shiki-code-theme-vitesse-dark:#CB7676;--shiki-code-theme-catppuccin-light:#179299;--shiki-code-theme-catppuccin-dark:#94E2D5;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#D32F2F;--shiki-code-theme-min-dark:#F97583}html pre.shiki code .sJ0qn, html code.shiki .sJ0qn{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#998418;--shiki-code-theme-vitesse-dark:#B8A965;--shiki-code-theme-catppuccin-light:#4C4F69;--shiki-code-theme-catppuccin-dark:#CDD6F4;--shiki-code-theme-one-light:#E45649;--shiki-code-theme-one-dark:#E06C75;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#1976D2;--shiki-code-theme-min-dark:#79B8FF}html pre.shiki code .scVbD, html code.shiki .scVbD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-code-theme-vitesse-light:#A65E2B;--shiki-code-theme-vitesse-dark:#C99076;--shiki-code-theme-catppuccin-light:#EA76CB;--shiki-code-theme-catppuccin-dark:#F5C2E7;--shiki-code-theme-one-light:#0184BC;--shiki-code-theme-one-dark:#56B6C2;--shiki-code-theme-material-light:#90A4AE;--shiki-code-theme-material-dark:#BABED8;--shiki-code-theme-min-light:#22863A;--shiki-code-theme-min-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html.code-theme-vitesse-light .shiki span {color: var(--shiki-code-theme-vitesse-light);background: var(--shiki-code-theme-vitesse-light-bg);font-style: var(--shiki-code-theme-vitesse-light-font-style);font-weight: var(--shiki-code-theme-vitesse-light-font-weight);text-decoration: var(--shiki-code-theme-vitesse-light-text-decoration);}html .code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html.code-theme-vitesse-dark .shiki span {color: var(--shiki-code-theme-vitesse-dark);background: var(--shiki-code-theme-vitesse-dark-bg);font-style: var(--shiki-code-theme-vitesse-dark-font-style);font-weight: var(--shiki-code-theme-vitesse-dark-font-weight);text-decoration: var(--shiki-code-theme-vitesse-dark-text-decoration);}html .code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html.code-theme-catppuccin-light .shiki span {color: var(--shiki-code-theme-catppuccin-light);background: var(--shiki-code-theme-catppuccin-light-bg);font-style: var(--shiki-code-theme-catppuccin-light-font-style);font-weight: var(--shiki-code-theme-catppuccin-light-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-light-text-decoration);}html .code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html.code-theme-catppuccin-dark .shiki span {color: var(--shiki-code-theme-catppuccin-dark);background: var(--shiki-code-theme-catppuccin-dark-bg);font-style: var(--shiki-code-theme-catppuccin-dark-font-style);font-weight: var(--shiki-code-theme-catppuccin-dark-font-weight);text-decoration: var(--shiki-code-theme-catppuccin-dark-text-decoration);}html .code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html.code-theme-one-light .shiki span {color: var(--shiki-code-theme-one-light);background: var(--shiki-code-theme-one-light-bg);font-style: var(--shiki-code-theme-one-light-font-style);font-weight: var(--shiki-code-theme-one-light-font-weight);text-decoration: var(--shiki-code-theme-one-light-text-decoration);}html .code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html.code-theme-one-dark .shiki span {color: var(--shiki-code-theme-one-dark);background: var(--shiki-code-theme-one-dark-bg);font-style: var(--shiki-code-theme-one-dark-font-style);font-weight: var(--shiki-code-theme-one-dark-font-weight);text-decoration: var(--shiki-code-theme-one-dark-text-decoration);}html .code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html.code-theme-material-light .shiki span {color: var(--shiki-code-theme-material-light);background: var(--shiki-code-theme-material-light-bg);font-style: var(--shiki-code-theme-material-light-font-style);font-weight: var(--shiki-code-theme-material-light-font-weight);text-decoration: var(--shiki-code-theme-material-light-text-decoration);}html .code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html.code-theme-material-dark .shiki span {color: var(--shiki-code-theme-material-dark);background: var(--shiki-code-theme-material-dark-bg);font-style: var(--shiki-code-theme-material-dark-font-style);font-weight: var(--shiki-code-theme-material-dark-font-weight);text-decoration: var(--shiki-code-theme-material-dark-text-decoration);}html .code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html.code-theme-min-light .shiki span {color: var(--shiki-code-theme-min-light);background: var(--shiki-code-theme-min-light-bg);font-style: var(--shiki-code-theme-min-light-font-style);font-weight: var(--shiki-code-theme-min-light-font-weight);text-decoration: var(--shiki-code-theme-min-light-text-decoration);}html .code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html.code-theme-min-dark .shiki span {color: var(--shiki-code-theme-min-dark);background: var(--shiki-code-theme-min-dark-bg);font-style: var(--shiki-code-theme-min-dark-font-style);font-weight: var(--shiki-code-theme-min-dark-font-weight);text-decoration: var(--shiki-code-theme-min-dark-text-decoration);}html pre.shiki code .s_lYT, html code.shiki .s_lYT{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#999999;--shiki-code-theme-vitesse-dark:#666666;--shiki-code-theme-catppuccin-light:#7C7F93;--shiki-code-theme-catppuccin-dark:#9399B2;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-material-light:#39ADB5;--shiki-code-theme-material-dark:#89DDFF;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}html pre.shiki code .sIscB, html code.shiki .sIscB{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-code-theme-vitesse-light:#B07D48;--shiki-code-theme-vitesse-dark:#BD976A;--shiki-code-theme-catppuccin-light:#DF8E1D;--shiki-code-theme-catppuccin-dark:#F9E2AF;--shiki-code-theme-one-light:#4078F2;--shiki-code-theme-one-dark:#61AFEF;--shiki-code-theme-material-light:#F76D47;--shiki-code-theme-material-dark:#F78C6C;--shiki-code-theme-min-light:#6F42C1;--shiki-code-theme-min-dark:#B392F0}",{"id":314,"title":313,"titles":2388,"content":313,"level":329},[],{"id":2390,"title":2391,"titles":2392,"content":339,"level":346},"\u002Fblog\u002Fai\u002Fai#ai-文章等待从旧blog中搬迁","AI 文章等待从旧Blog中搬迁",[313],{"id":323,"title":317,"titles":2394,"content":317,"level":329},[],{"id":2396,"title":2397,"titles":2398,"content":339,"level":346},"\u002Fblog\u002F生活\u002F生活#生活-类等待从旧blog迁移","生活 类等待从旧Blog迁移",[317],{"id":2400,"title":44,"body":2401,"date":2410,"description":2411,"draft":53,"extension":2412,"links":2410,"meta":2413,"navigation":2415,"path":45,"rawbody":2416,"seo":2417,"stem":46,"updated":2410,"__hash__":2418},"docs\u002Fdocs\u002F1.简单文档\u002F3.writing\u002F4.full-page-example.md",{"type":2402,"value":2403,"toc":2408},"minimark",[2404],[2405,2406,2407],"p",{},"写作ing...",{"title":339,"searchDepth":340,"depth":340,"links":2409},[],null,"全页面示例","md",{"fullpage":2414},true,{"icon":47},"---\ntitle: 单页面示例\ndescription: 全页面示例\nfullpage: true\nnavigation:\n  icon: lucide:layout-template\n---\n\n写作ing...",{"title":44,"description":2411},"L4uJ_jGa9G5Jt13q688U500Kih_LDDAtMxZmpdbVRMU",[2410,2410],1781538470156]