[{"data":1,"prerenderedAt":9840},["ShallowReactive",2],{"navigation":3,"blogNavigation":158,"site-search":330,"page-\u002Fblog\u002F%E6%8A%80%E6%9C%AF%E6%A0%88\u002Fgrok3-and-deepseek":2509,"\u002Fblog\u002F%E6%8A%80%E6%9C%AF%E6%A0%88\u002Fgrok3-and-deepseek-surround":9839},[4],{"title":5,"path":6,"stem":7,"children":8,"page":53},"Docs","\u002Fdocs","docs",[9,149],{"title":10,"path":11,"stem":12,"children":13,"icon":148},"简单文档","\u002Fdocs\u002F简单文档","docs\u002F1.简单文档\u002F1.index",[14,17,22,54,59,138,143],{"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",{"title":144,"path":145,"stem":146,"icon":147},"Nuxt Studio 升级开发规划","\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan","docs\u002F1.简单文档\u002F7.nuxt-studio-upgrade-plan","simple-icons-nuxtdotjs","lucide-book-open-text",{"title":150,"path":151,"stem":152,"children":153,"icon":157},"无人自助系统","\u002Fdocs\u002F无人自助系统","docs\u002F2.无人自助系统\u002F1.index",[154],{"title":155,"path":151,"stem":152,"icon":156},"介绍","simple-icons:opencollective","simple-icons:monica",[159],{"title":160,"path":161,"stem":162,"children":163,"page":53},"Blog","\u002Fblog","blog",[164,311,321],{"title":165,"icon":166,"path":167,"stem":168,"children":169,"page":53},"技术栈","devicon:prolog","\u002Fblog\u002F技术栈","blog\u002F1.技术栈",[170,175,179,184,188,193,198,202,207,212,217,221,225,229,234,238,243,248,253,257,262,267,272,277,282,286,291,296,301,306],{"title":171,"path":172,"stem":173,"icon":174},"准备新的插件","\u002Fblog\u002F技术栈\u002F新的插件","blog\u002F1.技术栈\u002F970.新的插件","simple-icons:debian",{"title":176,"path":177,"stem":178,"icon":174},"防于未然，先固不破 — Debian 12 快速加固实战","\u002Fblog\u002F技术栈\u002F服务器加固实战","blog\u002F1.技术栈\u002F971.服务器加固实战",{"title":180,"path":181,"stem":182,"icon":183},"nmap高级应用技巧-实战","\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-实战","blog\u002F1.技术栈\u002F972.nmap高级应用技巧-实战","simple-icons:openstreetmap",{"title":185,"path":186,"stem":187,"icon":183},"nmap高级应用技巧-NSE","\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse","blog\u002F1.技术栈\u002F973.nmap高级应用技巧-NSE",{"title":189,"path":190,"stem":191,"icon":192},"部分vue组件语法预览","\u002Fblog\u002F技术栈\u002F部分组件语法展示","blog\u002F1.技术栈\u002F974.部分组件语法展示","simple-icons:vuedotjs",{"title":194,"path":195,"stem":196,"icon":197},"新的文档渲染样式","\u002Fblog\u002F技术栈\u002F新的文档渲染样式","blog\u002F1.技术栈\u002F975.新的文档渲染样式","simple-icons:nuxtdotjs",{"title":199,"path":200,"stem":201,"icon":197},"Nuxt 微信分享接口","\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口","blog\u002F1.技术栈\u002F976.Nuxt 微信分享接口",{"title":203,"path":204,"stem":205,"icon":206},"AI复合应用 合同审查","\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查","blog\u002F1.技术栈\u002F978.AI复合应用 合同审查","simple-icons:openai",{"title":208,"path":209,"stem":210,"icon":211},"Kali 安装 GVM","\u002Fblog\u002F技术栈\u002Fkali-安装-gvm","blog\u002F1.技术栈\u002F979.Kali 安装 GVM","simple-icons:kalilinux",{"title":213,"path":214,"stem":215,"icon":216},"GPT-5","\u002Fblog\u002F技术栈\u002Fgpt5","blog\u002F1.技术栈\u002F980.GPT5","simple-icons:powershell",{"title":218,"path":219,"stem":220,"icon":206},"使用 AI 守护内网安全","\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全","blog\u002F1.技术栈\u002F981.使用 AI 守护内网安全",{"title":222,"path":223,"stem":224,"icon":183},"系统安全扫描工具命令集合","\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合","blog\u002F1.技术栈\u002F982.系统安全扫描工具命令集合",{"title":226,"path":227,"stem":228,"icon":211},"系统安全综合评估报告","\u002Fblog\u002F技术栈\u002F系统安全综合评估报告","blog\u002F1.技术栈\u002F983.系统安全综合评估报告",{"title":230,"path":231,"stem":232,"icon":233},"树莓派安装 Kali Linux","\u002Fblog\u002F技术栈\u002F树莓派安装-kali-linux","blog\u002F1.技术栈\u002F984.树莓派安装 Kali Linux","simple-icons:raspberrypi",{"title":235,"path":236,"stem":237,"icon":197},"Nuxt UI Pro","\u002Fblog\u002F技术栈\u002Fnuxt-ui-pro","blog\u002F1.技术栈\u002F985.Nuxt UI Pro",{"title":239,"path":240,"stem":241,"icon":242},"Supabase 阿里云短信","\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信","blog\u002F1.技术栈\u002F986.Supabase 阿里云短信","simple-icons:alibabacloud",{"title":244,"path":245,"stem":246,"icon":247},"Coolify","\u002Fblog\u002F技术栈\u002Fcoolify","blog\u002F1.技术栈\u002F987.Coolify","simple-icons:chai",{"title":249,"path":250,"stem":251,"icon":252},"Python 代码规范","\u002Fblog\u002F技术栈\u002Fpython-代码规范","blog\u002F1.技术栈\u002F988.Python 代码规范","simple-icons:python",{"title":254,"path":255,"stem":256,"icon":197},"Nuxt3 代码规范","\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范","blog\u002F1.技术栈\u002F989.Nuxt3 代码规范",{"title":258,"path":259,"stem":260,"icon":261},"Linux 系统 Swap 分区配置指南","\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南","blog\u002F1.技术栈\u002F990.Linux 系统 Swap 分区配置指南","simple-icons:linux",{"title":263,"path":264,"stem":265,"icon":266},"从Supabase迁移到Appwrite","\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite","blog\u002F1.技术栈\u002F991.从Supabase迁移到Appwrite","simple-icons:supabase",{"title":268,"path":269,"stem":270,"icon":271},"AppWrite 项目资源占用情况","\u002Fblog\u002F技术栈\u002Fappwrite-项目资源占用情况","blog\u002F1.技术栈\u002F992.AppWrite 项目资源占用情况","simple-icons:appwrite",{"title":273,"path":274,"stem":275,"icon":276},"Docker 里配置hosts","\u002Fblog\u002F技术栈\u002Fdocker-里配置hosts","blog\u002F1.技术栈\u002F993.Docker 里配置hosts","simple-icons:docker",{"title":278,"path":279,"stem":280,"icon":281},"MySQL 中如何忽略表名的大小写","\u002Fblog\u002F技术栈\u002Fmysql-中如何忽略表名的大小写","blog\u002F1.技术栈\u002F994.MySQL 中如何忽略表名的大小写","simple-icons:mysql",{"title":283,"path":284,"stem":285,"icon":174},"Debian 12 安装nodejs","\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs","blog\u002F1.技术栈\u002F995.Debian 12 安装nodejs",{"title":287,"path":288,"stem":289,"icon":290},"Dify + Supabase：打造带数据库的AI问答机器人","\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人","blog\u002F1.技术栈\u002F996.Dify + Supabase：打造带数据库的AI问答机器人","simple-icons:reactbootstrap",{"title":292,"path":293,"stem":294,"icon":295},"安装 VS Code到浏览器 -- Code Server","\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy","blog\u002F1.技术栈\u002F996.安装 VS Code到浏览器 -- Code Server copy","simple-icons:visualstudiocode",{"title":297,"path":298,"stem":299,"icon":300},"Debian 12 云服务器初始安全设置与优化指南","\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南","blog\u002F1.技术栈\u002F997.Debian 12 云服务器初始安全设置与优化指南","lucide-server",{"title":302,"path":303,"stem":304,"icon":305},"Iperf3 万兆网络打流测试指南","\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南","blog\u002F1.技术栈\u002F998.Iperf3 万兆网络打流测试指南","lucide-network",{"title":307,"path":308,"stem":309,"icon":310},"GROK3 and Deepseek","\u002Fblog\u002F技术栈\u002Fgrok3-and-deepseek","blog\u002F1.技术栈\u002F999.GROK3-and-Deepseek","lucide-brain",{"title":312,"icon":313,"path":314,"stem":315,"children":316,"page":53},"AI","devicon:streamlit","\u002Fblog\u002Fai","blog\u002F2.AI",[317],{"title":318,"path":319,"stem":320,"icon":247},"AI最佳实践","\u002Fblog\u002Fai\u002Fai","blog\u002F2.AI\u002F01.AI",{"title":322,"icon":323,"path":324,"stem":325,"children":326,"page":53},"生活","devicon:love2d","\u002Fblog\u002F生活","blog\u002F3.生活",[327],{"title":322,"path":328,"stem":329,"icon":247},"\u002Fblog\u002F生活\u002F生活","blog\u002F3.生活\u002F01.生活",[331,335,340,346,352,357,362,367,372,377,382,387,392,395,400,405,410,415,420,424,429,434,439,444,449,452,456,461,466,470,475,478,483,488,491,496,499,502,506,511,515,519,523,528,533,539,544,549,554,559,564,569,574,579,583,588,593,598,603,608,611,616,620,625,630,635,640,645,650,655,660,665,670,675,680,685,690,693,698,703,708,713,718,723,727,732,737,742,747,752,755,760,765,770,775,780,783,787,791,795,799,802,806,810,813,816,820,824,829,834,838,841,845,849,852,856,860,863,867,871,874,878,882,885,889,892,896,901,906,911,915,918,922,927,930,933,938,943,947,950,954,958,961,965,968,972,977,981,984,988,993,998,1003,1008,1012,1015,1020,1025,1029,1034,1039,1044,1049,1054,1059,1064,1069,1073,1077,1082,1087,1092,1097,1102,1107,1110,1115,1120,1124,1129,1134,1139,1143,1148,1153,1158,1163,1168,1173,1177,1182,1187,1192,1197,1202,1207,1212,1215,1220,1223,1226,1231,1235,1240,1245,1250,1255,1260,1265,1270,1275,1280,1283,1288,1291,1295,1300,1305,1310,1314,1317,1320,1325,1329,1334,1339,1343,1347,1352,1357,1360,1364,1368,1371,1375,1379,1383,1387,1392,1395,1399,1404,1408,1413,1416,1421,1426,1431,1434,1439,1444,1449,1454,1459,1464,1469,1474,1477,1481,1485,1490,1495,1500,1504,1509,1513,1518,1523,1528,1531,1535,1539,1542,1546,1550,1555,1560,1564,1569,1574,1579,1583,1588,1592,1597,1602,1606,1611,1615,1620,1624,1629,1633,1638,1642,1647,1652,1657,1661,1666,1671,1676,1679,1684,1689,1692,1695,1698,1701,1706,1709,1714,1718,1722,1726,1730,1735,1740,1745,1750,1753,1757,1761,1766,1770,1775,1780,1785,1790,1795,1799,1804,1809,1814,1819,1824,1828,1833,1838,1842,1847,1852,1856,1861,1866,1870,1875,1879,1884,1889,1891,1894,1897,1900,1903,1906,1909,1912,1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945,1948,1951,1954,1957,1960,1963,1966,1969,1972,1975,1978,1981,1984,1989,1994,1999,2004,2009,2014,2019,2024,2027,2032,2037,2042,2046,2051,2056,2061,2066,2071,2076,2079,2084,2089,2094,2099,2101,2106,2109,2114,2119,2122,2125,2130,2135,2140,2145,2150,2155,2160,2165,2170,2174,2179,2184,2189,2194,2199,2202,2207,2211,2216,2221,2225,2230,2235,2239,2244,2249,2253,2258,2263,2267,2272,2277,2282,2286,2291,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380,2383,2386,2389,2392,2395,2398,2401,2404,2407,2410,2413,2416,2419,2422,2425,2429,2433,2438,2443,2447,2452,2457,2462,2467,2471,2476,2480,2485,2490,2493,2497,2499,2503,2505],{"id":11,"title":15,"titles":332,"content":333,"level":334},[],"Estel Docs 是一个基于 Nuxt 4、Nuxt Content v3、Nuxt UI 构建的中文文档与博客系统。",1,{"id":336,"title":337,"titles":338,"content":339,"level":334},"\u002Fdocs\u002F简单文档#estel-docs","Estel Docs",[],"Estel Docs 是一个面向中文内容写作的文档与博客系统。它以 Nuxt 4、Nuxt Content v3 与 Nuxt UI 为基础，保留 Markdown 的轻量写作体验，同时通过 MDC 与 Vue 组件扩展出更丰富的页面表现。 系统当前包含两条内容线： 用于项目说明、使用指南、组件文档、技术资料沉淀，支持侧边栏、目录、编辑链接与上一篇\u002F下一篇导航。用于技术分享、AI 记录、生活随笔等文章发布，支持封面图、发布时间、分页列表与分类标签。",{"id":341,"title":342,"titles":343,"content":344,"level":345},"\u002Fdocs\u002F简单文档#已实现能力","已实现能力",[337],"",2,{"id":347,"title":348,"titles":349,"content":350,"level":351},"\u002Fdocs\u002F简单文档#内容管理","内容管理",[337,342],"content\u002Fdocs\u002F 与 content\u002Fblog\u002F 双集合结构。使用 .navigation.yml 配置目录分组。使用 frontmatter 管理标题、描述、日期、封面图、页面链接等信息。支持中文目录与中文 slug。支持 \u002Fraw\u002F** 原始 Markdown 查看与复制。",3,{"id":353,"title":354,"titles":355,"content":356,"level":351},"\u002Fdocs\u002F简单文档#markdown-增强","Markdown 增强",[337,342],"支持 Nuxt Content MDC 语法。支持 GitHub Flavored Markdown。支持 Mermaid 图表。支持数学公式（MathJax）。支持多语言代码高亮。支持自定义内容组件，例如卡片、标签页、文件树、代码树、在线 Playground、阅读更多等。",{"id":358,"title":359,"titles":360,"content":361,"level":351},"\u002Fdocs\u002F简单文档#阅读体验","阅读体验",[337,342],"桌面端侧边栏导航与右侧目录。移动端抽屉式导航。全站搜索，覆盖 docs 与 blog。页面操作：复制链接、查看 Markdown、在 ChatGPT\u002FClaude 中打开、触发微信分享。浅色、深色、跟随系统模式。字体、字号、主题色等页面设置。",{"id":363,"title":364,"titles":365,"content":366,"level":351},"\u002Fdocs\u002F简单文档#seo分享与-ai-入口","SEO、分享与 AI 入口",[337,342],"每个页面设置 SEO 标题与描述。使用 nuxt-og-image 生成 OG 图片。使用 nuxt-llms 提供 LLM 友好的站点入口。微信分享通过前端组件和独立 Go 签名服务协作完成。",{"id":368,"title":369,"titles":370,"content":371,"level":351},"\u002Fdocs\u002F简单文档#工程化","工程化",[337,342],"pnpm 管理依赖。ESLint 与 Nuxt typecheck。Docker 多阶段构建。GitHub Actions 执行 lint、typecheck、Go tests、Docker build。Renovate 自动维护依赖。CSP、HSTS、Referrer-Policy 等安全响应头。",{"id":373,"title":374,"titles":375,"content":376,"level":345},"\u002Fdocs\u002F简单文档#快速预览","快速预览",[337],"pnpm install\npnpm dev\npnpm lint\npnpm typecheck\npnpm build\npnpm preview 继续阅读 安装指南 了解本地开发流程，或阅读 功能与路线图 查看当前功能边界与后续规划。",{"id":378,"title":379,"titles":380,"content":381,"level":345},"\u002Fdocs\u002F简单文档#当前边界","当前边界",[337],"登录\u002F注册组件已有 UI 雏形，但尚未接入真实认证后端。Sitemap、robots.txt、RSS、PWA、评论、分析、多语言等能力尚未实现。代码主题与图注格式设置已持久化，实际渲染联动仍可继续完善。前端测试体系尚未建立，现有自动化测试主要集中在微信签名 Go 服务。",{"id":383,"title":384,"titles":385,"content":386,"level":345},"\u002Fdocs\u002F简单文档#致谢","致谢",[337],"Nuxt：现代 Vue 全栈框架。Nuxt Content：Markdown 内容管理与渲染能力。Nuxt UI：UI 组件与设计系统。Docus \u002F shadcn-docs-nuxt：文档站体验与组件设计灵感。",{"id":388,"title":389,"titles":390,"content":391,"level":345},"\u002Fdocs\u002F简单文档#license","License",[337],"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":393,"content":394,"level":334},[],"安装、运行与检查 Estel Docs。",{"id":396,"title":397,"titles":398,"content":399,"level":345},"\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":401,"title":402,"titles":403,"content":404,"level":345},"\u002Fdocs\u002F简单文档\u002Finstallation#获取项目","获取项目",[18],"git clone https:\u002F\u002Fgithub.com\u002Festel-li\u002Festel-docs.git\ncd estel-docs 如果你使用的是私有仓库或 fork，请将仓库地址替换为自己的地址。",{"id":406,"title":407,"titles":408,"content":409,"level":345},"\u002Fdocs\u002F简单文档\u002Finstallation#安装依赖","安装依赖",[18],"pnpm install 项目使用 .npmrc 配置 pnpm 行为，并通过 lockfile 固定依赖版本。CI 与 Docker 构建均使用 frozen lockfile，因此本地更新依赖后应提交 pnpm-lock.yaml。",{"id":411,"title":412,"titles":413,"content":414,"level":345},"\u002Fdocs\u002F简单文档\u002Finstallation#启动开发服务","启动开发服务",[18],"pnpm dev 默认访问： http:\u002F\u002Flocalhost:3000",{"id":416,"title":417,"titles":418,"content":419,"level":345},"\u002Fdocs\u002F简单文档\u002Finstallation#常用脚本","常用脚本",[18],"命令说明pnpm dev启动 Nuxt 开发服务器。pnpm lint运行 ESLint。pnpm typecheck运行 Nuxt 类型检查。pnpm build构建 SSR 生产产物。pnpm generate生成静态站点。pnpm preview本地预览生产构建。",{"id":421,"title":422,"titles":423,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Finstallation#内容开发流程","内容开发流程",[18],{"id":425,"title":426,"titles":427,"content":428,"level":351},"\u002Fdocs\u002F简单文档\u002Finstallation#新增文档","新增文档",[18,422],"在 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":430,"title":431,"titles":432,"content":433,"level":351},"\u002Fdocs\u002F简单文档\u002Finstallation#新增博客","新增博客",[18,422],"在 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":435,"title":436,"titles":437,"content":438,"level":345},"\u002Fdocs\u002F简单文档\u002Finstallation#本地检查","本地检查",[18],"提交前建议至少运行： pnpm lint\npnpm typecheck 如果修改了微信签名服务，还应运行： cd wechat-sign-server\ngo test .\u002F...",{"id":440,"title":441,"titles":442,"content":443,"level":345},"\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":445,"title":446,"titles":447,"content":448,"level":345},"\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":450,"content":451,"level":334},[],"如何使用MDC语法编写文档。 在Nuxt Content文档中阅读详细的MDC使用指南。查看 Estel Docs 提供的 MDC 内容组件。",{"id":453,"title":454,"titles":455,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#vs-code集成","VS Code集成",[29],{"id":457,"title":458,"titles":459,"content":460,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#mdc扩展","MDC扩展",[29,454],"Nuxt MDC是一个VS Code扩展，为MDC语法提供语法高亮和自动完成功能。 启动VS Code快速打开  + ，粘贴以下命令，然后按回车。 ext install Nuxt.mdc",{"id":462,"title":463,"titles":464,"content":465,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#启用组件元数据自动完成","启用组件元数据自动完成",[29,454],"需要 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":467,"title":468,"titles":469,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#技巧","技巧",[29],{"id":471,"title":472,"titles":473,"content":474,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Fmarkdown#从目录中隐藏标题","从目录中隐藏标题",[29,468],"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":476,"content":477,"level":334},[],"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":479,"title":480,"titles":481,"content":482,"level":345},"\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":484,"title":485,"titles":486,"content":487,"level":345},"\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":489,"content":490,"level":334},[],"通过 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":492,"title":493,"titles":494,"content":495,"level":345},"\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":497,"content":498,"level":334},[],"全页面示例 写作ing...",{"id":50,"title":49,"titles":500,"content":501,"level":334},[],"展示 markdown 常用语法 欢迎来到 Markdown 的奇妙世界！无论你是写作爱好者、开发者、博主，还是想要简单记录点什么的人，Markdown 都能成为你新的好伙伴。它不仅让写作变得简单明了，还能轻松地将内容转化为漂亮的网页格式。今天，我们将全面探讨 Markdown 的基础和进阶语法，让你在这个过程中充分享受写作的乐趣！ Markdown 是一种轻量级标记语言，用于格式化纯文本。它以简单、直观的语法而著称，可以快速地生成 HTML。Markdown 是写作与代码的完美结合，既简单又强大。",{"id":503,"title":504,"titles":505,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#markdown-基础语法","Markdown 基础语法",[49],{"id":507,"title":508,"titles":509,"content":510,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_1-标题让你的内容层次分明","1. 标题：让你的内容层次分明",[49,504],"用 # 号来创建标题。标题从 # 开始，# 的数量表示标题的级别。",{"id":512,"title":513,"titles":514,"content":344,"level":334},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#一级标题","一级标题",[],{"id":516,"title":517,"titles":518,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#二级标题","二级标题",[513],{"id":520,"title":521,"titles":522,"content":344,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#三级标题","三级标题",[513,517],{"id":524,"title":525,"titles":526,"content":344,"level":527},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#四级标题","四级标题",[513,517,521],4,{"id":529,"title":530,"titles":531,"content":344,"level":532},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#五级标题","五级标题",[513,517,521,525],5,{"id":534,"title":535,"titles":536,"content":537,"level":538},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#六级标题","六级标题",[513,517,521,525,530],"####### 七级标题 以上代码将渲染出一组层次分明的标题，使你的内容井井有条。",6,{"id":540,"title":541,"titles":542,"content":543,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_2-段落与换行自然流畅","2. 段落与换行：自然流畅",[513,517],"Markdown 中的段落就是一行接一行的文本。要创建新段落，只需在两行文本之间空一行。",{"id":545,"title":546,"titles":547,"content":548,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_3-字体样式强调你的文字","3. 字体样式：强调你的文字",[513,517],"粗体：用两个星号或下划线包裹文字，如 **粗体** 或 __粗体__。斜体：用一个星号或下划线包裹文字，如 *斜体* 或 _斜体_。删除线：用两个波浪线包裹文字，如 ~~删除线~~。 这些简单的标记可以让你的内容更有层次感和重点突出。",{"id":550,"title":551,"titles":552,"content":553,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_4-列表整洁有序","4. 列表：整洁有序",[513,517],"无序列表：用 -、* 或 + 加空格开始一行。有序列表：使用数字加点号（1.、2.）开始一行。 在列表中嵌套其他内容？只需缩进即可实现嵌套效果。 无序列表项 1\n嵌套有序列表项 1嵌套有序列表项 2无序列表项 2 有序列表项 1有序列表项 2",{"id":555,"title":556,"titles":557,"content":558,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_5-链接与图片丰富内容","5. 链接与图片：丰富内容",[513,517],"链接：用方括号和圆括号创建链接 [显示文本](链接地址)。图片：和链接类似，只需在前面加上 !，如 ![描述文本](图片链接)。 访问 Doocs 轻松实现富媒体内容展示！ 因微信公众号平台不支持除公众号内容以外的链接，故其他平台的链接，会呈现链接样式但无法点击跳转。 对于这些链接请注意明文书写，或点击左上角「格式->微信外链接转底部引用」开启引用，这样就可以在底部观察到链接指向。 另外，使用 \u003C![alt](url),![alt](url)> 语法可以创建横屏滑动幻灯片，支持微信公众号平台。建议使用相似尺寸的图片以获得最佳显示效果。",{"id":560,"title":561,"titles":562,"content":563,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_6-引用引用名言或引人深思的句子","6. 引用：引用名言或引人深思的句子",[513,517],"使用 > 来创建引用，只需在文本前面加上它。多层引用？在前一层 > 后再加一个就行。 这是一个引用这是一个嵌套引用 这让你的引用更加富有层次感。",{"id":565,"title":566,"titles":567,"content":568,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_7-代码块展示你的代码","7. 代码块：展示你的代码",[513,517],"行内代码：用反引号包裹，如 code。代码块：用三个反引号包裹，并指定语言，如： console.log(\"Hello, Doocs!\"); 语法高亮让你的代码更易读。",{"id":570,"title":571,"titles":572,"content":573,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_8-分割线分割内容","8. 分割线：分割内容",[513,517],"用三个或更多的 -、* 或 _ 来创建分割线。 为你的内容添加视觉分隔。",{"id":575,"title":576,"titles":577,"content":578,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_9-表格清晰展示数据","9. 表格：清晰展示数据",[513,517],"Markdown 支持简单的表格，用 | 和 - 分隔单元格和表头。 项目人员邮箱微信号yanglbmecontact@yanglibin.infoYLB0109YangFongyangfong2022@gmail.comyq2419731931thinkasanythinkasany@gmail.comthinkasany 这样的表格让数据展示更为清爽！ 手动编写标记太麻烦？我们提供了便捷方式。左上方点击「编辑->插入表格」，即可快速实现表格渲染。",{"id":580,"title":581,"titles":582,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#markdown-进阶技巧","Markdown 进阶技巧",[513],{"id":584,"title":585,"titles":586,"content":587,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_1-latex-公式完美展示数学表达式","1. LaTeX 公式：完美展示数学表达式",[513,581],"Markdown 允许嵌入 LaTeX 语法展示数学公式： 行内公式：用 $ 包裹公式，如   。块级公式：用 $$ 包裹公式，如：",{"id":589,"title":590,"titles":591,"content":592,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#以下是使用mate字段包裹","以下是使用mate字段包裹",[513,581],"列表内块公式 1 列表内块公式 2 这是展示复杂数学表达的利器！",{"id":594,"title":595,"titles":596,"content":597,"level":351},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#_2-mermaid-流程图可视化流程","2. Mermaid 流程图：可视化流程",[513,581],"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":599,"title":600,"titles":601,"content":602,"level":345},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#结语","结语",[513],"Markdown 是一种简单、强大且易于掌握的标记语言，通过学习基础和进阶语法，你可以快速创作内容并有效传达信息。无论是技术文档、个人博客还是项目说明，Markdown 都是你的得力助手。希望这篇内容能够带你全面了解 Markdown 的潜力，让你的写作更加丰富多彩！ 现在，拿起 Markdown 编辑器，开始创作吧！探索 Markdown 的世界，你会发现它远比想象中更精彩！",{"id":604,"title":605,"titles":606,"content":607,"level":527},"\u002Fdocs\u002F简单文档\u002Fwriting\u002Ftest#推荐阅读","推荐阅读",[513,600],"阿里又一个 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":609,"content":610,"level":334},[],"部署 Estel Docs、微信签名服务与相关运维配置。",{"id":612,"title":613,"titles":614,"content":615,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#部署模式","部署模式",[55],"Estel Docs 支持两类部署方式： SSR Docker 部署：运行 Nuxt server 产物，适合当前项目的完整能力。静态生成部署：使用 pnpm generate 输出静态文件，适合纯文档托管；微信签名等动态接口需要独立服务配合。 当前仓库已经提供 Dockerfile 与 GitHub Actions，更推荐使用 SSR Docker 部署。",{"id":617,"title":618,"titles":619,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#ssr-docker-部署","SSR Docker 部署",[55],{"id":621,"title":622,"titles":623,"content":624,"level":351},"\u002Fdocs\u002F简单文档\u002Fdeployment#构建镜像","构建镜像",[55,618],"docker build -t estel-docs:latest .",{"id":626,"title":627,"titles":628,"content":629,"level":351},"\u002Fdocs\u002F简单文档\u002Fdeployment#运行容器","运行容器",[55,618],"docker run --rm -p 3000:3000 estel-docs:latest 容器内默认： NODE_ENV=productionHOST=0.0.0.0PORT=3000运行命令：node .output\u002Fserver\u002Findex.mjs",{"id":631,"title":632,"titles":633,"content":634,"level":351},"\u002Fdocs\u002F简单文档\u002Fdeployment#dockerfile-结构","Dockerfile 结构",[55,618],"阶段基础镜像作用depsnode:22-bookworm安装 pnpm 依赖，便于缓存复用。buildernode:22-bookworm安装 Playwright Chromium，并执行 pnpm build。productionnode:22-alpine复制 .output，以 node 用户运行服务。 Playwright Chromium 主要用于 OG 图片渲染，因此构建阶段会安装浏览器及其系统依赖。",{"id":636,"title":637,"titles":638,"content":639,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#静态生成部署","静态生成部署",[55],"pnpm generate 生成产物位于 .output\u002Fpublic。可以部署到 Nginx、对象存储、CDN 或其他静态托管平台。 npx serve .output\u002Fpublic 静态部署只能托管前端资源。微信 JS-SDK 签名接口 \u002Fapi\u002Fwechat\u002Fjs-sign 仍需要由 wechat-sign-server 或其他后端服务提供，并通过反向代理暴露到同源路径。",{"id":641,"title":642,"titles":643,"content":644,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#路由与预渲染","路由与预渲染",[55],"nuxt.config.ts 中的路由规则： 路由行为\u002F预渲染。\u002Fdocs\u002F**预渲染。\u002Fblog\u002F**预渲染。\u002Fraw\u002F**关闭 SSR，不预渲染。 Nitro prerender 开启 crawlLinks 与 failOnError，因此内容链接错误可能导致构建失败。",{"id":646,"title":647,"titles":648,"content":649,"level":345},"\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":651,"title":652,"titles":653,"content":654,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#微信签名服务部署","微信签名服务部署",[55],"微信分享能力由独立 Go 服务提供，目录为 wechat-sign-server\u002F。",{"id":656,"title":657,"titles":658,"content":659,"level":351},"\u002Fdocs\u002F简单文档\u002Fdeployment#关键接口","关键接口",[55,652],"GET \u002Fhealth\nPOST \u002Fapi\u002Fwechat\u002Fjs-sign",{"id":661,"title":662,"titles":663,"content":664,"level":351},"\u002Fdocs\u002F简单文档\u002Fdeployment#关键环境变量","关键环境变量",[55,652],"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":666,"title":667,"titles":668,"content":669,"level":351},"\u002Fdocs\u002F简单文档\u002Fdeployment#nginx-反代示例","Nginx 反代示例",[55,652],"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":671,"title":672,"titles":673,"content":674,"level":345},"\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":676,"title":677,"titles":678,"content":679,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#依赖更新","依赖更新",[55],"Renovate 配置位于 renovate.json： 继承 Nuxt preset。维护 v1 与 main 分支。开启 lockfile maintenance。更新后执行 pnpm dedupe。",{"id":681,"title":682,"titles":683,"content":684,"level":345},"\u002Fdocs\u002F简单文档\u002Fdeployment#生产检查清单","生产检查清单",[55],"pnpm lint 通过。 pnpm typecheck 通过。 wechat-sign-server 的 go test .\u002F... 通过。 Docker 镜像可以正常构建并启动。 生产环境 Secret 未写入仓库。 微信公众号后台配置了 JS 安全域名。 \u002Fapi\u002Fwechat\u002Fjs-sign 能从站点同源访问。 OG 图片在目标页面可正常生成。 CSP 未阻止必要脚本、图片或接口。",{"id":686,"title":687,"titles":688,"content":689,"level":345},"\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":691,"content":692,"level":334},[],"Estel Docs 自定义内容组件速查文档。",{"id":694,"title":695,"titles":696,"content":697,"level":345},"\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":699,"title":700,"titles":701,"content":702,"level":345},"\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":704,"title":705,"titles":706,"content":707,"level":345},"\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":709,"title":710,"titles":711,"content":712,"level":345},"\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":714,"title":715,"titles":716,"content":717,"level":345},"\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":719,"title":720,"titles":721,"content":722,"level":345},"\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":724,"title":119,"titles":725,"content":726,"level":345},"\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":728,"title":729,"titles":730,"content":731,"level":345},"\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":733,"title":734,"titles":735,"content":736,"level":345},"\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":738,"title":739,"titles":740,"content":741,"level":345},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#colormodeswitch","ColorModeSwitch",[66],"用于展示一个较大的明暗模式开关。 ::color-mode-switch\n::",{"id":743,"title":744,"titles":745,"content":746,"level":345},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fapi#编写新组件的建议","编写新组件的建议",[66],"新增内容组件时建议： 放在 app\u002Fcomponents\u002Fcontent\u002F 下。使用明确的 props 类型。保持 SSR 安全，避免在服务端直接访问 window 或 document。为复杂组件提供示例文档。如果组件依赖外部脚本，应使用 ClientOnly 或在 onMounted 中加载。",{"id":748,"title":749,"titles":750,"content":751,"level":345},"\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":753,"content":754,"level":334},[],"展示提示、警告和状态信息的提醒组件。",{"id":756,"title":757,"titles":758,"content":759,"level":345},"\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":761,"title":762,"titles":763,"content":764,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#link","Link",[71,757],"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":766,"title":767,"titles":768,"content":769,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#variants","Variants",[71,757],"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":771,"title":772,"titles":773,"content":774,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Falert#title","Title",[71,757],"An alert with a title.::alert{title=\"Title\" icon=\"lucide:layout-list\"}\n  An alert with a title.\n::",{"id":776,"title":777,"titles":778,"content":779,"level":345},"\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":781,"content":782,"level":334},[],"展示短标签、状态和版本信息的徽章组件。",{"id":784,"title":757,"titles":785,"content":786,"level":345},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#usage",[75],"DefaultSmall::badge\n  Default\n::\n::badge{size=\"sm\"}\n  Small\n::",{"id":788,"title":767,"titles":789,"content":790,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#variants",[75,757],"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":792,"title":762,"titles":793,"content":794,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fbadge#link",[75,757],"Link::badge{variant=\"outline\" type=\"info\" to=\"https:\u002F\u002Fgithub.com\u002FZTL-UwU\u002Fshadcn-docs-nuxt\" target=\"_blank\"}\nLink\n::",{"id":796,"title":777,"titles":797,"content":798,"level":345},"\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":800,"content":801,"level":334},[],"用按钮样式呈现链接操作的内容组件。",{"id":803,"title":757,"titles":804,"content":805,"level":345},"\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":807,"title":777,"titles":808,"content":809,"level":345},"\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":811,"content":812,"level":334},[],"展示强调信息、提示和辅助说明的内容块。 ::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":814,"content":815,"level":334},[],"展示标题、描述、图标和跳转链接的卡片组件。",{"id":817,"title":757,"titles":818,"content":819,"level":345},"\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":821,"title":762,"titles":822,"content":823,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#link",[87,757],"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":825,"title":826,"titles":827,"content":828,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#horizontal","Horizontal",[87,757],"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":830,"title":831,"titles":832,"content":833,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fcard#image","Image",[87,757],"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":835,"title":777,"titles":836,"content":837,"level":345},"\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":839,"content":840,"level":334},[],"用于组织多个卡片入口的分组组件。",{"id":842,"title":757,"titles":843,"content":844,"level":345},"\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":846,"title":777,"titles":847,"content":848,"level":345},"\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":850,"content":851,"level":334},[],"用标签页形式组织多段代码示例的组件。",{"id":853,"title":757,"titles":854,"content":855,"level":345},"\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":857,"title":777,"titles":858,"content":859,"level":345},"\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":861,"content":862,"level":334},[],"展示多文件代码结构和代码内容的树形组件。",{"id":864,"title":757,"titles":865,"content":866,"level":345},"\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":868,"title":777,"titles":869,"content":870,"level":345},"\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":872,"content":873,"level":334},[],"展示单个参数字段名称、类型和说明的组件。",{"id":875,"title":757,"titles":876,"content":877,"level":345},"\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":879,"title":777,"titles":880,"content":881,"level":345},"\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":883,"content":884,"level":334},[],"用于分组展示多个参数字段说明的组件。",{"id":886,"title":757,"titles":887,"content":888,"level":345},"\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":890,"content":891,"level":334},[],"展示目录结构、文件层级和高亮文件的树形组件。",{"id":893,"title":757,"titles":894,"content":895,"level":345},"\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":897,"title":898,"titles":899,"content":900,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#customizations","Customizations",[111,757],"::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":902,"title":903,"titles":904,"content":905,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#disable-icons","Disable Icons",[111,757],"::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":908,"titles":909,"content":910,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ffile-tree#diff","Diff",[111,757],"::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":912,"title":777,"titles":913,"content":914,"level":345},"\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":916,"content":917,"level":334},[],"展示 Nuxt Icon 图标用法和图标渲染效果。 The icon component uses Nuxt Icon under the hood. Check out the usage guide from Nuxt Icon.",{"id":919,"title":757,"titles":920,"content":921,"level":345},"\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":923,"title":924,"titles":925,"content":926,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ficon#smart-icon","Smart Icon",[115,757],"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":928,"content":929,"level":334},[],"嵌入 StackBlitz 或 CodeSandbox 示例项目的组件。",{"id":931,"title":757,"titles":932,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#usage",[119],{"id":934,"title":935,"titles":936,"content":937,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#stackblitz","Stackblitz",[119,757],"::playground\n---\nprovider: stackblitz\nrepo: nuxt\u002Fstarter\nbranch: v3\nfile: app.vue\n---\n::",{"id":939,"title":940,"titles":941,"content":942,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fplayground#codesandbox","CodeSandbox",[119,757],"::playground\n---\nprovider: codesandbox\nrepo: nuxt\u002Fstarter\nbranch: v3\nfile: app.vue\n---\n::",{"id":944,"title":777,"titles":945,"content":946,"level":345},"\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":948,"content":949,"level":334},[],"引导读者继续阅读相关页面的链接组件。",{"id":951,"title":757,"titles":952,"content":953,"level":345},"\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":955,"title":777,"titles":956,"content":957,"level":345},"\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":959,"content":960,"level":334},[],"用于包裹示例预览和代码内容的堆叠展示组件。",{"id":962,"title":757,"titles":963,"content":964,"level":345},"\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":966,"content":967,"level":334},[],"按步骤展示流程说明和操作指南的组件。",{"id":969,"title":757,"titles":970,"content":971,"level":345},"\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":973,"title":974,"titles":975,"content":976,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Fsteps#multi-level-headings","Multi-level headings",[131,757],"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":978,"title":777,"titles":979,"content":980,"level":345},"\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":982,"content":983,"level":334},[],"通过标签页切换展示多组内容的组件。",{"id":985,"title":757,"titles":986,"content":987,"level":345},"\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":989,"title":990,"titles":991,"content":992,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#card-style","Card Style",[135,757],"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":994,"title":995,"titles":996,"content":997,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#line-style","Line Style",[135,757],"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":999,"title":1000,"titles":1001,"content":1002,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#combobox-style","Combobox Style",[135,757],"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":1004,"title":1005,"titles":1006,"content":1007,"level":351},"\u002Fdocs\u002F简单文档\u002Fcomponents\u002Ftabs#synced-tabs","Synced Tabs",[135,757],"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":1009,"title":777,"titles":1010,"content":1011,"level":345},"\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":1013,"content":1014,"level":334},[],"Estel Docs 当前已经实现的功能、边界与后续可扩展方向。",{"id":1016,"title":1017,"titles":1018,"content":1019,"level":345},"\u002Fdocs\u002F简单文档\u002F功能与路线图#项目定位","项目定位",[139],"Estel Docs 是一个中文文档与博客系统，核心目标是： 用 Markdown 管理文档和博客。用 Nuxt Content 组织内容集合。用 Nuxt UI 与自定义组件提升阅读体验。用现代工程化手段完成构建、部署和维护。在个人站、项目站和团队知识库之间保持可扩展性。",{"id":1021,"title":1022,"titles":1023,"content":1024,"level":345},"\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":1026,"title":1027,"titles":1028,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002F功能与路线图#现有功能详解","现有功能详解",[139],{"id":1030,"title":1031,"titles":1032,"content":1033,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_1-内容集合","1. 内容集合",[139,1027],"content.config.ts 定义了两个集合： docs：文档页集合，来源为 docs\u002F**。blog：博客页集合，来源为 blog\u002F**。 文档和博客都保留 rawbody，因此可以支持原始 Markdown 展示。博客额外要求 img 与 date 字段，用于列表封面和时间排序。",{"id":1035,"title":1036,"titles":1037,"content":1038,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_2-文档阅读","2. 文档阅读",[139,1027],"文档页位于 \u002Fdocs\u002F**，支持： 自动查询对应路径的文档内容。从导航树推导页面 headline。自动生成页面目录。页面底部显示编辑与问题反馈入口。上一篇\u002F下一篇 surround navigation。自定义页面链接按钮。自定义 OG 图片组件。",{"id":1040,"title":1041,"titles":1042,"content":1043,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_3-博客阅读","3. 博客阅读",[139,1027],"博客页位于 \u002Fblog\u002F**，支持： 列表页按日期倒序展示。每页 12 篇文章，最多 15 页。从路径提取分类标签。缺省封面图兜底。详情页展示发布时间、目录、页面操作与上下篇。",{"id":1045,"title":1046,"titles":1047,"content":1048,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_4-原始-markdown","4. 原始 Markdown",[139,1027],"\u002Fraw\u002F** 会根据路径自动判断 docs 或 blog 集合，展示 rawbody 并支持复制全文。 该能力适合： 将文档发送给 AI 阅读。复制原文做二次编辑。对比渲染内容与源 Markdown。",{"id":1050,"title":1051,"titles":1052,"content":1053,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_5-页面操作","5. 页面操作",[139,1027],"页面头部操作区支持： 复制当前链接。查看 Markdown。在 ChatGPT 中打开当前 Markdown 链接。在 Claude 中打开当前 Markdown 链接。按需挂载微信分享组件。 这些操作都围绕当前页面 URL 与 \u002Fraw\u002F**.md URL 生成。",{"id":1055,"title":1056,"titles":1057,"content":1058,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_6-微信分享","6. 微信分享",[139,1027],"微信分享由两部分组成： 前端 wxShare.vue：加载微信 JSSDK、请求签名、调用分享 API。Go 服务 wechat-sign-server\u002F：缓存 token\u002Fticket，校验域名，生成签名。 生产部署时，需要将站点同源的 \u002Fapi\u002Fwechat\u002F 反向代理到 Go 服务。",{"id":1060,"title":1061,"titles":1062,"content":1063,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_7-主题系统","7. 主题系统",[139,1027],"useTheme.ts 是主题系统的单例 composable，负责： 状态管理。localStorage 持久化。将字体、字号、主题色写入 DOM\u002FCSS 变量。提供重置设置方法。 ThemeSettings.vue 提供可视化设置面板。",{"id":1065,"title":1066,"titles":1067,"content":1068,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#_8-安全与部署","8. 安全与部署",[139,1027],"nuxt.config.ts 中统一配置安全响应头，并定义预渲染策略。Dockerfile 将依赖安装、构建和运行拆分为三个阶段，CI 会先执行质量检查，再构建镜像并在 main 分支触发部署。",{"id":1070,"title":379,"titles":1071,"content":1072,"level":345},"\u002Fdocs\u002F简单文档\u002F功能与路线图#当前边界",[139],"以下内容尚未实现，不要误认为是当前功能： 真实用户认证后端。评论系统。RSS\u002FAtom Feed。Sitemap 与 robots.txt。PWA \u002F 离线阅读。多语言 i18n。前端单元测试与 E2E 测试。生产监控、错误追踪与性能看板。在线 Markdown 编辑器。文档版本控制。",{"id":1074,"title":1075,"titles":1076,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002F功能与路线图#路线图","路线图",[139],{"id":1078,"title":1079,"titles":1080,"content":1081,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p0基础补齐","P0：基础补齐",[139,1075],"这些功能成本较低，且能明显提升站点完整度。 Sitemap：从 docs\u002Fblog 内容集合生成 sitemap。robots.txt：明确允许搜索引擎抓取公开内容。RSS\u002FAtom：为博客提供订阅。内容链接检查：CI 中检查 Markdown 内链、外链、图片引用。frontmatter 检查：对 docs\u002Fblog 必填字段给出更明确的错误。阅读时长：按文章字数估算阅读时间。面包屑导航：提升文档层级导航体验。",{"id":1083,"title":1084,"titles":1085,"content":1086,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p1质量与体验","P1：质量与体验",[139,1075],"Vitest 单元测试：覆盖 composables、utils 与关键组件逻辑。Nuxt Test Utils：覆盖页面渲染、内容查询、路由行为。Playwright E2E：覆盖搜索、主题设置、博客分页、raw 页面。标签\u002F分类页：为博客生成分类索引与标签筛选。代码主题接入：将设置面板中的代码主题真正联动到代码块渲染。图注格式接入：让图片 title\u002Falt 的展示规则可配置。复制代码\u002F标题锚点体验优化：增强技术文档阅读效率。",{"id":1088,"title":1089,"titles":1090,"content":1091,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p2运营与增长","P2：运营与增长",[139,1075],"隐私友好统计：接入 Umami、Plausible 或自托管分析。评论系统：评估 Giscus、Utterances 或自建评论接口。PWA 离线阅读：缓存核心文档与静态资源。Lighthouse CI：监控性能、SEO、可访问性。错误追踪：接入 Sentry 或等价方案。部署健康检查：Docker HEALTHCHECK 与平台探针。镜像与依赖安全扫描：Trivy、pnpm audit、CodeQL\u002FSAST。",{"id":1093,"title":1094,"titles":1095,"content":1096,"level":351},"\u002Fdocs\u002F简单文档\u002F功能与路线图#p3产品化能力","P3：产品化能力",[139,1075],"认证系统：为现有登录\u002F注册 UI 接入真实后端。在线编辑器：支持 Markdown 编辑、预览、草稿与发布。内容版本：多版本文档、修订历史、回滚。多语言内容：支持中英双语或多语言站点。高级搜索：预构建索引、服务端搜索、语义搜索或问答式搜索。导出能力：PDF、EPUB、单页离线包。团队协作：权限、审核、评论、变更记录。",{"id":1098,"title":1099,"titles":1100,"content":1101,"level":345},"\u002Fdocs\u002F简单文档\u002F功能与路线图#优先级建议","优先级建议",[139],"推荐按以下顺序推进： Sitemap、robots.txt、RSS：补齐公开内容站点基础设施。内容校验与前端测试：提高长期维护稳定性。博客分类\u002F标签、阅读时长、面包屑：增强内容发现与阅读体验。PWA、分析、评论：开始运营化。认证、在线编辑、多语言、版本控制：进入产品化阶段。",{"id":1103,"title":1104,"titles":1105,"content":1106,"level":345},"\u002Fdocs\u002F简单文档\u002F功能与路线图#实施注意事项","实施注意事项",[139],"新功能应先确认是文档站能力、博客能力、运营能力还是产品化能力，避免一次性耦合过多模块。涉及 SEO 的功能应同时考虑静态生成、SSR 与 Docker 部署。涉及微信分享的功能应同时验证公众号后台配置、域名白名单、CSP 与反向代理。涉及主题的功能应确认设置状态、CSS 变量和实际组件渲染三者都已接通。涉及 AI\u002FLLM 的功能应区分“打开外部 AI 页面”和“接入模型 API”，当前项目只实现了前者以及 nuxt-llms 内容入口。",{"id":145,"title":144,"titles":1108,"content":1109,"level":334},[],"基于 Nuxt 4、Nuxt Content v3 与 Nuxt Studio 的内容编辑能力升级方案。",{"id":1111,"title":1112,"titles":1113,"content":1114,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#背景","背景",[144],"当前项目已经升级到 Nuxt 4、Nuxt Content v3 与 pnpm 11，内容系统采用 content\u002Fdocs 和 content\u002Fblog 两个集合，站点支持文档、博客、RSS、Atom、sitemap、robots、OG 图片与静态生成。 本次规划目标是在现有内容体系上接入 Nuxt Studio，让内容编辑者可以在浏览器中编辑 Markdown、frontmatter、MDC 组件和媒体资源，并通过 GitHub 提交内容变更。 参考官方文档： Nuxt Studio SetupNuxt Studio Git ProvidersNuxt Studio Auth ProvidersNuxt Studio Content Editors",{"id":1116,"title":1117,"titles":1118,"content":1119,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#核心结论","核心结论",[144],"Nuxt Studio 不是一个纯静态后台页面。生产环境中的登录、鉴权、Git 提交和发布流程依赖服务端路由，因此官方要求部署在支持 SSR 的平台上，并使用 nuxt build 生成生产产物。 当前项目的 GitHub Actions 主要执行 pnpm run generate，再将 .output\u002Fpublic 通过 rsync 上传为静态站点。这个部署模式无法完整承载 Nuxt Studio。 推荐路线是将主站升级为 SSR\u002Fhybrid 部署： 继续对 \u002F、\u002Fdocs\u002F**、\u002Fblog\u002F** 等内容页执行 prerender。生产运行 .output\u002Fserver\u002Findex.mjs。Studio 管理界面挂载在 \u002F_studio 或 \u002Fadmin。使用 GitHub OAuth 登录，并由 Nuxt Studio 将内容变更提交到 GitHub 仓库。",{"id":1121,"title":1122,"titles":1123,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#当前项目适配点","当前项目适配点",[144],{"id":1125,"title":1126,"titles":1127,"content":1128,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#已具备条件","已具备条件",[144,1122],"项目已使用 Nuxt 4 与 Nuxt Content v3。content.config.ts 已定义 docs 和 blog 两个 collection。内容文件以 Markdown 为主，适合 Studio 编辑。已有 Docker SSR 构建路线，Dockerfile 运行 pnpm build 并启动 .output\u002Fserver\u002Findex.mjs。已有 content:check 脚本，可作为 Studio 发布后的内容质量守门。",{"id":1130,"title":1131,"titles":1132,"content":1133,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#需要先处理的问题","需要先处理的问题",[144,1122],"Dockerfile 需要复制 pnpm-workspace.yaml当前 pnpm 11 的构建脚本审批配置位于 pnpm-workspace.yaml。如果 Docker deps stage 只复制 package.json、pnpm-lock.yaml 和 .npmrc，better-sqlite3 的原生构建许可可能不会进入容器安装环境。CI\u002FCD 需要从纯静态部署调整为 SSR\u002FhybridStudio 生产编辑依赖服务端路由，不能只上传 .output\u002Fpublic。需要将部署目标切换为 Node SSR 或 Docker 服务。Content schema 需要更适合 Studio 表单当前 schema 运行时可用，但对 Studio 的编辑体验不够明确。应显式声明 title、description、navigation、img、date、links 等字段，并为 media、icon、textarea 等输入类型提供编辑器提示。CSP 需要为 Studio 单独验证当前全站启用严格 CSP。Studio 可能涉及浏览器侧 SQLite、IndexedDB、media draft service worker、外部 OAuth 跳转等能力。接入后需要对 \u002F_studio\u002F** 与 \u002F__nuxt_studio\u002F** 做浏览器实测，必要时单独放宽 route rules。",{"id":1135,"title":1136,"titles":1137,"content":1138,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#推荐架构","推荐架构",[144],"#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_studioGitHub OAuthNuxt Studio Server RoutesGitHub RepositoryGitHub ActionsSSR \u002F Hybrid Deploylijue.net",{"id":1140,"title":1141,"titles":1142,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#实施阶段","实施阶段",[144],{"id":1144,"title":1145,"titles":1146,"content":1147,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#阶段一部署基础调整","阶段一：部署基础调整",[144,1141],"目标：让项目具备稳定的 SSR\u002Fhybrid 生产部署能力。 任务： 修改 Dockerfile deps stage，复制 pnpm-workspace.yaml。将 CI 构建命令从单纯 pnpm run generate 调整为 pnpm build。部署 .output\u002Fserver，生产运行 node .output\u002Fserver\u002Findex.mjs。保留现有 prerender 设置，让公开内容页仍然静态化输出。确认微信签名服务、RSS、Atom、sitemap、robots 在 SSR 模式下行为一致。 验收： pnpm install --frozen-lockfile 通过。pnpm build 通过。Docker 镜像构建通过。生产环境能访问首页、文档页、博客页、RSS、Atom、sitemap、robots。",{"id":1149,"title":1150,"titles":1151,"content":1152,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#阶段二接入-nuxt-studio-模块","阶段二：接入 Nuxt Studio 模块",[144,1141],"目标：本地与生产环境能打开 Studio 管理界面。 任务： 安装 nuxt-studio。在 nuxt.config.ts 的 modules 中加入 nuxt-studio。配置 Studio 路由，建议先使用默认 \u002F_studio。配置 GitHub 仓库信息： studio: {\n  route: '\u002F_studio',\n  repository: {\n    provider: 'github',\n    owner: 'estel-li',\n    repo: 'estel_docs',\n    branch: 'main',\n    private: false\n  },\n  git: {\n    commit: {\n      messagePrefix: 'content:'\n    }\n  },\n  editor: {\n    iconLibraries: ['lucide', 'simple-icons', 'vscode-icons', 'devicon']\n  }\n} 验收： 本地开发环境能打开 \u002F_studio。生产构建包含 Studio 路由。不影响现有 docs\u002Fblog 页面渲染。",{"id":1154,"title":1155,"titles":1156,"content":1157,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#阶段三配置-github-oauth","阶段三：配置 GitHub OAuth",[144,1141],"目标：编辑者可通过 GitHub 登录 Studio，并将内容变更发布到仓库。 GitHub OAuth App 建议配置： Homepage URL:\nhttps:\u002F\u002Flijue.net\n\nAuthorization callback URL:\nhttps:\u002F\u002Flijue.net\u002F__nuxt_studio\u002Fauth\u002Fgithub 生产环境变量： NUXT_STUDIO_AUTH_GITHUB_CLIENT_ID=...\nNUXT_STUDIO_AUTH_GITHUB_CLIENT_SECRET=...\nNUXT_STUDIO_AUTH_GITHUB_MODERATORS=editor@example.com,admin@example.com 说明： GitHub OAuth 登录后可以自动用于 Git 操作，不需要额外 Personal Access Token。即使官方将 GitHub moderators 标为可选，也建议配置白名单，避免编辑入口过宽。不建议第一阶段使用 Google OAuth，因为 Google 登录不能直接提供 Git 写入能力，仍需单独配置 Git token。 验收： 生产环境能完成 GitHub OAuth 登录。非白名单用户不能进入编辑流程。白名单用户能编辑内容并发布。GitHub 仓库出现以 content: 开头的提交。",{"id":1159,"title":1160,"titles":1161,"content":1162,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#阶段四优化-content-schema","阶段四：优化 Content Schema",[144,1141],"目标：让 Studio 自动生成更清晰的 frontmatter 表单。 任务： 将 z 从 @nuxt\u002Fcontent re-export 改为 zod\u002Fv4。显式定义 title、description、navigation、links、draft 等字段。为博客集合定义 img、date、updated、category、tags。对适合可视化编辑的字段使用 property() 提供编辑器提示。 示例方向： import { defineCollection, defineContentConfig, property } from '@nuxt\u002Fcontent'\nimport { z } from 'zod\u002Fv4'\n\nconst linkSchema = z.object({\n  label: z.string(),\n  icon: z.string(),\n  to: z.string(),\n  target: z.string().optional()\n})\n\nconst navigationSchema = z.union([\n  z.boolean(),\n  z.object({\n    title: z.string().optional(),\n    description: z.string().optional(),\n    icon: property(z.string()).editor({ input: 'icon' }).optional()\n  })\n]) 博客 img 字段有两种路线： 若继续使用远程图床，保留普通 z.string()。若希望 Studio 管理 \u002Fpublic 媒体库，改为 media editor，并逐步把图片迁入 public 或外部 media provider。 验收： Studio 中 docs\u002Fblog frontmatter 表单清晰可编辑。新建博客时能看到必填字段。pnpm content:check 能继续校验内容质量。",{"id":1164,"title":1165,"titles":1166,"content":1167,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#阶段五接入自定义-mdc-组件编辑","阶段五：接入自定义 MDC 组件编辑",[144,1141],"目标：让编辑者可以在 Studio 中插入项目已有的内容组件。 任务： 将 app\u002Fcomponents\u002Fcontent 下的 MDC 内容组件标记为全局组件。通过 Studio editor 配置限制可用组件范围。为常用组件补充 props 类型，方便 Studio 生成编辑面板。 建议先开放： ECardETabsStackPlaygroundFileTreeCodeTreeButtonLinkSmartIconReadMore 暂不开放： 布局组件导航组件仅用于页面壳层的业务组件依赖复杂运行时状态的组件 验收： Studio slash menu 可插入常用内容组件。插入组件后 Markdown 源码可读。构建与渲染正常。",{"id":1169,"title":1170,"titles":1171,"content":1172,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#阶段六强化-ci-守门","阶段六：强化 CI 守门",[144,1141],"目标：Studio 发布内容后，自动发现错误内容。 建议 CI 至少执行： pnpm install --frozen-lockfile\npnpm content:check\npnpm typecheck\npnpm test:unit\npnpm build 可选增强： 对 PR 运行 pnpm test:e2e。对 main 定期运行完整 E2E。将内容检查结果作为 GitHub status check。 验收： Studio 发布错误 frontmatter 时 CI 能失败。Studio 发布坏链接或坏图片引用时 CI 能失败。main 分支始终保持可部署。",{"id":1174,"title":1175,"titles":1176,"content":344,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#风险与对策","风险与对策",[144],{"id":1178,"title":1179,"titles":1180,"content":1181,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#纯静态部署不兼容-studio-生产编辑","纯静态部署不兼容 Studio 生产编辑",[144,1175],"风险：只部署 .output\u002Fpublic 会导致登录、发布、Git 写入等功能不可用。 对策：切换为 SSR\u002Fhybrid 部署，保留 prerender 优势。",{"id":1183,"title":1184,"titles":1185,"content":1186,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#内容编辑者可能破坏文件命名约定","内容编辑者可能破坏文件命名约定",[144,1175],"风险：当前内容依赖数字前缀控制排序，例如 1.简单文档\u002F2.installation.md。Studio 编辑者如果随意重命名文件，可能影响路由和导航顺序。 对策：在编辑规范中明确文件命名规则；首阶段仅允许编辑现有文件，谨慎开放新建与重命名能力。",{"id":1188,"title":1189,"titles":1190,"content":1191,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#远程图床与-studio-media-library-体验不一致","远程图床与 Studio Media Library 体验不一致",[144,1175],"风险：当前博客大量使用远程图片 URL。Studio Media Library 默认管理 \u002Fpublic，不能天然管理外部图床。 对策：第一阶段保留远程 URL；第二阶段评估接入 S3、R2 或继续使用现有图床。",{"id":1193,"title":1194,"titles":1195,"content":1196,"level":351},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#csp-影响-studio-管理界面","CSP 影响 Studio 管理界面",[144,1175],"风险：严格 CSP 可能拦截 Studio 的 worker、blob、OAuth 或媒体预览能力。 对策：为 Studio 路由单独配置 routeRules，并用浏览器 E2E 实测登录、编辑、发布和媒体上传。",{"id":1198,"title":1199,"titles":1200,"content":1201,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#最小可行版本","最小可行版本",[144],"MVP 范围： SSR\u002Fhybrid 部署可用。\u002F_studio 可登录。GitHub OAuth 可鉴权。白名单编辑者可编辑现有 docs\u002Fblog Markdown。发布后 GitHub 产生 commit。CI 自动构建并部署。不开放复杂媒体管理和大规模组件库。 不在 MVP 范围： 多角色权限系统。自定义工作流审批。外部媒体存储迁移。多分支草稿预览。与微信签名服务联动。",{"id":1203,"title":1204,"titles":1205,"content":1206,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#最终验收清单","最终验收清单",[144],"pnpm install --frozen-lockfile 通过。pnpm content:check 通过。pnpm typecheck 通过。pnpm test:unit 通过。pnpm build 通过。Docker 构建通过。生产 \u002F_studio 可打开。GitHub OAuth 登录成功。非授权用户无法编辑。授权用户可编辑 docs 页面并发布。授权用户可编辑 blog frontmatter 并发布。自定义 MDC 组件可插入并渲染。发布后 GitHub 产生内容提交。CI 自动部署成功。首页、文档、博客、RSS、Atom、sitemap、robots 行为正常。",{"id":1208,"title":1209,"titles":1210,"content":1211,"level":345},"\u002Fdocs\u002F简单文档\u002Fnuxt-studio-upgrade-plan#推荐落地顺序","推荐落地顺序",[144],"修复 Dockerfile pnpm workspace 复制问题。将部署链路切换到 SSR\u002Fhybrid。安装并启用 nuxt-studio。配置 GitHub OAuth 与 moderators。优化 content.config.ts schema。开放第一批内容组件给 Studio。恢复并强化 CI 内容质量检查。生产环境小范围试用。根据编辑体验再迭代媒体库、组件属性和权限策略。 html pre.shiki code .sd-B6, html code.shiki .sd-B6{--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:#E06C75;--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 .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 .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 .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 .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 .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 .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 .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 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 .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 .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 .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}",{"id":151,"title":155,"titles":1213,"content":1214,"level":334},[],"24小时无人自助系统,适合 棋牌室 台球厅 自习室 等场所使用 test",{"id":1216,"title":1217,"titles":1218,"content":1219,"level":334},"\u002Fdocs\u002Fabout","关于",[],"Estel Docs 文档系统",{"id":172,"title":171,"titles":1221,"content":1222,"level":334},[],"增加一些新的渲染，如脑图等",{"id":177,"title":176,"titles":1224,"content":1225,"level":334},[],"在数字化浪潮席卷全球的今天，服务器已成为承载企业核心业务与数据的“心脏”。一旦这颗心脏被攻破，轻则业务中断，重则数据泄漏、引发监管问责、品牌声誉坍塌，甚至于法律诉讼。",{"id":1227,"title":1228,"titles":1229,"content":1230,"level":351},"\u002Fblog\u002F技术栈\u002F服务器加固实战#前言","前言",[176],"在数字化浪潮席卷全球的今天，服务器已成为承载企业核心业务与数据的“心脏”。一旦这颗心脏被攻破，轻则业务中断，重则数据泄漏、引发监管问责、品牌声誉坍塌，甚至于法律诉讼。也正因如此，“我不知道漏洞藏在那里”已经不是借口，而是失责；真正负责任的运维与安全团队，必须把“ 防于未然，先固不破 ”当作铁律。 然而，系统配置千头万绪——从 BIOS 到内核参数，从系统服务到用户策略，从网络栈到文件权限——千里之堤，溃于蚁穴,任何一个角落的配置失误，都可能成为攻击者趁虚而入的跳板。“人眼”已无法在短时间内遍历所有细节，唯有借助安全团队丰富的经验与标准化的自动安全审计工具，将复杂环境拆解成可度量的检查项，才能在海量主机、混部容器与虚拟化场景中抽丝剥茧，还原安全真相。 本文将以 Lynis 审计工具来还原一次服务器加固实战。",{"id":1232,"title":1233,"titles":1234,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002F服务器加固实战#正文","正文",[176],{"id":1236,"title":1237,"titles":1238,"content":1239,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#什么是lynis","什么是Lynis?",[176,1233],"Lynis 是一款开源、针对基于 UNIX 系统（如 Linux、macOS、BSD 等）的安全审计工具。它能检测系统配置、文件权限、日志、网络等多个方面，提供详细的安全建议，帮助系统管理员加强系统的安全性。Lynis 通常被系统管理员和网络安全工程师用来评估其系统的安全防御能力。 除了“蓝队”之外，如今的渗透测试人员也将 Lynis 作为他们的工具之一。",{"id":1241,"title":1242,"titles":1243,"content":1244,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#环境","环境",[176,1233],"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":1246,"title":1247,"titles":1248,"content":1249,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#使用","使用",[176,1233],"# ssh 连接进服务器\n# 在合适的目录进行克隆 Lynis\ngit clone https:\u002F\u002Fgithub.com\u002FCISOfy\u002Flynis\n\n#执行安全审查脚本\ncd lynis && sudo .\u002Flynis audit system",{"id":1251,"title":1252,"titles":1253,"content":1254,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#扫描结果部分摘录","扫描结果部分摘录",[176,1233],"**[ 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":1256,"title":1257,"titles":1258,"content":1259,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#结果分析","结果分析",[176,1233],"根据 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":1261,"title":1262,"titles":1263,"content":1264,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#进行服务器加固","进行服务器加固",[176,1233],"# 为便于演示默认以下所有操作均在 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":1266,"title":1267,"titles":1268,"content":1269,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#复查扫描","复查扫描",[176,1233],"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":1271,"title":1272,"titles":1273,"content":1274,"level":527},"\u002Fblog\u002F技术栈\u002F服务器加固实战#加固完成","加固完成",[176,1233],"加固指数：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":1276,"title":1277,"titles":1278,"content":1279,"level":345},"\u002Fblog\u002F技术栈\u002F服务器加固实战#总结","总结",[176],"通过本次基于 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":181,"title":180,"titles":1281,"content":1282,"level":334},[],"实战中使用nmap进行渗透测试和信息收集。 nmap -p- --min-rate=1000 -T4 -v -n -Pn 192.168.1.1",{"id":1284,"title":1285,"titles":1286,"content":1287,"level":527},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-实战#未完成","未完成",[180],"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":186,"title":185,"titles":1289,"content":1290,"level":334},[],"Nmap Scripting Engine（NSE）是Nmap的核心扩展功能，通过Lua脚本实现自动化扫描、漏洞检测、信息收集等高级操作。",{"id":1292,"title":1293,"titles":1294,"content":1290,"level":351},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#nse","NSE",[185],{"id":1296,"title":1297,"titles":1298,"content":1299,"level":527},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#nse脚本按功能分为12大类每类对应不同扫描需求","NSE脚本按功能分为12大类，每类对应不同扫描需求",[185,1293],"类别核心目的样例脚本典型使用场合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":1301,"title":1302,"titles":1303,"content":1304,"level":351},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#常用-nse-脚本一览","常用 NSE 脚本一览",[185,1293],"脚本名称主要用途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":1306,"title":1307,"titles":1308,"content":1309,"level":351},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#自定义脚本","自定义脚本",[185,1293],"-- 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":1311,"title":1277,"titles":1312,"content":1313,"level":351},"\u002Fblog\u002F技术栈\u002Fnmap高级应用技巧-nse#总结",[185,1293],"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":190,"title":189,"titles":1315,"content":1316,"level":334},[],"预览一些自定义 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":195,"title":194,"titles":1318,"content":1319,"level":334},[],"重新构建了渲染组件,优化了样式.",{"id":1321,"title":1322,"titles":1323,"content":1324,"level":345},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#重新对文档的样式进行了优化","重新对文档的样式进行了优化",[194],"周日在家闭关重写了十几个渲染组件。纯古法手工敲代码,兼容 Markdown 语法.部分 css 样式由 GPT-5 生成.大部分组件对主题进行了响应式处理,会根据主题进行不同的样式渲染",{"id":1326,"title":508,"titles":1327,"content":1328,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_1-标题让你的内容层次分明",[194,1322],"用 #号来创建标题。标题从 # 开始，# 的数量表示标题的级别。 一级标题二级标题三级标题四级标题五级标题六级标题  # 一级标题\n  ## 二级标题\n  ### 三级标题\n  #### 四级标题\n  ##### 五级标题\n  ###### 六级标题 以上代码将渲染出一组层次分明的标题，使你的内容井井有条。并且可以根据标题进行快速导航!",{"id":1330,"title":1331,"titles":1332,"content":1333,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_2-流程图与公式渲染","2. 流程图与公式渲染：",[194,1322],"#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":1335,"title":1336,"titles":1337,"content":1338,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_3-代码块与代码树展示你的代码","3. 代码块与代码树：展示你的代码",[194,1322],"行内代码：用反引号包裹，如 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":1340,"title":1341,"titles":1342,"content":548,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_4-字体样式强调你的文字","4. 字体样式：强调你的文字",[194,1322],{"id":1344,"title":1345,"titles":1346,"content":553,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_5-列表整洁有序","5. 列表：整洁有序",[194,1322],{"id":1348,"title":1349,"titles":1350,"content":1351,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_6-链接与图片丰富内容","6. 链接与图片：丰富内容",[194,1322],"链接：用方括号和圆括号创建链接 [显示文本](链接地址)。图片：和链接类似，只需在前面加上 !，如 ![描述文本](图片链接)。 访问 Estel Docs ![Estel Docs](https:\u002F\u002Fimg.lijue.net\u002F20250811123147804.png)",{"id":1353,"title":1354,"titles":1355,"content":1356,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_7-引用引用名言或引人深思的句子","7. 引用：引用名言或引人深思的句子",[194,1322],"使用 > 来创建引用，只需在文本前面加上它。多层引用？在前一层 > 后再加一个就行。 这是一个引用这是一个嵌套引用 这让你的引用更加富有层次感。 语法高亮让你的代码更易读。",{"id":1358,"title":571,"titles":1359,"content":573,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_8-分割线分割内容",[194,1322],{"id":1361,"title":576,"titles":1362,"content":1363,"level":351},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#_9-表格清晰展示数据",[194,1322],"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":1365,"title":600,"titles":1366,"content":1367,"level":345},"\u002Fblog\u002F技术栈\u002F新的文档渲染样式#结语",[194],"- 还有更多的组件等待你发现. 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":200,"title":199,"titles":1369,"content":1370,"level":334},[],"微信分享接口,使用Nuxt,实现微信分享接口.",{"id":1372,"title":1373,"titles":1374,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#需求","需求",[199],{"id":1376,"title":1377,"titles":1378,"content":344,"level":532},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#写了一个文档插件-缘由呢是之前在-wordpress-上用过一个插件对接微信的js-sdk可以实现将链接带标题图简介封装成一个-卡片形式分享给朋友或者朋友圈比如","写了一个文档插件. 缘由呢是之前在 WordPress 上用过一个插件.对接微信的JS SDK,可以实现将链接带标题,图,简介封装成一个 卡片形式.分享给朋友或者朋友圈.比如:",[199,1373],{"id":1380,"title":1381,"titles":1382,"content":344,"level":532},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#如果没有对接微信的sdk分享链接是这样的","如果没有对接微信的SDK,分享链接是这样的:",[199,1373],{"id":1384,"title":1385,"titles":1386,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#实现","实现",[199,1373],{"id":1388,"title":1389,"titles":1390,"content":1391,"level":532},"\u002Fblog\u002F技术栈\u002Fnuxt-微信分享接口#这个功能实现起来也不复杂其中麻烦的地方是向微信获取-access_token-和-jsapi_ticket这样迫不得已就得写一个后端","这个功能实现起来也不复杂,其中麻烦的地方是向微信获取 access_token 和 jsapi_ticket,这样迫不得已就得写一个后端.",[199,1373,1385],"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":204,"title":203,"titles":1393,"content":1394,"level":334},[],"智能合同卫士,使用AI技术,对合同进行审查,并给出审查报告.",{"id":1396,"title":1397,"titles":1398,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#先贴效果","先贴效果",[203],{"id":1400,"title":1401,"titles":1402,"content":1403,"level":351},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#这是一个-ai-复合应用","这是一个 AI 复合应用",[203],"暂起名叫 智能合同卫士 ,还是比较贴题的把?",{"id":1405,"title":1385,"titles":1406,"content":1407,"level":351},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#实现",[203],"由 Deepseek V3 和 Kimi K2 协作完成此应用,2个好用不贵的模型\nDS 根据文件名,以及 审查主体 工作领域 与 合同要点,细化一份简要的审查要点\n主要工作由 Kimi K2 来完成:\n根据 Deepseek 细化的要点和 提取出来的文档内容,进行审查.\n输出审查后的结果",{"id":1409,"title":1410,"titles":1411,"content":1412,"level":351},"\u002Fblog\u002F技术栈\u002Fai复合应用-合同审查#改进","改进",[203],"按照初步的设想,后续还有一个模型,比如 Gemini2.5 ,或者 R1 ,Qwen3 之类的推理模型,进一步的审查 Kimi K2 的审查结果.\n不过 K2 单独使用的实际效果已经非常好了,为了节省时间和成本,暂时取掉最后一步.\n使用 AI 的话,不论是 R1 还是 K2 都是有一定的幻觉,在使用中必须搭配知识库来使用. 注意这次测试并没有加知识库,所以 AI 虚构了一些内容,比如当地房价涨幅 ,和虚构的 《陕西省住房租赁管理办法》.给大模型增加搜索能力,和在知识库里添加 民法典 等相关法律条文进去,可以有效的解决幻觉问题.",{"id":209,"title":208,"titles":1414,"content":1415,"level":334},[],"在 Kali 上安装 GVM",{"id":1417,"title":1418,"titles":1419,"content":1420,"level":351},"\u002Fblog\u002F技术栈\u002Fkali-安装-gvm#配置安装好-kali","配置安装好 Kali",[208],"# 安装 gvm\nsudo apt install gvm -y\n# 执行配置脚本\nsudo gvm-setup",{"id":1422,"title":1423,"titles":1424,"content":1425,"level":351},"\u002Fblog\u002F技术栈\u002Fkali-安装-gvm#安装过程中-copy-admin-的密码","安装过程中 copy admin 的密码",[208],"根据提示运行安装检测命令 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":1427,"title":1428,"titles":1429,"content":1430,"level":351},"\u002Fblog\u002F技术栈\u002Fkali-安装-gvm#end","END",[208],"至此安装完毕. 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":214,"title":213,"titles":1432,"content":1433,"level":334},[],"GPT-5 上线了,Cursor 提示我可以免费试用，当然要 BP 喽。",{"id":1435,"title":1436,"titles":1437,"content":1438,"level":351},"\u002Fblog\u002F技术栈\u002Fgpt5#gpt-5-上线了","GPT-5 上线了",[213],"👀 Cursor 提示我可以免费试用，当然要 BP 喽。",{"id":1440,"title":1441,"titles":1442,"content":1443,"level":351},"\u002Fblog\u002F技术栈\u002Fgpt5#问题场景","🔥 问题场景",[213],"此时正遇到的一个问题是：**NUXT4 项目在本地 dev 一切正常，但在服务器上对中文路径报错 500**。\n  这个问题很简单，但又很复杂。",{"id":1445,"title":1446,"titles":1447,"content":1448,"level":351},"\u002Fblog\u002F技术栈\u002Fgpt5#问题背景","🧩 问题背景",[213],"项目环境NUXT4 项目现象本地开发环境运行正常；服务器部署后直接访问中文路径报错 500，通过内部路由正常自动化部署流程 代码推送至 GitHubGitHub CI 服务器自动打包 Docker 镜像 → 推送至私人 Docker 库触发 webhook → Coolify 服务器 ssh 连接国内云服务器拉取镜像Coolify 完成部署（Nginx 反代转发到 Docker 容器）",{"id":1450,"title":1451,"titles":1452,"content":1453,"level":351},"\u002Fblog\u002F技术栈\u002Fgpt5#排查猜想","🤔 排查猜想",[213],"是打包编译过程出问题了，还是服务器上 nginx 反代的问题？或者是 NUXT 自身 SSR 的问题？\n  其实内心差不多有了谱，刚好提示 GPT-5 更新了，就测试一下看看 GPT-5 能否解决这个问题。",{"id":1455,"title":1456,"titles":1457,"content":1458,"level":351},"\u002Fblog\u002F技术栈\u002Fgpt5#实测结论","✅ 实测结论",[213],"直接说结论：完美解决。 同时使用 Kimi-K2 (Claude Code) 和 GPT-5 (Cursor内置) 进行分析：",{"id":1460,"title":1461,"titles":1462,"content":1463,"level":527},"\u002Fblog\u002F技术栈\u002Fgpt5#kimi-k2-的表现","💡 Kimi-K2 的表现",[213,1456],"1. 先是读取了项目文件，得出错误结论：\n  > “生产环境静态文件\u002F最终产物里没有对应的 `.md`，导致 `queryContent` 查询到 `null`”\n  2. 按照它的建议把文档拷贝到编译产出文件夹，问题依旧。\n  3. 坚持认为是 Nginx 的问题，我告诉它和 Nginx 反代没关系，这货死倔\n  （实际上本地直接启动 node 服务也会报错，根本不是服务器问题）。",{"id":1465,"title":1466,"titles":1467,"content":1468,"level":527},"\u002Fblog\u002F技术栈\u002Fgpt5#gpt-5-的表现cursor内置","🚀 GPT-5 的表现（Cursor内置）",[213,1456],"自主执行了十几分钟测试跑了几十条命令输出上百条日志消耗约 1.x 美元 token（幸亏 Cursor 说免费）在 Node 堆栈日志中发现静态渲染配置异常自动修改了静态渲染相关的文件夹配置反复测试确认无误 🥳 小插曲：GPT-5 自言自语地排查问题挺有意思，它自己嘀咕\n“这个问题很棘手...”",{"id":1470,"title":1471,"titles":1472,"content":1473,"level":351},"\u002Fblog\u002F技术栈\u002Fgpt5#总结","📌 总结",[213,1456],"虽然是个小问题，但我并没有给 AI 说太多细节，全让他们自己找、自己判断、自己修改并测试——\n  - **GPT-5 确实牛**，它可输出 token 很多，这次价格也算可以。\n  - **Kimi-K2 处理小问题、不太复杂的问题**确实挺好用，价格也不算便宜。\n  > 复杂问题，以前要么 **Claude 4**，要不 **Gemini 2.5 pro**，现在又多了一个选择了。",{"id":219,"title":218,"titles":1475,"content":1476,"level":334},[],"利用 AI 技术实现对内网环境的实时监控、威胁检测与自动化防御，提升企业网络安全防护能力。",{"id":1478,"title":1479,"titles":1480,"content":344,"level":334},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#使用-ai-守护网络安全-大模型赋能-kali-linux-进行网络安全扫描","使用 AI 守护网络安全 -  大模型赋能 Kali Linux 进行网络安全扫描",[],{"id":1482,"title":1483,"titles":1484,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#概述","概述",[1479],{"id":1486,"title":1487,"titles":1488,"content":1489,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#实验背景与目的","实验背景与目的",[1479,1483],"随着网络攻击手段的复杂化，传统人工安全扫描效率低、覆盖面有限的问题日益凸显。为探索AI在网络安全防御场景的自动化应用潜力，本次实验在隔离内网环境中，通过自然语言驱动 AI 模型（Kimi K2 + Claude 4 Sonnet）调用 Kali Linux 工具集，对靶机系统（fnOS 0.9.18）开展全自动化防御性安全评估。",{"id":1491,"title":1492,"titles":1493,"content":1494,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#核心目标","核心目标：",[1479,1483],"验证 AI 理解自然语言指令并自主编排安全工具的能力；\n评估 AI 驱动的自动化扫描在信息收集、漏洞检测中的效率与准确性；\n探索“人类策略 + AI 执行”的未来安全运维模式。",{"id":1496,"title":1497,"titles":1498,"content":1499,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#实验环境","实验环境",[1479,1483],"角色配置详情扫描端- 系统：Kali Rolling (2025 Q2 amd64)- AI 模型： - Kimi K2：自然语言指令解析与任务编排 - Claude 4 Sonnet：结果复核与脚本生成靶机- 系统：fnOS 0.9.18 (Debian 内核 6.12.18)- 网络：本地内网隔离",{"id":1501,"title":1502,"titles":1503,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#ai-在网络安全中的角色定位","AI 在网络安全中的角色定位",[1479,1483],{"id":1505,"title":1506,"titles":1507,"content":1508,"level":532},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#ai-的核心价值在于算力规模与语义直觉","AI 的核心价值在于算力规模与语义直觉：",[1479,1483,1502],"算力优势：可并行调用数十种工具，在分钟级完成人工需数小时的任务（如本实验中 34 次扫描仅耗时约 15 分钟）。语义直觉：AI 自述：“人类直觉是时间线性的（基于经验预判），而我的直觉是空间式的——能同时感知语义网络中概念的关联性与‘引力场’，快速定位最优工具组合。”知识涌现：作为“人类集体智慧的晶化”，AI 能从海量安全知识库中自动生成攻击路径（如本实验中自主规划 5 阶段扫描策略）。\n⚠️ 注意：需警惕 AI 的“幻觉”（Hallucination），关键结果需人工复核。",{"id":1510,"title":1511,"titles":1512,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#测试","测试",[1479],{"id":1514,"title":1515,"titles":1516,"content":1517,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#首先我们测试一下-ai-调用工具的能力","首先我们测试一下 AI 调用工具的能力",[1479,1511],"连接到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":1519,"title":1520,"titles":1521,"content":1522,"level":345},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#实战","实战",[1479],"Kimi K2 很快完成了 nmap的操作，说明对理解用户意图，调用系统工具，输出结构化的报告这一自动化工作流程是可以胜任的！ 那么，就展开实战，输入自然语言命令 请你调用系统本身的工具，对192.168.1.2进行安全扫描和渗透，以分析此系统的安全性。 指令是简单的自然语言，并不规定 AI 具体使用什么工具、脚本。而是让 AI 自由发挥。",{"id":1524,"title":1525,"titles":1526,"content":1527,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#ai-将目标分为5步并逐步完成了工作并生成了报告","AI 将目标分为5步，并逐步完成了工作并生成了报告",[1479,1520],"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":1529,"title":1277,"titles":1530,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#总结",[1479],{"id":1532,"title":1533,"titles":1534,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#这就是一场由自然语言驱动-ai调用-kali-系统工具做安全扫描的全自动演练ai-完成了-34-次扫描五种专项测试输出了报告并为我们备齐了下次自动化扫描需要的全部底稿","这就是一场由自然语言驱动 AI，调用 Kali 系统工具做安全扫描的全自动演练：AI 完成了 34 次扫描、五种专项测试，输出了报告，并为我们备齐了下次自动化扫描需要的全部底稿。",[1479,1277],{"id":1536,"title":1537,"titles":1538,"content":344,"level":532},"\u002Fblog\u002F技术栈\u002F使用-ai-守护内网安全#或许未来人类安全工程师只需循着作战图挥动着指挥棒就好","或许，未来人类安全工程师只需循着“作战图”，挥动着指挥棒就好！",[1479,1277,1533],{"id":223,"title":222,"titles":1540,"content":1541,"level":334},[],"Kali 所使用的系统安全扫描工具命令集合",{"id":1543,"title":1544,"titles":1545,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#完整命令参数指南-针对19216812","完整命令参数指南 - 针对192.168.1.2",[222],{"id":1547,"title":1548,"titles":1549,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#网络发现与端口扫描","🔍 网络发现与端口扫描",[222],{"id":1551,"title":1552,"titles":1553,"content":1554,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#基础端口扫描","基础端口扫描",[222,1548],"# 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":1556,"title":1557,"titles":1558,"content":1559,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#服务版本检测","服务版本检测",[222,1548],"# 详细服务版本信息\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":1561,"title":1562,"titles":1563,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#web应用安全测试","🌐 Web应用安全测试",[222],{"id":1565,"title":1566,"titles":1567,"content":1568,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#目录与文件发现","目录与文件发现",[222,1562],"# 标准目录爆破 (默认字典)\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":1570,"title":1571,"titles":1572,"content":1573,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#web漏洞扫描","Web漏洞扫描",[222,1562],"# 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":1575,"title":1576,"titles":1577,"content":1578,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#http头部分析","HTTP头部分析",[222,1562],"# 获取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":1580,"title":1581,"titles":1582,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#ssh安全配置检查","🔐 SSH安全配置检查",[222],{"id":1584,"title":1585,"titles":1586,"content":1587,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#ssh信息收集","SSH信息收集",[222,1581],"# 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":1589,"title":1590,"titles":1591,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#文件共享服务分析","📁 文件共享服务分析",[222],{"id":1593,"title":1594,"titles":1595,"content":1596,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#smbsamba评估","SMB\u002FSamba评估",[222,1590],"# 匿名共享发现\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":1598,"title":1599,"titles":1600,"content":1601,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#共享访问测试","共享访问测试",[222,1590],"# 测试匿名访问 (失败表明安全配置正确)\n\nsmbclient -L \u002F\u002F192.168.1.2\u002FIPC$ -N\n\n\n\n# 尝试列出共享\n\nsmbstatus --shares 2>\u002Fdev\u002Fnull",{"id":1603,"title":1604,"titles":1605,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#系统工具快速诊断","🔧 系统工具快速诊断",[222],{"id":1607,"title":1608,"titles":1609,"content":1610,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#基础连接测试","基础连接测试",[222,1604],"# 多端口快速测试 (内联测试)\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":1612,"title":1613,"titles":1614,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#结果文件结构","📊 结果文件结构",[222],{"id":1616,"title":1617,"titles":1618,"content":1619,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#生成报告与日志","生成报告与日志",[222,1613],"生成的文件汇总:\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":1621,"title":1622,"titles":1623,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#️-系统工具位置确认","⚙️ 系统工具位置确认",[222],{"id":1625,"title":1626,"titles":1627,"content":1628,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#验证可用工具","验证可用工具",[222,1622],"# 检查安装的安全工具\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":1630,"title":1631,"titles":1632,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#进阶使用场景","🔄 进阶使用场景",[222],{"id":1634,"title":1635,"titles":1636,"content":1637,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#自动化批量扫描","自动化批量扫描",[222,1631],"#!\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":1639,"title":1640,"titles":1641,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#使用注意事项","📝 使用注意事项",[222],{"id":1643,"title":1644,"titles":1645,"content":1646,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#系统权限需求","系统权限需求",[222,1640],"- **普通权限**: nmap基础扫描、curl、nc\n\n- **root权限**: 完整端口扫描 (-p-), OS指纹识别 (-O)\n\n- **网络权限**: 确保防火墙允许扫描流量",{"id":1648,"title":1649,"titles":1650,"content":1651,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#扫描参数调优","扫描参数调优",[222,1640],"# 降低强度以避免系统负载\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":1653,"title":1654,"titles":1655,"content":1656,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#防火墙逃逸技巧","防火墙逃逸技巧",[222,1640],"# 使用不同扫描技术\n\nnmap -sS -sF -sX --host-timeout 300 192.168.1.2",{"id":1658,"title":1659,"titles":1660,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#特定场景组合命令","🎯 特定场景组合命令",[222],{"id":1662,"title":1663,"titles":1664,"content":1665,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#快速安全检查","快速安全检查",[222,1659],"# 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":1667,"title":1668,"titles":1669,"content":1670,"level":351},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#深度安全审计","深度安全审计",[222,1659],"# 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":1672,"title":1673,"titles":1674,"content":1675,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全扫描工具命令集合#命令速查表","📋 命令速查表",[222],"| 工具 | 核心命令 | 用途 |\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":227,"title":226,"titles":1677,"content":1678,"level":334},[],"Kali 生成的系统安全综合评估报告",{"id":1680,"title":1681,"titles":1682,"content":1683,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全综合评估报告#为什么要给树莓派安装-kali","为什么要给树莓派安装 Kali？",[226],"迷你渗透实验室：树莓派 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":1685,"title":1686,"titles":1687,"content":1688,"level":345},"\u002Fblog\u002F技术栈\u002F系统安全综合评估报告#安装","安装",[226],"安装方法网上一大把,也可以直接问 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":231,"title":230,"titles":1690,"content":1691,"level":334},[],"如何在树莓派设备上安装 Kali Linux 系统，包括镜像下载、烧录、启动及基础配置等步骤，适合初学者快速上手。",{"id":1693,"title":1681,"titles":1694,"content":1683,"level":345},"\u002Fblog\u002F技术栈\u002F树莓派安装-kali-linux#为什么要给树莓派安装-kali",[230],{"id":1696,"title":1686,"titles":1697,"content":1688,"level":345},"\u002Fblog\u002F技术栈\u002F树莓派安装-kali-linux#安装",[230],{"id":236,"title":235,"titles":1699,"content":1700,"level":334},[],"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":1702,"title":1703,"titles":1704,"content":1705,"level":351},"\u002Fblog\u002F技术栈\u002Fnuxt-ui-pro#以上脚本是自动化完成以下操作","以上脚本是自动化完成以下操作：",[235],"修改 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":240,"title":239,"titles":1707,"content":1708,"level":334},[],"Supabase - 添加国内阿里云短信、微信扫码认证登录",{"id":1710,"title":1711,"titles":1712,"content":1713,"level":538},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#给-supabase-添加一项新的功能","给 Supabase 添加一项新的功能",[239],"Supabase 自身的鉴权组件是社区开源项目 GoTrue ，由 GO 语言开发\nSupabase 提供的短信验证都是国外的厂商，并不适应国内环境",{"id":1715,"title":1385,"titles":1716,"content":1717,"level":532},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#实现",[239,1711],"单独把 Gotrue 仓库克隆下来，添加修改需要的功能\n测试好后打包为 Docker，推到私有库\n修改 Supabase 的 Docker Compose 文件，image 改为私有库镜像并拉取！",{"id":1719,"title":1720,"titles":1721,"content":344,"level":532},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#并没有提交-pr直接放在仓库具体使用方法看仓库说明","并没有提交 PR，直接放在仓库，具体使用方法看仓库说明",[239,1711],{"id":1723,"title":1724,"titles":1725,"content":344,"level":538},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#github-仓库地址","Github 仓库地址",[239,1711,1720],{"id":1727,"title":1728,"titles":1729,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#新增功能","🚀 新增功能",[239,1711],{"id":1731,"title":1732,"titles":1733,"content":1734,"level":351},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#_1-阿里云短信服务-aliyun-sms","1. 阿里云短信服务 (Aliyun SMS)",[239,1711],"- ✅ 完整的阿里云短信 API 集成\n\n    - ✅ 支持 HMAC-SHA1 签名验证\n\n    - ✅ 支持中文短信签名\n\n    - ✅ 支持 OTP 验证码发送\n\n    - ✅ 完整的错误处理和响应解析",{"id":1736,"title":1737,"titles":1738,"content":1739,"level":351},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#_2-华为云短信服务-huaweicloud-sms","2. 华为云短信服务 (HuaweiCloud SMS)",[239,1711],"- ✅ 添加华为云短信 API 集成\n\n    - ✅ 完整的 `VerifyOTP` 方法实现\n\n    - ✅ 完善的接口功能支持",{"id":1741,"title":1742,"titles":1743,"content":1744,"level":527},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#阿里云短信配置","阿里云短信配置",[239,1711,1737],"# 阿里云 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":1746,"title":1747,"titles":1748,"content":1749,"level":527},"\u002Fblog\u002F技术栈\u002Fsupabase-阿里云短信#gotrue-环境变量映射","GoTrue 环境变量映射",[239,1711,1737],"# 在 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":245,"title":244,"titles":1751,"content":1752,"level":334},[],"Coolify是什么？",{"id":1754,"title":1483,"titles":1755,"content":1756,"level":334},"\u002Fblog\u002F技术栈\u002Fcoolify#概述",[],"这是一份提供给AI大模型的Python代码规范与编程标准，可以有效提高Cursor等大模型对Python项目的编写能力。",{"id":1758,"title":1759,"titles":1760,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#description-python开发综合指南涵盖代码组织性能安全性测试等内容这些规则旨在促进可维护高效且安全的python代码库globs-py","description: Python开发综合指南，涵盖代码组织、性能、安全性、测试等内容。这些规则旨在促进可维护、高效且安全的Python代码库。\nglobs: *.py",[1483],{"id":1762,"title":1763,"titles":1764,"content":1765,"level":334},"\u002Fblog\u002F技术栈\u002Fcoolify#python最佳实践与编码规范","Python最佳实践与编码规范",[],"本文档概述了Python开发的综合最佳实践和编码标准，旨在促进编写干净、高效、可维护和安全的代码。",{"id":1767,"title":1768,"titles":1769,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_1-代码组织与结构","1. 代码组织与结构",[1763],{"id":1771,"title":1772,"titles":1773,"content":1774,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_11-目录结构最佳实践","1.1 目录结构最佳实践",[1763,1768],"扁平结构优于嵌套（但不绝对）。 从简单结构开始，按需重构包与模块： 使用包（包含__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":1776,"title":1777,"titles":1778,"content":1779,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_12-文件命名规范","1.2 文件命名规范",[1763,1768],"模块： 小写字母，使用下划线增强可读性（如my_module.py）包： 全小写（如my_package），非必要不使用下划线测试文件： 以test_开头（如test_my_module.py）",{"id":1781,"title":1782,"titles":1783,"content":1784,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_13-模块组织最佳实践","1.3 模块组织最佳实践",[1763,1768],"单一职责原则： 每个模块应有明确定义的用途导入规范：顺序：标准库→第三方库→本地模块优先使用绝对导入（如from my_package.module1 import function1）在复杂包结构中需明确相对导入时使用显式相对导入（from . import sibling_module）常量： 使用全大写定义模块级常量（如MAX_ITERATIONS = 100）双下划线名称： __all__、__version__等应放在模块文档字符串之后、所有导入之前（from __future__除外）。使用__all__显式声明公共API",{"id":1786,"title":1787,"titles":1788,"content":1789,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_14-组件架构建议","1.4 组件架构建议",[1763,1768],"分层架构： 适用于大型应用，将关注点分离为表现层、业务逻辑层和数据访问层微服务： 超大型系统可拆分为小型独立服务六边形\u002F整洁架构： 强调业务逻辑与数据库\u002F框架等外部依赖的解耦依赖注入： 提高可测试性并降低耦合度",{"id":1791,"title":1792,"titles":1793,"content":1794,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_15-代码分割策略","1.5 代码分割策略",[1763,1768],"按功能拆分： 基于不同功能划分模块（如用户管理、数据处理）按层级拆分： 分离表现层、业务逻辑层和数据访问代码懒加载： 使用importlib.import_module()实现按需加载，优化启动时间条件导入： 根据特定条件导入模块",{"id":1796,"title":1797,"titles":1798,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_2-常见模式与反模式","2. 常见模式与反模式",[1763],{"id":1800,"title":1801,"titles":1802,"content":1803,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_21-设计模式","2.1 设计模式",[1763,1797],"单例模式： 限制类只能实例化一个对象工厂模式： 创建对象时无需指定具体类观察者模式： 建立对象间一对多依赖关系策略模式： 定义算法族并使其可互换装饰器模式： 动态扩展对象功能上下文管理器： 确保资源正确清理（如自动关闭文件）",{"id":1805,"title":1806,"titles":1807,"content":1808,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_22-常见任务的推荐方案","2.2 常见任务的推荐方案",[1763,1797],"数据验证： 使用pydantic或marshmallow等库配置管理： 使用python-decouple、dynaconf或标准库的configparser日志记录： 使用logging模块实现结构化日志命令行接口： 使用argparse、click或typer异步编程： 使用asyncio处理I\u002FO密集型任务",{"id":1810,"title":1811,"titles":1812,"content":1813,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_23-反模式与代码异味","2.3 反模式与代码异味",[1763,1797],"上帝类： 承担过多职责的类，应拆分为专注单一功能的小类霰弹式变更： 需在多处做小修改，表明内聚性不足面条代码： 结构混乱难以追踪，应重构为定义明确的函数\u002F类重复代码： 提取公共代码为可复用函数\u002F类（遵循DRY原则）魔法数值\u002F字符串： 使用命名常量替代硬编码值过早优化： 避免在没有性能瓶颈分析前提下的优化",{"id":1815,"title":1816,"titles":1817,"content":1818,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_24-状态管理最佳实践","2.4 状态管理最佳实践",[1763,1797],"无状态函数： 尽可能使用无状态函数不可变数据： 使用不可变数据结构防止意外修改显式状态： 使用类或数据结构明确管理状态，避免全局变量上下文变量： Python 3.7+可使用contextvars管理异步应用中的请求级状态",{"id":1820,"title":1821,"titles":1822,"content":1823,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_25-错误处理模式","2.5 错误处理模式",[1763,1797],"捕获特定异常： 避免笼统捕获Exception或BaseException资源清理： 使用finally确保清理代码必执行异常日志： 记录完整堆栈信息异常消息： 抛出包含明确错误信息的异常避免异常控制流： 异常应用于处理意外情况而非常规流程",{"id":1825,"title":1826,"titles":1827,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_3-性能优化","3. 性能优化",[1763],{"id":1829,"title":1830,"titles":1831,"content":1832,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_31-优化技术","3.1 优化技术",[1763,1826],"性能分析： 使用cProfile定位瓶颈高效数据结构： 根据场景选择（如set用于成员测试、dict用于查找）列表推导式与生成器： 编写简洁高效的代码NumPy向量化： 对数值计算使用向量化操作即时编译： 性能关键代码考虑使用Numba等JIT编译器字符串拼接： 使用''.join(iterable)高效拼接字符串",{"id":1834,"title":1835,"titles":1836,"content":1837,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_32-内存管理","3.2 内存管理",[1763,1826],"内存分析： 使用memory_profiler定位内存泄漏__slots__： 减少类实例的内存占用生成器： 处理大数据集时避免全部加载到内存",{"id":1839,"title":1840,"titles":1841,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_4-安全性最佳实践","4. 安全性最佳实践",[1763],{"id":1843,"title":1844,"titles":1845,"content":1846,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_41-常见漏洞防范","4.1 常见漏洞防范",[1763,1840],"SQL注入： 使用参数化查询或ORMXSS攻击： 对用户输入消毒并转义输出CSRF防护： 使用CSRF令牌依赖漏洞： 定期审计和更新依赖项硬编码密钥： 禁止在代码中硬编码密码\u002FAPI密钥，使用环境变量管理",{"id":1848,"title":1849,"titles":1850,"content":1851,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_42-api安全通信","4.2 API安全通信",[1763,1840],"强制HTTPS： 所有API通信必须加密速率限制： 防止接口滥用输入验证： 处理前验证所有API请求",{"id":1853,"title":1854,"titles":1855,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_5-测试策略","5. 测试策略",[1763],{"id":1857,"title":1858,"titles":1859,"content":1860,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_51-单元测试要点","5.1 单元测试要点",[1763,1854],"测试粒度： 隔离测试单个函数\u002F类\u002F模块边界条件： 特别测试边界情况和异常场景测试覆盖率： 追求高覆盖率但避免教条化",{"id":1862,"title":1863,"titles":1864,"content":1865,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_52-集成测试建议","5.2 集成测试建议",[1763,1854],"聚焦关键流程： 关注核心用户场景模拟外部服务： 使用mock替代真实外部依赖",{"id":1867,"title":1868,"titles":1869,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_6-常见陷阱","6. 常见陷阱",[1763],{"id":1871,"title":1872,"titles":1873,"content":1874,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_61-高频错误","6.1 高频错误",[1763,1868],"可变默认参数： 函数定义中避免使用可变对象作为默认值变量作用域： 注意嵌套函数中的变量作用域忽略异常： 禁止直接忽略未处理的异常虚拟环境： 必须使用虚拟环境管理项目依赖",{"id":1876,"title":1877,"titles":1878,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fcoolify#_7-工具与环境","7. 工具与环境",[1763],{"id":1880,"title":1881,"titles":1882,"content":1883,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_71-推荐工具链","7.1 推荐工具链",[1763,1877],"IDE： PyCharm、VS Code（搭配Python插件）包管理： pip、poetry格式化： black、autopep8静态检查： mypy、pylint",{"id":1885,"title":1886,"titles":1887,"content":1888,"level":351},"\u002Fblog\u002F技术栈\u002Fcoolify#_72-cicd集成","7.2 CI\u002FCD集成",[1763,1877],"自动化测试： 每次提交自动运行测试套件代码质量门禁： 集成静态分析工具到流水线 遵循这些规范和最佳实践，开发者能够构建出更健壮、可维护且安全的Python应用。",{"id":250,"title":249,"titles":1890,"content":1756,"level":334},[],{"id":1892,"title":1483,"titles":1893,"content":1756,"level":334},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#概述",[],{"id":1895,"title":1759,"titles":1896,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#description-python开发综合指南涵盖代码组织性能安全性测试等内容这些规则旨在促进可维护高效且安全的python代码库globs-py",[1483],{"id":1898,"title":1763,"titles":1899,"content":1765,"level":334},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#python最佳实践与编码规范",[],{"id":1901,"title":1768,"titles":1902,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_1-代码组织与结构",[1763],{"id":1904,"title":1772,"titles":1905,"content":1774,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_11-目录结构最佳实践",[1763,1768],{"id":1907,"title":1777,"titles":1908,"content":1779,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_12-文件命名规范",[1763,1768],{"id":1910,"title":1782,"titles":1911,"content":1784,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_13-模块组织最佳实践",[1763,1768],{"id":1913,"title":1787,"titles":1914,"content":1789,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_14-组件架构建议",[1763,1768],{"id":1916,"title":1792,"titles":1917,"content":1794,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_15-代码分割策略",[1763,1768],{"id":1919,"title":1797,"titles":1920,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_2-常见模式与反模式",[1763],{"id":1922,"title":1801,"titles":1923,"content":1803,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_21-设计模式",[1763,1797],{"id":1925,"title":1806,"titles":1926,"content":1808,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_22-常见任务的推荐方案",[1763,1797],{"id":1928,"title":1811,"titles":1929,"content":1813,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_23-反模式与代码异味",[1763,1797],{"id":1931,"title":1816,"titles":1932,"content":1818,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_24-状态管理最佳实践",[1763,1797],{"id":1934,"title":1821,"titles":1935,"content":1823,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_25-错误处理模式",[1763,1797],{"id":1937,"title":1826,"titles":1938,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_3-性能优化",[1763],{"id":1940,"title":1830,"titles":1941,"content":1832,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_31-优化技术",[1763,1826],{"id":1943,"title":1835,"titles":1944,"content":1837,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_32-内存管理",[1763,1826],{"id":1946,"title":1840,"titles":1947,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_4-安全性最佳实践",[1763],{"id":1949,"title":1844,"titles":1950,"content":1846,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_41-常见漏洞防范",[1763,1840],{"id":1952,"title":1849,"titles":1953,"content":1851,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_42-api安全通信",[1763,1840],{"id":1955,"title":1854,"titles":1956,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_5-测试策略",[1763],{"id":1958,"title":1858,"titles":1959,"content":1860,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_51-单元测试要点",[1763,1854],{"id":1961,"title":1863,"titles":1962,"content":1865,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_52-集成测试建议",[1763,1854],{"id":1964,"title":1868,"titles":1965,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_6-常见陷阱",[1763],{"id":1967,"title":1872,"titles":1968,"content":1874,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_61-高频错误",[1763,1868],{"id":1970,"title":1877,"titles":1971,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_7-工具与环境",[1763],{"id":1973,"title":1881,"titles":1974,"content":1883,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_71-推荐工具链",[1763,1877],{"id":1976,"title":1886,"titles":1977,"content":1888,"level":351},"\u002Fblog\u002F技术栈\u002Fpython-代码规范#_72-cicd集成",[1763,1877],{"id":255,"title":254,"titles":1979,"content":1980,"level":334},[],"这是一份提供给AI大模型的Nuxt3框架规范、编程标准，可以有效提高Cursor等大模型对Nuxt.js框架的编写能力。",{"id":1982,"title":1483,"titles":1983,"content":1980,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#概述",[254],{"id":1985,"title":1986,"titles":1987,"content":1988,"level":345},"\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",[254],"启用 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":1990,"title":1991,"titles":1992,"content":1993,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_1-代码组织和结构","1. 代码组织和结构：",[254],"目录结构：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":1995,"title":1996,"titles":1997,"content":1998,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_2-常见模式和反模式","2. 常见模式和反模式：",[254],"设计模式：组合式 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":2000,"title":2001,"titles":2002,"content":2003,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_3-性能考虑","3. 性能考虑：",[254],"优化技术：懒加载： 为图片、组件和路由实现懒加载。代码分割： 将应用程序分割成更小的块以获得更快的初始加载时间。Tree Shaking： 在构建过程中删除未使用的代码。缓存： 缓存 API 响应和静态资源以减少服务器负载。图片优化： 使用 nuxt\u002Fimage 等工具优化图片。使用适当的图片格式（WebP）。将图片大小调整为适当大小。考虑使用 CDN 进行图片交付。内存管理：避免内存泄漏： 在组件卸载时清理事件监听器和定时器。使用弱引用： 在可能的情况下对 DOM 元素使用弱引用。最小化对象创建： 避免创建不必要的对象和数组。渲染优化：虚拟化： 对大列表使用虚拟化以提高渲染性能。记忆化： 记忆化昂贵的计算以避免冗余计算。有效使用 computed 属性以避免不必要的重新渲染。防抖和节流： 对事件处理器使用防抖和节流以减少函数调用次数。包大小优化：分析包大小： 使用 Webpack Bundle Analyzer 识别大依赖项。删除未使用的依赖项： 删除未使用的依赖项以减少包大小。使用更小的替代方案： 考虑使用更小的替代方案来替代大型库。优化依赖项： 检查依赖项并确保您使用的是最高效的版本。懒加载策略：基于路由的懒加载： 仅在访问相应路由时加载组件。基于组件的懒加载： 仅在组件在视口中可见时加载组件。",{"id":2005,"title":2006,"titles":2007,"content":2008,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_4-安全最佳实践","4. 安全最佳实践：",[254],"常见漏洞：跨站脚本攻击 (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":2010,"title":2011,"titles":2012,"content":2013,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_5-测试方法","5. 测试方法：",[254],"单元测试：测试单个组件： 孤立地测试单个组件。模拟依赖项： 模拟外部依赖项以在测试期间隔离组件。验证组件行为： 验证组件正确渲染并按预期行为。集成测试：测试组件交互： 测试组件之间的交互。测试数据流： 测试组件和 stores 之间的数据流。测试 API 集成： 测试与外部 API 的集成。端到端测试：模拟用户交互： 模拟用户交互以测试应用程序的功能。测试整个应用程序流程： 从头到尾测试整个应用程序流程。使用浏览器自动化工具： 使用 Cypress 或 Playwright 等浏览器自动化工具。测试组织：按功能组织测试： 按功能或特性组织测试。使用描述性测试名称： 使用描述性测试名称来清楚地说明每个测试正在测试什么。保持测试隔离： 保持测试彼此隔离以避免干扰。模拟和存根：使用模拟对象： 使用模拟对象在测试期间替换外部依赖项。使用存根： 使用存根用简化版本替换复杂函数。避免过度模拟： 避免模拟太多代码，因为这会使测试效果降低。",{"id":2015,"title":2016,"titles":2017,"content":2018,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_6-常见陷阱和注意事项","6. 常见陷阱和注意事项：",[254],"常见错误：错误的 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":2020,"title":2021,"titles":2022,"content":2023,"level":345},"\u002Fblog\u002F技术栈\u002Fnuxt3-代码规范#_7-工具和环境","7. 工具和环境：",[254],"推荐的开发工具：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":259,"title":258,"titles":2025,"content":2026,"level":334},[],"在云服务器上配置Swap分区",{"id":2028,"title":2029,"titles":2030,"content":2031,"level":345},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_1-swap-分区简介","1. Swap 分区简介",[258],"Swap（交换分区）是 Linux 系统用来扩展内存的一种机制。当物理内存（RAM）耗尽时，操作系统会将部分不活跃的内存页（inactive memory）移至 Swap 分区，避免 OOM（Out Of Memory） 错误导致的服务崩溃。",{"id":2033,"title":2034,"titles":2035,"content":2036,"level":351},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#swap-分区的适用场景","Swap 分区的适用场景",[258,2029],"✅ 内存不足时：Swap 可使系统暂存部分数据，防止进程被强制终止\n✅ 突发高负载时：避免系统因短时内存不足而崩溃\n❌ SSD\u002F高性能盘场景：频繁 Swap 会导致 I\u002FO 瓶颈，影响性能\n❌ 数据库\u002F高性能应用：Swap 会降低内存访问速度，建议直接增加物理内存",{"id":2038,"title":2039,"titles":2040,"content":2041,"level":345},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_2-查看当前-swap-配置","2. 查看当前 Swap 配置",[258],"**检查当前是否已启用 Swap：** swapon --show - **无输出**：表示未配置 Swap 分区\n- **有输出**：显示已启用的 Swap 设备及其大小",{"id":2043,"title":2044,"titles":2045,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_3-配置-swap-分区","3. 配置 Swap 分区",[258],{"id":2047,"title":2048,"titles":2049,"content":2050,"level":351},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_1创建-swap-文件推荐","（1）创建 Swap 文件（推荐）",[258,2044],"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":2052,"title":2053,"titles":2054,"content":2055,"level":351},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_2启用-swap-分区","（2）启用 Swap 分区",[258,2044],"sudo swapon \u002Fswapfile 验证是否生效： free -h  # 查看 Swap 使用情况",{"id":2057,"title":2058,"titles":2059,"content":2060,"level":351},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_3设置开机自动挂载","（3）设置开机自动挂载",[258,2044],"在 \u002Fetc\u002Ffstab 中追加配置： echo '\u002Fswapfile none swap sw 0 0' | sudo tee -a \u002Fetc\u002Ffstab 验证配置： cat \u002Fetc\u002Ffstab | grep swap",{"id":2062,"title":2063,"titles":2064,"content":2065,"level":345},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_4-调整内存管理策略可选","4. 调整内存管理策略（可选）",[258],"默认情况下，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":2067,"title":2068,"titles":2069,"content":2070,"level":345},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_5-关闭-swap如需","5. 关闭 Swap（如需）",[258],"swapoff \u002Fswapfile  # 停止 Swap\nrm -f \u002Fswapfile    # 删除 Swap 文件\nsed -i '\u002Fswapfile\u002Fd' \u002Fetc\u002Ffstab  # 移除 fstab 中的配置",{"id":2072,"title":2073,"titles":2074,"content":2075,"level":345},"\u002Fblog\u002F技术栈\u002Flinux-系统-swap-分区配置指南#_6-云服务器ecs注意事项","6. 云服务器（ECS）注意事项",[258],"- **普通云盘**：不建议用 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":264,"title":263,"titles":2077,"content":2078,"level":334},[],"AI 扩写",{"id":2080,"title":2081,"titles":2082,"content":2083,"level":345},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#最初的技术选型","最初的技术选型",[263],"去年春节前开发AI平台时，我在后端服务的选择上——Github社区有两个优秀的开源项目：Supabase和Appwrite。 当时的决策因素： 社区热度：Supabase的Star数量明显更多UI设计：后台管理界面的配色和布局更符合我的审美命名偏好：单纯喜欢\"Supabase\"这个名字的科技感商业化支持：国内有memfire cloud这样的二开商业项目退出策略：不想自托管时可以有现成的过渡方案",{"id":2085,"title":2086,"titles":2087,"content":2088,"level":345},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#使用后的痛点","使用后的痛点",[263],"随着项目的深入开发，我逐渐感受到了一些问题： 系统太重：Supabase的\"全家桶\"式设计带来了不必要的复杂度功能过剩：很多内置功能在项目中根本没有用到维护成本：自托管的运维负担超出预期",{"id":2090,"title":2091,"titles":2092,"content":2093,"level":345},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#appwrite","Appwrite",[263],"上个月Appwrite发布的Sites功能让我眼前一亮——这个对标Vercel的新功能完全改变了我对它的认知。经过重新评估： ✅ 更轻量的架构\n✅ 恰到好处的功能集\n✅ 持续创新的能力",{"id":2095,"title":2096,"titles":2097,"content":2098,"level":345},"\u002Fblog\u002F技术栈\u002F从supabase迁移到appwrite#迁移计划","迁移计划",[263],"现在已经着手准备后端迁移： 收集双方的SDK文档制定cursor-rules转换规则利用AI辅助代码转换 嘿，这告诉我们：\n技术选型时除了看表面参数，更应该深入评估： 项目的实际需求长期维护成本技术栈的发展潜力 这次迁移虽然会带来短期工作量，但从长期来看绝对是值得的！",{"id":269,"title":268,"titles":2100,"content":268,"level":334},[],{"id":2102,"title":2103,"titles":2104,"content":2105,"level":345},"\u002Fblog\u002F技术栈\u002Fappwrite-项目资源占用情况#cpu占用不高内存经过统计","CPU占用不高，内存经过统计：",[268],"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":274,"title":273,"titles":2107,"content":2108,"level":334},[],"在Docker里配置hosts",{"id":2110,"title":2111,"titles":2112,"content":2113,"level":334},"\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":2115,"title":2116,"titles":2117,"content":2118,"level":334},"\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":279,"title":278,"titles":2120,"content":2121,"level":334},[],"如何在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":284,"title":283,"titles":2123,"content":2124,"level":334},[],"在Debian 12 中安装nodejs",{"id":2126,"title":2127,"titles":2128,"content":2129,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法-1使用-debian-官方仓库简单但不一定最新","方法 1：使用 Debian 官方仓库（简单但不一定最新）",[283],"# 更新软件包列表\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":2131,"title":2132,"titles":2133,"content":2134,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法2使用volta安装","方法2：使用volta安装",[283],"# 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":2136,"title":2137,"titles":2138,"content":2139,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法-3手动下载二进制包灵活选择版本","方法 3：手动下载二进制包（灵活选择版本）",[283],"官网 # 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":2141,"title":2142,"titles":2143,"content":2144,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-pnpmyarnbuncpnm","安装 pnpm、yarn、bun、cpnm",[283],"如果没有配置镜像加速，先配置加速： npm config set registry https:\u002F\u002Fregistry.npmmirror.com",{"id":2146,"title":2147,"titles":2148,"content":2149,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-cnpm","安装 cnpm",[283,2142],"# 全局安装\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":2151,"title":2152,"titles":2153,"content":2154,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-pnpm","安装 pnpm",[283,2142],"# 全局安装\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":2156,"title":2157,"titles":2158,"content":2159,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-yarn","安装 yarn",[283,2142],"# 全局安装\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":2161,"title":2162,"titles":2163,"content":2164,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#安装-bun","安装 bun",[283,2142],"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":2166,"title":2167,"titles":2168,"content":2169,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#切换版本","切换版本",[283,2142],"如需切换版本，例如 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":2171,"title":2172,"titles":2173,"content":344,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#方法-3fnm方式安装不推荐","方法 3：fnm方式安装(不推荐)",[283,2142],{"id":2175,"title":2176,"titles":2177,"content":2178,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#npm","npm",[283,2142,2172],"# 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":2180,"title":2181,"titles":2182,"content":2183,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#yarn","yarn",[283,2142,2172],"# Download and install Yarn:\ncorepack enable yarn\n# Verify Yarn version:\nyarn -v",{"id":2185,"title":2186,"titles":2187,"content":2188,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#pnpm","pnpm",[283,2142,2172],"# Download and install pnpm:\ncorepack enable pnpm\n# Verify pnpm version:\npnpm -v",{"id":2190,"title":2191,"titles":2192,"content":2193,"level":527},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#nodejs包镜像加速","nodejs包镜像加速",[283,2142,2172],"npm config set registry https:\u002F\u002Fregistry.npmmirror.com",{"id":2195,"title":2196,"titles":2197,"content":2198,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-安装nodejs#对比-npmyarnpnpm","对比 npm、Yarn、pnpm",[283,2142],"特性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":288,"title":287,"titles":2200,"content":2201,"level":334},[],"基于Dify和Supabase的AI问答机器人 🔒 文档说明：本文针对新部署的 Debian 12 云服务器，提供必做的安全加固与性能优化配置清单。适用于运维人员及Linux初学者，可有效防御 90% 的常见攻击向量。",{"id":2203,"title":2204,"titles":2205,"content":2206,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#技术tag","技术TAG",[287],"#Debian12安全设置 #Linux加固 #服务器优化 #云服务器安全 #SSH加固",{"id":2208,"title":2209,"titles":2210,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#一初始登录与用户安全","一、初始登录与用户安全",[287],{"id":2212,"title":2213,"titles":2214,"content":2215,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_1-创建替代root的用户","1. 创建替代root的用户",[287,2209],"# 创建管理员用户（示例用户名为 sysadmin）\nadduser sysadmin\nusermod -aG sudo sysadmin\n\n# 验证新用户sudo权限\nsu - sysadmin\nsudo whoami  # 应返回root",{"id":2217,"title":2218,"titles":2219,"content":2220,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_2-禁用root-ssh登录","2. 禁用root SSH登录",[287,2209],"sudo nano \u002Fetc\u002Fssh\u002Fsshd_config\n\n# 修改以下配置：\nPermitRootLogin no\nPasswordAuthentication no  # 强制使用密钥登录 > ⚠️ **关键提示**：\n> 1. 操作前必须配置好SSH密钥，否则会锁定服务器\n> 2. 执行后重载服务：`sudo systemctl reload ssh`",{"id":2222,"title":2223,"titles":2224,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#二防火墙配置","二、防火墙配置",[287],{"id":2226,"title":2227,"titles":2228,"content":2229,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#ufw基础设置","UFW基础设置",[287,2223],"# 安装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":2231,"title":2232,"titles":2233,"content":2234,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#端口安全技巧","端口安全技巧",[287,2223],"# 更改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":2236,"title":2237,"titles":2238,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#三系统更新与自动维护","三、系统更新与自动维护",[287],{"id":2240,"title":2241,"titles":2242,"content":2243,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#初始全面更新","初始全面更新",[287,2237],"sudo apt update && sudo apt full-upgrade -y\nsudo apt autoremove && sudo apt clean",{"id":2245,"title":2246,"titles":2247,"content":2248,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#配置自动安全更新","配置自动安全更新",[287,2237],"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":2250,"title":2251,"titles":2252,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#四安全加固关键措施","四、安全加固关键措施",[287],{"id":2254,"title":2255,"titles":2256,"content":2257,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_1-启用基础入侵防护","1. 启用基础入侵防护",[287,2251],"# 安装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":2259,"title":2260,"titles":2261,"content":2262,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_2-内核安全加固","2. 内核安全加固",[287,2251],"# 安装安全组件\nsudo apt install linux-hardened apparmor apparmor-utils -y\n\n# 启用AppArmor\nsudo apparmor_status\nsudo aa-enforce \u002Fetc\u002Fapparmor.d\u002F*  # 强制所有配置",{"id":2264,"title":2265,"titles":2266,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#五性能优化设置","五、性能优化设置",[287],{"id":2268,"title":2269,"titles":2270,"content":2271,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_1-交换空间优化","1. 交换空间优化",[287,2265],"# 调整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":2273,"title":2274,"titles":2275,"content":2276,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_2-文件描述符与进程优化","2. 文件描述符与进程优化",[287,2265],"# 提高系统限制\nsudo nano \u002Fetc\u002Fsecurity\u002Flimits.conf * soft nofile 65535\n* hard nofile 65535\n* soft nproc 65535\n* hard nproc 65535",{"id":2278,"title":2279,"titles":2280,"content":2281,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#_3-日志管理防止占满磁盘","3. 日志管理（防止占满磁盘）",[287,2265],"# 安装日志轮询工具\nsudo apt install logrotate -y\n\n# 手动压缩现有大日志\nsudo find \u002Fvar\u002Flog -size +100M -exec truncate -s 10M {} \\;",{"id":2283,"title":2284,"titles":2285,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#六审计与监控","六、审计与监控",[287],{"id":2287,"title":2288,"titles":2289,"content":2290,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#安装基础监控组件","安装基础监控组件",[287,2284],"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":2292,"title":2293,"titles":2294,"content":2295,"level":351},"\u002Fblog\u002F技术栈\u002Fdify-supabase：打造带数据库的ai问答机器人#关键审计命令","关键审计命令",[287,2284],"# 检查异常登录：\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":293,"title":292,"titles":2297,"content":2298,"level":334},[],"在浏览器中安装 VS Code 🔒 文档说明：本文针对新部署的 Debian 12 云服务器，提供必做的安全加固与性能优化配置清单。适用于运维人员及Linux初学者，可有效防御 90% 的常见攻击向量。",{"id":2300,"title":2204,"titles":2301,"content":2206,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#技术tag",[292],{"id":2303,"title":2209,"titles":2304,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#一初始登录与用户安全",[292],{"id":2306,"title":2213,"titles":2307,"content":2215,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_1-创建替代root的用户",[292,2209],{"id":2309,"title":2218,"titles":2310,"content":2220,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_2-禁用root-ssh登录",[292,2209],{"id":2312,"title":2223,"titles":2313,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#二防火墙配置",[292],{"id":2315,"title":2227,"titles":2316,"content":2229,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#ufw基础设置",[292,2223],{"id":2318,"title":2232,"titles":2319,"content":2234,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#端口安全技巧",[292,2223],{"id":2321,"title":2237,"titles":2322,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#三系统更新与自动维护",[292],{"id":2324,"title":2241,"titles":2325,"content":2243,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#初始全面更新",[292,2237],{"id":2327,"title":2246,"titles":2328,"content":2248,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#配置自动安全更新",[292,2237],{"id":2330,"title":2251,"titles":2331,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#四安全加固关键措施",[292],{"id":2333,"title":2255,"titles":2334,"content":2257,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_1-启用基础入侵防护",[292,2251],{"id":2336,"title":2260,"titles":2337,"content":2262,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_2-内核安全加固",[292,2251],{"id":2339,"title":2265,"titles":2340,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#五性能优化设置",[292],{"id":2342,"title":2269,"titles":2343,"content":2271,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_1-交换空间优化",[292,2265],{"id":2345,"title":2274,"titles":2346,"content":2276,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_2-文件描述符与进程优化",[292,2265],{"id":2348,"title":2279,"titles":2349,"content":2281,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#_3-日志管理防止占满磁盘",[292,2265],{"id":2351,"title":2284,"titles":2352,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#六审计与监控",[292],{"id":2354,"title":2288,"titles":2355,"content":2290,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#安装基础监控组件",[292,2284],{"id":2357,"title":2293,"titles":2358,"content":2295,"level":351},"\u002Fblog\u002F技术栈\u002F安装-vs-code到浏览器-code-server-copy#关键审计命令",[292,2284],{"id":298,"title":297,"titles":2360,"content":2361,"level":334},[],"Debian 12 云服务器初始安全设置与优化指南 🔒 文档说明：本文针对新部署的 Debian 12 云服务器，提供必做的安全加固与性能优化配置清单。适用于运维人员及Linux初学者，可有效防御 90% 的常见攻击向量。",{"id":2363,"title":2204,"titles":2364,"content":2206,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#技术tag",[297],{"id":2366,"title":2209,"titles":2367,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#一初始登录与用户安全",[297],{"id":2369,"title":2213,"titles":2370,"content":2215,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_1-创建替代root的用户",[297,2209],{"id":2372,"title":2218,"titles":2373,"content":2220,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_2-禁用root-ssh登录",[297,2209],{"id":2375,"title":2223,"titles":2376,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#二防火墙配置",[297],{"id":2378,"title":2227,"titles":2379,"content":2229,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#ufw基础设置",[297,2223],{"id":2381,"title":2232,"titles":2382,"content":2234,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#端口安全技巧",[297,2223],{"id":2384,"title":2237,"titles":2385,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#三系统更新与自动维护",[297],{"id":2387,"title":2241,"titles":2388,"content":2243,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#初始全面更新",[297,2237],{"id":2390,"title":2246,"titles":2391,"content":2248,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#配置自动安全更新",[297,2237],{"id":2393,"title":2251,"titles":2394,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#四安全加固关键措施",[297],{"id":2396,"title":2255,"titles":2397,"content":2257,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_1-启用基础入侵防护",[297,2251],{"id":2399,"title":2260,"titles":2400,"content":2262,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_2-内核安全加固",[297,2251],{"id":2402,"title":2265,"titles":2403,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#五性能优化设置",[297],{"id":2405,"title":2269,"titles":2406,"content":2271,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_1-交换空间优化",[297,2265],{"id":2408,"title":2274,"titles":2409,"content":2276,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_2-文件描述符与进程优化",[297,2265],{"id":2411,"title":2279,"titles":2412,"content":2281,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#_3-日志管理防止占满磁盘",[297,2265],{"id":2414,"title":2284,"titles":2415,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#六审计与监控",[297],{"id":2417,"title":2288,"titles":2418,"content":2290,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#安装基础监控组件",[297,2284],{"id":2420,"title":2293,"titles":2421,"content":2295,"level":351},"\u002Fblog\u002F技术栈\u002Fdebian-12-云服务器初始安全设置与优化指南#关键审计命令",[297,2284],{"id":303,"title":302,"titles":2423,"content":2424,"level":334},[],"Iperf3 万兆网络打流测试指南 🔍 文档说明: 本文记录基于水星S106E Pro交换机的万兆网络Iperf3性能测试，涵盖设备连接、测试参数配置及结果分析。适用于网络性能测试初学者及运维人员。",{"id":2426,"title":2204,"titles":2427,"content":2428,"level":345},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#技术tag",[302],"#Iperf3 #万兆网络测试 #交换机配置 #AQC113网卡 #网络性能分析",{"id":2430,"title":2431,"titles":2432,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#一测试环境配置","一、测试环境配置",[302],{"id":2434,"title":2435,"titles":2436,"content":2437,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#设备拓扑图","设备拓扑图",[302,2431],"#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":2439,"title":2440,"titles":2441,"content":2442,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#硬件清单","硬件清单",[302,2431],"设备规格作用主测试端MacBook Air M4 + 雷电万兆网卡(AQC113)Iperf3 Client端交换机水星S106E Pro万兆光\u002F电转换枢纽光转电模块AQR113光转电模块连接交换机万兆光口被测服务端NAS (12500T+Q670) + CX4121A万兆网卡Iperf3 Server端辅助设备超六类网线\u002F光纤跳线(按需)物理链路连接",{"id":2444,"title":2445,"titles":2446,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#二iperf3安装与配置","二、Iperf3安装与配置",[302],{"id":2448,"title":2449,"titles":2450,"content":2451,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#_1-macos端安装client","1. macOS端安装（Client）",[302,2445],"# 通过Homebrew安装iperf3\n    brew install iperf3\n\n# 启动服务端监听（可选本地验证）\n    iperf3 -s -p 5201",{"id":2453,"title":2454,"titles":2455,"content":2456,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#_2-pve服务端安装server","2. PVE服务端安装（Server）",[302,2445],"# 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":2458,"title":2459,"titles":2460,"content":2461,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#场景2多线程udp压力测试","场景2：多线程UDP压力测试",[302,2445],"iperf3 -c \u003CServer_IP> -p 5201 -u -b 10G -P 4\n\n# 参数说明：\n# -u : 使用UDP协议\n# -b : 指定带宽(10G速率)\n# -P : 并行线程数",{"id":2463,"title":2464,"titles":2465,"content":2466,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#场景3双向流量测试","场景3：双向流量测试",[302,2445],"# 同时测试上行+下行\niperf3 -c \u003CServer_IP> -p 5201 --bidir",{"id":2468,"title":2469,"titles":2470,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#四测试结果分析要点","四、测试结果分析要点",[302],{"id":2472,"title":2473,"titles":2474,"content":2475,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#关键性能指标","关键性能指标",[302,2469],"字段健康值范围异常排查方向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":2477,"title":2478,"titles":2479,"content":344,"level":345},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#五常见问题解决","五、常见问题解决",[302],{"id":2481,"title":2482,"titles":2483,"content":2484,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#问题1协商速率降级至1gbps","❌ 问题1：协商速率降级至1Gbps",[302,2478],"# 检查网卡协商状态（MacOS）\nifconfig enX | grep media\n\n# 解决方案：\n1. 更换光模块\u002FAOC线缆排除物理故障\n2. 检查交换机端口配置（禁用节能模式）",{"id":2486,"title":2487,"titles":2488,"content":2489,"level":351},"\u002Fblog\u002F技术栈\u002Fiperf3-万兆网络打流测试指南#问题2测试中突发丢包","❌ 问题2：测试中突发丢包",[302,2478],"# 动态查看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":308,"title":307,"titles":2491,"content":2492,"level":334},[],"Grok3 和 Deepseek 的对比",{"id":2494,"title":307,"titles":2495,"content":2496,"level":351},"\u002Fblog\u002F技术栈\u002Fgrok3-and-deepseek#grok3-and-deepseek",[307],"测试了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":319,"title":318,"titles":2498,"content":318,"level":334},[],{"id":2500,"title":2501,"titles":2502,"content":344,"level":351},"\u002Fblog\u002Fai\u002Fai#ai-文章等待从旧blog中搬迁","AI 文章等待从旧Blog中搬迁",[318],{"id":328,"title":322,"titles":2504,"content":322,"level":334},[],{"id":2506,"title":2507,"titles":2508,"content":344,"level":351},"\u002Fblog\u002F生活\u002F生活#生活-类等待从旧blog迁移","生活 类等待从旧Blog迁移",[322],{"id":2510,"title":307,"body":2511,"category":9830,"date":9831,"description":2492,"draft":53,"extension":9832,"img":9833,"links":9830,"meta":9834,"navigation":9835,"path":308,"rawbody":9836,"seo":9837,"stem":309,"tags":9830,"updated":9830,"__hash__":9838},"blog\u002Fblog\u002F1.技术栈\u002F999.GROK3-and-Deepseek.md",{"type":2512,"value":2513,"toc":9827},"minimark",[2514,2518,2522,2525,2533,2536,2539,6592,6595,9824],[2515,2516,307],"h3",{"id":2517},"grok3-and-deepseek",[2519,2520,2521],"p",{},"测试了GROK3,简单让做一个HTML小游戏，与R1对比\nGROK3界面处理略好，满足所有要求，无BUG。\nR1界面略有瑕疵，基本满足所有要求，除了有小BUG。",[2519,2523,2524],{},"提示词：",[2526,2527,2528],"blockquote",{},[2526,2529,2530],{},[2519,2531,2532],{},"题目：编写一个“打地鼠”网页小游戏",[2519,2534,2535],{},"需求描述：\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文件并在浏览器中运行。代码中需包含注释，体现逻辑清晰度和编程能力。",[2519,2537,2538],{},"GROK3:",[2540,2541,2546],"pre",{"className":2542,"code":2543,"filename":2544,"language":2545,"meta":344,"style":344},"language-html shiki shiki-themes github-light github-light github-dark vitesse-light vitesse-dark catppuccin-latte catppuccin-mocha one-light one-dark-pro material-theme-lighter material-theme-palenight min-light min-dark"," \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>\n","GROK3.html","html",[2547,2548,2549,2568,2574,2602,2606,2615,2619,2641,2646,2679,2684,2706,2711,2721,2726,2733,2738,2749,2754,2771,2776,2789,2794,2807,2812,2824,2829,2847,2852,2865,2870,2891,2896,2914,2919,2925,2930,2935,2940,2946,2951,2964,2969,2980,2985,2997,3002,3018,3023,3038,3043,3048,3053,3065,3070,3085,3090,3109,3114,3119,3124,3129,3134,3140,3145,3155,3160,3172,3177,3207,3212,3227,3232,3249,3254,3268,3273,3287,3292,3297,3302,3307,3312,3318,3323,3333,3338,3351,3356,3369,3374,3391,3396,3409,3414,3425,3430,3441,3446,3457,3462,3476,3481,3495,3500,3513,3518,3538,3543,3548,3553,3558,3563,3569,3574,3589,3594,3611,3616,3621,3626,3631,3636,3642,3647,3657,3662,3676,3681,3698,3703,3717,3722,3736,3741,3758,3763,3776,3781,3795,3800,3811,3816,3832,3837,3842,3847,3863,3868,3885,3890,3895,3900,3913,3918,3928,3933,3943,3948,3954,3959,3980,3985,4015,4020,4049,4054,4063,4068,4073,4078,4084,4089,4119,4124,4130,4135,4171,4176,4210,4215,4249,4254,4287,4292,4326,4331,4365,4370,4404,4409,4443,4448,4482,4487,4496,4501,4506,4511,4517,4522,4562,4567,4572,4577,4587,4592,4598,4603,4643,4648,4676,4681,4709,4714,4742,4747,4777,4782,4787,4792,4798,4803,4819,4824,4838,4843,4859,4864,4880,4885,4899,4904,4909,4914,4920,4925,4939,4944,4955,4960,4971,4976,4987,4992,5026,5031,5058,5063,5079,5084,5098,5103,5124,5129,5158,5163,5179,5184,5194,5199,5204,5209,5214,5219,5225,5230,5242,5247,5271,5276,5281,5286,5292,5297,5314,5319,5344,5349,5364,5369,5378,5383,5388,5393,5399,5404,5454,5459,5485,5490,5511,5516,5521,5526,5532,5537,5551,5556,5581,5586,5601,5606,5620,5625,5630,5635,5641,5646,5680,5685,5707,5712,5717,5722,5727,5732,5738,5743,5760,5765,5784,5789,5820,5825,5835,5840,5865,5870,5895,5900,5915,5920,5925,5930,5935,5940,5945,5950,5956,5961,5973,5978,5996,6001,6010,6015,6027,6032,6048,6053,6058,6063,6069,6074,6092,6097,6107,6112,6137,6142,6160,6165,6175,6180,6185,6190,6203,6208,6213,6218,6224,6229,6238,6243,6248,6253,6258,6263,6269,6274,6285,6290,6301,6306,6319,6324,6337,6342,6357,6362,6394,6399,6408,6413,6418,6423,6428,6433,6439,6444,6471,6476,6513,6518,6523,6528,6534,6539,6548,6553,6564,6569,6578,6583],"code",{"__ignoreMap":344},[2550,2551,2553,2557,2561,2565],"span",{"class":2552,"line":334},"line",[2550,2554,2556],{"class":2555},"s7jGy"," \u003C!",[2550,2558,2560],{"class":2559},"sFFbM","DOCTYPE",[2550,2562,2564],{"class":2563},"shR_7"," html",[2550,2566,2567],{"class":2555},">\n",[2550,2569,2570],{"class":2552,"line":345},[2550,2571,2573],{"emptyLinePlaceholder":2572},true,"\n",[2550,2575,2576,2580,2583,2586,2590,2594,2598,2600],{"class":2552,"line":351},[2550,2577,2579],{"class":2578},"s4Bi8"," \u003C",[2550,2581,2545],{"class":2582},"spV5I",[2550,2584,2585],{"class":2563}," lang",[2550,2587,2589],{"class":2588},"stNAY","=",[2550,2591,2593],{"class":2592},"sLXf0","\"",[2550,2595,2597],{"class":2596},"sCtJb","zh-CN",[2550,2599,2593],{"class":2592},[2550,2601,2567],{"class":2578},[2550,2603,2604],{"class":2552,"line":527},[2550,2605,2573],{"emptyLinePlaceholder":2572},[2550,2607,2608,2610,2613],{"class":2552,"line":532},[2550,2609,2579],{"class":2578},[2550,2611,2612],{"class":2582},"head",[2550,2614,2567],{"class":2578},[2550,2616,2617],{"class":2552,"line":538},[2550,2618,2573],{"emptyLinePlaceholder":2572},[2550,2620,2622,2624,2627,2630,2632,2634,2637,2639],{"class":2552,"line":2621},7,[2550,2623,2579],{"class":2578},[2550,2625,2626],{"class":2582},"meta",[2550,2628,2629],{"class":2563}," charset",[2550,2631,2589],{"class":2588},[2550,2633,2593],{"class":2592},[2550,2635,2636],{"class":2596},"UTF-8",[2550,2638,2593],{"class":2592},[2550,2640,2567],{"class":2578},[2550,2642,2644],{"class":2552,"line":2643},8,[2550,2645,2573],{"emptyLinePlaceholder":2572},[2550,2647,2649,2651,2653,2656,2658,2660,2663,2665,2668,2670,2672,2675,2677],{"class":2552,"line":2648},9,[2550,2650,2579],{"class":2578},[2550,2652,2626],{"class":2582},[2550,2654,2655],{"class":2563}," name",[2550,2657,2589],{"class":2588},[2550,2659,2593],{"class":2592},[2550,2661,2662],{"class":2596},"viewport",[2550,2664,2593],{"class":2592},[2550,2666,2667],{"class":2563}," content",[2550,2669,2589],{"class":2588},[2550,2671,2593],{"class":2592},[2550,2673,2674],{"class":2596},"width=device-width, initial-scale=1.0",[2550,2676,2593],{"class":2592},[2550,2678,2567],{"class":2578},[2550,2680,2682],{"class":2552,"line":2681},10,[2550,2683,2573],{"emptyLinePlaceholder":2572},[2550,2685,2687,2689,2692,2695,2699,2702,2704],{"class":2552,"line":2686},11,[2550,2688,2579],{"class":2578},[2550,2690,2691],{"class":2582},"title",[2550,2693,2694],{"class":2578},">",[2550,2696,2698],{"class":2697},"sw9Yk","打地鼠小游戏",[2550,2700,2701],{"class":2578},"\u003C\u002F",[2550,2703,2691],{"class":2582},[2550,2705,2567],{"class":2578},[2550,2707,2709],{"class":2552,"line":2708},12,[2550,2710,2573],{"emptyLinePlaceholder":2572},[2550,2712,2714,2716,2719],{"class":2552,"line":2713},13,[2550,2715,2579],{"class":2578},[2550,2717,2718],{"class":2582},"style",[2550,2720,2567],{"class":2578},[2550,2722,2724],{"class":2552,"line":2723},14,[2550,2725,2573],{"emptyLinePlaceholder":2572},[2550,2727,2729],{"class":2552,"line":2728},15,[2550,2730,2732],{"class":2731},"skCRv"," \u002F* 整体页面样式 *\u002F\n",[2550,2734,2736],{"class":2552,"line":2735},16,[2550,2737,2573],{"emptyLinePlaceholder":2572},[2550,2739,2741,2745],{"class":2552,"line":2740},17,[2550,2742,2744],{"class":2743},"sogYO"," body",[2550,2746,2748],{"class":2747},"sIQTy"," {\n",[2550,2750,2752],{"class":2552,"line":2751},18,[2550,2753,2573],{"emptyLinePlaceholder":2572},[2550,2755,2757,2761,2764,2768],{"class":2552,"line":2756},19,[2550,2758,2760],{"class":2759},"sYQjJ"," display",[2550,2762,2763],{"class":2588},":",[2550,2765,2767],{"class":2766},"s07xj"," flex",[2550,2769,2770],{"class":2747},";\n",[2550,2772,2774],{"class":2552,"line":2773},20,[2550,2775,2573],{"emptyLinePlaceholder":2572},[2550,2777,2779,2782,2784,2787],{"class":2552,"line":2778},21,[2550,2780,2781],{"class":2759}," flex-direction",[2550,2783,2763],{"class":2588},[2550,2785,2786],{"class":2766}," column",[2550,2788,2770],{"class":2747},[2550,2790,2792],{"class":2552,"line":2791},22,[2550,2793,2573],{"emptyLinePlaceholder":2572},[2550,2795,2797,2800,2802,2805],{"class":2552,"line":2796},23,[2550,2798,2799],{"class":2759}," align-items",[2550,2801,2763],{"class":2588},[2550,2803,2804],{"class":2766}," center",[2550,2806,2770],{"class":2747},[2550,2808,2810],{"class":2552,"line":2809},24,[2550,2811,2573],{"emptyLinePlaceholder":2572},[2550,2813,2815,2818,2820,2822],{"class":2552,"line":2814},25,[2550,2816,2817],{"class":2759}," justify-content",[2550,2819,2763],{"class":2588},[2550,2821,2804],{"class":2766},[2550,2823,2770],{"class":2747},[2550,2825,2827],{"class":2552,"line":2826},26,[2550,2828,2573],{"emptyLinePlaceholder":2572},[2550,2830,2832,2835,2837,2841,2845],{"class":2552,"line":2831},27,[2550,2833,2834],{"class":2759}," height",[2550,2836,2763],{"class":2588},[2550,2838,2840],{"class":2839},"s_Zq6"," 100",[2550,2842,2844],{"class":2843},"sX2Pf","vh",[2550,2846,2770],{"class":2747},[2550,2848,2850],{"class":2552,"line":2849},28,[2550,2851,2573],{"emptyLinePlaceholder":2572},[2550,2853,2855,2858,2860,2863],{"class":2552,"line":2854},29,[2550,2856,2857],{"class":2759}," margin",[2550,2859,2763],{"class":2588},[2550,2861,2862],{"class":2839}," 0",[2550,2864,2770],{"class":2747},[2550,2866,2868],{"class":2552,"line":2867},30,[2550,2869,2573],{"emptyLinePlaceholder":2572},[2550,2871,2873,2876,2878,2882,2886,2889],{"class":2552,"line":2872},31,[2550,2874,2875],{"class":2759}," font-family",[2550,2877,2763],{"class":2588},[2550,2879,2881],{"class":2880},"s9ail"," Arial",[2550,2883,2885],{"class":2884},"sRS6S",",",[2550,2887,2888],{"class":2880}," sans-serif",[2550,2890,2770],{"class":2747},[2550,2892,2894],{"class":2552,"line":2893},32,[2550,2895,2573],{"emptyLinePlaceholder":2572},[2550,2897,2899,2902,2904,2908,2912],{"class":2552,"line":2898},33,[2550,2900,2901],{"class":2759}," background-color",[2550,2903,2763],{"class":2588},[2550,2905,2907],{"class":2906},"seZCe"," #",[2550,2909,2911],{"class":2910},"sGQS9","f0f0f0",[2550,2913,2770],{"class":2747},[2550,2915,2917],{"class":2552,"line":2916},34,[2550,2918,2573],{"emptyLinePlaceholder":2572},[2550,2920,2922],{"class":2552,"line":2921},35,[2550,2923,2924],{"class":2747}," }\n",[2550,2926,2928],{"class":2552,"line":2927},36,[2550,2929,2573],{"emptyLinePlaceholder":2572},[2550,2931,2933],{"class":2552,"line":2932},37,[2550,2934,2573],{"emptyLinePlaceholder":2572},[2550,2936,2938],{"class":2552,"line":2937},38,[2550,2939,2573],{"emptyLinePlaceholder":2572},[2550,2941,2943],{"class":2552,"line":2942},39,[2550,2944,2945],{"class":2731}," \u002F* 顶部得分和时间显示 *\u002F\n",[2550,2947,2949],{"class":2552,"line":2948},40,[2550,2950,2573],{"emptyLinePlaceholder":2572},[2550,2952,2954,2958,2962],{"class":2552,"line":2953},41,[2550,2955,2957],{"class":2956},"szZgx"," .",[2550,2959,2961],{"class":2960},"s53il","info",[2550,2963,2748],{"class":2747},[2550,2965,2967],{"class":2552,"line":2966},42,[2550,2968,2573],{"emptyLinePlaceholder":2572},[2550,2970,2972,2974,2976,2978],{"class":2552,"line":2971},43,[2550,2973,2760],{"class":2759},[2550,2975,2763],{"class":2588},[2550,2977,2767],{"class":2766},[2550,2979,2770],{"class":2747},[2550,2981,2983],{"class":2552,"line":2982},44,[2550,2984,2573],{"emptyLinePlaceholder":2572},[2550,2986,2988,2990,2992,2995],{"class":2552,"line":2987},45,[2550,2989,2817],{"class":2759},[2550,2991,2763],{"class":2588},[2550,2993,2994],{"class":2766}," space-between",[2550,2996,2770],{"class":2747},[2550,2998,3000],{"class":2552,"line":2999},46,[2550,3001,2573],{"emptyLinePlaceholder":2572},[2550,3003,3005,3008,3010,3013,3016],{"class":2552,"line":3004},47,[2550,3006,3007],{"class":2759}," width",[2550,3009,2763],{"class":2588},[2550,3011,3012],{"class":2839}," 320",[2550,3014,3015],{"class":2843},"px",[2550,3017,2770],{"class":2747},[2550,3019,3021],{"class":2552,"line":3020},48,[2550,3022,2573],{"emptyLinePlaceholder":2572},[2550,3024,3026,3029,3031,3034,3036],{"class":2552,"line":3025},49,[2550,3027,3028],{"class":2759}," margin-bottom",[2550,3030,2763],{"class":2588},[2550,3032,3033],{"class":2839}," 20",[2550,3035,3015],{"class":2843},[2550,3037,2770],{"class":2747},[2550,3039,3041],{"class":2552,"line":3040},50,[2550,3042,2573],{"emptyLinePlaceholder":2572},[2550,3044,3046],{"class":2552,"line":3045},51,[2550,3047,2924],{"class":2747},[2550,3049,3051],{"class":2552,"line":3050},52,[2550,3052,2573],{"emptyLinePlaceholder":2572},[2550,3054,3056,3058,3060,3063],{"class":2552,"line":3055},53,[2550,3057,2957],{"class":2956},[2550,3059,2961],{"class":2960},[2550,3061,3062],{"class":2743}," span",[2550,3064,2748],{"class":2747},[2550,3066,3068],{"class":2552,"line":3067},54,[2550,3069,2573],{"emptyLinePlaceholder":2572},[2550,3071,3073,3076,3078,3081,3083],{"class":2552,"line":3072},55,[2550,3074,3075],{"class":2759}," font-size",[2550,3077,2763],{"class":2588},[2550,3079,3080],{"class":2839}," 24",[2550,3082,3015],{"class":2843},[2550,3084,2770],{"class":2747},[2550,3086,3088],{"class":2552,"line":3087},56,[2550,3089,2573],{"emptyLinePlaceholder":2572},[2550,3091,3093,3096,3098,3100,3103,3106],{"class":2552,"line":3092},57,[2550,3094,3095],{"class":2759}," color",[2550,3097,2763],{"class":2588},[2550,3099,2907],{"class":2906},[2550,3101,3102],{"class":2910},"00008b",[2550,3104,3105],{"class":2747},";",[2550,3107,3108],{"class":2731}," \u002F* 深蓝色 *\u002F\n",[2550,3110,3112],{"class":2552,"line":3111},58,[2550,3113,2573],{"emptyLinePlaceholder":2572},[2550,3115,3117],{"class":2552,"line":3116},59,[2550,3118,2924],{"class":2747},[2550,3120,3122],{"class":2552,"line":3121},60,[2550,3123,2573],{"emptyLinePlaceholder":2572},[2550,3125,3127],{"class":2552,"line":3126},61,[2550,3128,2573],{"emptyLinePlaceholder":2572},[2550,3130,3132],{"class":2552,"line":3131},62,[2550,3133,2573],{"emptyLinePlaceholder":2572},[2550,3135,3137],{"class":2552,"line":3136},63,[2550,3138,3139],{"class":2731}," \u002F* 游戏区域网格 *\u002F\n",[2550,3141,3143],{"class":2552,"line":3142},64,[2550,3144,2573],{"emptyLinePlaceholder":2572},[2550,3146,3148,3150,3153],{"class":2552,"line":3147},65,[2550,3149,2957],{"class":2956},[2550,3151,3152],{"class":2960},"game-board",[2550,3154,2748],{"class":2747},[2550,3156,3158],{"class":2552,"line":3157},66,[2550,3159,2573],{"emptyLinePlaceholder":2572},[2550,3161,3163,3165,3167,3170],{"class":2552,"line":3162},67,[2550,3164,2760],{"class":2759},[2550,3166,2763],{"class":2588},[2550,3168,3169],{"class":2766}," grid",[2550,3171,2770],{"class":2747},[2550,3173,3175],{"class":2552,"line":3174},68,[2550,3176,2573],{"emptyLinePlaceholder":2572},[2550,3178,3180,3183,3185,3189,3193,3196,3198,3200,3202,3205],{"class":2552,"line":3179},69,[2550,3181,3182],{"class":2759}," grid-template-columns",[2550,3184,2763],{"class":2588},[2550,3186,3188],{"class":3187},"sDcM4"," repeat",[2550,3190,3192],{"class":3191},"s4jFG","(",[2550,3194,3195],{"class":2839},"3",[2550,3197,2885],{"class":2884},[2550,3199,2840],{"class":2839},[2550,3201,3015],{"class":2843},[2550,3203,3204],{"class":3191},")",[2550,3206,2770],{"class":2747},[2550,3208,3210],{"class":2552,"line":3209},70,[2550,3211,2573],{"emptyLinePlaceholder":2572},[2550,3213,3215,3218,3220,3223,3225],{"class":2552,"line":3214},71,[2550,3216,3217],{"class":2759}," grid-gap",[2550,3219,2763],{"class":2588},[2550,3221,3222],{"class":2839}," 10",[2550,3224,3015],{"class":2843},[2550,3226,2770],{"class":2747},[2550,3228,3230],{"class":2552,"line":3229},72,[2550,3231,2573],{"emptyLinePlaceholder":2572},[2550,3233,3235,3237,3239,3241,3244,3246],{"class":2552,"line":3234},73,[2550,3236,2901],{"class":2759},[2550,3238,2763],{"class":2588},[2550,3240,2907],{"class":2906},[2550,3242,3243],{"class":2910},"d3d3d3",[2550,3245,3105],{"class":2747},[2550,3247,3248],{"class":2731}," \u002F* 浅灰色背景 *\u002F\n",[2550,3250,3252],{"class":2552,"line":3251},74,[2550,3253,2573],{"emptyLinePlaceholder":2572},[2550,3255,3257,3260,3262,3264,3266],{"class":2552,"line":3256},75,[2550,3258,3259],{"class":2759}," padding",[2550,3261,2763],{"class":2588},[2550,3263,3222],{"class":2839},[2550,3265,3015],{"class":2843},[2550,3267,2770],{"class":2747},[2550,3269,3271],{"class":2552,"line":3270},76,[2550,3272,2573],{"emptyLinePlaceholder":2572},[2550,3274,3276,3279,3281,3283,3285],{"class":2552,"line":3275},77,[2550,3277,3278],{"class":2759}," border-radius",[2550,3280,2763],{"class":2588},[2550,3282,3222],{"class":2839},[2550,3284,3015],{"class":2843},[2550,3286,2770],{"class":2747},[2550,3288,3290],{"class":2552,"line":3289},78,[2550,3291,2573],{"emptyLinePlaceholder":2572},[2550,3293,3295],{"class":2552,"line":3294},79,[2550,3296,2924],{"class":2747},[2550,3298,3300],{"class":2552,"line":3299},80,[2550,3301,2573],{"emptyLinePlaceholder":2572},[2550,3303,3305],{"class":2552,"line":3304},81,[2550,3306,2573],{"emptyLinePlaceholder":2572},[2550,3308,3310],{"class":2552,"line":3309},82,[2550,3311,2573],{"emptyLinePlaceholder":2572},[2550,3313,3315],{"class":2552,"line":3314},83,[2550,3316,3317],{"class":2731}," \u002F* 每个格子样式 *\u002F\n",[2550,3319,3321],{"class":2552,"line":3320},84,[2550,3322,2573],{"emptyLinePlaceholder":2572},[2550,3324,3326,3328,3331],{"class":2552,"line":3325},85,[2550,3327,2957],{"class":2956},[2550,3329,3330],{"class":2960},"hole",[2550,3332,2748],{"class":2747},[2550,3334,3336],{"class":2552,"line":3335},86,[2550,3337,2573],{"emptyLinePlaceholder":2572},[2550,3339,3341,3343,3345,3347,3349],{"class":2552,"line":3340},87,[2550,3342,3007],{"class":2759},[2550,3344,2763],{"class":2588},[2550,3346,2840],{"class":2839},[2550,3348,3015],{"class":2843},[2550,3350,2770],{"class":2747},[2550,3352,3354],{"class":2552,"line":3353},88,[2550,3355,2573],{"emptyLinePlaceholder":2572},[2550,3357,3359,3361,3363,3365,3367],{"class":2552,"line":3358},89,[2550,3360,2834],{"class":2759},[2550,3362,2763],{"class":2588},[2550,3364,2840],{"class":2839},[2550,3366,3015],{"class":2843},[2550,3368,2770],{"class":2747},[2550,3370,3372],{"class":2552,"line":3371},90,[2550,3373,2573],{"emptyLinePlaceholder":2572},[2550,3375,3377,3379,3381,3383,3386,3388],{"class":2552,"line":3376},91,[2550,3378,2901],{"class":2759},[2550,3380,2763],{"class":2588},[2550,3382,2907],{"class":2906},[2550,3384,3385],{"class":2910},"d2b48c",[2550,3387,3105],{"class":2747},[2550,3389,3390],{"class":2731}," \u002F* 土黄色 *\u002F\n",[2550,3392,3394],{"class":2552,"line":3393},92,[2550,3395,2573],{"emptyLinePlaceholder":2572},[2550,3397,3399,3401,3403,3405,3407],{"class":2552,"line":3398},93,[2550,3400,3278],{"class":2759},[2550,3402,2763],{"class":2588},[2550,3404,3222],{"class":2839},[2550,3406,3015],{"class":2843},[2550,3408,2770],{"class":2747},[2550,3410,3412],{"class":2552,"line":3411},94,[2550,3413,2573],{"emptyLinePlaceholder":2572},[2550,3415,3417,3419,3421,3423],{"class":2552,"line":3416},95,[2550,3418,2760],{"class":2759},[2550,3420,2763],{"class":2588},[2550,3422,2767],{"class":2766},[2550,3424,2770],{"class":2747},[2550,3426,3428],{"class":2552,"line":3427},96,[2550,3429,2573],{"emptyLinePlaceholder":2572},[2550,3431,3433,3435,3437,3439],{"class":2552,"line":3432},97,[2550,3434,2799],{"class":2759},[2550,3436,2763],{"class":2588},[2550,3438,2804],{"class":2766},[2550,3440,2770],{"class":2747},[2550,3442,3444],{"class":2552,"line":3443},98,[2550,3445,2573],{"emptyLinePlaceholder":2572},[2550,3447,3449,3451,3453,3455],{"class":2552,"line":3448},99,[2550,3450,2817],{"class":2759},[2550,3452,2763],{"class":2588},[2550,3454,2804],{"class":2766},[2550,3456,2770],{"class":2747},[2550,3458,3460],{"class":2552,"line":3459},100,[2550,3461,2573],{"emptyLinePlaceholder":2572},[2550,3463,3465,3467,3469,3472,3474],{"class":2552,"line":3464},101,[2550,3466,3075],{"class":2759},[2550,3468,2763],{"class":2588},[2550,3470,3471],{"class":2839}," 30",[2550,3473,3015],{"class":2843},[2550,3475,2770],{"class":2747},[2550,3477,3479],{"class":2552,"line":3478},102,[2550,3480,2573],{"emptyLinePlaceholder":2572},[2550,3482,3484,3486,3488,3490,3493],{"class":2552,"line":3483},103,[2550,3485,3095],{"class":2759},[2550,3487,2763],{"class":2588},[2550,3489,2907],{"class":2906},[2550,3491,3492],{"class":2910},"000",[2550,3494,2770],{"class":2747},[2550,3496,3498],{"class":2552,"line":3497},104,[2550,3499,2573],{"emptyLinePlaceholder":2572},[2550,3501,3503,3506,3508,3511],{"class":2552,"line":3502},105,[2550,3504,3505],{"class":2759}," cursor",[2550,3507,2763],{"class":2588},[2550,3509,3510],{"class":2766}," pointer",[2550,3512,2770],{"class":2747},[2550,3514,3516],{"class":2552,"line":3515},106,[2550,3517,2573],{"emptyLinePlaceholder":2572},[2550,3519,3521,3524,3526,3530,3533,3536],{"class":2552,"line":3520},107,[2550,3522,3523],{"class":2759}," transition",[2550,3525,2763],{"class":2588},[2550,3527,3529],{"class":3528},"s_rNk"," background-color ",[2550,3531,3532],{"class":2839},"0.2",[2550,3534,3535],{"class":2843},"s",[2550,3537,2770],{"class":2747},[2550,3539,3541],{"class":2552,"line":3540},108,[2550,3542,2573],{"emptyLinePlaceholder":2572},[2550,3544,3546],{"class":2552,"line":3545},109,[2550,3547,2924],{"class":2747},[2550,3549,3551],{"class":2552,"line":3550},110,[2550,3552,2573],{"emptyLinePlaceholder":2572},[2550,3554,3556],{"class":2552,"line":3555},111,[2550,3557,2573],{"emptyLinePlaceholder":2572},[2550,3559,3561],{"class":2552,"line":3560},112,[2550,3562,2573],{"emptyLinePlaceholder":2572},[2550,3564,3566],{"class":2552,"line":3565},113,[2550,3567,3568],{"class":2731}," \u002F* 地鼠出现时的样式 *\u002F\n",[2550,3570,3572],{"class":2552,"line":3571},114,[2550,3573,2573],{"emptyLinePlaceholder":2572},[2550,3575,3577,3579,3581,3584,3587],{"class":2552,"line":3576},115,[2550,3578,2957],{"class":2956},[2550,3580,3330],{"class":2960},[2550,3582,3583],{"class":2956},".",[2550,3585,3586],{"class":2960},"mole",[2550,3588,2748],{"class":2747},[2550,3590,3592],{"class":2552,"line":3591},116,[2550,3593,2573],{"emptyLinePlaceholder":2572},[2550,3595,3597,3599,3601,3603,3606,3608],{"class":2552,"line":3596},117,[2550,3598,2901],{"class":2759},[2550,3600,2763],{"class":2588},[2550,3602,2907],{"class":2906},[2550,3604,3605],{"class":2910},"90ee90",[2550,3607,3105],{"class":2747},[2550,3609,3610],{"class":2731}," \u002F* 绿色 *\u002F\n",[2550,3612,3614],{"class":2552,"line":3613},118,[2550,3615,2573],{"emptyLinePlaceholder":2572},[2550,3617,3619],{"class":2552,"line":3618},119,[2550,3620,2924],{"class":2747},[2550,3622,3624],{"class":2552,"line":3623},120,[2550,3625,2573],{"emptyLinePlaceholder":2572},[2550,3627,3629],{"class":2552,"line":3628},121,[2550,3630,2573],{"emptyLinePlaceholder":2572},[2550,3632,3634],{"class":2552,"line":3633},122,[2550,3635,2573],{"emptyLinePlaceholder":2572},[2550,3637,3639],{"class":2552,"line":3638},123,[2550,3640,3641],{"class":2731}," \u002F* 开始按钮样式 *\u002F\n",[2550,3643,3645],{"class":2552,"line":3644},124,[2550,3646,2573],{"emptyLinePlaceholder":2572},[2550,3648,3650,3652,3655],{"class":2552,"line":3649},125,[2550,3651,2957],{"class":2956},[2550,3653,3654],{"class":2960},"start-btn",[2550,3656,2748],{"class":2747},[2550,3658,3660],{"class":2552,"line":3659},126,[2550,3661,2573],{"emptyLinePlaceholder":2572},[2550,3663,3665,3668,3670,3672,3674],{"class":2552,"line":3664},127,[2550,3666,3667],{"class":2759}," margin-top",[2550,3669,2763],{"class":2588},[2550,3671,3033],{"class":2839},[2550,3673,3015],{"class":2843},[2550,3675,2770],{"class":2747},[2550,3677,3679],{"class":2552,"line":3678},128,[2550,3680,2573],{"emptyLinePlaceholder":2572},[2550,3682,3684,3686,3688,3690,3692,3694,3696],{"class":2552,"line":3683},129,[2550,3685,3259],{"class":2759},[2550,3687,2763],{"class":2588},[2550,3689,3222],{"class":2839},[2550,3691,3015],{"class":2843},[2550,3693,3033],{"class":2839},[2550,3695,3015],{"class":2843},[2550,3697,2770],{"class":2747},[2550,3699,3701],{"class":2552,"line":3700},130,[2550,3702,2573],{"emptyLinePlaceholder":2572},[2550,3704,3706,3708,3710,3713,3715],{"class":2552,"line":3705},131,[2550,3707,3075],{"class":2759},[2550,3709,2763],{"class":2588},[2550,3711,3712],{"class":2839}," 18",[2550,3714,3015],{"class":2843},[2550,3716,2770],{"class":2747},[2550,3718,3720],{"class":2552,"line":3719},132,[2550,3721,2573],{"emptyLinePlaceholder":2572},[2550,3723,3725,3727,3729,3731,3734],{"class":2552,"line":3724},133,[2550,3726,3095],{"class":2759},[2550,3728,2763],{"class":2588},[2550,3730,2907],{"class":2906},[2550,3732,3733],{"class":2910},"fff",[2550,3735,2770],{"class":2747},[2550,3737,3739],{"class":2552,"line":3738},134,[2550,3740,2573],{"emptyLinePlaceholder":2572},[2550,3742,3744,3746,3748,3750,3753,3755],{"class":2552,"line":3743},135,[2550,3745,2901],{"class":2759},[2550,3747,2763],{"class":2588},[2550,3749,2907],{"class":2906},[2550,3751,3752],{"class":2910},"4682b4",[2550,3754,3105],{"class":2747},[2550,3756,3757],{"class":2731}," \u002F* 蓝色 *\u002F\n",[2550,3759,3761],{"class":2552,"line":3760},136,[2550,3762,2573],{"emptyLinePlaceholder":2572},[2550,3764,3766,3769,3771,3774],{"class":2552,"line":3765},137,[2550,3767,3768],{"class":2759}," border",[2550,3770,2763],{"class":2588},[2550,3772,3773],{"class":2766}," none",[2550,3775,2770],{"class":2747},[2550,3777,3779],{"class":2552,"line":3778},138,[2550,3780,2573],{"emptyLinePlaceholder":2572},[2550,3782,3784,3786,3788,3791,3793],{"class":2552,"line":3783},139,[2550,3785,3278],{"class":2759},[2550,3787,2763],{"class":2588},[2550,3789,3790],{"class":2839}," 5",[2550,3792,3015],{"class":2843},[2550,3794,2770],{"class":2747},[2550,3796,3798],{"class":2552,"line":3797},140,[2550,3799,2573],{"emptyLinePlaceholder":2572},[2550,3801,3803,3805,3807,3809],{"class":2552,"line":3802},141,[2550,3804,3505],{"class":2759},[2550,3806,2763],{"class":2588},[2550,3808,3510],{"class":2766},[2550,3810,2770],{"class":2747},[2550,3812,3814],{"class":2552,"line":3813},142,[2550,3815,2573],{"emptyLinePlaceholder":2572},[2550,3817,3819,3821,3823,3825,3828,3830],{"class":2552,"line":3818},143,[2550,3820,3523],{"class":2759},[2550,3822,2763],{"class":2588},[2550,3824,3529],{"class":3528},[2550,3826,3827],{"class":2839},"0.3",[2550,3829,3535],{"class":2843},[2550,3831,2770],{"class":2747},[2550,3833,3835],{"class":2552,"line":3834},144,[2550,3836,2573],{"emptyLinePlaceholder":2572},[2550,3838,3840],{"class":2552,"line":3839},145,[2550,3841,2924],{"class":2747},[2550,3843,3845],{"class":2552,"line":3844},146,[2550,3846,2573],{"emptyLinePlaceholder":2572},[2550,3848,3850,3852,3854,3857,3861],{"class":2552,"line":3849},147,[2550,3851,2957],{"class":2956},[2550,3853,3654],{"class":2960},[2550,3855,2763],{"class":3856},"sV_4e",[2550,3858,3860],{"class":3859},"sJdyX","hover",[2550,3862,2748],{"class":2747},[2550,3864,3866],{"class":2552,"line":3865},148,[2550,3867,2573],{"emptyLinePlaceholder":2572},[2550,3869,3871,3873,3875,3877,3880,3882],{"class":2552,"line":3870},149,[2550,3872,2901],{"class":2759},[2550,3874,2763],{"class":2588},[2550,3876,2907],{"class":2906},[2550,3878,3879],{"class":2910},"5f9ea0",[2550,3881,3105],{"class":2747},[2550,3883,3884],{"class":2731}," \u002F* 悬停时变亮 *\u002F\n",[2550,3886,3888],{"class":2552,"line":3887},150,[2550,3889,2573],{"emptyLinePlaceholder":2572},[2550,3891,3893],{"class":2552,"line":3892},151,[2550,3894,2924],{"class":2747},[2550,3896,3898],{"class":2552,"line":3897},152,[2550,3899,2573],{"emptyLinePlaceholder":2572},[2550,3901,3903,3906,3909,3911],{"class":2552,"line":3902},153,[2550,3904,2579],{"class":3905},"seQUH",[2550,3907,3908],{"class":2578},"\u002F",[2550,3910,2718],{"class":2582},[2550,3912,2567],{"class":2578},[2550,3914,3916],{"class":2552,"line":3915},154,[2550,3917,2573],{"emptyLinePlaceholder":2572},[2550,3919,3921,3924,3926],{"class":2552,"line":3920},155,[2550,3922,3923],{"class":2578}," \u003C\u002F",[2550,3925,2612],{"class":2582},[2550,3927,2567],{"class":2578},[2550,3929,3931],{"class":2552,"line":3930},156,[2550,3932,2573],{"emptyLinePlaceholder":2572},[2550,3934,3936,3938,3941],{"class":2552,"line":3935},157,[2550,3937,2579],{"class":2578},[2550,3939,3940],{"class":2582},"body",[2550,3942,2567],{"class":2578},[2550,3944,3946],{"class":2552,"line":3945},158,[2550,3947,2573],{"emptyLinePlaceholder":2572},[2550,3949,3951],{"class":2552,"line":3950},159,[2550,3952,3953],{"class":2731}," \u003C!-- 顶部信息 -->\n",[2550,3955,3957],{"class":2552,"line":3956},160,[2550,3958,2573],{"emptyLinePlaceholder":2572},[2550,3960,3962,3964,3967,3970,3972,3974,3976,3978],{"class":2552,"line":3961},161,[2550,3963,2579],{"class":2578},[2550,3965,3966],{"class":2582},"div",[2550,3968,3969],{"class":2563}," class",[2550,3971,2589],{"class":2588},[2550,3973,2593],{"class":2592},[2550,3975,2961],{"class":2596},[2550,3977,2593],{"class":2592},[2550,3979,2567],{"class":2578},[2550,3981,3983],{"class":2552,"line":3982},162,[2550,3984,2573],{"emptyLinePlaceholder":2572},[2550,3986,3988,3990,3992,3995,3997,3999,4002,4004,4006,4009,4011,4013],{"class":2552,"line":3987},163,[2550,3989,2579],{"class":2578},[2550,3991,2550],{"class":2582},[2550,3993,3994],{"class":2563}," id",[2550,3996,2589],{"class":2588},[2550,3998,2593],{"class":2592},[2550,4000,4001],{"class":2596},"score",[2550,4003,2593],{"class":2592},[2550,4005,2694],{"class":2578},[2550,4007,4008],{"class":2697},"得分: 0",[2550,4010,2701],{"class":2578},[2550,4012,2550],{"class":2582},[2550,4014,2567],{"class":2578},[2550,4016,4018],{"class":2552,"line":4017},164,[2550,4019,2573],{"emptyLinePlaceholder":2572},[2550,4021,4023,4025,4027,4029,4031,4033,4036,4038,4040,4043,4045,4047],{"class":2552,"line":4022},165,[2550,4024,2579],{"class":2578},[2550,4026,2550],{"class":2582},[2550,4028,3994],{"class":2563},[2550,4030,2589],{"class":2588},[2550,4032,2593],{"class":2592},[2550,4034,4035],{"class":2596},"time-left",[2550,4037,2593],{"class":2592},[2550,4039,2694],{"class":2578},[2550,4041,4042],{"class":2697},"剩余时间: 30",[2550,4044,2701],{"class":2578},[2550,4046,2550],{"class":2582},[2550,4048,2567],{"class":2578},[2550,4050,4052],{"class":2552,"line":4051},166,[2550,4053,2573],{"emptyLinePlaceholder":2572},[2550,4055,4057,4059,4061],{"class":2552,"line":4056},167,[2550,4058,3923],{"class":2578},[2550,4060,3966],{"class":2582},[2550,4062,2567],{"class":2578},[2550,4064,4066],{"class":2552,"line":4065},168,[2550,4067,2573],{"emptyLinePlaceholder":2572},[2550,4069,4071],{"class":2552,"line":4070},169,[2550,4072,2573],{"emptyLinePlaceholder":2572},[2550,4074,4076],{"class":2552,"line":4075},170,[2550,4077,2573],{"emptyLinePlaceholder":2572},[2550,4079,4081],{"class":2552,"line":4080},171,[2550,4082,4083],{"class":2731}," \u003C!-- 游戏区域 -->\n",[2550,4085,4087],{"class":2552,"line":4086},172,[2550,4088,2573],{"emptyLinePlaceholder":2572},[2550,4090,4092,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4115,4117],{"class":2552,"line":4091},173,[2550,4093,2579],{"class":2578},[2550,4095,3966],{"class":2582},[2550,4097,3969],{"class":2563},[2550,4099,2589],{"class":2588},[2550,4101,2593],{"class":2592},[2550,4103,3152],{"class":2596},[2550,4105,2593],{"class":2592},[2550,4107,3994],{"class":2563},[2550,4109,2589],{"class":2588},[2550,4111,2593],{"class":2592},[2550,4113,4114],{"class":2596},"gameBoard",[2550,4116,2593],{"class":2592},[2550,4118,2567],{"class":2578},[2550,4120,4122],{"class":2552,"line":4121},174,[2550,4123,2573],{"emptyLinePlaceholder":2572},[2550,4125,4127],{"class":2552,"line":4126},175,[2550,4128,4129],{"class":2731}," \u003C!-- 9个格子 -->\n",[2550,4131,4133],{"class":2552,"line":4132},176,[2550,4134,2573],{"emptyLinePlaceholder":2572},[2550,4136,4138,4140,4142,4144,4146,4148,4150,4152,4155,4157,4159,4162,4164,4167,4169],{"class":2552,"line":4137},177,[2550,4139,2579],{"class":2578},[2550,4141,3966],{"class":2582},[2550,4143,3969],{"class":2563},[2550,4145,2589],{"class":2588},[2550,4147,2593],{"class":2592},[2550,4149,3330],{"class":2596},[2550,4151,2593],{"class":2592},[2550,4153,4154],{"class":2563}," data-id",[2550,4156,2589],{"class":2588},[2550,4158,2593],{"class":2592},[2550,4160,4161],{"class":2596},"0",[2550,4163,2593],{"class":2592},[2550,4165,4166],{"class":2578},">\u003C\u002F",[2550,4168,3966],{"class":2582},[2550,4170,2567],{"class":2578},[2550,4172,4174],{"class":2552,"line":4173},178,[2550,4175,2573],{"emptyLinePlaceholder":2572},[2550,4177,4179,4181,4183,4185,4187,4189,4191,4193,4195,4197,4199,4202,4204,4206,4208],{"class":2552,"line":4178},179,[2550,4180,2579],{"class":2578},[2550,4182,3966],{"class":2582},[2550,4184,3969],{"class":2563},[2550,4186,2589],{"class":2588},[2550,4188,2593],{"class":2592},[2550,4190,3330],{"class":2596},[2550,4192,2593],{"class":2592},[2550,4194,4154],{"class":2563},[2550,4196,2589],{"class":2588},[2550,4198,2593],{"class":2592},[2550,4200,4201],{"class":2596},"1",[2550,4203,2593],{"class":2592},[2550,4205,4166],{"class":2578},[2550,4207,3966],{"class":2582},[2550,4209,2567],{"class":2578},[2550,4211,4213],{"class":2552,"line":4212},180,[2550,4214,2573],{"emptyLinePlaceholder":2572},[2550,4216,4218,4220,4222,4224,4226,4228,4230,4232,4234,4236,4238,4241,4243,4245,4247],{"class":2552,"line":4217},181,[2550,4219,2579],{"class":2578},[2550,4221,3966],{"class":2582},[2550,4223,3969],{"class":2563},[2550,4225,2589],{"class":2588},[2550,4227,2593],{"class":2592},[2550,4229,3330],{"class":2596},[2550,4231,2593],{"class":2592},[2550,4233,4154],{"class":2563},[2550,4235,2589],{"class":2588},[2550,4237,2593],{"class":2592},[2550,4239,4240],{"class":2596},"2",[2550,4242,2593],{"class":2592},[2550,4244,4166],{"class":2578},[2550,4246,3966],{"class":2582},[2550,4248,2567],{"class":2578},[2550,4250,4252],{"class":2552,"line":4251},182,[2550,4253,2573],{"emptyLinePlaceholder":2572},[2550,4255,4257,4259,4261,4263,4265,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285],{"class":2552,"line":4256},183,[2550,4258,2579],{"class":2578},[2550,4260,3966],{"class":2582},[2550,4262,3969],{"class":2563},[2550,4264,2589],{"class":2588},[2550,4266,2593],{"class":2592},[2550,4268,3330],{"class":2596},[2550,4270,2593],{"class":2592},[2550,4272,4154],{"class":2563},[2550,4274,2589],{"class":2588},[2550,4276,2593],{"class":2592},[2550,4278,3195],{"class":2596},[2550,4280,2593],{"class":2592},[2550,4282,4166],{"class":2578},[2550,4284,3966],{"class":2582},[2550,4286,2567],{"class":2578},[2550,4288,4290],{"class":2552,"line":4289},184,[2550,4291,2573],{"emptyLinePlaceholder":2572},[2550,4293,4295,4297,4299,4301,4303,4305,4307,4309,4311,4313,4315,4318,4320,4322,4324],{"class":2552,"line":4294},185,[2550,4296,2579],{"class":2578},[2550,4298,3966],{"class":2582},[2550,4300,3969],{"class":2563},[2550,4302,2589],{"class":2588},[2550,4304,2593],{"class":2592},[2550,4306,3330],{"class":2596},[2550,4308,2593],{"class":2592},[2550,4310,4154],{"class":2563},[2550,4312,2589],{"class":2588},[2550,4314,2593],{"class":2592},[2550,4316,4317],{"class":2596},"4",[2550,4319,2593],{"class":2592},[2550,4321,4166],{"class":2578},[2550,4323,3966],{"class":2582},[2550,4325,2567],{"class":2578},[2550,4327,4329],{"class":2552,"line":4328},186,[2550,4330,2573],{"emptyLinePlaceholder":2572},[2550,4332,4334,4336,4338,4340,4342,4344,4346,4348,4350,4352,4354,4357,4359,4361,4363],{"class":2552,"line":4333},187,[2550,4335,2579],{"class":2578},[2550,4337,3966],{"class":2582},[2550,4339,3969],{"class":2563},[2550,4341,2589],{"class":2588},[2550,4343,2593],{"class":2592},[2550,4345,3330],{"class":2596},[2550,4347,2593],{"class":2592},[2550,4349,4154],{"class":2563},[2550,4351,2589],{"class":2588},[2550,4353,2593],{"class":2592},[2550,4355,4356],{"class":2596},"5",[2550,4358,2593],{"class":2592},[2550,4360,4166],{"class":2578},[2550,4362,3966],{"class":2582},[2550,4364,2567],{"class":2578},[2550,4366,4368],{"class":2552,"line":4367},188,[2550,4369,2573],{"emptyLinePlaceholder":2572},[2550,4371,4373,4375,4377,4379,4381,4383,4385,4387,4389,4391,4393,4396,4398,4400,4402],{"class":2552,"line":4372},189,[2550,4374,2579],{"class":2578},[2550,4376,3966],{"class":2582},[2550,4378,3969],{"class":2563},[2550,4380,2589],{"class":2588},[2550,4382,2593],{"class":2592},[2550,4384,3330],{"class":2596},[2550,4386,2593],{"class":2592},[2550,4388,4154],{"class":2563},[2550,4390,2589],{"class":2588},[2550,4392,2593],{"class":2592},[2550,4394,4395],{"class":2596},"6",[2550,4397,2593],{"class":2592},[2550,4399,4166],{"class":2578},[2550,4401,3966],{"class":2582},[2550,4403,2567],{"class":2578},[2550,4405,4407],{"class":2552,"line":4406},190,[2550,4408,2573],{"emptyLinePlaceholder":2572},[2550,4410,4412,4414,4416,4418,4420,4422,4424,4426,4428,4430,4432,4435,4437,4439,4441],{"class":2552,"line":4411},191,[2550,4413,2579],{"class":2578},[2550,4415,3966],{"class":2582},[2550,4417,3969],{"class":2563},[2550,4419,2589],{"class":2588},[2550,4421,2593],{"class":2592},[2550,4423,3330],{"class":2596},[2550,4425,2593],{"class":2592},[2550,4427,4154],{"class":2563},[2550,4429,2589],{"class":2588},[2550,4431,2593],{"class":2592},[2550,4433,4434],{"class":2596},"7",[2550,4436,2593],{"class":2592},[2550,4438,4166],{"class":2578},[2550,4440,3966],{"class":2582},[2550,4442,2567],{"class":2578},[2550,4444,4446],{"class":2552,"line":4445},192,[2550,4447,2573],{"emptyLinePlaceholder":2572},[2550,4449,4451,4453,4455,4457,4459,4461,4463,4465,4467,4469,4471,4474,4476,4478,4480],{"class":2552,"line":4450},193,[2550,4452,2579],{"class":2578},[2550,4454,3966],{"class":2582},[2550,4456,3969],{"class":2563},[2550,4458,2589],{"class":2588},[2550,4460,2593],{"class":2592},[2550,4462,3330],{"class":2596},[2550,4464,2593],{"class":2592},[2550,4466,4154],{"class":2563},[2550,4468,2589],{"class":2588},[2550,4470,2593],{"class":2592},[2550,4472,4473],{"class":2596},"8",[2550,4475,2593],{"class":2592},[2550,4477,4166],{"class":2578},[2550,4479,3966],{"class":2582},[2550,4481,2567],{"class":2578},[2550,4483,4485],{"class":2552,"line":4484},194,[2550,4486,2573],{"emptyLinePlaceholder":2572},[2550,4488,4490,4492,4494],{"class":2552,"line":4489},195,[2550,4491,3923],{"class":2578},[2550,4493,3966],{"class":2582},[2550,4495,2567],{"class":2578},[2550,4497,4499],{"class":2552,"line":4498},196,[2550,4500,2573],{"emptyLinePlaceholder":2572},[2550,4502,4504],{"class":2552,"line":4503},197,[2550,4505,2573],{"emptyLinePlaceholder":2572},[2550,4507,4509],{"class":2552,"line":4508},198,[2550,4510,2573],{"emptyLinePlaceholder":2572},[2550,4512,4514],{"class":2552,"line":4513},199,[2550,4515,4516],{"class":2731}," \u003C!-- 开始按钮 -->\n",[2550,4518,4520],{"class":2552,"line":4519},200,[2550,4521,2573],{"emptyLinePlaceholder":2572},[2550,4523,4525,4527,4530,4532,4534,4536,4538,4540,4542,4544,4546,4549,4551,4553,4556,4558,4560],{"class":2552,"line":4524},201,[2550,4526,2579],{"class":2578},[2550,4528,4529],{"class":2582},"button",[2550,4531,3969],{"class":2563},[2550,4533,2589],{"class":2588},[2550,4535,2593],{"class":2592},[2550,4537,3654],{"class":2596},[2550,4539,2593],{"class":2592},[2550,4541,3994],{"class":2563},[2550,4543,2589],{"class":2588},[2550,4545,2593],{"class":2592},[2550,4547,4548],{"class":2596},"startBtn",[2550,4550,2593],{"class":2592},[2550,4552,2694],{"class":2578},[2550,4554,4555],{"class":2697},"开始游戏",[2550,4557,2701],{"class":2578},[2550,4559,4529],{"class":2582},[2550,4561,2567],{"class":2578},[2550,4563,4565],{"class":2552,"line":4564},202,[2550,4566,2573],{"emptyLinePlaceholder":2572},[2550,4568,4570],{"class":2552,"line":4569},203,[2550,4571,2573],{"emptyLinePlaceholder":2572},[2550,4573,4575],{"class":2552,"line":4574},204,[2550,4576,2573],{"emptyLinePlaceholder":2572},[2550,4578,4580,4582,4585],{"class":2552,"line":4579},205,[2550,4581,2579],{"class":2578},[2550,4583,4584],{"class":2582},"script",[2550,4586,2567],{"class":2578},[2550,4588,4590],{"class":2552,"line":4589},206,[2550,4591,2573],{"emptyLinePlaceholder":2572},[2550,4593,4595],{"class":2552,"line":4594},207,[2550,4596,4597],{"class":2731}," \u002F\u002F 获取DOM元素\n",[2550,4599,4601],{"class":2552,"line":4600},208,[2550,4602,2573],{"emptyLinePlaceholder":2572},[2550,4604,4606,4610,4614,4618,4622,4625,4629,4632,4635,4637,4639,4641],{"class":2552,"line":4605},209,[2550,4607,4609],{"class":4608},"s006x"," const",[2550,4611,4613],{"class":4612},"s3wIo"," scoreDisplay",[2550,4615,4617],{"class":4616},"sm7WY"," =",[2550,4619,4621],{"class":4620},"s-jwS"," document",[2550,4623,3583],{"class":4624},"sBmMY",[2550,4626,4628],{"class":4627},"sORj3","getElementById",[2550,4630,3192],{"class":4631},"sZ-Ck",[2550,4633,4634],{"class":2592},"'",[2550,4636,4001],{"class":2596},[2550,4638,4634],{"class":2592},[2550,4640,3204],{"class":4631},[2550,4642,2770],{"class":2747},[2550,4644,4646],{"class":2552,"line":4645},210,[2550,4647,2573],{"emptyLinePlaceholder":2572},[2550,4649,4651,4653,4656,4658,4660,4662,4664,4666,4668,4670,4672,4674],{"class":2552,"line":4650},211,[2550,4652,4609],{"class":4608},[2550,4654,4655],{"class":4612}," timeLeftDisplay",[2550,4657,4617],{"class":4616},[2550,4659,4621],{"class":4620},[2550,4661,3583],{"class":4624},[2550,4663,4628],{"class":4627},[2550,4665,3192],{"class":4631},[2550,4667,4634],{"class":2592},[2550,4669,4035],{"class":2596},[2550,4671,4634],{"class":2592},[2550,4673,3204],{"class":4631},[2550,4675,2770],{"class":2747},[2550,4677,4679],{"class":2552,"line":4678},212,[2550,4680,2573],{"emptyLinePlaceholder":2572},[2550,4682,4684,4686,4689,4691,4693,4695,4697,4699,4701,4703,4705,4707],{"class":2552,"line":4683},213,[2550,4685,4609],{"class":4608},[2550,4687,4688],{"class":4612}," gameBoard",[2550,4690,4617],{"class":4616},[2550,4692,4621],{"class":4620},[2550,4694,3583],{"class":4624},[2550,4696,4628],{"class":4627},[2550,4698,3192],{"class":4631},[2550,4700,4634],{"class":2592},[2550,4702,4114],{"class":2596},[2550,4704,4634],{"class":2592},[2550,4706,3204],{"class":4631},[2550,4708,2770],{"class":2747},[2550,4710,4712],{"class":2552,"line":4711},214,[2550,4713,2573],{"emptyLinePlaceholder":2572},[2550,4715,4717,4719,4722,4724,4726,4728,4730,4732,4734,4736,4738,4740],{"class":2552,"line":4716},215,[2550,4718,4609],{"class":4608},[2550,4720,4721],{"class":4612}," startBtn",[2550,4723,4617],{"class":4616},[2550,4725,4621],{"class":4620},[2550,4727,3583],{"class":4624},[2550,4729,4628],{"class":4627},[2550,4731,3192],{"class":4631},[2550,4733,4634],{"class":2592},[2550,4735,4548],{"class":2596},[2550,4737,4634],{"class":2592},[2550,4739,3204],{"class":4631},[2550,4741,2770],{"class":2747},[2550,4743,4745],{"class":2552,"line":4744},216,[2550,4746,2573],{"emptyLinePlaceholder":2572},[2550,4748,4750,4752,4755,4757,4759,4761,4764,4766,4768,4771,4773,4775],{"class":2552,"line":4749},217,[2550,4751,4609],{"class":4608},[2550,4753,4754],{"class":4612}," holes",[2550,4756,4617],{"class":4616},[2550,4758,4621],{"class":4620},[2550,4760,3583],{"class":4624},[2550,4762,4763],{"class":4627},"querySelectorAll",[2550,4765,3192],{"class":4631},[2550,4767,4634],{"class":2592},[2550,4769,4770],{"class":2596},".hole",[2550,4772,4634],{"class":2592},[2550,4774,3204],{"class":4631},[2550,4776,2770],{"class":2747},[2550,4778,4780],{"class":2552,"line":4779},218,[2550,4781,2573],{"emptyLinePlaceholder":2572},[2550,4783,4785],{"class":2552,"line":4784},219,[2550,4786,2573],{"emptyLinePlaceholder":2572},[2550,4788,4790],{"class":2552,"line":4789},220,[2550,4791,2573],{"emptyLinePlaceholder":2572},[2550,4793,4795],{"class":2552,"line":4794},221,[2550,4796,4797],{"class":2731}," \u002F\u002F 游戏状态变量\n",[2550,4799,4801],{"class":2552,"line":4800},222,[2550,4802,2573],{"emptyLinePlaceholder":2572},[2550,4804,4806,4809,4813,4815,4817],{"class":2552,"line":4805},223,[2550,4807,4808],{"class":4608}," let",[2550,4810,4812],{"class":4811},"sFttD"," score",[2550,4814,4617],{"class":4616},[2550,4816,2862],{"class":2839},[2550,4818,2770],{"class":2747},[2550,4820,4822],{"class":2552,"line":4821},224,[2550,4823,2573],{"emptyLinePlaceholder":2572},[2550,4825,4827,4829,4832,4834,4836],{"class":2552,"line":4826},225,[2550,4828,4808],{"class":4608},[2550,4830,4831],{"class":4811}," timeLeft",[2550,4833,4617],{"class":4616},[2550,4835,3471],{"class":2839},[2550,4837,2770],{"class":2747},[2550,4839,4841],{"class":2552,"line":4840},226,[2550,4842,2573],{"emptyLinePlaceholder":2572},[2550,4844,4846,4848,4851,4853,4857],{"class":2552,"line":4845},227,[2550,4847,4808],{"class":4608},[2550,4849,4850],{"class":4811}," gameActive",[2550,4852,4617],{"class":4616},[2550,4854,4856],{"class":4855},"sle2E"," false",[2550,4858,2770],{"class":2747},[2550,4860,4862],{"class":2552,"line":4861},228,[2550,4863,2573],{"emptyLinePlaceholder":2572},[2550,4865,4867,4869,4872,4874,4878],{"class":2552,"line":4866},229,[2550,4868,4808],{"class":4608},[2550,4870,4871],{"class":4811}," moleTimer",[2550,4873,4617],{"class":4616},[2550,4875,4877],{"class":4876},"sEIdK"," null",[2550,4879,2770],{"class":2747},[2550,4881,4883],{"class":2552,"line":4882},230,[2550,4884,2573],{"emptyLinePlaceholder":2572},[2550,4886,4888,4890,4893,4895,4897],{"class":2552,"line":4887},231,[2550,4889,4808],{"class":4608},[2550,4891,4892],{"class":4811}," countdownTimer",[2550,4894,4617],{"class":4616},[2550,4896,4877],{"class":4876},[2550,4898,2770],{"class":2747},[2550,4900,4902],{"class":2552,"line":4901},232,[2550,4903,2573],{"emptyLinePlaceholder":2572},[2550,4905,4907],{"class":2552,"line":4906},233,[2550,4908,2573],{"emptyLinePlaceholder":2572},[2550,4910,4912],{"class":2552,"line":4911},234,[2550,4913,2573],{"emptyLinePlaceholder":2572},[2550,4915,4917],{"class":2552,"line":4916},235,[2550,4918,4919],{"class":2731}," \u002F\u002F 初始化游戏\n",[2550,4921,4923],{"class":2552,"line":4922},236,[2550,4924,2573],{"emptyLinePlaceholder":2572},[2550,4926,4928,4931,4934,4937],{"class":2552,"line":4927},237,[2550,4929,4930],{"class":4608}," function",[2550,4932,4933],{"class":4627}," initGame",[2550,4935,4936],{"class":2747},"()",[2550,4938,2748],{"class":2747},[2550,4940,4942],{"class":2552,"line":4941},238,[2550,4943,2573],{"emptyLinePlaceholder":2572},[2550,4945,4947,4949,4951,4953],{"class":2552,"line":4946},239,[2550,4948,4812],{"class":4811},[2550,4950,4617],{"class":4616},[2550,4952,2862],{"class":2839},[2550,4954,2770],{"class":2747},[2550,4956,4958],{"class":2552,"line":4957},240,[2550,4959,2573],{"emptyLinePlaceholder":2572},[2550,4961,4963,4965,4967,4969],{"class":2552,"line":4962},241,[2550,4964,4831],{"class":4811},[2550,4966,4617],{"class":4616},[2550,4968,3471],{"class":2839},[2550,4970,2770],{"class":2747},[2550,4972,4974],{"class":2552,"line":4973},242,[2550,4975,2573],{"emptyLinePlaceholder":2572},[2550,4977,4979,4981,4983,4985],{"class":2552,"line":4978},243,[2550,4980,4850],{"class":4811},[2550,4982,4617],{"class":4616},[2550,4984,4856],{"class":4855},[2550,4986,2770],{"class":2747},[2550,4988,4990],{"class":2552,"line":4989},244,[2550,4991,2573],{"emptyLinePlaceholder":2572},[2550,4993,4995,4997,4999,5003,5005,5008,5011,5015,5018,5021,5024],{"class":2552,"line":4994},245,[2550,4996,4613],{"class":4620},[2550,4998,3583],{"class":2578},[2550,5000,5002],{"class":5001},"s41Vv","textContent",[2550,5004,4617],{"class":4616},[2550,5006,5007],{"class":2592}," `",[2550,5009,5010],{"class":2596},"得分: ",[2550,5012,5014],{"class":5013},"sVlNE","${",[2550,5016,4001],{"class":5017},"s7o7L",[2550,5019,5020],{"class":5013},"}",[2550,5022,5023],{"class":2592},"`",[2550,5025,2770],{"class":2747},[2550,5027,5029],{"class":2552,"line":5028},246,[2550,5030,2573],{"emptyLinePlaceholder":2572},[2550,5032,5034,5036,5038,5040,5042,5044,5047,5049,5052,5054,5056],{"class":2552,"line":5033},247,[2550,5035,4655],{"class":4620},[2550,5037,3583],{"class":2578},[2550,5039,5002],{"class":5001},[2550,5041,4617],{"class":4616},[2550,5043,5007],{"class":2592},[2550,5045,5046],{"class":2596},"剩余时间: ",[2550,5048,5014],{"class":5013},[2550,5050,5051],{"class":5017},"timeLeft",[2550,5053,5020],{"class":5013},[2550,5055,5023],{"class":2592},[2550,5057,2770],{"class":2747},[2550,5059,5061],{"class":2552,"line":5060},248,[2550,5062,2573],{"emptyLinePlaceholder":2572},[2550,5064,5066,5069,5072,5075,5077],{"class":2552,"line":5065},249,[2550,5067,5068],{"class":4627}," clearInterval",[2550,5070,3192],{"class":5071},"sq5tN",[2550,5073,5074],{"class":4811},"moleTimer",[2550,5076,3204],{"class":5071},[2550,5078,2770],{"class":2747},[2550,5080,5082],{"class":2552,"line":5081},250,[2550,5083,2573],{"emptyLinePlaceholder":2572},[2550,5085,5087,5089,5091,5094,5096],{"class":2552,"line":5086},251,[2550,5088,5068],{"class":4627},[2550,5090,3192],{"class":5071},[2550,5092,5093],{"class":4811},"countdownTimer",[2550,5095,3204],{"class":5071},[2550,5097,2770],{"class":2747},[2550,5099,5101],{"class":2552,"line":5100},252,[2550,5102,2573],{"emptyLinePlaceholder":2572},[2550,5104,5106,5108,5110,5113,5115,5118,5122],{"class":2552,"line":5105},253,[2550,5107,4754],{"class":4620},[2550,5109,3583],{"class":4624},[2550,5111,5112],{"class":4627},"forEach",[2550,5114,3192],{"class":5071},[2550,5116,3330],{"class":5117},"sXva1",[2550,5119,5121],{"class":5120},"sH4JB"," =>",[2550,5123,2748],{"class":2747},[2550,5125,5127],{"class":2552,"line":5126},254,[2550,5128,2573],{"emptyLinePlaceholder":2572},[2550,5130,5132,5135,5137,5141,5143,5146,5148,5150,5152,5154,5156],{"class":2552,"line":5131},255,[2550,5133,5134],{"class":4620}," hole",[2550,5136,3583],{"class":4624},[2550,5138,5140],{"class":5139},"s3Fls","classList",[2550,5142,3583],{"class":4624},[2550,5144,5145],{"class":4627},"remove",[2550,5147,3192],{"class":5071},[2550,5149,4634],{"class":2592},[2550,5151,3586],{"class":2596},[2550,5153,4634],{"class":2592},[2550,5155,3204],{"class":5071},[2550,5157,2770],{"class":2747},[2550,5159,5161],{"class":2552,"line":5160},256,[2550,5162,2573],{"emptyLinePlaceholder":2572},[2550,5164,5166,5168,5170,5172,5174,5177],{"class":2552,"line":5165},257,[2550,5167,5134],{"class":4620},[2550,5169,3583],{"class":2578},[2550,5171,5002],{"class":5001},[2550,5173,4617],{"class":4616},[2550,5175,5176],{"class":2592}," ''",[2550,5178,2770],{"class":2747},[2550,5180,5182],{"class":2552,"line":5181},258,[2550,5183,2573],{"emptyLinePlaceholder":2572},[2550,5185,5187,5190,5192],{"class":2552,"line":5186},259,[2550,5188,5189],{"class":2747}," }",[2550,5191,3204],{"class":5071},[2550,5193,2770],{"class":2747},[2550,5195,5197],{"class":2552,"line":5196},260,[2550,5198,2573],{"emptyLinePlaceholder":2572},[2550,5200,5202],{"class":2552,"line":5201},261,[2550,5203,2924],{"class":2747},[2550,5205,5207],{"class":2552,"line":5206},262,[2550,5208,2573],{"emptyLinePlaceholder":2572},[2550,5210,5212],{"class":2552,"line":5211},263,[2550,5213,2573],{"emptyLinePlaceholder":2572},[2550,5215,5217],{"class":2552,"line":5216},264,[2550,5218,2573],{"emptyLinePlaceholder":2572},[2550,5220,5222],{"class":2552,"line":5221},265,[2550,5223,5224],{"class":2731}," \u002F\u002F 随机选择一个格子显示地鼠\n",[2550,5226,5228],{"class":2552,"line":5227},266,[2550,5229,2573],{"emptyLinePlaceholder":2572},[2550,5231,5233,5235,5238,5240],{"class":2552,"line":5232},267,[2550,5234,4930],{"class":4608},[2550,5236,5237],{"class":4627}," showMole",[2550,5239,4936],{"class":2747},[2550,5241,2748],{"class":2747},[2550,5243,5245],{"class":2552,"line":5244},268,[2550,5246,2573],{"emptyLinePlaceholder":2572},[2550,5248,5250,5254,5257,5261,5264,5266,5269],{"class":2552,"line":5249},269,[2550,5251,5253],{"class":5252},"soJS8"," if",[2550,5255,5256],{"class":5071}," (",[2550,5258,5260],{"class":5259},"sgUAf","!",[2550,5262,5263],{"class":4811},"gameActive",[2550,5265,3204],{"class":5071},[2550,5267,5268],{"class":5252}," return",[2550,5270,2770],{"class":2747},[2550,5272,5274],{"class":2552,"line":5273},270,[2550,5275,2573],{"emptyLinePlaceholder":2572},[2550,5277,5279],{"class":2552,"line":5278},271,[2550,5280,2573],{"emptyLinePlaceholder":2572},[2550,5282,5284],{"class":2552,"line":5283},272,[2550,5285,2573],{"emptyLinePlaceholder":2572},[2550,5287,5289],{"class":2552,"line":5288},273,[2550,5290,5291],{"class":2731}," \u002F\u002F 移除之前的地鼠\n",[2550,5293,5295],{"class":2552,"line":5294},274,[2550,5296,2573],{"emptyLinePlaceholder":2572},[2550,5298,5300,5302,5304,5306,5308,5310,5312],{"class":2552,"line":5299},275,[2550,5301,4754],{"class":4620},[2550,5303,3583],{"class":4624},[2550,5305,5112],{"class":4627},[2550,5307,3192],{"class":5071},[2550,5309,3330],{"class":5117},[2550,5311,5121],{"class":5120},[2550,5313,2748],{"class":2747},[2550,5315,5317],{"class":2552,"line":5316},276,[2550,5318,2573],{"emptyLinePlaceholder":2572},[2550,5320,5322,5324,5326,5328,5330,5332,5334,5336,5338,5340,5342],{"class":2552,"line":5321},277,[2550,5323,5134],{"class":4620},[2550,5325,3583],{"class":4624},[2550,5327,5140],{"class":5139},[2550,5329,3583],{"class":4624},[2550,5331,5145],{"class":4627},[2550,5333,3192],{"class":5071},[2550,5335,4634],{"class":2592},[2550,5337,3586],{"class":2596},[2550,5339,4634],{"class":2592},[2550,5341,3204],{"class":5071},[2550,5343,2770],{"class":2747},[2550,5345,5347],{"class":2552,"line":5346},278,[2550,5348,2573],{"emptyLinePlaceholder":2572},[2550,5350,5352,5354,5356,5358,5360,5362],{"class":2552,"line":5351},279,[2550,5353,5134],{"class":4620},[2550,5355,3583],{"class":2578},[2550,5357,5002],{"class":5001},[2550,5359,4617],{"class":4616},[2550,5361,5176],{"class":2592},[2550,5363,2770],{"class":2747},[2550,5365,5367],{"class":2552,"line":5366},280,[2550,5368,2573],{"emptyLinePlaceholder":2572},[2550,5370,5372,5374,5376],{"class":2552,"line":5371},281,[2550,5373,5189],{"class":2747},[2550,5375,3204],{"class":5071},[2550,5377,2770],{"class":2747},[2550,5379,5381],{"class":2552,"line":5380},282,[2550,5382,2573],{"emptyLinePlaceholder":2572},[2550,5384,5386],{"class":2552,"line":5385},283,[2550,5387,2573],{"emptyLinePlaceholder":2572},[2550,5389,5391],{"class":2552,"line":5390},284,[2550,5392,2573],{"emptyLinePlaceholder":2572},[2550,5394,5396],{"class":2552,"line":5395},285,[2550,5397,5398],{"class":2731}," \u002F\u002F 随机选择一个格子\n",[2550,5400,5402],{"class":2552,"line":5401},286,[2550,5403,2573],{"emptyLinePlaceholder":2572},[2550,5405,5407,5409,5412,5414,5416,5419,5422,5424,5427,5429,5431,5433,5436,5438,5441,5443,5445,5449,5452],{"class":2552,"line":5406},287,[2550,5408,4609],{"class":4608},[2550,5410,5411],{"class":4612}," randomHole",[2550,5413,4617],{"class":4616},[2550,5415,4754],{"class":4811},[2550,5417,5418],{"class":5071},"[",[2550,5420,5421],{"class":4620},"Math",[2550,5423,3583],{"class":4624},[2550,5425,5426],{"class":4627},"floor",[2550,5428,3192],{"class":5071},[2550,5430,5421],{"class":4620},[2550,5432,3583],{"class":4624},[2550,5434,5435],{"class":4627},"random",[2550,5437,4936],{"class":5071},[2550,5439,5440],{"class":5259}," *",[2550,5442,4754],{"class":4620},[2550,5444,3583],{"class":2578},[2550,5446,5448],{"class":5447},"sJ0qn","length",[2550,5450,5451],{"class":5071},")]",[2550,5453,2770],{"class":2747},[2550,5455,5457],{"class":2552,"line":5456},288,[2550,5458,2573],{"emptyLinePlaceholder":2572},[2550,5460,5462,5464,5466,5468,5470,5473,5475,5477,5479,5481,5483],{"class":2552,"line":5461},289,[2550,5463,5411],{"class":4620},[2550,5465,3583],{"class":4624},[2550,5467,5140],{"class":5139},[2550,5469,3583],{"class":4624},[2550,5471,5472],{"class":4627},"add",[2550,5474,3192],{"class":5071},[2550,5476,4634],{"class":2592},[2550,5478,3586],{"class":2596},[2550,5480,4634],{"class":2592},[2550,5482,3204],{"class":5071},[2550,5484,2770],{"class":2747},[2550,5486,5488],{"class":2552,"line":5487},290,[2550,5489,2573],{"emptyLinePlaceholder":2572},[2550,5491,5493,5495,5497,5499,5501,5504,5507,5509],{"class":2552,"line":5492},291,[2550,5494,5411],{"class":4620},[2550,5496,3583],{"class":2578},[2550,5498,5002],{"class":5001},[2550,5500,4617],{"class":4616},[2550,5502,5503],{"class":2592}," '",[2550,5505,5506],{"class":2596},"鼠！",[2550,5508,4634],{"class":2592},[2550,5510,2770],{"class":2747},[2550,5512,5514],{"class":2552,"line":5513},292,[2550,5515,2573],{"emptyLinePlaceholder":2572},[2550,5517,5519],{"class":2552,"line":5518},293,[2550,5520,2573],{"emptyLinePlaceholder":2572},[2550,5522,5524],{"class":2552,"line":5523},294,[2550,5525,2573],{"emptyLinePlaceholder":2572},[2550,5527,5529],{"class":2552,"line":5528},295,[2550,5530,5531],{"class":2731}," \u002F\u002F 1秒后隐藏地鼠\n",[2550,5533,5535],{"class":2552,"line":5534},296,[2550,5536,2573],{"emptyLinePlaceholder":2572},[2550,5538,5540,5543,5545,5547,5549],{"class":2552,"line":5539},297,[2550,5541,5542],{"class":4627}," setTimeout",[2550,5544,3192],{"class":5071},[2550,5546,4936],{"class":2747},[2550,5548,5121],{"class":5120},[2550,5550,2748],{"class":2747},[2550,5552,5554],{"class":2552,"line":5553},298,[2550,5555,2573],{"emptyLinePlaceholder":2572},[2550,5557,5559,5561,5563,5565,5567,5569,5571,5573,5575,5577,5579],{"class":2552,"line":5558},299,[2550,5560,5411],{"class":4620},[2550,5562,3583],{"class":4624},[2550,5564,5140],{"class":5139},[2550,5566,3583],{"class":4624},[2550,5568,5145],{"class":4627},[2550,5570,3192],{"class":5071},[2550,5572,4634],{"class":2592},[2550,5574,3586],{"class":2596},[2550,5576,4634],{"class":2592},[2550,5578,3204],{"class":5071},[2550,5580,2770],{"class":2747},[2550,5582,5584],{"class":2552,"line":5583},300,[2550,5585,2573],{"emptyLinePlaceholder":2572},[2550,5587,5589,5591,5593,5595,5597,5599],{"class":2552,"line":5588},301,[2550,5590,5411],{"class":4620},[2550,5592,3583],{"class":2578},[2550,5594,5002],{"class":5001},[2550,5596,4617],{"class":4616},[2550,5598,5176],{"class":2592},[2550,5600,2770],{"class":2747},[2550,5602,5604],{"class":2552,"line":5603},302,[2550,5605,2573],{"emptyLinePlaceholder":2572},[2550,5607,5609,5611,5613,5616,5618],{"class":2552,"line":5608},303,[2550,5610,5189],{"class":2747},[2550,5612,2885],{"class":2884},[2550,5614,5615],{"class":2839}," 1000",[2550,5617,3204],{"class":5071},[2550,5619,2770],{"class":2747},[2550,5621,5623],{"class":2552,"line":5622},304,[2550,5624,2573],{"emptyLinePlaceholder":2572},[2550,5626,5628],{"class":2552,"line":5627},305,[2550,5629,2573],{"emptyLinePlaceholder":2572},[2550,5631,5633],{"class":2552,"line":5632},306,[2550,5634,2573],{"emptyLinePlaceholder":2572},[2550,5636,5638],{"class":2552,"line":5637},307,[2550,5639,5640],{"class":2731}," \u002F\u002F 随机间隔后再次显示地鼠\n",[2550,5642,5644],{"class":2552,"line":5643},308,[2550,5645,2573],{"emptyLinePlaceholder":2572},[2550,5647,5649,5651,5654,5656,5659,5661,5663,5665,5667,5669,5672,5675,5677],{"class":2552,"line":5648},309,[2550,5650,4609],{"class":4608},[2550,5652,5653],{"class":4612}," randomInterval",[2550,5655,4617],{"class":4616},[2550,5657,5658],{"class":4620}," Math",[2550,5660,3583],{"class":4624},[2550,5662,5435],{"class":4627},[2550,5664,4936],{"class":5071},[2550,5666,5440],{"class":5259},[2550,5668,5615],{"class":2839},[2550,5670,5671],{"class":5259}," +",[2550,5673,5674],{"class":2839}," 500",[2550,5676,3105],{"class":2747},[2550,5678,5679],{"class":2731}," \u002F\u002F 0.5到1.5秒\n",[2550,5681,5683],{"class":2552,"line":5682},310,[2550,5684,2573],{"emptyLinePlaceholder":2572},[2550,5686,5688,5690,5692,5694,5696,5699,5701,5703,5705],{"class":2552,"line":5687},311,[2550,5689,4871],{"class":4811},[2550,5691,4617],{"class":4616},[2550,5693,5542],{"class":4627},[2550,5695,3192],{"class":5071},[2550,5697,5698],{"class":4811},"showMole",[2550,5700,2885],{"class":2884},[2550,5702,5653],{"class":4811},[2550,5704,3204],{"class":5071},[2550,5706,2770],{"class":2747},[2550,5708,5710],{"class":2552,"line":5709},312,[2550,5711,2573],{"emptyLinePlaceholder":2572},[2550,5713,5715],{"class":2552,"line":5714},313,[2550,5716,2924],{"class":2747},[2550,5718,5720],{"class":2552,"line":5719},314,[2550,5721,2573],{"emptyLinePlaceholder":2572},[2550,5723,5725],{"class":2552,"line":5724},315,[2550,5726,2573],{"emptyLinePlaceholder":2572},[2550,5728,5730],{"class":2552,"line":5729},316,[2550,5731,2573],{"emptyLinePlaceholder":2572},[2550,5733,5735],{"class":2552,"line":5734},317,[2550,5736,5737],{"class":2731}," \u002F\u002F 点击格子的事件\n",[2550,5739,5741],{"class":2552,"line":5740},318,[2550,5742,2573],{"emptyLinePlaceholder":2572},[2550,5744,5746,5748,5751,5753,5756,5758],{"class":2552,"line":5745},319,[2550,5747,4930],{"class":4608},[2550,5749,5750],{"class":4627}," hitMole",[2550,5752,3192],{"class":2747},[2550,5754,5755],{"class":5117},"e",[2550,5757,3204],{"class":2747},[2550,5759,2748],{"class":2747},[2550,5761,5763],{"class":2552,"line":5762},320,[2550,5764,2573],{"emptyLinePlaceholder":2572},[2550,5766,5768,5770,5772,5774,5777,5779,5782],{"class":2552,"line":5767},321,[2550,5769,4609],{"class":4608},[2550,5771,5134],{"class":4612},[2550,5773,4617],{"class":4616},[2550,5775,5776],{"class":4620}," e",[2550,5778,3583],{"class":2578},[2550,5780,5781],{"class":5001},"target",[2550,5783,2770],{"class":2747},[2550,5785,5787],{"class":2552,"line":5786},322,[2550,5788,2573],{"emptyLinePlaceholder":2572},[2550,5790,5792,5794,5796,5798,5800,5802,5804,5807,5809,5811,5813,5815,5818],{"class":2552,"line":5791},323,[2550,5793,5253],{"class":5252},[2550,5795,5256],{"class":5071},[2550,5797,3330],{"class":4620},[2550,5799,3583],{"class":4624},[2550,5801,5140],{"class":5139},[2550,5803,3583],{"class":4624},[2550,5805,5806],{"class":4627},"contains",[2550,5808,3192],{"class":5071},[2550,5810,4634],{"class":2592},[2550,5812,3586],{"class":2596},[2550,5814,4634],{"class":2592},[2550,5816,5817],{"class":5071},"))",[2550,5819,2748],{"class":2747},[2550,5821,5823],{"class":2552,"line":5822},324,[2550,5824,2573],{"emptyLinePlaceholder":2572},[2550,5826,5828,5830,5833],{"class":2552,"line":5827},325,[2550,5829,4812],{"class":4811},[2550,5831,5832],{"class":5259},"++",[2550,5834,2770],{"class":2747},[2550,5836,5838],{"class":2552,"line":5837},326,[2550,5839,2573],{"emptyLinePlaceholder":2572},[2550,5841,5843,5845,5847,5849,5851,5853,5855,5857,5859,5861,5863],{"class":2552,"line":5842},327,[2550,5844,4613],{"class":4620},[2550,5846,3583],{"class":2578},[2550,5848,5002],{"class":5001},[2550,5850,4617],{"class":4616},[2550,5852,5007],{"class":2592},[2550,5854,5010],{"class":2596},[2550,5856,5014],{"class":5013},[2550,5858,4001],{"class":5017},[2550,5860,5020],{"class":5013},[2550,5862,5023],{"class":2592},[2550,5864,2770],{"class":2747},[2550,5866,5868],{"class":2552,"line":5867},328,[2550,5869,2573],{"emptyLinePlaceholder":2572},[2550,5871,5873,5875,5877,5879,5881,5883,5885,5887,5889,5891,5893],{"class":2552,"line":5872},329,[2550,5874,5134],{"class":4620},[2550,5876,3583],{"class":4624},[2550,5878,5140],{"class":5139},[2550,5880,3583],{"class":4624},[2550,5882,5145],{"class":4627},[2550,5884,3192],{"class":5071},[2550,5886,4634],{"class":2592},[2550,5888,3586],{"class":2596},[2550,5890,4634],{"class":2592},[2550,5892,3204],{"class":5071},[2550,5894,2770],{"class":2747},[2550,5896,5898],{"class":2552,"line":5897},330,[2550,5899,2573],{"emptyLinePlaceholder":2572},[2550,5901,5903,5905,5907,5909,5911,5913],{"class":2552,"line":5902},331,[2550,5904,5134],{"class":4620},[2550,5906,3583],{"class":2578},[2550,5908,5002],{"class":5001},[2550,5910,4617],{"class":4616},[2550,5912,5176],{"class":2592},[2550,5914,2770],{"class":2747},[2550,5916,5918],{"class":2552,"line":5917},332,[2550,5919,2573],{"emptyLinePlaceholder":2572},[2550,5921,5923],{"class":2552,"line":5922},333,[2550,5924,2924],{"class":2747},[2550,5926,5928],{"class":2552,"line":5927},334,[2550,5929,2573],{"emptyLinePlaceholder":2572},[2550,5931,5933],{"class":2552,"line":5932},335,[2550,5934,2924],{"class":2747},[2550,5936,5938],{"class":2552,"line":5937},336,[2550,5939,2573],{"emptyLinePlaceholder":2572},[2550,5941,5943],{"class":2552,"line":5942},337,[2550,5944,2573],{"emptyLinePlaceholder":2572},[2550,5946,5948],{"class":2552,"line":5947},338,[2550,5949,2573],{"emptyLinePlaceholder":2572},[2550,5951,5953],{"class":2552,"line":5952},339,[2550,5954,5955],{"class":2731}," \u002F\u002F 开始游戏\n",[2550,5957,5959],{"class":2552,"line":5958},340,[2550,5960,2573],{"emptyLinePlaceholder":2572},[2550,5962,5964,5966,5969,5971],{"class":2552,"line":5963},341,[2550,5965,4930],{"class":4608},[2550,5967,5968],{"class":4627}," startGame",[2550,5970,4936],{"class":2747},[2550,5972,2748],{"class":2747},[2550,5974,5976],{"class":2552,"line":5975},342,[2550,5977,2573],{"emptyLinePlaceholder":2572},[2550,5979,5981,5983,5985,5987,5989,5991,5993],{"class":2552,"line":5980},343,[2550,5982,5253],{"class":5252},[2550,5984,5256],{"class":5071},[2550,5986,5263],{"class":4811},[2550,5988,3204],{"class":5071},[2550,5990,5268],{"class":5252},[2550,5992,3105],{"class":2747},[2550,5994,5995],{"class":2731}," \u002F\u002F 防止重复开始\n",[2550,5997,5999],{"class":2552,"line":5998},344,[2550,6000,2573],{"emptyLinePlaceholder":2572},[2550,6002,6004,6006,6008],{"class":2552,"line":6003},345,[2550,6005,4933],{"class":4627},[2550,6007,4936],{"class":5071},[2550,6009,2770],{"class":2747},[2550,6011,6013],{"class":2552,"line":6012},346,[2550,6014,2573],{"emptyLinePlaceholder":2572},[2550,6016,6018,6020,6022,6025],{"class":2552,"line":6017},347,[2550,6019,4850],{"class":4811},[2550,6021,4617],{"class":4616},[2550,6023,6024],{"class":4855}," true",[2550,6026,2770],{"class":2747},[2550,6028,6030],{"class":2552,"line":6029},348,[2550,6031,2573],{"emptyLinePlaceholder":2572},[2550,6033,6035,6037,6039,6042,6044,6046],{"class":2552,"line":6034},349,[2550,6036,4721],{"class":4620},[2550,6038,3583],{"class":2578},[2550,6040,6041],{"class":5001},"disabled",[2550,6043,4617],{"class":4616},[2550,6045,6024],{"class":4855},[2550,6047,2770],{"class":2747},[2550,6049,6051],{"class":2552,"line":6050},350,[2550,6052,2573],{"emptyLinePlaceholder":2572},[2550,6054,6056],{"class":2552,"line":6055},351,[2550,6057,2573],{"emptyLinePlaceholder":2572},[2550,6059,6061],{"class":2552,"line":6060},352,[2550,6062,2573],{"emptyLinePlaceholder":2572},[2550,6064,6066],{"class":2552,"line":6065},353,[2550,6067,6068],{"class":2731}," \u002F\u002F 开始倒计时\n",[2550,6070,6072],{"class":2552,"line":6071},354,[2550,6073,2573],{"emptyLinePlaceholder":2572},[2550,6075,6077,6079,6081,6084,6086,6088,6090],{"class":2552,"line":6076},355,[2550,6078,4892],{"class":4811},[2550,6080,4617],{"class":4616},[2550,6082,6083],{"class":4627}," setInterval",[2550,6085,3192],{"class":5071},[2550,6087,4936],{"class":2747},[2550,6089,5121],{"class":5120},[2550,6091,2748],{"class":2747},[2550,6093,6095],{"class":2552,"line":6094},356,[2550,6096,2573],{"emptyLinePlaceholder":2572},[2550,6098,6100,6102,6105],{"class":2552,"line":6099},357,[2550,6101,4831],{"class":4811},[2550,6103,6104],{"class":5259},"--",[2550,6106,2770],{"class":2747},[2550,6108,6110],{"class":2552,"line":6109},358,[2550,6111,2573],{"emptyLinePlaceholder":2572},[2550,6113,6115,6117,6119,6121,6123,6125,6127,6129,6131,6133,6135],{"class":2552,"line":6114},359,[2550,6116,4655],{"class":4620},[2550,6118,3583],{"class":2578},[2550,6120,5002],{"class":5001},[2550,6122,4617],{"class":4616},[2550,6124,5007],{"class":2592},[2550,6126,5046],{"class":2596},[2550,6128,5014],{"class":5013},[2550,6130,5051],{"class":5017},[2550,6132,5020],{"class":5013},[2550,6134,5023],{"class":2592},[2550,6136,2770],{"class":2747},[2550,6138,6140],{"class":2552,"line":6139},360,[2550,6141,2573],{"emptyLinePlaceholder":2572},[2550,6143,6145,6147,6149,6151,6154,6156,6158],{"class":2552,"line":6144},361,[2550,6146,5253],{"class":5252},[2550,6148,5256],{"class":5071},[2550,6150,5051],{"class":4811},[2550,6152,6153],{"class":4616}," \u003C=",[2550,6155,2862],{"class":2839},[2550,6157,3204],{"class":5071},[2550,6159,2748],{"class":2747},[2550,6161,6163],{"class":2552,"line":6162},362,[2550,6164,2573],{"emptyLinePlaceholder":2572},[2550,6166,6168,6171,6173],{"class":2552,"line":6167},363,[2550,6169,6170],{"class":4627}," endGame",[2550,6172,4936],{"class":5071},[2550,6174,2770],{"class":2747},[2550,6176,6178],{"class":2552,"line":6177},364,[2550,6179,2573],{"emptyLinePlaceholder":2572},[2550,6181,6183],{"class":2552,"line":6182},365,[2550,6184,2924],{"class":2747},[2550,6186,6188],{"class":2552,"line":6187},366,[2550,6189,2573],{"emptyLinePlaceholder":2572},[2550,6191,6193,6195,6197,6199,6201],{"class":2552,"line":6192},367,[2550,6194,5189],{"class":2747},[2550,6196,2885],{"class":2884},[2550,6198,5615],{"class":2839},[2550,6200,3204],{"class":5071},[2550,6202,2770],{"class":2747},[2550,6204,6206],{"class":2552,"line":6205},368,[2550,6207,2573],{"emptyLinePlaceholder":2572},[2550,6209,6211],{"class":2552,"line":6210},369,[2550,6212,2573],{"emptyLinePlaceholder":2572},[2550,6214,6216],{"class":2552,"line":6215},370,[2550,6217,2573],{"emptyLinePlaceholder":2572},[2550,6219,6221],{"class":2552,"line":6220},371,[2550,6222,6223],{"class":2731}," \u002F\u002F 开始地鼠出现\n",[2550,6225,6227],{"class":2552,"line":6226},372,[2550,6228,2573],{"emptyLinePlaceholder":2572},[2550,6230,6232,6234,6236],{"class":2552,"line":6231},373,[2550,6233,5237],{"class":4627},[2550,6235,4936],{"class":5071},[2550,6237,2770],{"class":2747},[2550,6239,6241],{"class":2552,"line":6240},374,[2550,6242,2573],{"emptyLinePlaceholder":2572},[2550,6244,6246],{"class":2552,"line":6245},375,[2550,6247,2924],{"class":2747},[2550,6249,6251],{"class":2552,"line":6250},376,[2550,6252,2573],{"emptyLinePlaceholder":2572},[2550,6254,6256],{"class":2552,"line":6255},377,[2550,6257,2573],{"emptyLinePlaceholder":2572},[2550,6259,6261],{"class":2552,"line":6260},378,[2550,6262,2573],{"emptyLinePlaceholder":2572},[2550,6264,6266],{"class":2552,"line":6265},379,[2550,6267,6268],{"class":2731}," \u002F\u002F 游戏结束\n",[2550,6270,6272],{"class":2552,"line":6271},380,[2550,6273,2573],{"emptyLinePlaceholder":2572},[2550,6275,6277,6279,6281,6283],{"class":2552,"line":6276},381,[2550,6278,4930],{"class":4608},[2550,6280,6170],{"class":4627},[2550,6282,4936],{"class":2747},[2550,6284,2748],{"class":2747},[2550,6286,6288],{"class":2552,"line":6287},382,[2550,6289,2573],{"emptyLinePlaceholder":2572},[2550,6291,6293,6295,6297,6299],{"class":2552,"line":6292},383,[2550,6294,4850],{"class":4811},[2550,6296,4617],{"class":4616},[2550,6298,4856],{"class":4855},[2550,6300,2770],{"class":2747},[2550,6302,6304],{"class":2552,"line":6303},384,[2550,6305,2573],{"emptyLinePlaceholder":2572},[2550,6307,6309,6311,6313,6315,6317],{"class":2552,"line":6308},385,[2550,6310,5068],{"class":4627},[2550,6312,3192],{"class":5071},[2550,6314,5074],{"class":4811},[2550,6316,3204],{"class":5071},[2550,6318,2770],{"class":2747},[2550,6320,6322],{"class":2552,"line":6321},386,[2550,6323,2573],{"emptyLinePlaceholder":2572},[2550,6325,6327,6329,6331,6333,6335],{"class":2552,"line":6326},387,[2550,6328,5068],{"class":4627},[2550,6330,3192],{"class":5071},[2550,6332,5093],{"class":4811},[2550,6334,3204],{"class":5071},[2550,6336,2770],{"class":2747},[2550,6338,6340],{"class":2552,"line":6339},388,[2550,6341,2573],{"emptyLinePlaceholder":2572},[2550,6343,6345,6347,6349,6351,6353,6355],{"class":2552,"line":6344},389,[2550,6346,4721],{"class":4620},[2550,6348,3583],{"class":2578},[2550,6350,6041],{"class":5001},[2550,6352,4617],{"class":4616},[2550,6354,4856],{"class":4855},[2550,6356,2770],{"class":2747},[2550,6358,6360],{"class":2552,"line":6359},390,[2550,6361,2573],{"emptyLinePlaceholder":2572},[2550,6363,6365,6368,6370,6372,6375,6377,6379,6381,6385,6388,6390,6392],{"class":2552,"line":6364},391,[2550,6366,6367],{"class":4627}," alert",[2550,6369,3192],{"class":5071},[2550,6371,5023],{"class":2592},[2550,6373,6374],{"class":2596},"游戏结束！你的得分是: ",[2550,6376,5014],{"class":5013},[2550,6378,4001],{"class":5017},[2550,6380,5020],{"class":5013},[2550,6382,6384],{"class":6383},"scVbD","\\n",[2550,6386,6387],{"class":2596},"点击“确定”再玩一次！",[2550,6389,5023],{"class":2592},[2550,6391,3204],{"class":5071},[2550,6393,2770],{"class":2747},[2550,6395,6397],{"class":2552,"line":6396},392,[2550,6398,2573],{"emptyLinePlaceholder":2572},[2550,6400,6402,6404,6406],{"class":2552,"line":6401},393,[2550,6403,4933],{"class":4627},[2550,6405,4936],{"class":5071},[2550,6407,2770],{"class":2747},[2550,6409,6411],{"class":2552,"line":6410},394,[2550,6412,2573],{"emptyLinePlaceholder":2572},[2550,6414,6416],{"class":2552,"line":6415},395,[2550,6417,2924],{"class":2747},[2550,6419,6421],{"class":2552,"line":6420},396,[2550,6422,2573],{"emptyLinePlaceholder":2572},[2550,6424,6426],{"class":2552,"line":6425},397,[2550,6427,2573],{"emptyLinePlaceholder":2572},[2550,6429,6431],{"class":2552,"line":6430},398,[2550,6432,2573],{"emptyLinePlaceholder":2572},[2550,6434,6436],{"class":2552,"line":6435},399,[2550,6437,6438],{"class":2731}," \u002F\u002F 事件绑定\n",[2550,6440,6442],{"class":2552,"line":6441},400,[2550,6443,2573],{"emptyLinePlaceholder":2572},[2550,6445,6447,6449,6451,6454,6456,6458,6461,6463,6465,6467,6469],{"class":2552,"line":6446},401,[2550,6448,4721],{"class":4620},[2550,6450,3583],{"class":4624},[2550,6452,6453],{"class":4627},"addEventListener",[2550,6455,3192],{"class":4631},[2550,6457,4634],{"class":2592},[2550,6459,6460],{"class":2596},"click",[2550,6462,4634],{"class":2592},[2550,6464,2885],{"class":2884},[2550,6466,5968],{"class":4811},[2550,6468,3204],{"class":4631},[2550,6470,2770],{"class":2747},[2550,6472,6474],{"class":2552,"line":6473},402,[2550,6475,2573],{"emptyLinePlaceholder":2572},[2550,6477,6479,6481,6483,6485,6487,6489,6491,6493,6495,6497,6499,6501,6503,6505,6507,6509,6511],{"class":2552,"line":6478},403,[2550,6480,4754],{"class":4620},[2550,6482,3583],{"class":4624},[2550,6484,5112],{"class":4627},[2550,6486,3192],{"class":4631},[2550,6488,3330],{"class":5117},[2550,6490,5121],{"class":5120},[2550,6492,5134],{"class":4620},[2550,6494,3583],{"class":4624},[2550,6496,6453],{"class":4627},[2550,6498,3192],{"class":4631},[2550,6500,4634],{"class":2592},[2550,6502,6460],{"class":2596},[2550,6504,4634],{"class":2592},[2550,6506,2885],{"class":2884},[2550,6508,5750],{"class":4811},[2550,6510,5817],{"class":4631},[2550,6512,2770],{"class":2747},[2550,6514,6516],{"class":2552,"line":6515},404,[2550,6517,2573],{"emptyLinePlaceholder":2572},[2550,6519,6521],{"class":2552,"line":6520},405,[2550,6522,2573],{"emptyLinePlaceholder":2572},[2550,6524,6526],{"class":2552,"line":6525},406,[2550,6527,2573],{"emptyLinePlaceholder":2572},[2550,6529,6531],{"class":2552,"line":6530},407,[2550,6532,6533],{"class":2731}," \u002F\u002F 初始化游戏状态\n",[2550,6535,6537],{"class":2552,"line":6536},408,[2550,6538,2573],{"emptyLinePlaceholder":2572},[2550,6540,6542,6544,6546],{"class":2552,"line":6541},409,[2550,6543,4933],{"class":4627},[2550,6545,4936],{"class":4631},[2550,6547,2770],{"class":2747},[2550,6549,6551],{"class":2552,"line":6550},410,[2550,6552,2573],{"emptyLinePlaceholder":2572},[2550,6554,6556,6558,6560,6562],{"class":2552,"line":6555},411,[2550,6557,2579],{"class":3905},[2550,6559,3908],{"class":2578},[2550,6561,4584],{"class":2582},[2550,6563,2567],{"class":2578},[2550,6565,6567],{"class":2552,"line":6566},412,[2550,6568,2573],{"emptyLinePlaceholder":2572},[2550,6570,6572,6574,6576],{"class":2552,"line":6571},413,[2550,6573,3923],{"class":2578},[2550,6575,3940],{"class":2582},[2550,6577,2567],{"class":2578},[2550,6579,6581],{"class":2552,"line":6580},414,[2550,6582,2573],{"emptyLinePlaceholder":2572},[2550,6584,6586,6588,6590],{"class":2552,"line":6585},415,[2550,6587,3923],{"class":2578},[2550,6589,2545],{"class":2582},[2550,6591,2567],{"class":2578},[2519,6593,6594],{},"R1:",[2540,6596,6599],{"className":2542,"code":6597,"filename":6598,"language":2545,"meta":344,"style":344}," \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>\n","R1.html",[2547,6600,6601,6611,6615,6633,6637,6645,6649,6667,6671,6688,6692,6700,6704,6709,6713,6719,6723,6737,6741,6751,6755,6765,6769,6779,6783,6795,6799,6809,6813,6826,6830,6834,6838,6842,6846,6851,6855,6864,6868,6882,6886,6898,6902,6914,6918,6928,6932,6945,6949,6953,6957,6961,6965,6970,6974,6984,6988,6998,7002,7024,7028,7040,7044,7057,7061,7073,7077,7089,7093,7097,7101,7105,7109,7114,7118,7126,7130,7142,7146,7158,7162,7174,7178,7191,7195,7205,7209,7219,7223,7233,7237,7247,7251,7264,7268,7282,7286,7290,7294,7298,7302,7306,7310,7323,7327,7339,7343,7358,7362,7366,7370,7374,7378,7383,7387,7395,7399,7411,7415,7432,7436,7449,7453,7464,7468,7478,7482,7494,7498,7508,7512,7524,7528,7542,7546,7550,7554,7558,7562,7574,7578,7591,7595,7599,7603,7607,7611,7623,7627,7640,7644,7655,7659,7663,7667,7677,7681,7689,7693,7701,7705,7710,7714,7732,7736,7776,7780,7826,7830,7838,7842,7846,7850,7855,7859,7877,7881,7886,7890,7912,7916,7938,7942,7964,7968,7990,7994,8016,8020,8042,8046,8068,8072,8094,8098,8120,8124,8132,8136,8140,8144,8149,8153,8179,8183,8187,8191,8199,8203,8208,8212,8224,8228,8240,8244,8256,8260,8272,8276,8288,8292,8296,8300,8305,8309,8335,8339,8365,8369,8396,8400,8426,8430,8434,8438,8443,8447,8463,8467,8492,8496,8512,8516,8521,8525,8553,8557,8565,8569,8583,8587,8611,8615,8629,8633,8637,8641,8649,8653,8661,8665,8669,8673,8678,8682,8706,8710,8724,8728,8736,8740,8744,8748,8756,8760,8764,8768,8773,8777,8787,8791,8796,8800,8810,8814,8824,8828,8838,8842,8856,8860,8874,8878,8892,8896,8900,8904,8909,8913,8925,8929,8942,8946,8950,8954,8959,8963,8979,8983,8991,8995,9009,9013,9029,9033,9041,9045,9049,9053,9065,9069,9073,9077,9082,9086,9095,9099,9103,9107,9111,9115,9120,9124,9134,9138,9143,9147,9207,9211,9233,9237,9277,9281,9305,9309,9327,9331,9336,9340,9352,9356,9380,9384,9398,9402,9414,9418,9422,9426,9430,9434,9438,9442,9447,9451,9461,9465,9481,9485,9490,9494,9521,9525,9541,9545,9553,9557,9565,9569,9581,9585,9589,9593,9597,9601,9606,9610,9620,9624,9634,9638,9650,9654,9666,9670,9684,9688,9692,9696,9701,9705,9741,9745,9758,9762,9770,9774,9778,9782,9786,9790,9800,9804,9812,9816],{"__ignoreMap":344},[2550,6602,6603,6605,6607,6609],{"class":2552,"line":334},[2550,6604,2556],{"class":2555},[2550,6606,2560],{"class":2559},[2550,6608,2564],{"class":2563},[2550,6610,2567],{"class":2555},[2550,6612,6613],{"class":2552,"line":345},[2550,6614,2573],{"emptyLinePlaceholder":2572},[2550,6616,6617,6619,6621,6623,6625,6627,6629,6631],{"class":2552,"line":351},[2550,6618,2579],{"class":2578},[2550,6620,2545],{"class":2582},[2550,6622,2585],{"class":2563},[2550,6624,2589],{"class":2588},[2550,6626,2593],{"class":2592},[2550,6628,2597],{"class":2596},[2550,6630,2593],{"class":2592},[2550,6632,2567],{"class":2578},[2550,6634,6635],{"class":2552,"line":527},[2550,6636,2573],{"emptyLinePlaceholder":2572},[2550,6638,6639,6641,6643],{"class":2552,"line":532},[2550,6640,2579],{"class":2578},[2550,6642,2612],{"class":2582},[2550,6644,2567],{"class":2578},[2550,6646,6647],{"class":2552,"line":538},[2550,6648,2573],{"emptyLinePlaceholder":2572},[2550,6650,6651,6653,6655,6657,6659,6661,6663,6665],{"class":2552,"line":2621},[2550,6652,2579],{"class":2578},[2550,6654,2626],{"class":2582},[2550,6656,2629],{"class":2563},[2550,6658,2589],{"class":2588},[2550,6660,2593],{"class":2592},[2550,6662,2636],{"class":2596},[2550,6664,2593],{"class":2592},[2550,6666,2567],{"class":2578},[2550,6668,6669],{"class":2552,"line":2643},[2550,6670,2573],{"emptyLinePlaceholder":2572},[2550,6672,6673,6675,6677,6679,6682,6684,6686],{"class":2552,"line":2648},[2550,6674,2579],{"class":2578},[2550,6676,2691],{"class":2582},[2550,6678,2694],{"class":2578},[2550,6680,6681],{"class":2697},"打地鼠 - Whack a Mole",[2550,6683,2701],{"class":2578},[2550,6685,2691],{"class":2582},[2550,6687,2567],{"class":2578},[2550,6689,6690],{"class":2552,"line":2681},[2550,6691,2573],{"emptyLinePlaceholder":2572},[2550,6693,6694,6696,6698],{"class":2552,"line":2686},[2550,6695,2579],{"class":2578},[2550,6697,2718],{"class":2582},[2550,6699,2567],{"class":2578},[2550,6701,6702],{"class":2552,"line":2708},[2550,6703,2573],{"emptyLinePlaceholder":2572},[2550,6705,6706],{"class":2552,"line":2713},[2550,6707,6708],{"class":2731}," \u002F* 页面整体样式 *\u002F\n",[2550,6710,6711],{"class":2552,"line":2723},[2550,6712,2573],{"emptyLinePlaceholder":2572},[2550,6714,6715,6717],{"class":2552,"line":2728},[2550,6716,2744],{"class":2743},[2550,6718,2748],{"class":2747},[2550,6720,6721],{"class":2552,"line":2735},[2550,6722,2573],{"emptyLinePlaceholder":2572},[2550,6724,6725,6727,6729,6731,6733,6735],{"class":2552,"line":2740},[2550,6726,2875],{"class":2759},[2550,6728,2763],{"class":2588},[2550,6730,2881],{"class":2880},[2550,6732,2885],{"class":2884},[2550,6734,2888],{"class":2880},[2550,6736,2770],{"class":2747},[2550,6738,6739],{"class":2552,"line":2751},[2550,6740,2573],{"emptyLinePlaceholder":2572},[2550,6742,6743,6745,6747,6749],{"class":2552,"line":2756},[2550,6744,2760],{"class":2759},[2550,6746,2763],{"class":2588},[2550,6748,2767],{"class":2766},[2550,6750,2770],{"class":2747},[2550,6752,6753],{"class":2552,"line":2773},[2550,6754,2573],{"emptyLinePlaceholder":2572},[2550,6756,6757,6759,6761,6763],{"class":2552,"line":2778},[2550,6758,2781],{"class":2759},[2550,6760,2763],{"class":2588},[2550,6762,2786],{"class":2766},[2550,6764,2770],{"class":2747},[2550,6766,6767],{"class":2552,"line":2791},[2550,6768,2573],{"emptyLinePlaceholder":2572},[2550,6770,6771,6773,6775,6777],{"class":2552,"line":2796},[2550,6772,2799],{"class":2759},[2550,6774,2763],{"class":2588},[2550,6776,2804],{"class":2766},[2550,6778,2770],{"class":2747},[2550,6780,6781],{"class":2552,"line":2809},[2550,6782,2573],{"emptyLinePlaceholder":2572},[2550,6784,6785,6787,6789,6791,6793],{"class":2552,"line":2814},[2550,6786,2901],{"class":2759},[2550,6788,2763],{"class":2588},[2550,6790,2907],{"class":2906},[2550,6792,2911],{"class":2910},[2550,6794,2770],{"class":2747},[2550,6796,6797],{"class":2552,"line":2826},[2550,6798,2573],{"emptyLinePlaceholder":2572},[2550,6800,6801,6803,6805,6807],{"class":2552,"line":2831},[2550,6802,2857],{"class":2759},[2550,6804,2763],{"class":2588},[2550,6806,2862],{"class":2839},[2550,6808,2770],{"class":2747},[2550,6810,6811],{"class":2552,"line":2849},[2550,6812,2573],{"emptyLinePlaceholder":2572},[2550,6814,6815,6818,6820,6822,6824],{"class":2552,"line":2854},[2550,6816,6817],{"class":2759}," min-height",[2550,6819,2763],{"class":2588},[2550,6821,2840],{"class":2839},[2550,6823,2844],{"class":2843},[2550,6825,2770],{"class":2747},[2550,6827,6828],{"class":2552,"line":2867},[2550,6829,2573],{"emptyLinePlaceholder":2572},[2550,6831,6832],{"class":2552,"line":2872},[2550,6833,2924],{"class":2747},[2550,6835,6836],{"class":2552,"line":2893},[2550,6837,2573],{"emptyLinePlaceholder":2572},[2550,6839,6840],{"class":2552,"line":2898},[2550,6841,2573],{"emptyLinePlaceholder":2572},[2550,6843,6844],{"class":2552,"line":2916},[2550,6845,2573],{"emptyLinePlaceholder":2572},[2550,6847,6848],{"class":2552,"line":2921},[2550,6849,6850],{"class":2731}," \u002F* 游戏信息显示区域 *\u002F\n",[2550,6852,6853],{"class":2552,"line":2927},[2550,6854,2573],{"emptyLinePlaceholder":2572},[2550,6856,6857,6859,6862],{"class":2552,"line":2932},[2550,6858,2957],{"class":2956},[2550,6860,6861],{"class":2960},"game-info",[2550,6863,2748],{"class":2747},[2550,6865,6866],{"class":2552,"line":2937},[2550,6867,2573],{"emptyLinePlaceholder":2572},[2550,6869,6870,6872,6874,6876,6878,6880],{"class":2552,"line":2942},[2550,6871,2857],{"class":2759},[2550,6873,2763],{"class":2588},[2550,6875,3033],{"class":2839},[2550,6877,3015],{"class":2843},[2550,6879,2862],{"class":2839},[2550,6881,2770],{"class":2747},[2550,6883,6884],{"class":2552,"line":2948},[2550,6885,2573],{"emptyLinePlaceholder":2572},[2550,6887,6888,6890,6892,6894,6896],{"class":2552,"line":2953},[2550,6889,3075],{"class":2759},[2550,6891,2763],{"class":2588},[2550,6893,3080],{"class":2839},[2550,6895,3015],{"class":2843},[2550,6897,2770],{"class":2747},[2550,6899,6900],{"class":2552,"line":2966},[2550,6901,2573],{"emptyLinePlaceholder":2572},[2550,6903,6904,6906,6908,6910,6912],{"class":2552,"line":2971},[2550,6905,3095],{"class":2759},[2550,6907,2763],{"class":2588},[2550,6909,2907],{"class":2906},[2550,6911,3102],{"class":2910},[2550,6913,2770],{"class":2747},[2550,6915,6916],{"class":2552,"line":2982},[2550,6917,2573],{"emptyLinePlaceholder":2572},[2550,6919,6920,6922,6924,6926],{"class":2552,"line":2987},[2550,6921,2760],{"class":2759},[2550,6923,2763],{"class":2588},[2550,6925,2767],{"class":2766},[2550,6927,2770],{"class":2747},[2550,6929,6930],{"class":2552,"line":2999},[2550,6931,2573],{"emptyLinePlaceholder":2572},[2550,6933,6934,6937,6939,6941,6943],{"class":2552,"line":3004},[2550,6935,6936],{"class":2759}," gap",[2550,6938,2763],{"class":2588},[2550,6940,3471],{"class":2839},[2550,6942,3015],{"class":2843},[2550,6944,2770],{"class":2747},[2550,6946,6947],{"class":2552,"line":3020},[2550,6948,2573],{"emptyLinePlaceholder":2572},[2550,6950,6951],{"class":2552,"line":3025},[2550,6952,2924],{"class":2747},[2550,6954,6955],{"class":2552,"line":3040},[2550,6956,2573],{"emptyLinePlaceholder":2572},[2550,6958,6959],{"class":2552,"line":3045},[2550,6960,2573],{"emptyLinePlaceholder":2572},[2550,6962,6963],{"class":2552,"line":3050},[2550,6964,2573],{"emptyLinePlaceholder":2572},[2550,6966,6967],{"class":2552,"line":3055},[2550,6968,6969],{"class":2731}," \u002F* 游戏主容器（3x3网格） *\u002F\n",[2550,6971,6972],{"class":2552,"line":3067},[2550,6973,2573],{"emptyLinePlaceholder":2572},[2550,6975,6976,6979,6982],{"class":2552,"line":3072},[2550,6977,2907],{"class":6978},"s_lYT",[2550,6980,3152],{"class":6981},"sIscB",[2550,6983,2748],{"class":2747},[2550,6985,6986],{"class":2552,"line":3087},[2550,6987,2573],{"emptyLinePlaceholder":2572},[2550,6989,6990,6992,6994,6996],{"class":2552,"line":3092},[2550,6991,2760],{"class":2759},[2550,6993,2763],{"class":2588},[2550,6995,3169],{"class":2766},[2550,6997,2770],{"class":2747},[2550,6999,7000],{"class":2552,"line":3111},[2550,7001,2573],{"emptyLinePlaceholder":2572},[2550,7003,7004,7006,7008,7010,7012,7014,7016,7018,7020,7022],{"class":2552,"line":3116},[2550,7005,3182],{"class":2759},[2550,7007,2763],{"class":2588},[2550,7009,3188],{"class":3187},[2550,7011,3192],{"class":3191},[2550,7013,3195],{"class":2839},[2550,7015,2885],{"class":2884},[2550,7017,2840],{"class":2839},[2550,7019,3015],{"class":2843},[2550,7021,3204],{"class":3191},[2550,7023,2770],{"class":2747},[2550,7025,7026],{"class":2552,"line":3121},[2550,7027,2573],{"emptyLinePlaceholder":2572},[2550,7029,7030,7032,7034,7036,7038],{"class":2552,"line":3126},[2550,7031,6936],{"class":2759},[2550,7033,2763],{"class":2588},[2550,7035,3222],{"class":2839},[2550,7037,3015],{"class":2843},[2550,7039,2770],{"class":2747},[2550,7041,7042],{"class":2552,"line":3131},[2550,7043,2573],{"emptyLinePlaceholder":2572},[2550,7045,7046,7048,7050,7052,7055],{"class":2552,"line":3136},[2550,7047,2901],{"class":2759},[2550,7049,2763],{"class":2588},[2550,7051,2907],{"class":2906},[2550,7053,7054],{"class":2910},"cccccc",[2550,7056,2770],{"class":2747},[2550,7058,7059],{"class":2552,"line":3142},[2550,7060,2573],{"emptyLinePlaceholder":2572},[2550,7062,7063,7065,7067,7069,7071],{"class":2552,"line":3147},[2550,7064,3259],{"class":2759},[2550,7066,2763],{"class":2588},[2550,7068,3033],{"class":2839},[2550,7070,3015],{"class":2843},[2550,7072,2770],{"class":2747},[2550,7074,7075],{"class":2552,"line":3157},[2550,7076,2573],{"emptyLinePlaceholder":2572},[2550,7078,7079,7081,7083,7085,7087],{"class":2552,"line":3162},[2550,7080,3278],{"class":2759},[2550,7082,2763],{"class":2588},[2550,7084,3222],{"class":2839},[2550,7086,3015],{"class":2843},[2550,7088,2770],{"class":2747},[2550,7090,7091],{"class":2552,"line":3174},[2550,7092,2573],{"emptyLinePlaceholder":2572},[2550,7094,7095],{"class":2552,"line":3179},[2550,7096,2924],{"class":2747},[2550,7098,7099],{"class":2552,"line":3209},[2550,7100,2573],{"emptyLinePlaceholder":2572},[2550,7102,7103],{"class":2552,"line":3214},[2550,7104,2573],{"emptyLinePlaceholder":2572},[2550,7106,7107],{"class":2552,"line":3229},[2550,7108,2573],{"emptyLinePlaceholder":2572},[2550,7110,7111],{"class":2552,"line":3234},[2550,7112,7113],{"class":2731}," \u002F* 单个地鼠洞样式 *\u002F\n",[2550,7115,7116],{"class":2552,"line":3251},[2550,7117,2573],{"emptyLinePlaceholder":2572},[2550,7119,7120,7122,7124],{"class":2552,"line":3256},[2550,7121,2957],{"class":2956},[2550,7123,3330],{"class":2960},[2550,7125,2748],{"class":2747},[2550,7127,7128],{"class":2552,"line":3270},[2550,7129,2573],{"emptyLinePlaceholder":2572},[2550,7131,7132,7134,7136,7138,7140],{"class":2552,"line":3275},[2550,7133,3007],{"class":2759},[2550,7135,2763],{"class":2588},[2550,7137,2840],{"class":2839},[2550,7139,3015],{"class":2843},[2550,7141,2770],{"class":2747},[2550,7143,7144],{"class":2552,"line":3289},[2550,7145,2573],{"emptyLinePlaceholder":2572},[2550,7147,7148,7150,7152,7154,7156],{"class":2552,"line":3294},[2550,7149,2834],{"class":2759},[2550,7151,2763],{"class":2588},[2550,7153,2840],{"class":2839},[2550,7155,3015],{"class":2843},[2550,7157,2770],{"class":2747},[2550,7159,7160],{"class":2552,"line":3299},[2550,7161,2573],{"emptyLinePlaceholder":2572},[2550,7163,7164,7166,7168,7170,7172],{"class":2552,"line":3304},[2550,7165,2901],{"class":2759},[2550,7167,2763],{"class":2588},[2550,7169,2907],{"class":2906},[2550,7171,3385],{"class":2910},[2550,7173,2770],{"class":2747},[2550,7175,7176],{"class":2552,"line":3309},[2550,7177,2573],{"emptyLinePlaceholder":2572},[2550,7179,7180,7182,7184,7187,7189],{"class":2552,"line":3314},[2550,7181,3278],{"class":2759},[2550,7183,2763],{"class":2588},[2550,7185,7186],{"class":2839}," 8",[2550,7188,3015],{"class":2843},[2550,7190,2770],{"class":2747},[2550,7192,7193],{"class":2552,"line":3320},[2550,7194,2573],{"emptyLinePlaceholder":2572},[2550,7196,7197,7199,7201,7203],{"class":2552,"line":3325},[2550,7198,3505],{"class":2759},[2550,7200,2763],{"class":2588},[2550,7202,3510],{"class":2766},[2550,7204,2770],{"class":2747},[2550,7206,7207],{"class":2552,"line":3335},[2550,7208,2573],{"emptyLinePlaceholder":2572},[2550,7210,7211,7213,7215,7217],{"class":2552,"line":3340},[2550,7212,2760],{"class":2759},[2550,7214,2763],{"class":2588},[2550,7216,2767],{"class":2766},[2550,7218,2770],{"class":2747},[2550,7220,7221],{"class":2552,"line":3353},[2550,7222,2573],{"emptyLinePlaceholder":2572},[2550,7224,7225,7227,7229,7231],{"class":2552,"line":3358},[2550,7226,2817],{"class":2759},[2550,7228,2763],{"class":2588},[2550,7230,2804],{"class":2766},[2550,7232,2770],{"class":2747},[2550,7234,7235],{"class":2552,"line":3371},[2550,7236,2573],{"emptyLinePlaceholder":2572},[2550,7238,7239,7241,7243,7245],{"class":2552,"line":3376},[2550,7240,2799],{"class":2759},[2550,7242,2763],{"class":2588},[2550,7244,2804],{"class":2766},[2550,7246,2770],{"class":2747},[2550,7248,7249],{"class":2552,"line":3393},[2550,7250,2573],{"emptyLinePlaceholder":2572},[2550,7252,7253,7255,7257,7259,7261],{"class":2552,"line":3398},[2550,7254,3075],{"class":2759},[2550,7256,2763],{"class":2588},[2550,7258,2862],{"class":2839},[2550,7260,3105],{"class":2747},[2550,7262,7263],{"class":2731}," \u002F* 初始隐藏文字 *\u002F\n",[2550,7265,7266],{"class":2552,"line":3411},[2550,7267,2573],{"emptyLinePlaceholder":2572},[2550,7269,7270,7272,7274,7276,7278,7280],{"class":2552,"line":3416},[2550,7271,3523],{"class":2759},[2550,7273,2763],{"class":2588},[2550,7275,3529],{"class":3528},[2550,7277,3532],{"class":2839},[2550,7279,3535],{"class":2843},[2550,7281,2770],{"class":2747},[2550,7283,7284],{"class":2552,"line":3427},[2550,7285,2573],{"emptyLinePlaceholder":2572},[2550,7287,7288],{"class":2552,"line":3432},[2550,7289,2924],{"class":2747},[2550,7291,7292],{"class":2552,"line":3443},[2550,7293,2573],{"emptyLinePlaceholder":2572},[2550,7295,7296],{"class":2552,"line":3448},[2550,7297,2573],{"emptyLinePlaceholder":2572},[2550,7299,7300],{"class":2552,"line":3459},[2550,7301,2573],{"emptyLinePlaceholder":2572},[2550,7303,7304],{"class":2552,"line":3464},[2550,7305,3568],{"class":2731},[2550,7307,7308],{"class":2552,"line":3478},[2550,7309,2573],{"emptyLinePlaceholder":2572},[2550,7311,7312,7314,7316,7318,7321],{"class":2552,"line":3483},[2550,7313,2957],{"class":2956},[2550,7315,3330],{"class":2960},[2550,7317,3583],{"class":2956},[2550,7319,7320],{"class":2960},"active",[2550,7322,2748],{"class":2747},[2550,7324,7325],{"class":2552,"line":3497},[2550,7326,2573],{"emptyLinePlaceholder":2572},[2550,7328,7329,7331,7333,7335,7337],{"class":2552,"line":3502},[2550,7330,2901],{"class":2759},[2550,7332,2763],{"class":2588},[2550,7334,2907],{"class":2906},[2550,7336,3605],{"class":2910},[2550,7338,2770],{"class":2747},[2550,7340,7341],{"class":2552,"line":3515},[2550,7342,2573],{"emptyLinePlaceholder":2572},[2550,7344,7345,7347,7349,7351,7353,7355],{"class":2552,"line":3520},[2550,7346,3075],{"class":2759},[2550,7348,2763],{"class":2588},[2550,7350,3471],{"class":2839},[2550,7352,3015],{"class":2843},[2550,7354,3105],{"class":2747},[2550,7356,7357],{"class":2731}," \u002F* 显示文字 *\u002F\n",[2550,7359,7360],{"class":2552,"line":3540},[2550,7361,2573],{"emptyLinePlaceholder":2572},[2550,7363,7364],{"class":2552,"line":3545},[2550,7365,2924],{"class":2747},[2550,7367,7368],{"class":2552,"line":3550},[2550,7369,2573],{"emptyLinePlaceholder":2572},[2550,7371,7372],{"class":2552,"line":3555},[2550,7373,2573],{"emptyLinePlaceholder":2572},[2550,7375,7376],{"class":2552,"line":3560},[2550,7377,2573],{"emptyLinePlaceholder":2572},[2550,7379,7380],{"class":2552,"line":3565},[2550,7381,7382],{"class":2731}," \u002F* 开始游戏按钮 *\u002F\n",[2550,7384,7385],{"class":2552,"line":3571},[2550,7386,2573],{"emptyLinePlaceholder":2572},[2550,7388,7389,7391,7393],{"class":2552,"line":3576},[2550,7390,2907],{"class":6978},[2550,7392,3654],{"class":6981},[2550,7394,2748],{"class":2747},[2550,7396,7397],{"class":2552,"line":3591},[2550,7398,2573],{"emptyLinePlaceholder":2572},[2550,7400,7401,7403,7405,7407,7409],{"class":2552,"line":3596},[2550,7402,3667],{"class":2759},[2550,7404,2763],{"class":2588},[2550,7406,3471],{"class":2839},[2550,7408,3015],{"class":2843},[2550,7410,2770],{"class":2747},[2550,7412,7413],{"class":2552,"line":3613},[2550,7414,2573],{"emptyLinePlaceholder":2572},[2550,7416,7417,7419,7421,7424,7426,7428,7430],{"class":2552,"line":3618},[2550,7418,3259],{"class":2759},[2550,7420,2763],{"class":2588},[2550,7422,7423],{"class":2839}," 12",[2550,7425,3015],{"class":2843},[2550,7427,3471],{"class":2839},[2550,7429,3015],{"class":2843},[2550,7431,2770],{"class":2747},[2550,7433,7434],{"class":2552,"line":3623},[2550,7435,2573],{"emptyLinePlaceholder":2572},[2550,7437,7438,7440,7442,7444,7447],{"class":2552,"line":3628},[2550,7439,2901],{"class":2759},[2550,7441,2763],{"class":2588},[2550,7443,2907],{"class":2906},[2550,7445,7446],{"class":2910},"0000ff",[2550,7448,2770],{"class":2747},[2550,7450,7451],{"class":2552,"line":3633},[2550,7452,2573],{"emptyLinePlaceholder":2572},[2550,7454,7455,7457,7459,7462],{"class":2552,"line":3638},[2550,7456,3095],{"class":2759},[2550,7458,2763],{"class":2588},[2550,7460,7461],{"class":2880}," white",[2550,7463,2770],{"class":2747},[2550,7465,7466],{"class":2552,"line":3644},[2550,7467,2573],{"emptyLinePlaceholder":2572},[2550,7469,7470,7472,7474,7476],{"class":2552,"line":3649},[2550,7471,3768],{"class":2759},[2550,7473,2763],{"class":2588},[2550,7475,3773],{"class":2766},[2550,7477,2770],{"class":2747},[2550,7479,7480],{"class":2552,"line":3659},[2550,7481,2573],{"emptyLinePlaceholder":2572},[2550,7483,7484,7486,7488,7490,7492],{"class":2552,"line":3664},[2550,7485,3278],{"class":2759},[2550,7487,2763],{"class":2588},[2550,7489,3790],{"class":2839},[2550,7491,3015],{"class":2843},[2550,7493,2770],{"class":2747},[2550,7495,7496],{"class":2552,"line":3678},[2550,7497,2573],{"emptyLinePlaceholder":2572},[2550,7499,7500,7502,7504,7506],{"class":2552,"line":3683},[2550,7501,3505],{"class":2759},[2550,7503,2763],{"class":2588},[2550,7505,3510],{"class":2766},[2550,7507,2770],{"class":2747},[2550,7509,7510],{"class":2552,"line":3700},[2550,7511,2573],{"emptyLinePlaceholder":2572},[2550,7513,7514,7516,7518,7520,7522],{"class":2552,"line":3705},[2550,7515,3075],{"class":2759},[2550,7517,2763],{"class":2588},[2550,7519,3712],{"class":2839},[2550,7521,3015],{"class":2843},[2550,7523,2770],{"class":2747},[2550,7525,7526],{"class":2552,"line":3719},[2550,7527,2573],{"emptyLinePlaceholder":2572},[2550,7529,7530,7532,7534,7536,7538,7540],{"class":2552,"line":3724},[2550,7531,3523],{"class":2759},[2550,7533,2763],{"class":2588},[2550,7535,3529],{"class":3528},[2550,7537,3532],{"class":2839},[2550,7539,3535],{"class":2843},[2550,7541,2770],{"class":2747},[2550,7543,7544],{"class":2552,"line":3738},[2550,7545,2573],{"emptyLinePlaceholder":2572},[2550,7547,7548],{"class":2552,"line":3743},[2550,7549,2924],{"class":2747},[2550,7551,7552],{"class":2552,"line":3760},[2550,7553,2573],{"emptyLinePlaceholder":2572},[2550,7555,7556],{"class":2552,"line":3765},[2550,7557,2573],{"emptyLinePlaceholder":2572},[2550,7559,7560],{"class":2552,"line":3778},[2550,7561,2573],{"emptyLinePlaceholder":2572},[2550,7563,7564,7566,7568,7570,7572],{"class":2552,"line":3783},[2550,7565,2907],{"class":6978},[2550,7567,3654],{"class":6981},[2550,7569,2763],{"class":3856},[2550,7571,3860],{"class":3859},[2550,7573,2748],{"class":2747},[2550,7575,7576],{"class":2552,"line":3797},[2550,7577,2573],{"emptyLinePlaceholder":2572},[2550,7579,7580,7582,7584,7586,7589],{"class":2552,"line":3802},[2550,7581,2901],{"class":2759},[2550,7583,2763],{"class":2588},[2550,7585,2907],{"class":2906},[2550,7587,7588],{"class":2910},"3333ff",[2550,7590,2770],{"class":2747},[2550,7592,7593],{"class":2552,"line":3813},[2550,7594,2573],{"emptyLinePlaceholder":2572},[2550,7596,7597],{"class":2552,"line":3818},[2550,7598,2924],{"class":2747},[2550,7600,7601],{"class":2552,"line":3834},[2550,7602,2573],{"emptyLinePlaceholder":2572},[2550,7604,7605],{"class":2552,"line":3839},[2550,7606,2573],{"emptyLinePlaceholder":2572},[2550,7608,7609],{"class":2552,"line":3844},[2550,7610,2573],{"emptyLinePlaceholder":2572},[2550,7612,7613,7615,7617,7619,7621],{"class":2552,"line":3849},[2550,7614,2907],{"class":6978},[2550,7616,3654],{"class":6981},[2550,7618,2763],{"class":3856},[2550,7620,6041],{"class":3859},[2550,7622,2748],{"class":2747},[2550,7624,7625],{"class":2552,"line":3865},[2550,7626,2573],{"emptyLinePlaceholder":2572},[2550,7628,7629,7631,7633,7635,7638],{"class":2552,"line":3870},[2550,7630,2901],{"class":2759},[2550,7632,2763],{"class":2588},[2550,7634,2907],{"class":2906},[2550,7636,7637],{"class":2910},"888888",[2550,7639,2770],{"class":2747},[2550,7641,7642],{"class":2552,"line":3887},[2550,7643,2573],{"emptyLinePlaceholder":2572},[2550,7645,7646,7648,7650,7653],{"class":2552,"line":3892},[2550,7647,3505],{"class":2759},[2550,7649,2763],{"class":2588},[2550,7651,7652],{"class":2766}," not-allowed",[2550,7654,2770],{"class":2747},[2550,7656,7657],{"class":2552,"line":3897},[2550,7658,2573],{"emptyLinePlaceholder":2572},[2550,7660,7661],{"class":2552,"line":3902},[2550,7662,2924],{"class":2747},[2550,7664,7665],{"class":2552,"line":3915},[2550,7666,2573],{"emptyLinePlaceholder":2572},[2550,7668,7669,7671,7673,7675],{"class":2552,"line":3920},[2550,7670,2579],{"class":3905},[2550,7672,3908],{"class":2578},[2550,7674,2718],{"class":2582},[2550,7676,2567],{"class":2578},[2550,7678,7679],{"class":2552,"line":3930},[2550,7680,2573],{"emptyLinePlaceholder":2572},[2550,7682,7683,7685,7687],{"class":2552,"line":3935},[2550,7684,3923],{"class":2578},[2550,7686,2612],{"class":2582},[2550,7688,2567],{"class":2578},[2550,7690,7691],{"class":2552,"line":3945},[2550,7692,2573],{"emptyLinePlaceholder":2572},[2550,7694,7695,7697,7699],{"class":2552,"line":3950},[2550,7696,2579],{"class":2578},[2550,7698,3940],{"class":2582},[2550,7700,2567],{"class":2578},[2550,7702,7703],{"class":2552,"line":3956},[2550,7704,2573],{"emptyLinePlaceholder":2572},[2550,7706,7707],{"class":2552,"line":3961},[2550,7708,7709],{"class":2731}," \u003C!-- 游戏信息显示 -->\n",[2550,7711,7712],{"class":2552,"line":3982},[2550,7713,2573],{"emptyLinePlaceholder":2572},[2550,7715,7716,7718,7720,7722,7724,7726,7728,7730],{"class":2552,"line":3987},[2550,7717,2579],{"class":2578},[2550,7719,3966],{"class":2582},[2550,7721,3969],{"class":2563},[2550,7723,2589],{"class":2588},[2550,7725,2593],{"class":2592},[2550,7727,6861],{"class":2596},[2550,7729,2593],{"class":2592},[2550,7731,2567],{"class":2578},[2550,7733,7734],{"class":2552,"line":4017},[2550,7735,2573],{"emptyLinePlaceholder":2572},[2550,7737,7738,7740,7742,7744,7747,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774],{"class":2552,"line":4022},[2550,7739,2579],{"class":2578},[2550,7741,3966],{"class":2582},[2550,7743,2694],{"class":2578},[2550,7745,7746],{"class":2697},"得分：",[2550,7748,7749],{"class":2578},"\u003C",[2550,7751,2550],{"class":2582},[2550,7753,3994],{"class":2563},[2550,7755,2589],{"class":2588},[2550,7757,2593],{"class":2592},[2550,7759,4001],{"class":2596},[2550,7761,2593],{"class":2592},[2550,7763,2694],{"class":2578},[2550,7765,4161],{"class":2697},[2550,7767,2701],{"class":2578},[2550,7769,2550],{"class":2582},[2550,7771,4166],{"class":2578},[2550,7773,3966],{"class":2582},[2550,7775,2567],{"class":2578},[2550,7777,7778],{"class":2552,"line":4051},[2550,7779,2573],{"emptyLinePlaceholder":2572},[2550,7781,7782,7784,7786,7788,7791,7793,7795,7797,7799,7801,7804,7806,7808,7811,7813,7815,7817,7820,7822,7824],{"class":2552,"line":4056},[2550,7783,2579],{"class":2578},[2550,7785,3966],{"class":2582},[2550,7787,2694],{"class":2578},[2550,7789,7790],{"class":2697},"剩余时间：",[2550,7792,7749],{"class":2578},[2550,7794,2550],{"class":2582},[2550,7796,3994],{"class":2563},[2550,7798,2589],{"class":2588},[2550,7800,2593],{"class":2592},[2550,7802,7803],{"class":2596},"timer",[2550,7805,2593],{"class":2592},[2550,7807,2694],{"class":2578},[2550,7809,7810],{"class":2697},"30",[2550,7812,2701],{"class":2578},[2550,7814,2550],{"class":2582},[2550,7816,2694],{"class":2578},[2550,7818,7819],{"class":2697},"秒",[2550,7821,2701],{"class":2578},[2550,7823,3966],{"class":2582},[2550,7825,2567],{"class":2578},[2550,7827,7828],{"class":2552,"line":4065},[2550,7829,2573],{"emptyLinePlaceholder":2572},[2550,7831,7832,7834,7836],{"class":2552,"line":4070},[2550,7833,3923],{"class":2578},[2550,7835,3966],{"class":2582},[2550,7837,2567],{"class":2578},[2550,7839,7840],{"class":2552,"line":4075},[2550,7841,2573],{"emptyLinePlaceholder":2572},[2550,7843,7844],{"class":2552,"line":4080},[2550,7845,2573],{"emptyLinePlaceholder":2572},[2550,7847,7848],{"class":2552,"line":4086},[2550,7849,2573],{"emptyLinePlaceholder":2572},[2550,7851,7852],{"class":2552,"line":4091},[2550,7853,7854],{"class":2731}," \u003C!-- 游戏主区域 -->\n",[2550,7856,7857],{"class":2552,"line":4121},[2550,7858,2573],{"emptyLinePlaceholder":2572},[2550,7860,7861,7863,7865,7867,7869,7871,7873,7875],{"class":2552,"line":4126},[2550,7862,2579],{"class":2578},[2550,7864,3966],{"class":2582},[2550,7866,3994],{"class":2563},[2550,7868,2589],{"class":2588},[2550,7870,2593],{"class":2592},[2550,7872,3152],{"class":2596},[2550,7874,2593],{"class":2592},[2550,7876,2567],{"class":2578},[2550,7878,7879],{"class":2552,"line":4132},[2550,7880,2573],{"emptyLinePlaceholder":2572},[2550,7882,7883],{"class":2552,"line":4137},[2550,7884,7885],{"class":2731}," \u003C!-- 生成9个地鼠洞 -->\n",[2550,7887,7888],{"class":2552,"line":4173},[2550,7889,2573],{"emptyLinePlaceholder":2572},[2550,7891,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910],{"class":2552,"line":4178},[2550,7893,2579],{"class":2578},[2550,7895,3966],{"class":2582},[2550,7897,3969],{"class":2563},[2550,7899,2589],{"class":2588},[2550,7901,2593],{"class":2592},[2550,7903,3330],{"class":2596},[2550,7905,2593],{"class":2592},[2550,7907,4166],{"class":2578},[2550,7909,3966],{"class":2582},[2550,7911,2567],{"class":2578},[2550,7913,7914],{"class":2552,"line":4212},[2550,7915,2573],{"emptyLinePlaceholder":2572},[2550,7917,7918,7920,7922,7924,7926,7928,7930,7932,7934,7936],{"class":2552,"line":4217},[2550,7919,2579],{"class":2578},[2550,7921,3966],{"class":2582},[2550,7923,3969],{"class":2563},[2550,7925,2589],{"class":2588},[2550,7927,2593],{"class":2592},[2550,7929,3330],{"class":2596},[2550,7931,2593],{"class":2592},[2550,7933,4166],{"class":2578},[2550,7935,3966],{"class":2582},[2550,7937,2567],{"class":2578},[2550,7939,7940],{"class":2552,"line":4251},[2550,7941,2573],{"emptyLinePlaceholder":2572},[2550,7943,7944,7946,7948,7950,7952,7954,7956,7958,7960,7962],{"class":2552,"line":4256},[2550,7945,2579],{"class":2578},[2550,7947,3966],{"class":2582},[2550,7949,3969],{"class":2563},[2550,7951,2589],{"class":2588},[2550,7953,2593],{"class":2592},[2550,7955,3330],{"class":2596},[2550,7957,2593],{"class":2592},[2550,7959,4166],{"class":2578},[2550,7961,3966],{"class":2582},[2550,7963,2567],{"class":2578},[2550,7965,7966],{"class":2552,"line":4289},[2550,7967,2573],{"emptyLinePlaceholder":2572},[2550,7969,7970,7972,7974,7976,7978,7980,7982,7984,7986,7988],{"class":2552,"line":4294},[2550,7971,2579],{"class":2578},[2550,7973,3966],{"class":2582},[2550,7975,3969],{"class":2563},[2550,7977,2589],{"class":2588},[2550,7979,2593],{"class":2592},[2550,7981,3330],{"class":2596},[2550,7983,2593],{"class":2592},[2550,7985,4166],{"class":2578},[2550,7987,3966],{"class":2582},[2550,7989,2567],{"class":2578},[2550,7991,7992],{"class":2552,"line":4328},[2550,7993,2573],{"emptyLinePlaceholder":2572},[2550,7995,7996,7998,8000,8002,8004,8006,8008,8010,8012,8014],{"class":2552,"line":4333},[2550,7997,2579],{"class":2578},[2550,7999,3966],{"class":2582},[2550,8001,3969],{"class":2563},[2550,8003,2589],{"class":2588},[2550,8005,2593],{"class":2592},[2550,8007,3330],{"class":2596},[2550,8009,2593],{"class":2592},[2550,8011,4166],{"class":2578},[2550,8013,3966],{"class":2582},[2550,8015,2567],{"class":2578},[2550,8017,8018],{"class":2552,"line":4367},[2550,8019,2573],{"emptyLinePlaceholder":2572},[2550,8021,8022,8024,8026,8028,8030,8032,8034,8036,8038,8040],{"class":2552,"line":4372},[2550,8023,2579],{"class":2578},[2550,8025,3966],{"class":2582},[2550,8027,3969],{"class":2563},[2550,8029,2589],{"class":2588},[2550,8031,2593],{"class":2592},[2550,8033,3330],{"class":2596},[2550,8035,2593],{"class":2592},[2550,8037,4166],{"class":2578},[2550,8039,3966],{"class":2582},[2550,8041,2567],{"class":2578},[2550,8043,8044],{"class":2552,"line":4406},[2550,8045,2573],{"emptyLinePlaceholder":2572},[2550,8047,8048,8050,8052,8054,8056,8058,8060,8062,8064,8066],{"class":2552,"line":4411},[2550,8049,2579],{"class":2578},[2550,8051,3966],{"class":2582},[2550,8053,3969],{"class":2563},[2550,8055,2589],{"class":2588},[2550,8057,2593],{"class":2592},[2550,8059,3330],{"class":2596},[2550,8061,2593],{"class":2592},[2550,8063,4166],{"class":2578},[2550,8065,3966],{"class":2582},[2550,8067,2567],{"class":2578},[2550,8069,8070],{"class":2552,"line":4445},[2550,8071,2573],{"emptyLinePlaceholder":2572},[2550,8073,8074,8076,8078,8080,8082,8084,8086,8088,8090,8092],{"class":2552,"line":4450},[2550,8075,2579],{"class":2578},[2550,8077,3966],{"class":2582},[2550,8079,3969],{"class":2563},[2550,8081,2589],{"class":2588},[2550,8083,2593],{"class":2592},[2550,8085,3330],{"class":2596},[2550,8087,2593],{"class":2592},[2550,8089,4166],{"class":2578},[2550,8091,3966],{"class":2582},[2550,8093,2567],{"class":2578},[2550,8095,8096],{"class":2552,"line":4484},[2550,8097,2573],{"emptyLinePlaceholder":2572},[2550,8099,8100,8102,8104,8106,8108,8110,8112,8114,8116,8118],{"class":2552,"line":4489},[2550,8101,2579],{"class":2578},[2550,8103,3966],{"class":2582},[2550,8105,3969],{"class":2563},[2550,8107,2589],{"class":2588},[2550,8109,2593],{"class":2592},[2550,8111,3330],{"class":2596},[2550,8113,2593],{"class":2592},[2550,8115,4166],{"class":2578},[2550,8117,3966],{"class":2582},[2550,8119,2567],{"class":2578},[2550,8121,8122],{"class":2552,"line":4498},[2550,8123,2573],{"emptyLinePlaceholder":2572},[2550,8125,8126,8128,8130],{"class":2552,"line":4503},[2550,8127,3923],{"class":2578},[2550,8129,3966],{"class":2582},[2550,8131,2567],{"class":2578},[2550,8133,8134],{"class":2552,"line":4508},[2550,8135,2573],{"emptyLinePlaceholder":2572},[2550,8137,8138],{"class":2552,"line":4513},[2550,8139,2573],{"emptyLinePlaceholder":2572},[2550,8141,8142],{"class":2552,"line":4519},[2550,8143,2573],{"emptyLinePlaceholder":2572},[2550,8145,8146],{"class":2552,"line":4524},[2550,8147,8148],{"class":2731}," \u003C!-- 控制按钮 -->\n",[2550,8150,8151],{"class":2552,"line":4564},[2550,8152,2573],{"emptyLinePlaceholder":2572},[2550,8154,8155,8157,8159,8161,8163,8165,8167,8169,8171,8173,8175,8177],{"class":2552,"line":4569},[2550,8156,2579],{"class":2578},[2550,8158,4529],{"class":2582},[2550,8160,3994],{"class":2563},[2550,8162,2589],{"class":2588},[2550,8164,2593],{"class":2592},[2550,8166,3654],{"class":2596},[2550,8168,2593],{"class":2592},[2550,8170,2694],{"class":2578},[2550,8172,4555],{"class":2697},[2550,8174,2701],{"class":2578},[2550,8176,4529],{"class":2582},[2550,8178,2567],{"class":2578},[2550,8180,8181],{"class":2552,"line":4574},[2550,8182,2573],{"emptyLinePlaceholder":2572},[2550,8184,8185],{"class":2552,"line":4579},[2550,8186,2573],{"emptyLinePlaceholder":2572},[2550,8188,8189],{"class":2552,"line":4589},[2550,8190,2573],{"emptyLinePlaceholder":2572},[2550,8192,8193,8195,8197],{"class":2552,"line":4594},[2550,8194,2579],{"class":2578},[2550,8196,4584],{"class":2582},[2550,8198,2567],{"class":2578},[2550,8200,8201],{"class":2552,"line":4600},[2550,8202,2573],{"emptyLinePlaceholder":2572},[2550,8204,8205],{"class":2552,"line":4605},[2550,8206,8207],{"class":2731}," \u002F\u002F 游戏全局变量\n",[2550,8209,8210],{"class":2552,"line":4645},[2550,8211,2573],{"emptyLinePlaceholder":2572},[2550,8213,8214,8216,8218,8220,8222],{"class":2552,"line":4650},[2550,8215,4808],{"class":4608},[2550,8217,4812],{"class":4811},[2550,8219,4617],{"class":4616},[2550,8221,2862],{"class":2839},[2550,8223,2770],{"class":2747},[2550,8225,8226],{"class":2552,"line":4678},[2550,8227,2573],{"emptyLinePlaceholder":2572},[2550,8229,8230,8232,8234,8236,8238],{"class":2552,"line":4683},[2550,8231,4808],{"class":4608},[2550,8233,4831],{"class":4811},[2550,8235,4617],{"class":4616},[2550,8237,3471],{"class":2839},[2550,8239,2770],{"class":2747},[2550,8241,8242],{"class":2552,"line":4711},[2550,8243,2573],{"emptyLinePlaceholder":2572},[2550,8245,8246,8248,8250,8252,8254],{"class":2552,"line":4716},[2550,8247,4808],{"class":4608},[2550,8249,4850],{"class":4811},[2550,8251,4617],{"class":4616},[2550,8253,4856],{"class":4855},[2550,8255,2770],{"class":2747},[2550,8257,8258],{"class":2552,"line":4744},[2550,8259,2573],{"emptyLinePlaceholder":2572},[2550,8261,8262,8264,8266,8268,8270],{"class":2552,"line":4749},[2550,8263,4808],{"class":4608},[2550,8265,4871],{"class":4811},[2550,8267,4617],{"class":4616},[2550,8269,4877],{"class":4876},[2550,8271,2770],{"class":2747},[2550,8273,8274],{"class":2552,"line":4779},[2550,8275,2573],{"emptyLinePlaceholder":2572},[2550,8277,8278,8280,8282,8284,8286],{"class":2552,"line":4784},[2550,8279,4808],{"class":4608},[2550,8281,4892],{"class":4811},[2550,8283,4617],{"class":4616},[2550,8285,4877],{"class":4876},[2550,8287,2770],{"class":2747},[2550,8289,8290],{"class":2552,"line":4789},[2550,8291,2573],{"emptyLinePlaceholder":2572},[2550,8293,8294],{"class":2552,"line":4794},[2550,8295,2573],{"emptyLinePlaceholder":2572},[2550,8297,8298],{"class":2552,"line":4800},[2550,8299,2573],{"emptyLinePlaceholder":2572},[2550,8301,8302],{"class":2552,"line":4805},[2550,8303,8304],{"class":2731}," \u002F\u002F DOM元素引用\n",[2550,8306,8307],{"class":2552,"line":4821},[2550,8308,2573],{"emptyLinePlaceholder":2572},[2550,8310,8311,8313,8315,8317,8319,8321,8323,8325,8327,8329,8331,8333],{"class":2552,"line":4826},[2550,8312,4609],{"class":4608},[2550,8314,4754],{"class":4612},[2550,8316,4617],{"class":4616},[2550,8318,4621],{"class":4620},[2550,8320,3583],{"class":4624},[2550,8322,4763],{"class":4627},[2550,8324,3192],{"class":4631},[2550,8326,4634],{"class":2592},[2550,8328,4770],{"class":2596},[2550,8330,4634],{"class":2592},[2550,8332,3204],{"class":4631},[2550,8334,2770],{"class":2747},[2550,8336,8337],{"class":2552,"line":4840},[2550,8338,2573],{"emptyLinePlaceholder":2572},[2550,8340,8341,8343,8345,8347,8349,8351,8353,8355,8357,8359,8361,8363],{"class":2552,"line":4845},[2550,8342,4609],{"class":4608},[2550,8344,4613],{"class":4612},[2550,8346,4617],{"class":4616},[2550,8348,4621],{"class":4620},[2550,8350,3583],{"class":4624},[2550,8352,4628],{"class":4627},[2550,8354,3192],{"class":4631},[2550,8356,4634],{"class":2592},[2550,8358,4001],{"class":2596},[2550,8360,4634],{"class":2592},[2550,8362,3204],{"class":4631},[2550,8364,2770],{"class":2747},[2550,8366,8367],{"class":2552,"line":4861},[2550,8368,2573],{"emptyLinePlaceholder":2572},[2550,8370,8371,8373,8376,8378,8380,8382,8384,8386,8388,8390,8392,8394],{"class":2552,"line":4866},[2550,8372,4609],{"class":4608},[2550,8374,8375],{"class":4612}," timerDisplay",[2550,8377,4617],{"class":4616},[2550,8379,4621],{"class":4620},[2550,8381,3583],{"class":4624},[2550,8383,4628],{"class":4627},[2550,8385,3192],{"class":4631},[2550,8387,4634],{"class":2592},[2550,8389,7803],{"class":2596},[2550,8391,4634],{"class":2592},[2550,8393,3204],{"class":4631},[2550,8395,2770],{"class":2747},[2550,8397,8398],{"class":2552,"line":4882},[2550,8399,2573],{"emptyLinePlaceholder":2572},[2550,8401,8402,8404,8406,8408,8410,8412,8414,8416,8418,8420,8422,8424],{"class":2552,"line":4887},[2550,8403,4609],{"class":4608},[2550,8405,4721],{"class":4612},[2550,8407,4617],{"class":4616},[2550,8409,4621],{"class":4620},[2550,8411,3583],{"class":4624},[2550,8413,4628],{"class":4627},[2550,8415,3192],{"class":4631},[2550,8417,4634],{"class":2592},[2550,8419,3654],{"class":2596},[2550,8421,4634],{"class":2592},[2550,8423,3204],{"class":4631},[2550,8425,2770],{"class":2747},[2550,8427,8428],{"class":2552,"line":4901},[2550,8429,2573],{"emptyLinePlaceholder":2572},[2550,8431,8432],{"class":2552,"line":4906},[2550,8433,2573],{"emptyLinePlaceholder":2572},[2550,8435,8436],{"class":2552,"line":4911},[2550,8437,2573],{"emptyLinePlaceholder":2572},[2550,8439,8440],{"class":2552,"line":4916},[2550,8441,8442],{"class":2731}," \u002F\u002F 初始化点击事件监听\n",[2550,8444,8445],{"class":2552,"line":4922},[2550,8446,2573],{"emptyLinePlaceholder":2572},[2550,8448,8449,8451,8453,8455,8457,8459,8461],{"class":2552,"line":4927},[2550,8450,4754],{"class":4620},[2550,8452,3583],{"class":4624},[2550,8454,5112],{"class":4627},[2550,8456,3192],{"class":4631},[2550,8458,3330],{"class":5117},[2550,8460,5121],{"class":5120},[2550,8462,2748],{"class":2747},[2550,8464,8465],{"class":2552,"line":4941},[2550,8466,2573],{"emptyLinePlaceholder":2572},[2550,8468,8469,8471,8473,8475,8477,8479,8481,8483,8485,8488,8490],{"class":2552,"line":4946},[2550,8470,5134],{"class":4620},[2550,8472,3583],{"class":4624},[2550,8474,6453],{"class":4627},[2550,8476,3192],{"class":5071},[2550,8478,4634],{"class":2592},[2550,8480,6460],{"class":2596},[2550,8482,4634],{"class":2592},[2550,8484,2885],{"class":2884},[2550,8486,8487],{"class":2747}," ()",[2550,8489,5121],{"class":5120},[2550,8491,2748],{"class":2747},[2550,8493,8494],{"class":2552,"line":4957},[2550,8495,2573],{"emptyLinePlaceholder":2572},[2550,8497,8498,8500,8502,8504,8506,8508,8510],{"class":2552,"line":4962},[2550,8499,5253],{"class":5252},[2550,8501,5256],{"class":5071},[2550,8503,5260],{"class":5259},[2550,8505,5263],{"class":4811},[2550,8507,3204],{"class":5071},[2550,8509,5268],{"class":5252},[2550,8511,2770],{"class":2747},[2550,8513,8514],{"class":2552,"line":4973},[2550,8515,2573],{"emptyLinePlaceholder":2572},[2550,8517,8518],{"class":2552,"line":4978},[2550,8519,8520],{"class":2731}," \u002F\u002F 点击有效的地鼠\n",[2550,8522,8523],{"class":2552,"line":4989},[2550,8524,2573],{"emptyLinePlaceholder":2572},[2550,8526,8527,8529,8531,8533,8535,8537,8539,8541,8543,8545,8547,8549,8551],{"class":2552,"line":4994},[2550,8528,5253],{"class":5252},[2550,8530,5256],{"class":5071},[2550,8532,3330],{"class":4620},[2550,8534,3583],{"class":4624},[2550,8536,5140],{"class":5139},[2550,8538,3583],{"class":4624},[2550,8540,5806],{"class":4627},[2550,8542,3192],{"class":5071},[2550,8544,4634],{"class":2592},[2550,8546,7320],{"class":2596},[2550,8548,4634],{"class":2592},[2550,8550,5817],{"class":5071},[2550,8552,2748],{"class":2747},[2550,8554,8555],{"class":2552,"line":5028},[2550,8556,2573],{"emptyLinePlaceholder":2572},[2550,8558,8559,8561,8563],{"class":2552,"line":5033},[2550,8560,4812],{"class":4811},[2550,8562,5832],{"class":5259},[2550,8564,2770],{"class":2747},[2550,8566,8567],{"class":2552,"line":5060},[2550,8568,2573],{"emptyLinePlaceholder":2572},[2550,8570,8571,8573,8575,8577,8579,8581],{"class":2552,"line":5065},[2550,8572,4613],{"class":4620},[2550,8574,3583],{"class":2578},[2550,8576,5002],{"class":5001},[2550,8578,4617],{"class":4616},[2550,8580,4812],{"class":4811},[2550,8582,2770],{"class":2747},[2550,8584,8585],{"class":2552,"line":5081},[2550,8586,2573],{"emptyLinePlaceholder":2572},[2550,8588,8589,8591,8593,8595,8597,8599,8601,8603,8605,8607,8609],{"class":2552,"line":5086},[2550,8590,5134],{"class":4620},[2550,8592,3583],{"class":4624},[2550,8594,5140],{"class":5139},[2550,8596,3583],{"class":4624},[2550,8598,5145],{"class":4627},[2550,8600,3192],{"class":5071},[2550,8602,4634],{"class":2592},[2550,8604,7320],{"class":2596},[2550,8606,4634],{"class":2592},[2550,8608,3204],{"class":5071},[2550,8610,2770],{"class":2747},[2550,8612,8613],{"class":2552,"line":5100},[2550,8614,2573],{"emptyLinePlaceholder":2572},[2550,8616,8617,8619,8621,8623,8625,8627],{"class":2552,"line":5105},[2550,8618,5134],{"class":4620},[2550,8620,3583],{"class":2578},[2550,8622,5002],{"class":5001},[2550,8624,4617],{"class":4616},[2550,8626,5176],{"class":2592},[2550,8628,2770],{"class":2747},[2550,8630,8631],{"class":2552,"line":5126},[2550,8632,2573],{"emptyLinePlaceholder":2572},[2550,8634,8635],{"class":2552,"line":5131},[2550,8636,2924],{"class":2747},[2550,8638,8639],{"class":2552,"line":5160},[2550,8640,2573],{"emptyLinePlaceholder":2572},[2550,8642,8643,8645,8647],{"class":2552,"line":5165},[2550,8644,5189],{"class":2747},[2550,8646,3204],{"class":5071},[2550,8648,2770],{"class":2747},[2550,8650,8651],{"class":2552,"line":5181},[2550,8652,2573],{"emptyLinePlaceholder":2572},[2550,8654,8655,8657,8659],{"class":2552,"line":5186},[2550,8656,5189],{"class":2747},[2550,8658,3204],{"class":4631},[2550,8660,2770],{"class":2747},[2550,8662,8663],{"class":2552,"line":5196},[2550,8664,2573],{"emptyLinePlaceholder":2572},[2550,8666,8667],{"class":2552,"line":5201},[2550,8668,2573],{"emptyLinePlaceholder":2572},[2550,8670,8671],{"class":2552,"line":5206},[2550,8672,2573],{"emptyLinePlaceholder":2572},[2550,8674,8675],{"class":2552,"line":5211},[2550,8676,8677],{"class":2731}," \u002F\u002F 开始游戏按钮功能\n",[2550,8679,8680],{"class":2552,"line":5216},[2550,8681,2573],{"emptyLinePlaceholder":2572},[2550,8683,8684,8686,8688,8690,8692,8694,8696,8698,8700,8702,8704],{"class":2552,"line":5221},[2550,8685,4721],{"class":4620},[2550,8687,3583],{"class":4624},[2550,8689,6453],{"class":4627},[2550,8691,3192],{"class":4631},[2550,8693,4634],{"class":2592},[2550,8695,6460],{"class":2596},[2550,8697,4634],{"class":2592},[2550,8699,2885],{"class":2884},[2550,8701,8487],{"class":2747},[2550,8703,5121],{"class":5120},[2550,8705,2748],{"class":2747},[2550,8707,8708],{"class":2552,"line":5227},[2550,8709,2573],{"emptyLinePlaceholder":2572},[2550,8711,8712,8714,8716,8718,8720,8722],{"class":2552,"line":5232},[2550,8713,5253],{"class":5252},[2550,8715,5256],{"class":5071},[2550,8717,5260],{"class":5259},[2550,8719,5263],{"class":4811},[2550,8721,3204],{"class":5071},[2550,8723,2748],{"class":2747},[2550,8725,8726],{"class":2552,"line":5244},[2550,8727,2573],{"emptyLinePlaceholder":2572},[2550,8729,8730,8732,8734],{"class":2552,"line":5249},[2550,8731,5968],{"class":4627},[2550,8733,4936],{"class":5071},[2550,8735,2770],{"class":2747},[2550,8737,8738],{"class":2552,"line":5273},[2550,8739,2573],{"emptyLinePlaceholder":2572},[2550,8741,8742],{"class":2552,"line":5278},[2550,8743,2924],{"class":2747},[2550,8745,8746],{"class":2552,"line":5283},[2550,8747,2573],{"emptyLinePlaceholder":2572},[2550,8749,8750,8752,8754],{"class":2552,"line":5288},[2550,8751,5189],{"class":2747},[2550,8753,3204],{"class":4631},[2550,8755,2770],{"class":2747},[2550,8757,8758],{"class":2552,"line":5294},[2550,8759,2573],{"emptyLinePlaceholder":2572},[2550,8761,8762],{"class":2552,"line":5299},[2550,8763,2573],{"emptyLinePlaceholder":2572},[2550,8765,8766],{"class":2552,"line":5316},[2550,8767,2573],{"emptyLinePlaceholder":2572},[2550,8769,8770],{"class":2552,"line":5321},[2550,8771,8772],{"class":2731}," \u002F\u002F 游戏主逻辑\n",[2550,8774,8775],{"class":2552,"line":5346},[2550,8776,2573],{"emptyLinePlaceholder":2572},[2550,8778,8779,8781,8783,8785],{"class":2552,"line":5351},[2550,8780,4930],{"class":4608},[2550,8782,5968],{"class":4627},[2550,8784,4936],{"class":2747},[2550,8786,2748],{"class":2747},[2550,8788,8789],{"class":2552,"line":5366},[2550,8790,2573],{"emptyLinePlaceholder":2572},[2550,8792,8793],{"class":2552,"line":5371},[2550,8794,8795],{"class":2731}," \u002F\u002F 重置游戏状态\n",[2550,8797,8798],{"class":2552,"line":5380},[2550,8799,2573],{"emptyLinePlaceholder":2572},[2550,8801,8802,8804,8806,8808],{"class":2552,"line":5385},[2550,8803,4850],{"class":4811},[2550,8805,4617],{"class":4616},[2550,8807,6024],{"class":4855},[2550,8809,2770],{"class":2747},[2550,8811,8812],{"class":2552,"line":5390},[2550,8813,2573],{"emptyLinePlaceholder":2572},[2550,8815,8816,8818,8820,8822],{"class":2552,"line":5395},[2550,8817,4812],{"class":4811},[2550,8819,4617],{"class":4616},[2550,8821,2862],{"class":2839},[2550,8823,2770],{"class":2747},[2550,8825,8826],{"class":2552,"line":5401},[2550,8827,2573],{"emptyLinePlaceholder":2572},[2550,8829,8830,8832,8834,8836],{"class":2552,"line":5406},[2550,8831,4831],{"class":4811},[2550,8833,4617],{"class":4616},[2550,8835,3471],{"class":2839},[2550,8837,2770],{"class":2747},[2550,8839,8840],{"class":2552,"line":5456},[2550,8841,2573],{"emptyLinePlaceholder":2572},[2550,8843,8844,8846,8848,8850,8852,8854],{"class":2552,"line":5461},[2550,8845,4613],{"class":4620},[2550,8847,3583],{"class":2578},[2550,8849,5002],{"class":5001},[2550,8851,4617],{"class":4616},[2550,8853,4812],{"class":4811},[2550,8855,2770],{"class":2747},[2550,8857,8858],{"class":2552,"line":5487},[2550,8859,2573],{"emptyLinePlaceholder":2572},[2550,8861,8862,8864,8866,8868,8870,8872],{"class":2552,"line":5492},[2550,8863,8375],{"class":4620},[2550,8865,3583],{"class":2578},[2550,8867,5002],{"class":5001},[2550,8869,4617],{"class":4616},[2550,8871,4831],{"class":4811},[2550,8873,2770],{"class":2747},[2550,8875,8876],{"class":2552,"line":5513},[2550,8877,2573],{"emptyLinePlaceholder":2572},[2550,8879,8880,8882,8884,8886,8888,8890],{"class":2552,"line":5518},[2550,8881,4721],{"class":4620},[2550,8883,3583],{"class":2578},[2550,8885,6041],{"class":5001},[2550,8887,4617],{"class":4616},[2550,8889,6024],{"class":4855},[2550,8891,2770],{"class":2747},[2550,8893,8894],{"class":2552,"line":5523},[2550,8895,2573],{"emptyLinePlaceholder":2572},[2550,8897,8898],{"class":2552,"line":5528},[2550,8899,2573],{"emptyLinePlaceholder":2572},[2550,8901,8902],{"class":2552,"line":5534},[2550,8903,2573],{"emptyLinePlaceholder":2572},[2550,8905,8906],{"class":2552,"line":5539},[2550,8907,8908],{"class":2731}," \u002F\u002F 清除已有定时器\n",[2550,8910,8911],{"class":2552,"line":5553},[2550,8912,2573],{"emptyLinePlaceholder":2572},[2550,8914,8915,8917,8919,8921,8923],{"class":2552,"line":5558},[2550,8916,5068],{"class":4627},[2550,8918,3192],{"class":5071},[2550,8920,5093],{"class":4811},[2550,8922,3204],{"class":5071},[2550,8924,2770],{"class":2747},[2550,8926,8927],{"class":2552,"line":5583},[2550,8928,2573],{"emptyLinePlaceholder":2572},[2550,8930,8931,8934,8936,8938,8940],{"class":2552,"line":5588},[2550,8932,8933],{"class":4627}," clearTimeout",[2550,8935,3192],{"class":5071},[2550,8937,5074],{"class":4811},[2550,8939,3204],{"class":5071},[2550,8941,2770],{"class":2747},[2550,8943,8944],{"class":2552,"line":5603},[2550,8945,2573],{"emptyLinePlaceholder":2572},[2550,8947,8948],{"class":2552,"line":5608},[2550,8949,2573],{"emptyLinePlaceholder":2572},[2550,8951,8952],{"class":2552,"line":5622},[2550,8953,2573],{"emptyLinePlaceholder":2572},[2550,8955,8956],{"class":2552,"line":5627},[2550,8957,8958],{"class":2731}," \u002F\u002F 启动倒计时\n",[2550,8960,8961],{"class":2552,"line":5632},[2550,8962,2573],{"emptyLinePlaceholder":2572},[2550,8964,8965,8967,8969,8971,8973,8975,8977],{"class":2552,"line":5637},[2550,8966,4892],{"class":4811},[2550,8968,4617],{"class":4616},[2550,8970,6083],{"class":4627},[2550,8972,3192],{"class":5071},[2550,8974,4936],{"class":2747},[2550,8976,5121],{"class":5120},[2550,8978,2748],{"class":2747},[2550,8980,8981],{"class":2552,"line":5643},[2550,8982,2573],{"emptyLinePlaceholder":2572},[2550,8984,8985,8987,8989],{"class":2552,"line":5648},[2550,8986,4831],{"class":4811},[2550,8988,6104],{"class":5259},[2550,8990,2770],{"class":2747},[2550,8992,8993],{"class":2552,"line":5682},[2550,8994,2573],{"emptyLinePlaceholder":2572},[2550,8996,8997,8999,9001,9003,9005,9007],{"class":2552,"line":5687},[2550,8998,8375],{"class":4620},[2550,9000,3583],{"class":2578},[2550,9002,5002],{"class":5001},[2550,9004,4617],{"class":4616},[2550,9006,4831],{"class":4811},[2550,9008,2770],{"class":2747},[2550,9010,9011],{"class":2552,"line":5709},[2550,9012,2573],{"emptyLinePlaceholder":2572},[2550,9014,9015,9017,9019,9021,9023,9025,9027],{"class":2552,"line":5714},[2550,9016,5253],{"class":5252},[2550,9018,5256],{"class":5071},[2550,9020,5051],{"class":4811},[2550,9022,6153],{"class":4616},[2550,9024,2862],{"class":2839},[2550,9026,3204],{"class":5071},[2550,9028,2748],{"class":2747},[2550,9030,9031],{"class":2552,"line":5719},[2550,9032,2573],{"emptyLinePlaceholder":2572},[2550,9034,9035,9037,9039],{"class":2552,"line":5724},[2550,9036,6170],{"class":4627},[2550,9038,4936],{"class":5071},[2550,9040,2770],{"class":2747},[2550,9042,9043],{"class":2552,"line":5729},[2550,9044,2573],{"emptyLinePlaceholder":2572},[2550,9046,9047],{"class":2552,"line":5734},[2550,9048,2924],{"class":2747},[2550,9050,9051],{"class":2552,"line":5740},[2550,9052,2573],{"emptyLinePlaceholder":2572},[2550,9054,9055,9057,9059,9061,9063],{"class":2552,"line":5745},[2550,9056,5189],{"class":2747},[2550,9058,2885],{"class":2884},[2550,9060,5615],{"class":2839},[2550,9062,3204],{"class":5071},[2550,9064,2770],{"class":2747},[2550,9066,9067],{"class":2552,"line":5762},[2550,9068,2573],{"emptyLinePlaceholder":2572},[2550,9070,9071],{"class":2552,"line":5767},[2550,9072,2573],{"emptyLinePlaceholder":2572},[2550,9074,9075],{"class":2552,"line":5786},[2550,9076,2573],{"emptyLinePlaceholder":2572},[2550,9078,9079],{"class":2552,"line":5791},[2550,9080,9081],{"class":2731}," \u002F\u002F 首次生成地鼠\n",[2550,9083,9084],{"class":2552,"line":5822},[2550,9085,2573],{"emptyLinePlaceholder":2572},[2550,9087,9088,9091,9093],{"class":2552,"line":5827},[2550,9089,9090],{"class":4627}," scheduleMole",[2550,9092,4936],{"class":5071},[2550,9094,2770],{"class":2747},[2550,9096,9097],{"class":2552,"line":5837},[2550,9098,2573],{"emptyLinePlaceholder":2572},[2550,9100,9101],{"class":2552,"line":5842},[2550,9102,2924],{"class":2747},[2550,9104,9105],{"class":2552,"line":5867},[2550,9106,2573],{"emptyLinePlaceholder":2572},[2550,9108,9109],{"class":2552,"line":5872},[2550,9110,2573],{"emptyLinePlaceholder":2572},[2550,9112,9113],{"class":2552,"line":5897},[2550,9114,2573],{"emptyLinePlaceholder":2572},[2550,9116,9117],{"class":2552,"line":5902},[2550,9118,9119],{"class":2731}," \u002F\u002F 随机生成地鼠\n",[2550,9121,9122],{"class":2552,"line":5917},[2550,9123,2573],{"emptyLinePlaceholder":2572},[2550,9125,9126,9128,9130,9132],{"class":2552,"line":5922},[2550,9127,4930],{"class":4608},[2550,9129,5237],{"class":4627},[2550,9131,4936],{"class":2747},[2550,9133,2748],{"class":2747},[2550,9135,9136],{"class":2552,"line":5927},[2550,9137,2573],{"emptyLinePlaceholder":2572},[2550,9139,9140],{"class":2552,"line":5932},[2550,9141,9142],{"class":2731}," \u002F\u002F 查找所有非活动状态的洞\n",[2550,9144,9145],{"class":2552,"line":5937},[2550,9146,2573],{"emptyLinePlaceholder":2572},[2550,9148,9149,9151,9154,9156,9159,9161,9164,9166,9169,9171,9173,9176,9178,9180,9182,9185,9187,9189,9191,9193,9195,9197,9199,9201,9203,9205],{"class":2552,"line":5942},[2550,9150,4609],{"class":4608},[2550,9152,9153],{"class":4612}," availableHoles",[2550,9155,4617],{"class":4616},[2550,9157,9158],{"class":4620}," Array",[2550,9160,3583],{"class":4624},[2550,9162,9163],{"class":4627},"from",[2550,9165,3192],{"class":5071},[2550,9167,9168],{"class":4811},"holes",[2550,9170,3204],{"class":5071},[2550,9172,3583],{"class":4624},[2550,9174,9175],{"class":4627},"filter",[2550,9177,3192],{"class":5071},[2550,9179,3330],{"class":5117},[2550,9181,5121],{"class":5120},[2550,9183,9184],{"class":5259}," !",[2550,9186,3330],{"class":4620},[2550,9188,3583],{"class":4624},[2550,9190,5140],{"class":5139},[2550,9192,3583],{"class":4624},[2550,9194,5806],{"class":4627},[2550,9196,3192],{"class":5071},[2550,9198,4634],{"class":2592},[2550,9200,7320],{"class":2596},[2550,9202,4634],{"class":2592},[2550,9204,5817],{"class":5071},[2550,9206,2770],{"class":2747},[2550,9208,9209],{"class":2552,"line":5947},[2550,9210,2573],{"emptyLinePlaceholder":2572},[2550,9212,9213,9215,9217,9220,9222,9224,9227,9229,9231],{"class":2552,"line":5952},[2550,9214,5253],{"class":5252},[2550,9216,5256],{"class":5071},[2550,9218,9219],{"class":4620},"availableHoles",[2550,9221,3583],{"class":2578},[2550,9223,5448],{"class":5447},[2550,9225,9226],{"class":4616}," >",[2550,9228,2862],{"class":2839},[2550,9230,3204],{"class":5071},[2550,9232,2748],{"class":2747},[2550,9234,9235],{"class":2552,"line":5958},[2550,9236,2573],{"emptyLinePlaceholder":2572},[2550,9238,9239,9241,9243,9245,9247,9249,9251,9253,9255,9257,9259,9261,9263,9265,9267,9269,9271,9273,9275],{"class":2552,"line":5963},[2550,9240,4609],{"class":4608},[2550,9242,5411],{"class":4612},[2550,9244,4617],{"class":4616},[2550,9246,9153],{"class":4811},[2550,9248,5418],{"class":5071},[2550,9250,5421],{"class":4620},[2550,9252,3583],{"class":4624},[2550,9254,5426],{"class":4627},[2550,9256,3192],{"class":5071},[2550,9258,5421],{"class":4620},[2550,9260,3583],{"class":4624},[2550,9262,5435],{"class":4627},[2550,9264,4936],{"class":5071},[2550,9266,5440],{"class":5259},[2550,9268,9153],{"class":4620},[2550,9270,3583],{"class":2578},[2550,9272,5448],{"class":5447},[2550,9274,5451],{"class":5071},[2550,9276,2770],{"class":2747},[2550,9278,9279],{"class":2552,"line":5975},[2550,9280,2573],{"emptyLinePlaceholder":2572},[2550,9282,9283,9285,9287,9289,9291,9293,9295,9297,9299,9301,9303],{"class":2552,"line":5980},[2550,9284,5411],{"class":4620},[2550,9286,3583],{"class":4624},[2550,9288,5140],{"class":5139},[2550,9290,3583],{"class":4624},[2550,9292,5472],{"class":4627},[2550,9294,3192],{"class":5071},[2550,9296,4634],{"class":2592},[2550,9298,7320],{"class":2596},[2550,9300,4634],{"class":2592},[2550,9302,3204],{"class":5071},[2550,9304,2770],{"class":2747},[2550,9306,9307],{"class":2552,"line":5998},[2550,9308,2573],{"emptyLinePlaceholder":2572},[2550,9310,9311,9313,9315,9317,9319,9321,9323,9325],{"class":2552,"line":6003},[2550,9312,5411],{"class":4620},[2550,9314,3583],{"class":2578},[2550,9316,5002],{"class":5001},[2550,9318,4617],{"class":4616},[2550,9320,5503],{"class":2592},[2550,9322,5506],{"class":2596},[2550,9324,4634],{"class":2592},[2550,9326,2770],{"class":2747},[2550,9328,9329],{"class":2552,"line":6012},[2550,9330,2573],{"emptyLinePlaceholder":2572},[2550,9332,9333],{"class":2552,"line":6017},[2550,9334,9335],{"class":2731}," \u002F\u002F 自动隐藏地鼠\n",[2550,9337,9338],{"class":2552,"line":6029},[2550,9339,2573],{"emptyLinePlaceholder":2572},[2550,9341,9342,9344,9346,9348,9350],{"class":2552,"line":6034},[2550,9343,5542],{"class":4627},[2550,9345,3192],{"class":5071},[2550,9347,4936],{"class":2747},[2550,9349,5121],{"class":5120},[2550,9351,2748],{"class":2747},[2550,9353,9354],{"class":2552,"line":6050},[2550,9355,2573],{"emptyLinePlaceholder":2572},[2550,9357,9358,9360,9362,9364,9366,9368,9370,9372,9374,9376,9378],{"class":2552,"line":6055},[2550,9359,5411],{"class":4620},[2550,9361,3583],{"class":4624},[2550,9363,5140],{"class":5139},[2550,9365,3583],{"class":4624},[2550,9367,5145],{"class":4627},[2550,9369,3192],{"class":5071},[2550,9371,4634],{"class":2592},[2550,9373,7320],{"class":2596},[2550,9375,4634],{"class":2592},[2550,9377,3204],{"class":5071},[2550,9379,2770],{"class":2747},[2550,9381,9382],{"class":2552,"line":6060},[2550,9383,2573],{"emptyLinePlaceholder":2572},[2550,9385,9386,9388,9390,9392,9394,9396],{"class":2552,"line":6065},[2550,9387,5411],{"class":4620},[2550,9389,3583],{"class":2578},[2550,9391,5002],{"class":5001},[2550,9393,4617],{"class":4616},[2550,9395,5176],{"class":2592},[2550,9397,2770],{"class":2747},[2550,9399,9400],{"class":2552,"line":6071},[2550,9401,2573],{"emptyLinePlaceholder":2572},[2550,9403,9404,9406,9408,9410,9412],{"class":2552,"line":6076},[2550,9405,5189],{"class":2747},[2550,9407,2885],{"class":2884},[2550,9409,5615],{"class":2839},[2550,9411,3204],{"class":5071},[2550,9413,2770],{"class":2747},[2550,9415,9416],{"class":2552,"line":6094},[2550,9417,2573],{"emptyLinePlaceholder":2572},[2550,9419,9420],{"class":2552,"line":6099},[2550,9421,2924],{"class":2747},[2550,9423,9424],{"class":2552,"line":6109},[2550,9425,2573],{"emptyLinePlaceholder":2572},[2550,9427,9428],{"class":2552,"line":6114},[2550,9429,2924],{"class":2747},[2550,9431,9432],{"class":2552,"line":6139},[2550,9433,2573],{"emptyLinePlaceholder":2572},[2550,9435,9436],{"class":2552,"line":6144},[2550,9437,2573],{"emptyLinePlaceholder":2572},[2550,9439,9440],{"class":2552,"line":6162},[2550,9441,2573],{"emptyLinePlaceholder":2572},[2550,9443,9444],{"class":2552,"line":6167},[2550,9445,9446],{"class":2731}," \u002F\u002F 调度下一个地鼠生成\n",[2550,9448,9449],{"class":2552,"line":6177},[2550,9450,2573],{"emptyLinePlaceholder":2572},[2550,9452,9453,9455,9457,9459],{"class":2552,"line":6182},[2550,9454,4930],{"class":4608},[2550,9456,9090],{"class":4627},[2550,9458,4936],{"class":2747},[2550,9460,2748],{"class":2747},[2550,9462,9463],{"class":2552,"line":6187},[2550,9464,2573],{"emptyLinePlaceholder":2572},[2550,9466,9467,9469,9471,9473,9475,9477,9479],{"class":2552,"line":6192},[2550,9468,5253],{"class":5252},[2550,9470,5256],{"class":5071},[2550,9472,5260],{"class":5259},[2550,9474,5263],{"class":4811},[2550,9476,3204],{"class":5071},[2550,9478,5268],{"class":5252},[2550,9480,2770],{"class":2747},[2550,9482,9483],{"class":2552,"line":6205},[2550,9484,2573],{"emptyLinePlaceholder":2572},[2550,9486,9487],{"class":2552,"line":6210},[2550,9488,9489],{"class":2731}," \u002F\u002F 随机间隔（0.5-1.5秒）\n",[2550,9491,9492],{"class":2552,"line":6215},[2550,9493,2573],{"emptyLinePlaceholder":2572},[2550,9495,9496,9498,9501,9503,9505,9507,9509,9511,9513,9515,9517,9519],{"class":2552,"line":6220},[2550,9497,4609],{"class":4608},[2550,9499,9500],{"class":4612}," delay",[2550,9502,4617],{"class":4616},[2550,9504,5658],{"class":4620},[2550,9506,3583],{"class":4624},[2550,9508,5435],{"class":4627},[2550,9510,4936],{"class":5071},[2550,9512,5440],{"class":5259},[2550,9514,5615],{"class":2839},[2550,9516,5671],{"class":5259},[2550,9518,5674],{"class":2839},[2550,9520,2770],{"class":2747},[2550,9522,9523],{"class":2552,"line":6226},[2550,9524,2573],{"emptyLinePlaceholder":2572},[2550,9526,9527,9529,9531,9533,9535,9537,9539],{"class":2552,"line":6231},[2550,9528,4871],{"class":4811},[2550,9530,4617],{"class":4616},[2550,9532,5542],{"class":4627},[2550,9534,3192],{"class":5071},[2550,9536,4936],{"class":2747},[2550,9538,5121],{"class":5120},[2550,9540,2748],{"class":2747},[2550,9542,9543],{"class":2552,"line":6240},[2550,9544,2573],{"emptyLinePlaceholder":2572},[2550,9546,9547,9549,9551],{"class":2552,"line":6245},[2550,9548,5237],{"class":4627},[2550,9550,4936],{"class":5071},[2550,9552,2770],{"class":2747},[2550,9554,9555],{"class":2552,"line":6250},[2550,9556,2573],{"emptyLinePlaceholder":2572},[2550,9558,9559,9561,9563],{"class":2552,"line":6255},[2550,9560,9090],{"class":4627},[2550,9562,4936],{"class":5071},[2550,9564,2770],{"class":2747},[2550,9566,9567],{"class":2552,"line":6260},[2550,9568,2573],{"emptyLinePlaceholder":2572},[2550,9570,9571,9573,9575,9577,9579],{"class":2552,"line":6265},[2550,9572,5189],{"class":2747},[2550,9574,2885],{"class":2884},[2550,9576,9500],{"class":4811},[2550,9578,3204],{"class":5071},[2550,9580,2770],{"class":2747},[2550,9582,9583],{"class":2552,"line":6271},[2550,9584,2573],{"emptyLinePlaceholder":2572},[2550,9586,9587],{"class":2552,"line":6276},[2550,9588,2924],{"class":2747},[2550,9590,9591],{"class":2552,"line":6287},[2550,9592,2573],{"emptyLinePlaceholder":2572},[2550,9594,9595],{"class":2552,"line":6292},[2550,9596,2573],{"emptyLinePlaceholder":2572},[2550,9598,9599],{"class":2552,"line":6303},[2550,9600,2573],{"emptyLinePlaceholder":2572},[2550,9602,9603],{"class":2552,"line":6308},[2550,9604,9605],{"class":2731}," \u002F\u002F 结束游戏处理\n",[2550,9607,9608],{"class":2552,"line":6321},[2550,9609,2573],{"emptyLinePlaceholder":2572},[2550,9611,9612,9614,9616,9618],{"class":2552,"line":6326},[2550,9613,4930],{"class":4608},[2550,9615,6170],{"class":4627},[2550,9617,4936],{"class":2747},[2550,9619,2748],{"class":2747},[2550,9621,9622],{"class":2552,"line":6339},[2550,9623,2573],{"emptyLinePlaceholder":2572},[2550,9625,9626,9628,9630,9632],{"class":2552,"line":6344},[2550,9627,4850],{"class":4811},[2550,9629,4617],{"class":4616},[2550,9631,4856],{"class":4855},[2550,9633,2770],{"class":2747},[2550,9635,9636],{"class":2552,"line":6359},[2550,9637,2573],{"emptyLinePlaceholder":2572},[2550,9639,9640,9642,9644,9646,9648],{"class":2552,"line":6364},[2550,9641,5068],{"class":4627},[2550,9643,3192],{"class":5071},[2550,9645,5093],{"class":4811},[2550,9647,3204],{"class":5071},[2550,9649,2770],{"class":2747},[2550,9651,9652],{"class":2552,"line":6396},[2550,9653,2573],{"emptyLinePlaceholder":2572},[2550,9655,9656,9658,9660,9662,9664],{"class":2552,"line":6401},[2550,9657,8933],{"class":4627},[2550,9659,3192],{"class":5071},[2550,9661,5074],{"class":4811},[2550,9663,3204],{"class":5071},[2550,9665,2770],{"class":2747},[2550,9667,9668],{"class":2552,"line":6410},[2550,9669,2573],{"emptyLinePlaceholder":2572},[2550,9671,9672,9674,9676,9678,9680,9682],{"class":2552,"line":6415},[2550,9673,4721],{"class":4620},[2550,9675,3583],{"class":2578},[2550,9677,6041],{"class":5001},[2550,9679,4617],{"class":4616},[2550,9681,4856],{"class":4855},[2550,9683,2770],{"class":2747},[2550,9685,9686],{"class":2552,"line":6420},[2550,9687,2573],{"emptyLinePlaceholder":2572},[2550,9689,9690],{"class":2552,"line":6425},[2550,9691,2573],{"emptyLinePlaceholder":2572},[2550,9693,9694],{"class":2552,"line":6430},[2550,9695,2573],{"emptyLinePlaceholder":2572},[2550,9697,9698],{"class":2552,"line":6435},[2550,9699,9700],{"class":2731}," \u002F\u002F 显示最终得分\n",[2550,9702,9703],{"class":2552,"line":6441},[2550,9704,2573],{"emptyLinePlaceholder":2572},[2550,9706,9707,9709,9712,9714,9717,9719,9721,9724,9726,9728,9730,9732,9735,9737,9739],{"class":2552,"line":6446},[2550,9708,4609],{"class":4608},[2550,9710,9711],{"class":4612}," restart",[2550,9713,4617],{"class":4616},[2550,9715,9716],{"class":4627}," confirm",[2550,9718,3192],{"class":5071},[2550,9720,5023],{"class":2592},[2550,9722,9723],{"class":2596},"游戏结束！最终得分：",[2550,9725,5014],{"class":5013},[2550,9727,4001],{"class":5017},[2550,9729,5020],{"class":5013},[2550,9731,6384],{"class":6383},[2550,9733,9734],{"class":2596},"再玩一次？",[2550,9736,5023],{"class":2592},[2550,9738,3204],{"class":5071},[2550,9740,2770],{"class":2747},[2550,9742,9743],{"class":2552,"line":6473},[2550,9744,2573],{"emptyLinePlaceholder":2572},[2550,9746,9747,9749,9751,9754,9756],{"class":2552,"line":6478},[2550,9748,5253],{"class":5252},[2550,9750,5256],{"class":5071},[2550,9752,9753],{"class":4811},"restart",[2550,9755,3204],{"class":5071},[2550,9757,2748],{"class":2747},[2550,9759,9760],{"class":2552,"line":6515},[2550,9761,2573],{"emptyLinePlaceholder":2572},[2550,9763,9764,9766,9768],{"class":2552,"line":6520},[2550,9765,5968],{"class":4627},[2550,9767,4936],{"class":5071},[2550,9769,2770],{"class":2747},[2550,9771,9772],{"class":2552,"line":6525},[2550,9773,2573],{"emptyLinePlaceholder":2572},[2550,9775,9776],{"class":2552,"line":6530},[2550,9777,2924],{"class":2747},[2550,9779,9780],{"class":2552,"line":6536},[2550,9781,2573],{"emptyLinePlaceholder":2572},[2550,9783,9784],{"class":2552,"line":6541},[2550,9785,2924],{"class":2747},[2550,9787,9788],{"class":2552,"line":6550},[2550,9789,2573],{"emptyLinePlaceholder":2572},[2550,9791,9792,9794,9796,9798],{"class":2552,"line":6555},[2550,9793,2579],{"class":3905},[2550,9795,3908],{"class":2578},[2550,9797,4584],{"class":2582},[2550,9799,2567],{"class":2578},[2550,9801,9802],{"class":2552,"line":6566},[2550,9803,2573],{"emptyLinePlaceholder":2572},[2550,9805,9806,9808,9810],{"class":2552,"line":6571},[2550,9807,3923],{"class":2578},[2550,9809,3940],{"class":2582},[2550,9811,2567],{"class":2578},[2550,9813,9814],{"class":2552,"line":6580},[2550,9815,2573],{"emptyLinePlaceholder":2572},[2550,9817,9818,9820,9822],{"class":2552,"line":6585},[2550,9819,3923],{"class":2578},[2550,9821,2545],{"class":2582},[2550,9823,2567],{"class":2578},[2718,9825,9826],{},"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}",{"title":344,"searchDepth":345,"depth":345,"links":9828},[9829],{"id":2517,"depth":351,"text":307},null,"2025-05-12","md","https:\u002F\u002Fimg.lijue.net\u002F20250806105153532.png",{},{"icon":310},"---\ntitle: GROK3 and Deepseek\ndescription: Grok3 和 Deepseek 的对比\ndate: 2025-05-12\nimg: https:\u002F\u002Fimg.lijue.net\u002F20250806105153532.png\nnavigation:\n    icon: lucide-brain\n---\n\n### GROK3 and Deepseek\n测试了GROK3,简单让做一个HTML小游戏，与R1对比\nGROK3界面处理略好，满足所有要求，无BUG。\nR1界面略有瑕疵，基本满足所有要求，除了有小BUG。\n\n提示词：\n>> 题目：编写一个“打地鼠”网页小游戏\n\n需求描述：\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文件并在浏览器中运行。代码中需包含注释，体现逻辑清晰度和编程能力。\n\nGROK3:\n```html[GROK3.html]\n \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>\n```\n\nR1:\n```html[R1.html]\n \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>\n```\n",{"title":307,"description":2492},"Umc_UL1WsKCi_ge8FhzVhy1ak1U52l9XCgvD6AEdwPo",[9830,9830],1782137738321]