1<!DOCTYPE html> 2<html lang="en-US" dir="ltr"> 3 <head> 4 <meta charset="utf-8"> 5<!-- This site is hosted on Netlify. Anyone can build and deploy a site 6 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=ecb0a559-decc-4b2b-a86c-eb939ca6dca8 7 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 8 <meta name="viewport" content="width=device-width,initial-scale=1"> 9 <title>Vitepress å¼åé®é¢è®°å½ | Awesome 15docs</title> 10 <meta name="description" content="A VitePress Site"> 11 <meta name="generator" content="VitePress v1.6.4"> 12 <link rel="preload stylesheet" href="/assets/style.e0MwPxAT.css" as="style"> 13 <link rel="preload stylesheet" href="/vp-icons.css" as="style"> 14 15
15<script type="module" src="/assets/app.ZWHDBcz_.js"></script>
15 16 <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin=""> 17 <link rel="modulepreload" href="/assets/chunks/theme.BlHmTVr9.js"> 18 <link rel="modulepreload" href="/assets/chunks/framework.BPKcPtvA.js"> 19 <link rel="modulepreload" href="/assets/problem_vitepress.md.CxsF-fsd.lean.js"> 20 <link rel="icon" href="/favicon.ico">
vendor: 68 bytes, lines 20-21
20 21 <script async src="https://www.googletagmanager.com/gtag/js?id=
21G-YYMJNTZ2D8
vendor: 16 bytes, lines 21-22
21"></script> 22
22<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-YYMJNTZ2D8");</script>
22 23 <meta name="referrer" content="no-referrer-when-downgrade"> 24
24<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
24 25
25<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
25 26 </head> 27 <body> 28 <div id="app"><div class="Layout" data-v-d8135c25><!--[--><!--]--><!--[--><span tabindex="-1" data-v-9ad02318></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-9ad02318>Skip to content</a><!--]--><!----><header class="VPNav" data-v-d8135c25 data-v-9e75161e><div class="VPNavBar" data-v-9e75161e data-v-264ed091><div class="wrapper" data-v-264ed091><div class="container" data-v-264ed091><div class="title" data-v-264ed091><div class="VPNavBarTitle has-sidebar" data-v-264ed091 data-v-8ffe71b8><a class="title" href="/" data-v-8ffe71b8><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo.png" alt data-v-d5deb060><!--]--><span data-v-8ffe71b8>Awesome 15docs</span><!--[--><!--]--></a></div></div><div class="content" data-v-264ed091><div class="content-body" data-v-264ed091><!--[--><!--]--><div class="VPNavBarSearch search" data-v-264ed091><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="æç´¢ææ¡£"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">æç´¢ææ¡£</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-264ed091 data-v-9c7fb0ee><span id="main-nav-aria-label" class="visually-hidden" data-v-9c7fb0ee> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/" tabindex="0" data-v-9c7fb0ee data-v-dc669128><!--[--><span data-v-dc669128>主页</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup active" data-v-9c7fb0ee data-v-5c17d6a4><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-5c17d6a4><span class="text" data-v-5c17d6a4><!----><span data-v-5c17d6a4>å¼åè®°å½</span><span class="vpi-chevron-down text-icon" data-v-5c17d6a4></span></span></button><div class="menu" data-v-5c17d6a4><div class="VPMenu" data-v-5c17d6a4 data-v-15c3b365><div class="items" data-v-15c3b365><!--[--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/vue'><!--[--><span data-v-a800a57c>Vue å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link active' data-v-a800a57c href='/problem/vitepress'><!--[--><span data-v-a800a57c>Vitepress å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/css'><!--[--><span data-v-a800a57c>Css å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/react-native'><!--[--><span data-v-a800a57c>ReactNative å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/github'><!--[--><span data-v-a800a57c>Github é®é¢è®°å½</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/git'><!--[--><span data-v-a800a57c>Git å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/vscode'><!--[--><span data-v-a800a57c>Vscode å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/node'><!--[--><span data-v-a800a57c>Node å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/shell'><!--[--><span data-v-a800a57c>Shell å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/react'><!--[--><span data-v-a800a57c>React å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/javascript'><!--[--><span data-v-a800a57c>Javascript å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/nextui'><!--[--><span data-v-a800a57c>Nextui å¼åè®°å½</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/next-js'><!--[--><span data-v-a800a57c>Next.js 踩å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/figma'><!--[--><span data-v-a800a57c>Figma å¼åè®°å½</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/extension'><!--[--><span data-v-a800a57c>æµè§å¨æä»¶å¼å踩å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>Typescript</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/typescript-config'><!--[--><span data-v-a800a57c>Typescriptï¼tsconfig详解)</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/problem/typescript'><!--[--><span data-v-a800a57c>Typescript å¼åé®é¢è®°å½</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>å·¥ç¨åè®°å½</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/project/vite'><!--[--><span data-v-a800a57c>Vite å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/project/rsbuild'><!--[--><span data-v-a800a57c>Rsbuild å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/project/ast'><!--[--><span data-v-a800a57c>AST å¦ä¹ è®°å½</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/project/eslint'><!--[--><span data-v-a800a57c>Eslint é ç½®</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/project/monitor'><!--[--><span data-v-a800a57c>å端æå¡çæ§SDK</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/project/desktop'><!--[--><span data-v-a800a57c>æ¡é¢ç«¯åºç¨å¼å</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>ç³»ç»é®é¢è®°å½</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/systems/mac'><!--[--><span data-v-a800a57c>Mac å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/systems/win'><!--[--><span data-v-a800a57c>Win å¼åé®é¢</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/systems/chrome'><!--[--><span data-v-a800a57c>Chrome å¼åè®°å½</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-9c7fb0ee data-v-5c17d6a4><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-5c17d6a4><span class="text" data-v-5c17d6a4><!----><span data-v-5c17d6a4>å¦ä¹ èµææ¨è</span><span class="vpi-chevron-down text-icon" data-v-5c17d6a4></span></span></button><div class="menu" data-v-5c17d6a4><div class="VPMenu" data-v-5c17d6a4 data-v-15c3b365><div class="items" data-v-15c3b365><!--[--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>AI æ¨è</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/site'><!--[--><span data-v-a800a57c>AI ç½ç«æ¨è</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/picture'><!--[--><span data-v-a800a57c>AI çå¾ç¤ºä¾</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>AI å¦ä¹ </p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/lang-chain'><!--[--><span data-v-a800a57c>LangChain ç¥è¯åº</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>Css 设计ç½ç«æ¨è</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/css-site'><!--[--><span data-v-a800a57c>Css 设计ç½ç«æ¨è</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/gradients'><!--[--><span data-v-a800a57c>æ¸åè²ç½ç«æ¨è</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>æ¥å¸¸å¦ä¹ </p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/daily-data'><!--[--><span data-v-a800a57c>æ¥å¸¸å¦ä¹ èµæ</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/daily-problem'><!--[--><span data-v-a800a57c>æ¥å¸¸è¸©åï¼æä¹±ï¼</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>Mobile ç§»å¨ç«¯è®°å½</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/study/mobile'><!--[--><span data-v-a800a57c>Mobile ç§»å¨ç«¯è®°å½</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-9c7fb0ee data-v-5c17d6a4><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-5c17d6a4><span class="text" data-v-5c17d6a4><!----><span data-v-5c17d6a4>AI</span><span class="vpi-chevron-down text-icon" data-v-5c17d6a4></span></span></button><div class="menu" data-v-5c17d6a4><div class="VPMenu" data-v-5c17d6a4 data-v-15c3b365><div class="items" data-v-15c3b365><!--[--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>AI Agent å¦ä¹ </p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class="VPLink link" href="/ai/agent-learning/" data-v-a800a57c><!--[--><span data-v-a800a57c>æ¦è¿°</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agent-learning/agent-basics'><!--[--><span data-v-a800a57c>AI Agent åºç¡ï¼ç¬¬ä¸ä¸ªæºè½ä½</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agent-learning/agent-patterns'><!--[--><span data-v-a800a57c>AI Agent ç»å ¸èå¼</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agent-learning/superpowers-skill-framework'><!--[--><span data-v-a800a57c>Superpowers æè½æ¡æ¶å®ç°åç</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>AI Agent å·¥å ·</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agents/opencode/opencode'><!--[--><span data-v-a800a57c>OpenCode é ç½®ï¼è¸©åæµè§</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agents/pi/pi'><!--[--><span data-v-a800a57c>PI é ç½®ï¼è¸©åæµè§</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/ai-coding-concepts'><!--[--><span data-v-a800a57c>AI Coding æ¦å¿µã工使µä¸æ©å±æºå¶</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/ai-coding-practice'><!--[--><span data-v-a800a57c>AI Coding 个人å®è·µï¼æ¨¡åãHarness ä¸ä¸ä¸æ</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agent-skills-index'><!--[--><span data-v-a800a57c>Agent Skill å¸¸ç¨æ¸ å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/ai-tools-and-setup'><!--[--><span data-v-a800a57c>AI å·¥å ·éåä¸é ç½®</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/personal-ai-tools'><!--[--><span data-v-a800a57c>个人 AI å·¥å ·ä¸è®¢é æ¸ å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agent-rules-and-prompts'><!--[--><span data-v-a800a57c>AI åä½è§å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/prompt-templates'><!--[--><span data-v-a800a57c>AI Prompt 模æ¿</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-15c3b365 data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/ai/agent-context-system'><!--[--><span data-v-a800a57c>Agent ä¸ä¸æä½ç³»ï¼AGENTS.mdãç¥è¯å¾è°±ä¸ DESIGN.md</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-9c7fb0ee data-v-5c17d6a4><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-5c17d6a4><span class="text" data-v-5c17d6a4><!----><span data-v-5c17d6a4>DX å¼åè ä½éª</span><span class="vpi-chevron-down text-icon" data-v-5c17d6a4></span></span></button><div class="menu" data-v-5c17d6a4><div class="VPMenu" data-v-5c17d6a4 data-v-15c3b365><div class="items" data-v-15c3b365><!--[--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>DX å¼åè ä½éª</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/deploy'><!--[--><span data-v-a800a57c>èªå¨åé¨ç½²</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/vscode'><!--[--><span data-v-a800a57c>
28Vscode ç¹æ§é
ç½®</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/vscode-plugin'><!--[--><span data-v-a800a57c>Vscode æä»¶å¼å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/webstorm'><!--[--><span data-v-a800a57c>Webstorm ç¹æ§é
ç½®</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/regexp'><!--[--><span data-v-a800a57c>æ£åè¡¨è¾¾å¼æå·§</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/regexp-fn'><!--[--><span data-v-a800a57c>æ£åéç¨åè½å½æ°</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/feature/node-cli'><!--[--><span data-v-a800a57c>Node CLI å¼å</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>css å¼åæ¡æ¶ç¥è¯</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/css-library/knowledge'><!--[--><span data-v-a800a57c>Scss 常ç¨ç¥è¯ç¹</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/css-library/dev-skill'><!--[--><span data-v-a800a57c>å¼å飿 ¼ skill</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/css-library/function'><!--[--><span data-v-a800a57c>Scss å°è£
彿°</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/css-library/tailwind-skill'><!--[--><span data-v-a800a57c>Tailwind å¼åæå·§</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>æ¸é±¼å·¥å
·</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/play/epub-reader'><!--[--><span data-v-a800a57c>é
读å¨</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-9c7fb0ee data-v-5c17d6a4><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-5c17d6a4><span class="text" data-v-5c17d6a4><!----><span data-v-5c17d6a4>个人记å½</span><span class="vpi-chevron-down text-icon" data-v-5c17d6a4></span></span></button><div class="menu" data-v-5c17d6a4><div class="VPMenu" data-v-5c17d6a4 data-v-15c3b365><div class="items" data-v-15c3b365><!--[--><!--[--><div class="VPMenuGroup" data-v-15c3b365 data-v-c1d45a7e><p class="title" data-v-c1d45a7e>个人记å½</p><!--[--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/author/life-notes'><!--[--><span data-v-a800a57c>çæ´»è®°å½ä¸ä¸ªäººç»éª</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c>
28<a class='VPLink link' data-v-a800a57c href='/author/personal-projects'><!--[--><span data-v-a800a57c>个人项ç®ä¸ä½å</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/author/interview-prep'><!--[--><span data-v-a800a57c>é¢è¯åå¤ï¼è®°å½ãç®æ³ä¸ç¥è¯ç¹</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/author/career-records'><!--[--><span data-v-a800a57c>èä¸è®°å½ï¼å·¥ä½ä¸å¼æº</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-c1d45a7e data-v-a800a57c><a class='VPLink link' data-v-a800a57c href='/author/annual-reviews'><!--[--><span data-v-a800a57c>年度å¤ç</span><!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-264ed091 data-v-59aecd16><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-59aecd16 data-v-cf507472 data-v-acfdcbae><span class="check" data-v-acfdcbae><span class="icon" data-v-acfdcbae><!--[--><span class="vpi-sun sun" data-v-cf507472></span><span class="vpi-moon moon" data-v-cf507472></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-264ed091 data-v-4113521f data-v-fe2975aa><!--[--><a class="VPSocialLink no-icon" href="https://github.com/code-jbrc/Awesome-15docs" aria-label="github" target="_blank" rel="noopener" data-v-fe2975aa data-v-7bf834de><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-264ed091 data-v-bbf0d7c7 data-v-5c17d6a4><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-5c17d6a4><span class="vpi-more-horizontal icon" data-v-5c17d6a4></span></button><div class="menu" data-v-5c17d6a4><div class="VPMenu" data-v-5c17d6a4 data-v-15c3b365><!----><!--[--><!--[--><!----><div class="group" data-v-bbf0d7c7><div class="item appearance" data-v-bbf0d7c7><p class="label" data-v-bbf0d7c7>Appearance</p><div class="appearance-action" data-v-bbf0d7c7><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bbf0d7c7 data-v-cf507472 data-v-acfdcbae><span class="check" data-v-acfdcbae><span class="icon" data-v-acfdcbae><!--[--><span class="vpi-sun sun" data-v-cf507472></span><span class="vpi-moon moon" data-v-cf507472></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bbf0d7c7><div class="item social-links" data-v-bbf0d7c7><div class="VPSocialLinks social-links-list" data-v-bbf0d7c7 data-v-fe2975aa><!--[--><a class="VPSocialLink no-icon" href="https://github.com/code-jbrc/Awesome-15docs" aria-label="github" target="_blank" rel="noopener" data-v-fe2975aa data-v-7bf834de><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-264ed091 data-v-628f9e78><span class="container" data-v-628f9e78><span class="top" data-v-628f9e78></span><span class="middle" data-v-628f9e78></span><span class="bottom" data-v-628f9e78></span></span></button></div></div></div></div><div class="divider" data-v-264ed091><div class="divider-line" data-v-264ed091></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d8135c25 data-v-35ced30c><div class="container" data-v-35ced30c><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-35ced30c><span class="vpi-align-left menu-icon" data-v-35ced30c></span><span class="menu-text" data-v-35ced30c>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-35ced30c data-v-0042735e><button data-v-0042735e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d8135c25 data-v-d4c9453b><div class="curtain" data-v-d4c9453b></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-d4c9453b><span class="visually-hidden" id="sidebar-aria-label" data-v-d4c9453b> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-9f5cf79c><section class="VPSidebarItem level-0 has-active" data-v-9f5cf79c data-v-a7f3e25c><div class="item" role="button" tabindex="0" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><h2 class="text" data-v-a7f3e25c>æ¥å¸¸å¼åè®°å½</h2><!----></div><div class="items" data-v-a7f3e25c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/vue'><!--[--><p class="text" data-v-a7f3e25c>Vue å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/vitepress'><!--[--><p class="text" data-v-a7f3e25c>Vitepress å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/css'><!--[--><p class="text" data-v-a7f3e25c>Css å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/react-native'><!--[--><p class="text" data-v-a7f3e25c>ReactNative å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/github'><!--[--><p class="text" data-v-a7f3e25c>Github é®é¢è®°å½</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/git'><!--[--><p class="text" data-v-a7f3e25c>Git å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/vscode'><!--[--><p class="text" data-v-a7f3e25c>Vscode å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/node'><!--[--><p class="text" data-v-a7f3e25c>Node å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/shell'><!--[--><p class="text" data-v-a7f3e25c>Shell å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/react'><!--[--><p class="text" data-v-a7f3e25c>React å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/javascript'><!--[--><p class="text" data-v-a7f3e25c>Javascript å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/nextui'><!--[--><p class="text" data-v-a7f3e25c>Nextui å¼åè®°å½</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/next-js'><!--[--><p class="text" data-v-a7f3e25c>Next.js 踩å</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/figma'><!--[--><p class="text" data-v-a7f3e25c>Figma å¼åè®°å½</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/extension'><!--[--><p class="text" data-v-a7f3e25c>æµè§å¨æä»¶å¼å踩å</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/markdown-examples'><!--[--><p class="text" data-v-a7f3e25c>Markdown Examples</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/api-examples'><!--[--><p class="text" data-v-a7f3e25c>Runtime API Examples</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9f5cf79c><section class="VPSidebarItem level-0" data-v-9f5cf79c data-v-a7f3e25c><div class="item" role="button" tabindex="0" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><h2 class="text" data-v-a7f3e25c>Typescript</h2><!----></div><div class="items" data-v-a7f3e25c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/typescript-config'><!--[--><p class="text" data-v-a7f3e25c>Typescriptï¼tsconfig详解)</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/problem/typescript'><!--[--><p class="text" data-v-a7f3e25c>Typescript å¼åé®é¢è®°å½</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9f5cf79c><section class="VPSidebarItem level-0" data-v-9f5cf79c data-v-a7f3e25c><div class="item" role="button" tabindex="0" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><h2 class="text" data-v-a7f3e25c>å·¥ç¨åè®°å½</h2><!----></div><div class="items" data-v-a7f3e25c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/project/vite'><!--[--><p class="text" data-v-a7f3e25c>Vite å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/project/rsbuild'><!--[--><p class="text" data-v-a7f3e25c>Rsbuild å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/project/ast'><!--[--><p class="text" data-v-a7f3e25c>AST å¦ä¹ è®°å½</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/project/eslint'><!--[--><p class="text" data-v-a7f3e25c>Eslint é
ç½®</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/project/monitor'><!--[--><p class="text" data-v-a7f3e25c>å端æå¡çæ§SDK</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/project/desktop'><!--[--><p class="text" data-v-a7f3e25c>æ¡é¢ç«¯åºç¨å¼å</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-9f5cf79c><section class="VPSidebarItem level-0" data-v-9f5cf79c data-v-a7f3e25c><div class="item" role="button" tabindex="0" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><h2 class="text" data-v-a7f3e25c>ç³»ç»é®é¢è®°å½</h2><!----></div><div class="items" data-v-a7f3e25c><!--[--><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/systems/mac'><!--[--><p class="text" data-v-a7f3e25c>Mac å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/systems/win'><!--[--><p class="text" data-v-a7f3e25c>Win å¼åé®é¢</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-a7f3e25c data-v-a7f3e25c><div class="item" data-v-a7f3e25c><div class="indicator" data-v-a7f3e25c></div><a class='VPLink link link' data-v-a7f3e25c href='/systems/chrome'><!--[--><p class="text" data-v-a7f3e25c>Chrome å¼åè®°å½</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--[--><!----><!--]--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d8135c25 data-v-ee4ce413><div class="VPDoc has-sidebar has-aside" data-v-ee4ce413 data-v-6047baad><!--[--><!--]--><div class="container" data-v-6047baad><div class="aside" data-v-6047baad><div class="aside-curtain" data-v-6047baad></div><div class="aside-container" data-v-6047baad><div class="aside-content" data-v-6047baad><div class="VPDocAside" data-v-6047baad data-v-d43499ff><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-d43499ff data-v-43af366c><div class="content" data-v-43af366c><div class="outline-marker" data-v-43af366c></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-43af366c>On this page</div><ul class="VPDocOutlineItem root" data-v-43af366c data-v-3b6fc5dc><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-d43499ff></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-6047baad><div class="content-container" data-v-6047baad><!--[--><!--]--><main class="main" data-v-6047baad><div style="position:relative;" class="vp-doc _problem_vitepress" data-v-6047baad><div><section class="w-100% justify-center text-14px color-[var(--vp-c-text-2)] border-[var(--vp-c-divider)] w-full mt-[24px] flex gap-[12px] mb-[18px] flex-w
28rap"><div class="flex gap-[4px] items-center"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" style="" width="18" height="18" viewBox="0 0 16 16"></svg> åæ°:<span>1.2k å</span></div><div class="flex gap-[4px] items-center"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" style="" width="18" height="18" viewBox="0 0 16 16"></svg> é¢è®¡:<span>5 åé</span></div><div class="flex gap-[4px] items-center"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" style="" width="18" height="18" viewBox="0 0 16 16"></svg> é 读é:<span id="busuanzi_container_page_pv"><span id="busuanzi_value_page_pv"></span></span></div></section><h1 id="vitepress-å¼åé®é¢è®°å½" tabindex="-1">Vitepress å¼åé®é¢è®°å½ <a class="header-anchor" href="#vitepress-å¼åé®é¢è®°å½" aria-label="Permalink to "Vitepress å¼åé®é¢è®°å½"">â</a></h1><section class="w-100% text-14px color-[var(--vp-c-text-2)] border-b-1 border-[var(--vp-c-divider)] w-full border-b-solid mt-[12px] pb-[24px] flex gap-[12px] mb-[12px] flex-wrap"><div class="flex gap-[4px] items-center"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" style="" width="18" height="18" viewBox="0 0 16 16"></svg> ä½è :<span>winches</span></div><!----><div class="flex gap-[4px] items-center"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" style="" width="18" height="18" viewBox="0 0 16 16"></svg> æ´æ°äº:<span>2 å¹´å</span></div></section><h2 id="ç»vitepresså¿«éæ·»å å ¨å±æç´¢" tabindex="-1">ç»Vitepresså¿«éæ·»å å ¨å±æç´¢ <a class="header-anchor" href="#ç»vitepresså¿«éæ·»å å ¨å±æç´¢" aria-label="Permalink to "ç»Vitepresså¿«éæ·»å å ¨å±æç´¢"">â</a></h2><h3 id="ä¸ãç¨å ç½®çlocalæç´¢åè½" tabindex="-1">ä¸ãç¨å ç½®ç<code>local</code>æç´¢åè½ <a class="header-anchor" href="#ä¸ãç¨å ç½®çlocalæç´¢åè½" aria-label="Permalink to "ä¸ãç¨å ç½®ç`local`æç´¢åè½"">â</a></h3><p>å¨<code>vitepress</code>çé ç½®éå ä¸è¿ä¸æ®µ</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span> 29<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "themeConfig"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span> 30<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "search"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span> 31<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "provider"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"local"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 32<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "options"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span> 33<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "translations"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span> 34<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "button"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">"buttonText"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"æç´¢ææ¡£"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">"buttonAriaLabel"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"æç´¢ææ¡£"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }
34,</span></span> 35<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "modal"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span> 36<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "noResultsText"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"æ æ³æ¾å°ç¸å ³ç»æ"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 37<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "resetButtonTitle"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"æ¸ é¤æ¥è¯¢æ¡ä»¶"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 38<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "footer"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span> 39<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "selectText"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"éæ©"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 40<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "navigateText"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"忢"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 41<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> "closeText"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"å ³é"</span></span> 42<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 43<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 44<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 45<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 46<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 47<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 48<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p><strong>éååºç°çææå¦å¾ï¼</strong></p><img width="943" alt="image" src="https://github.com/sxzz/vue-macros/assets/96854855/96e01fad-a434-4a79-bfb9-04ed0ffd2525"><h3 id="äºã使ç¨ç¤¾åºçæä»¶vitepress-plugin-search-æè vitepress-plugin-pagefind" tabindex="-1">äºã使ç¨ç¤¾åºçæä»¶<code>vitepress-plugin-search </code>æè <code>vitepress-plugin-pagefind</code> <a class="header-anchor" href="#äºã使ç¨ç¤¾åºçæä»¶vitepress-plugin-search-æè vitepress-plugin-pagefind" aria-label="Permalink to "äºã使ç¨ç¤¾åºçæä»¶`vitepress-plugin-search `æè `vitepress-plugin-pagefind`"">â</a></h3><p>以<code>vitepress-plugin-search</code>为ä¾</p><p><strong>å®è£ ä¾èµ</strong></p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -D</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> vitepress-plugin-search</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> flexsearch</span></span></code></pre></div><p><code>vite</code>é ç½®ä¸æ·»å æä»¶</p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span>
48<pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { SearchPlugin } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'vitepress-plugin-search'</span></span> 49<span class="line"></span> 50<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> searchOptions</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 51<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> previewLength: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">62</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 52<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> buttonLabel: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Search'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 53<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> placeholder: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Search docs'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 54<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 55<span class="line"></span> 56<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 57<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> vite: {</span></span> 58<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> plugins: [</span></span> 59<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> SearchPlugin</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(searchOptions),</span></span> 60<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span> 61<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span> 62<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p><strong>ææå¾ï¼</strong></p><img width="767" alt="image" src="https://github.com/sxzz/vue-macros/assets/96854855/9e75d928-7aa2-4d85-879c-52fb46680312"><h2 id="ç»vp页é¢å ä¸è®¿é®éè®°å½" tabindex="-1">ç»Vp页é¢å ä¸è®¿é®éè®°å½ <a class="header-anchor" href="#ç»vp页é¢å ä¸è®¿é®éè®°å½" aria-label="Permalink to "ç»Vp页é¢å ä¸è®¿é®éè®°å½"">â</a></h2><h3 id="æ¹æ¡ä¸ã使ç¨busuanziæå¡" tabindex="-1">æ¹æ¡ä¸ã使ç¨<code>busuanzi</code>æå¡ <a class="header-anchor" href="#æ¹æ¡ä¸ã使ç¨busuanziæå¡" aria-label="Permalink to "æ¹æ¡ä¸ã使ç¨`busuanzi`æå¡"">â</a></h3><h3 id="å®ç°è¿ç¨" tabindex="-1">å®ç°è¿ç¨ <a class="header-anchor" href="#å®ç°è¿ç¨" aria-label="Permalink to "å®ç°è¿ç¨"">â</a></h3><ol><li>å®è£ <code>busuanzi.pure.js</code></li></ol><div class="language-shell vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -D</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> busuanzi.pure.js</span></span></code></pre></div><ol start="2"><li>å¨é¡µé¢è·¯ç±ååçæ¶åï¼è°ç¨<code>busuanzi</code>æå¡</li></ol><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span>
62<pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 63<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> enhanceApp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: ({ </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">router</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> EnhanceAppContext</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 64<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> router.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">onAfterRouteChanged</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> () </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 65<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> isClient </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&&</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> busuanzi.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">fetch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()</span></span> 66<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 67<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span> 68<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><ol start="3"><li><p>éè¿mdç¼è¯æä»¶ä¸ºæ¯ä¸ªé¡µé¢æ·»å ä¸é 读éç»ä»¶</p></li><li><p>æ·»å <code>busuanzi_value_page_pv</code>å¯ä¸æ è¯è³æ ç¾ä¸</p></li></ol><div class="language-html vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">é 读éï¼<</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">span</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"busuanzi_container_page_pv"</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">><</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">span</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"busuanzi_value_page_pv"</span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic;"> /</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">></</span><span style="--shiki-light:#22863A;--shiki-dark:#85E89D;">span</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">></span></span></code></pre></div><p><strong>å®ç°åçï¼</strong></p><p>å½é¡µé¢è·¯ç±åååï¼å¨åååç页é¢åé<code>busuanzi</code>ç请æ±ï¼å¹¶éè¿jsonpåè°å½æ°æ§è¡ï¼æ·»å 访é®éå°<code>ID</code>ä¸ï¼å®æè®¿é®éçè®°å½ã</p><h3 id="常è§é®é¢" tabindex="-1">常è§é®é¢ <a class="header-anchor" href="#常è§é®é¢" aria-label="Permalink to "常è§é®é¢"">â</a></h3><ol><li><code>busuanzi.fetch()</code>è°ç¨åï¼éè¦å¤ææ¯å¦æ¯å®¢æ·ç«¯ï¼å¦å<code>Node</code>æå 伿¥éã</li><li><code>referrer</code>é»è®¤æ¯<code>strict-origin-when-cross-origin</code>ï¼éæ´æ¹<code>referrer</code>çç¥ï¼ä»¥è¾¾å°åéç½ç«ä¿¡æ¯ï¼å确记å½ç½ç«è®¿é®é</li></ol><ul><li>æ¯å¦ï¼<code>unsafe-url</code>ã<code>no-referrer-when-downgrade(æ¨è)</code></li></ul><div class="warning custom-block"><p class="custom-block-title">注æï¼</p><p><code>strict-origin-when-cross-origin</code> æ¯ä¸ä¸ª<code>CSPï¼Content Security Policyï¼</code>ççç¥æä»¤ï¼ç¨äºæå®æµè§å¨å¨è·¨åè¯·æ±æ¶å¦ä½åé<code>Referer</code>头信æ¯ã彿µè§å¨ä»ä¸ä¸ªç«ç¹è·³è½¬å°å¦ä¸ä¸ªç«ç¹æ¶ï¼<code>Referer</code>头信æ¯ä¼åè¯ç®æ ç«ç¹è¯·æ±æ¥èªåªä¸ªç«ç¹ãè¿ä¸ªæä»¤çä½ç¨æ¯å¨è·¨åè¯·æ±æ¶ï¼åªæå¨ç®æ ç«ç¹åæºç«ç¹çåè®®ã主æºåå端å£å·é½ç¸åæ¶ï¼ä¼åé<code>Referer</code>头信æ¯ï¼å¦åä¸åéã</p><p>ä¾å¦ï¼å¦æå½å页é¢ç<code>URL</code>æ¯ <code>https://example.com/page1.html</code>ï¼å¹¶ä¸å®å å«ä¸ä¸ªæå<code>https://example.net/page2.html</code>
68 ç龿¥ï¼é£ä¹å¦æé¾æ¥ä¸å å« <code>rel</code>="<code>noreferrer</code>" 屿§ææ²¡æè®¾ç½® <code>rel</code> 屿§ï¼é£ä¹å¨è·³è½¬å° <code>https://example.net/page2.html</code> æ¶ï¼<code>Referer</code>头信æ¯å°ä¸ä¼å å« <code>https://example.com/page1.html</code> è¿ä¸ªä¿¡æ¯ã使¯ï¼å¦æå¨å½å页é¢ç<code>HTTP</code>åºå¤´ä¸è®¾ç½®äº <code>Referrer-Policy</code>:<code>strict-origin-when-cross-origin</code>ï¼é£ä¹å¨è·¨åè¯·æ±æ¶ï¼åªæå½ç®æ ç«ç¹åæºç«ç¹çåè®®ã主æºåå端å£å·é½ç¸åæ¶ï¼æä¼åé<code>Referer</code>头信æ¯ã è¿ä¸ªæä»¤å¯ä»¥å¸®å©ä¿æ¤ç¨æ·çéç§ï¼å 为å®å¯ä»¥é²æ¢ç®æ ç«ç¹è·åå°æ¥èªå ¶ä»ç«ç¹ç<code>Referer</code>头信æ¯ï¼ä»åå°äºè·¨ç«ç¹è¿½è¸ªçå¯è½æ§ã</p></div><h3 id="æ¹æ¡äºãvisitor-badge" tabindex="-1">æ¹æ¡äºãVisitor Badge <a class="header-anchor" href="#æ¹æ¡äºãvisitor-badge" aria-label="Permalink to "æ¹æ¡äºãVisitor Badge"">â</a></h3><p><strong>ä½¿ç¨æ¹æ³</strong></p><p><a href="https://visitor-badge.laobi.icu/#docs" target="_blank" rel="noreferrer">ç¹å»æ¥çææ¡£</a></p><h2 id="react-docgen-typescript-è§£æé®é¢" tabindex="-1">react-docgen-typescript è§£æé®é¢ <a class="header-anchor" href="#react-docgen-typescript-è§£æé®é¢" aria-label="Permalink to "react-docgen-typescript è§£æé®é¢"">â</a></h2><p>å½ä½¿ç¨<code>docgen.parse</code>æ¶ï¼è¥å äº<code>displayName</code>é£ä¹åªä¼è¯å«å¹¶è¿å对åºçç»ä»¶ï¼å¹¶æ´æ¹è§£æåç<code>displayName</code>为ç¸åºçå¼</p><p>è¥ä¸æå®<code>displayName</code>åè¿åå ¨é¨<code>export</code>çç»ä»¶</p><h1 id="rspress-å¼åé®é¢è®°å½" tabindex="-1">Rspress å¼åé®é¢è®°å½ <a class="header-anchor" href="#rspress-å¼åé®é¢è®°å½" aria-label="Permalink to "Rspress å¼åé®é¢è®°å½"">â</a></h1><h2 id="èªå¨è¯å«ç»ä»¶-props-çæç±»åææ¡£" tabindex="-1">èªå¨è¯å«ç»ä»¶ Props çæç±»åææ¡£ <a class="header-anchor" href="#èªå¨è¯å«ç»ä»¶-props-çæç±»åææ¡£" aria-label="Permalink to "èªå¨è¯å«ç»ä»¶ Props çæç±»åææ¡£"">â</a></h2><ul><li>使ç¨<code>react-docgen-typescript</code> + <code>remark</code> æä»¶å®ç°</li></ul><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { existsSync } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'node:fs'</span></span> 69<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> *</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> docgen </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'react-docgen-typescript'</span></span> 70<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { visit } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'unist-util-visit'</span></span> 71<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { resolver } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> '../helpers/path'</span></span> 72<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { PropsOptions } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> './Props'</span></span> 73<span class="line"></span> 74<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> options</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> docgen</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">ParserOptions</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 75<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> savePropValueAsString: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">
75false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 76<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> propFilter: {</span></span> 77<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> skipPropsWithoutDoc: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 78<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span> 79<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 80<span class="line"></span> 81<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> NodeAttributes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 82<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> keyof</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> PropsOptions</span></span> 83<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> value</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 84<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 85<span class="line"></span> 86<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> remarkPropsTable</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">() {</span></span> 87<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">tree</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 88<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> visit</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(tree, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'mdxJsxFlowElement'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, (</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">node</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">index</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">parent</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 89<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (node.name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'Props'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span> 90<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> src</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> node.attributes.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">find</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">((</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">attr</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> NodeAttributes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> attr.name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'src'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)?.value</span></span> 91<span class="line"></span> 92<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">src)</span></span> 93<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span></span> 94<span class="line"></span> 95<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> component</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> node.attributes.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">find</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">((</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">attr</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> NodeAttributes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> attr.name </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">===</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'component'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)?.value</span></span> 96<span class="line"></span> 97<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> codeSrc</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> resolver</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(src)</span></span> 98<span class="line"></span> 99<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">existsSync</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(codeSrc)) {</span></span> 100<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> componentsMetaJson</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> component</span></span> 101<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> docgen</span></span> 102<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">parse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(codeSrc, options)</span></span> 103<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">find</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">c</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =></span></span> 104<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> c.displayName.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toLocaleLowerCase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">().</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">includes</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(component.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">replace</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'.mdx'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">''</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toLocaleLowerCase</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">()),</span></span> 105<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> )</span></span> 106<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> :</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> docgen.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">parse</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(codeSrc, options)[</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span> 107<span class="line"></span> 108<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (componentsMetaJson) {</span></span> 109<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> isOverLength</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> Object.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">keys</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(componentsMetaJson.props).</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">length</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> >=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 20</span></span> 110<span class="line"></span> 111<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> markdown</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> generateTable</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(componentsMetaJson, isOverLength)</span></span> 112<span class="line"></span> 113<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (markdown)</span></span> 114<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> parent.children.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">push</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(markdown)</span></span> 115<span class="line"></span> 116<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 117<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 118<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 119<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> })</span></span> 120<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 121<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 122<span class="line"></span> 123<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Prop</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 124<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> defaultValue</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> unknown</span></span> 125<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> description</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 126<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 127<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> required</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> boolean</span></span> 128<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> type</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 129<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 130<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 131<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 132<span class="line"></span> 133<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">interface</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ComponentMetadata</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 134<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> displayName</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> string</span></span> 135<span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> props</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Record</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"><</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">Prop</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">></span></span> 136<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span> 137<span class="line"></span> 138<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> baseHTMLAttributesRegex</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">aria-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">
138*|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">data-</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">tabIndex</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">role</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span></span> 139<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> attributesRegex</span></span> 140<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> /</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">^</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">on</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">[A-Z]</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">dir</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">draggable</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">hidden</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">id</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">lang</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">nonce</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">slot</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">spellCheck</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">style</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">title</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">translate</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">autoCapitalize</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">autoCorrect</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">autoSave</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemProp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemScope</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemType</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemID</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemRef</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemGroup</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemValue</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">itemProp</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">about</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">inlist</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">content</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">prefix</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">property</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">rel</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">resource</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">vocab</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">rev</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">typeof</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">color</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">results</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">security</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">unselectable</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">is</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">inputMode</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">dangerouslySetInnerHTML</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">defaultChecked</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">defaultValue</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">suppressContentEditableWarning</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">suppressHydrationWarning</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">accessKey</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">contentEditable</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">contextMenu</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">autoFocus</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">|</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">radioGroup</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span></span> 141<span class="line"></span> 142<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> generateTable</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">metadata</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ComponentMetadata</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">isOverLength</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> boolean</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) {</span></span> 143<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> table</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 144<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'table'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 145<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> align: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'left'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'center'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'center'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'center'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">],</span></span> 146<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> children: [</span></span> 147<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 148<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableRow'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 149<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> children: [</span></span> 150<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Property'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }] },</span></span> 151<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Type'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }] },</span></span> 152<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Required'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }] },</span></span> 153<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'Description'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }] },</span></span> 154<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span> 155<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> },</span></span> 156<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">Object.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">entries</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(metadata.props)</span></span> 157<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">map</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(([</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">propName</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">prop</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">
157]) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=></span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 158<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (isOverLength) {</span></span> 159<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // è¿æ»¤ææ²¡ææè¿°ç HTML 屿§ï¼ååºç¡çHTML屿§</span></span> 160<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ((</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">prop.description </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&&</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> attributesRegex.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">test</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(prop.name)) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> baseHTMLAttributesRegex.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">test</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(prop.name))</span></span> 161<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> null</span></span> 162<span class="line"></span> 163<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 164<span class="line"></span> 165<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span> 166<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableRow'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span> 167<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> children: [</span></span> 168<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'strong'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: propName }] }] },</span></span> 169<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'inlineCode'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: prop.type.name }] },</span></span> 170<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'inlineCode'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: prop.required </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'Yes'</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> :</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'No'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }] },</span></span> 171<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'tableCell'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, children: [{ type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'text'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, value: prop.description.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">replace</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span><span style="--shiki-light:#032F62;--shiki-dark:#DBEDFF;">@</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">g</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">''</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> '-'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }] },</span></span> 172<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span> 173<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 174<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> })</span></span> 175<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">filter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(Boolean),</span></span> 176<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ],</span></span> 177<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span> 178<span class="line"></span> 179<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> table</span></span> 180<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-6047baad data-v-b4f734b6><!--[--><!--]--><div class="edit-info" data-v-b4f734b6><div class="edit-link" data-v-b4f734b6><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/code-jbrc/Awesome-15docs/tree/main/docs/src/problem/vitepress.md" target="_blank" rel="noreferrer" data-v-b4f734b6><!--[--><span class="vpi-square-pen edit-link-icon" data-v-b4f734b6></span> å¨ GitHub ç¼è¾æ¤é¡µ<!--]--></a></div><div class="last-updated" data-v-b4f734b6><p class="VPLastUpdated" data-v-b4f734b6 data-v-f08926c0>æåæ´æ°äº: <time datetime="2024-04-22T06:34:43.000Z" data-v-f08926c0></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-b4f734b6><span class="visually-hidden" id="doc-footer-aria-label" data-v-b4f734b6>Pager</span><div class="pager" data-v-b4f734b6><a class='VPLink link pager-link prev' data-v-b4f734b6 href='/problem/vue'><!--[--><span class="desc" data-v-b4f734b6>Previous page</span><span class="title" data-v-b4f734b6>Vue å¼åé®é¢</span><!--]--></a></div><div class="pager" data-v-b4f734b6><a class='VPLink link pager-link next' data-v-b4f734b6 href='/problem/css'><!--[--><span class="desc" data-v-b4f734b6>Next page</span><span class="title" data-v-b4f734b6>Css å¼åé®é¢</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-d8135c25 data-v-d0e87186><div class="container" data-v-d0e87186><p class="message" data-v-d0e87186>Made with â¤ï¸</p><p class="copyright" data-v-d0e87186>MIT License © 2023 <a href="https://github.com/winchesHe">winchesHe</a></p></div></footer><!--[--><!--]--></div></div> 181
181<script>window.__VP_HASH_MAP__=JSON.parse("{\"ai_agent-context-system.md\":\"BQAeHD1i\",\"ai_agent-learning_agent-basics.md\":\"DhjyCb5W\",\"ai_agent-learning_agent-patterns.md\":\"Ch7j06oG\",\"ai_agent-learning_index.md\":\"Duib9LWf\",\"ai_agent-learning_superpowers-skill-framework.md\":\"BkZvro6u\",\"ai_agent-rules-and-prompts.md\":\"Bc7jKC7P\",\"ai_agent-skills-index.md\":\"BHKzvSie\",\"ai_agents_opencode_opencode.md\":\"BBTZcCfK\",\"ai_agents_pi_pi.md\":\"BhHfolxv\",\"ai_ai-coding-concepts.md\":\"CaxrHhD6\",\"ai_ai-coding-practice.md\":\"D8FeYzlD\",\"ai_ai-tools-and-setup.md\":\"ClqA6KXp\",\"ai_personal-ai-tools.md\":\"Bkgv45fo\",\"ai_prompt-templates.md\":\"CHMDOX6G\",\"author_annual-reviews.md\":\"BlCZc-uE\",\"author_career-records.md\":\"Ca37zU0k\",\"author_interview-prep.md\":\"tEJFgNGV\",\"author_life-notes.md\":\"Ch-_USOM\",\"author_personal-projects.md\":\"Dlrq4TdQ\",\"css-library_dev-skill.md\":\"Dbv4ampu\",\"css-library_function.md\":\"DJdCUbYm\",\"css-library_knowledge.md\":\"4NgAsQEM\",\"css-library_tailwind-skill.md\":\"CXQWIlPU\",\"feature_deploy.md\":\"D44HKzFG\",\"feature_node-cli.md\":\"DZcgd6Dh\",\"feature_regexp-fn.md\":\"CUu2x2I3\",\"feature_regexp.md\":\"CH0v_vKK\",\"feature_vscode-plugin.md\":\"XYbh4gYA\",\"feature_vscode.md\":\"DH_HgmeV\",\"feature_webstorm.md\":\"CekMzqva\",\"index.md\":\"B0CreRDW\",\"play_epub-reader.md\":\"CvqYjgzU\",\"problem_api-examples.md\":\"CpazRmxQ\",\"problem_css.md\":\"DqoUd-Tt\",\"problem_extension.md\":\"DZ7uc3x6\",\"problem_figma.md\":\"CPlThLv1\",\"problem_git.md\":\"CuoIv2HR\",\"problem_github.md\":\"D2d0QaQ-\",\"problem_javascript.md\":\"DhkJ0Tw2\",\"problem_markdown-examples.md\":\"C_NVrldG\",\"problem_next-js.md\":\"B0g6_6Rn\",\"problem_nextui.md\":\"bVzn-NoB\",\"problem_node.md\":\"B4c-PZ5l\",\"problem_react-native.md\":\"LWg6GVuZ\",\"problem_react.md\":\"oIFX2hL9\",\"problem_shell.md\":\"D1X791C8\",\"problem_typescript-config.md\":\"D1PJk39R\",\"problem_typescript.md\":\"BFwtB8Gi\",\"problem_vitepress.md\":\"CxsF-fsd\",\"problem_vscode.md\":\"scKuYnYC\",\"problem_vue.md\":\"DLH_bOsx\",\"project_ast.md\":\"CJ5-sKMC\",\"project_desktop.md\":\"BAqk9sIn\",\"project_eslint.md\":\"6J9S-Qg8\",\"project_monitor.md\":\"DIuyDwwl\",\"project_rsbuild.md\":\"DXqS28F6\",\"project_vite.md\":\"CponPMB7\",\"study_css-site.md\":\"D3zDkL8X\",\"study_daily-data.md\":\"DUmbRTXT\",\"study_daily-problem.md\":\"Cvs54sDE\",\"study_gradients.md\":\"BtBscRHH\",\"study_lang-chain.md\":\"C0EhNM_C\",\"study_mobile.md\":\"CygyM8Dx\",\"study_picture.md\":\"DvQU4PLv\",\"study_site.md\":\"FTnjeBUw\",\"study_stock.md\":\"D0anKmcw\",\"systems_chrome.md\":\"DWffZ-R-\",\"systems_mac.md\":\"Bczf5RSO\",\"systems_win.md\":\"DpDApNAi\"}");function deserializeFunctions(r){return Array.isArray(r)?r.map(deserializeFunctions):typeof r=="object"&&r!==null?Object.keys(r).reduce((t,n)=>(t[n]=deserializeFunctions(r[n]),t),{}):typeof r=="string"&&r.startsWith("_vp-fn_")?new Function(`return ${r.slice(7)}`)():r};window.__VP_SITE_DATA__=deserializeFunctions(JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Awesome 15docs\",\"description\":\"A VitePress Site\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"主页\",\"link\":\"/\"},{\"text\":\"å¼åè®°å½\",\"items\":[{\"text\":\"Vue å¼åé®é¢\",\"link\":\"/problem/vue\"},{\"text\":\"Vitepress å¼åé®é¢\",\"link\":\"/problem/vitepress\"},{\"text\":\"Css å¼åé®é¢\",\"link\":\"/problem/css\"},{\"text\":\"ReactNative å¼åé®é¢\",\"link\":\"/problem/react-native\"},{\"text\":\"Github é®é¢è®°å½\",\"link\":\"/problem/github\"},{\"text\":\"Git å¼åé®é¢\",\"link\":\"/problem/git\"},{\"text\":\"Vscode å¼åé®é¢\",\"link\":\"/problem/vscode\"},{\"text\":\"Node å¼åé®é¢\",\"link\":\"/problem/node\"},{\"text\":\"Shell å¼åé®é¢\",\"link\":\"/problem/shell\"},{\"text\":\"React å¼åé®é¢\",\"link\":\"/problem/react\"},{\"text\":\"Javascript å¼åé®é¢\",\"link\":\"/problem/javascript\"},{\"text\":\"Nextui å¼åè®°å½\",\"link\":\"/problem/nextui\"},{\"text\":\"Next.js 踩å\",\"link\":\"/problem/next-js\"},{\"text\":\"Figma å¼åè®°å½\",\"link\":\"/problem/figma\"},{\"text\":\"æµè§å¨æä»¶å¼å踩å\",\"link\":\"/problem/extension\"},{\"text\":\"Typescript\",\"items\":[{\"text\":\"Typescriptï¼tsconfig详解)\",\"link\":\"/problem/typescript-config\"},{\"text\":\"Typescript å¼åé®é¢è®°å½\",\"link\":\"/problem/typescript\"}]},{\"text\":\"å·¥ç¨åè®°å½\",\"items\":[{\"text\":\"Vite å¼åé®é¢\",\"link\":\"/project/vite\"},{\"text\":\"Rsbuild å¼åé®é¢\",\"link\":\"/project/rsbuild\"},{\"text\":\"AST å¦ä¹ è®°å½\",\"link\":\"/project/ast\"},{\"text\":\"Eslint é
ç½®\",\"link\":\"/project/eslint\"},{\"text\":\"å端æå¡çæ§SDK\",\"link\":\"/project/monitor\"},{\"text\":\"æ¡é¢ç«¯åºç¨å¼å\",\"link\":\"/project/desktop\"}]},{\"text\":\"ç³»ç»é®é¢è®°å½\",\"items\":[{\"text\":\"Mac å¼åé®é¢\",\"link\":\"/systems/mac\"},{\"text\":\"Win å¼åé®é¢\",\"link\":\"/systems/win\"},{\"text\":\"Chrome å¼åè®°å½\",\"link\":\"/systems/chrome\"}]}],\"activeMatch\":\"problem|example|project\"},{\"text\":\"å¦ä¹ èµææ¨è\",\"items\":[{\"text\":\"AI æ¨è\",\"items\":[{\"text\":\"AI ç½ç«æ¨è\",\"link\":\"/study/site\"},{\"text\":\"AI çå¾ç¤ºä¾\",\"link\":\"/study/picture\"}]},{\"text\":\"AI å¦ä¹ \",\"items\":[{\"text\":\"LangChain ç¥è¯åº\",\"link\":\"/study/lang-chain\"}]},{\"text\":\"Css 设计ç½ç«æ¨è\",\"items\":[{\"text\":\"Css 设计ç½ç«æ¨è\",\"link\":\"/study/css-site\"},{\"text\":\"æ¸åè²ç½ç«æ¨è\",\"link\":\"/study/gradients\"}]},{\"text\":\"æ¥å¸¸å¦ä¹ \",\"items\":[{\"text\":\"æ¥å¸¸å¦ä¹ èµæ\",\"link\":\"/study/daily-data\"},{\"text\":\"æ¥å¸¸è¸©åï¼æä¹±ï¼\",\"link\":\"/study/daily-problem\"}]},{\"text\":\"Mobile ç§»å¨ç«¯è®°å½\",\"items\":[{\"text\":\"Mobile ç§»å¨ç«¯è®°å½\",\"link\":\"/study/mobile\"}]}],\"activeMatch\":\"study\"},{\"text\":\"AI\",\"items\":[{\"text\":\"AI Agent å¦ä¹ \",\"items\":[{\"text\":\"æ¦è¿°\",\"link\":\"/ai/agent-learning/\"},{\"text\":\"AI Agent åºç¡ï¼ç¬¬ä¸ä¸ªæºè½ä½\",\"link\":\"/ai/agent-learning/agent-basics\"},{\"text\":\"AI Agent ç»å
¸èå¼\",\"link\":\"/ai/agent-learning/agent-patterns\"},{\"text\":\"Superpowers æè½æ¡æ¶å®ç°åç\",\"link\":\"/ai/agent-learning/superpowers-skill-framework\"}]},{\"text\":\"AI Agent å·¥å
·\",\"items\":[{\"text\":\"OpenCode é
ç½®ï¼è¸©åæµè§\",\"link\":\"/ai/agents/opencode/opencode\"},{\"text\":\"PI é
ç½®ï¼è¸©åæµè§\",\"link\":\"/ai/agents/pi/pi\"}]},{\"text\":\"AI Coding æ¦å¿µã工使µä¸æ©å±æºå¶\",\"link\":\"/ai/ai-coding-concepts\"},{\"text\":\"AI Coding 个人å®è·µï¼æ¨¡åãHarness ä¸ä¸ä¸æ\",\"link\":\"/ai/ai-coding-practice\"},{\"text\":\"Agent Skill å¸¸ç¨æ¸
å\",\"link\":\"/ai/agent-skills-index\"},{\"text\":\"AI å·¥å
·éåä¸é
ç½®\",\"link\":\"/ai/ai-tools-and-setup\"},{\"text\":\"个人 AI å·¥å
·ä¸è®¢é
æ¸
å\",\"link\":\"/ai/personal-ai-tools\"},{\"text\":\"AI åä½è§å\",\"link\":\"/ai/agent-rules-and-prompts\"},{\"text\":\"AI Prompt 模æ¿\",\"link\":\"/ai/prompt-templates\"},{\"text\":\"Agent ä¸ä¸æä½ç³»ï¼AGENTS.mdãç¥è¯å¾è°±ä¸ DESIGN.md\",\"link\":\"/ai/agent-context-system\"}],\"activeMatch\":\"ai\"},{\"text\":\"DX å¼åè
ä½éª\",\"items\":[{\"text\":\"DX å¼åè
ä½éª\",\"items\":[{\"text\":\"èªå¨åé¨ç½²\",\"link\":\"/feature/deploy\"}
181,{\"text\":\"Vscode ç¹æ§é
ç½®\",\"link\":\"/feature/vscode\"},{\"text\":\"Vscode æä»¶å¼å\",\"link\":\"/feature/vscode-plugin\"},{\"text\":\"Webstorm ç¹æ§é
ç½®\",\"link\":\"/feature/webstorm\"},{\"text\":\"æ£åè¡¨è¾¾å¼æå·§\",\"link\":\"/feature/regexp\"},{\"text\":\"æ£åéç¨åè½å½æ°\",\"link\":\"/feature/regexp-fn\"},{\"text\":\"Node CLI å¼å\",\"link\":\"/feature/node-cli\"}]},{\"text\":\"css å¼åæ¡æ¶ç¥è¯\",\"items\":[{\"text\":\"Scss 常ç¨ç¥è¯ç¹\",\"link\":\"/css-library/knowledge\"},{\"text\":\"å¼å飿 ¼ skill\",\"link\":\"/css-library/dev-skill\"},{\"text\":\"Scss å°è£
彿°\",\"link\":\"/css-library/function\"},{\"text\":\"Tailwind å¼åæå·§\",\"link\":\"/css-library/tailwind-skill\"}]},{\"text\":\"æ¸é±¼å·¥å
·\",\"items\":[{\"text\":\"é
读å¨\",\"link\":\"/play/epub-reader\"}]}],\"activeMatch\":\"feature|play\"},{\"text\":\"个人记å½\",\"items\":[{\"text\":\"个人记å½\",\"items\":[{\"text\":\"çæ´»è®°å½ä¸ä¸ªäººç»éª\",\"link\":\"/author/life-notes\"}
181,{\"text\":\"个人项ç®ä¸ä½å\",\"link\":\"/author/personal-projects\"},{\"text\":\"é¢è¯åå¤ï¼è®°å½ãç®æ³ä¸ç¥è¯ç¹\",\"link\":\"/author/interview-prep\"},{\"text\":\"èä¸è®°å½ï¼å·¥ä½ä¸å¼æº\",\"link\":\"/author/career-records\"},{\"text\":\"年度å¤ç\",\"link\":\"/author/annual-reviews\"}]}],\"activeMatch\":\"author\"}],\"sidebar\":{\"/ai/agent-learning/\":[{\"text\":\"AI Agent å¦ä¹ \",\"items\":[{\"text\":\"æ¦è¿°\",\"link\":\"/ai/agent-learning/\"},{\"text\":\"AI Agent åºç¡ï¼ç¬¬ä¸ä¸ªæºè½ä½\",\"link\":\"/ai/agent-learning/agent-basics\"},{\"text\":\"AI Agent ç»å
¸èå¼\",\"link\":\"/ai/agent-learning/agent-patterns\"},{\"text\":\"Superpowers æè½æ¡æ¶å®ç°åç\",\"link\":\"/ai/agent-learning/superpowers-skill-framework\"}]}],\"/ai\":[{\"text\":\"AI\",\"items\":[{\"text\":\"AI Agent å¦ä¹ \",\"items\":[{\"text\":\"æ¦è¿°\",\"link\":\"/ai/agent-learning/\"},{\"text\":\"AI Agent åºç¡ï¼ç¬¬ä¸ä¸ªæºè½ä½\",\"link\":\"/ai/agent-learning/agent-basics\"},{\"text\":\"AI Agent ç»å
¸èå¼\",\"link\":\"/ai/agent-learning/agent-patterns\"},{\"text\":\"Superpowers æè½æ¡æ¶å®ç°åç\",\"link\":\"/ai/agent-learning/superpowers-skill-framework\"}]},{\"text\":\"AI Agent å·¥å
·\",\"items\":[{\"text\":\"OpenCode é
ç½®ï¼è¸©åæµè§\",\"link\":\"/ai/agents/opencode/opencode\"},{\"text\":\"PI é
ç½®ï¼è¸©åæµè§\",\"link\":\"/ai/agents/pi/pi\"}]},{\"text\":\"AI Coding æ¦å¿µã工使µä¸æ©å±æºå¶\",\"link\":\"/ai/ai-coding-concepts\"},{\"text\":\"AI Coding 个人å®è·µï¼æ¨¡åãHarness ä¸ä¸ä¸æ\",\"link\":\"/ai/ai-coding-practice\"},{\"text\":\"Agent Skill å¸¸ç¨æ¸
å\",\"link\":\"/ai/agent-skills-index\"},{\"text\":\"AI å·¥å
·éåä¸é
ç½®\",\"link\":\"/ai/ai-tools-and-setup\"},{\"text\":\"个人 AI å·¥å
·ä¸è®¢é
æ¸
å\",\"link\":\"/ai/personal-ai-tools\"},{\"text\":\"AI åä½è§å\",\"link\":\"/ai/agent-rules-and-prompts\"},{\"text\":\"AI Prompt 模æ¿\",\"link\":\"/ai/prompt-templates\"},{\"text\":\"Agent ä¸ä¸æä½ç³»ï¼AGENTS.mdãç¥è¯å¾è°±ä¸ DESIGN.md\",\"link\":\"/ai/agent-context-system\"}]}],\"/study\":[{\"text\":\"å¦ä¹ èµææ¨è\",\"items\":[{\"text\":\"AI æ¨è\",\"items\":[{\"text\":\"AI ç½ç«æ¨è\",\"link\":\"/study/site\"},{\"text\":\"AI çå¾ç¤ºä¾\",\"link\":\"/study/picture\"}]},{\"text\":\"AI å¦ä¹ \",\"items\":[{\"text\":\"LangChain ç¥è¯åº\",\"link\":\"/study/lang-chain\"}]},{\"text\":\"Css 设计ç½ç«æ¨è\",\"items\":[{\"text\":\"Css 设计ç½ç«æ¨è\",\"link\":\"/study/css-site\"},{\"text\":\"æ¸åè²ç½ç«æ¨è\",\"link\":\"/study/gradients\"}]},{\"text\":\"æ¥å¸¸å¦ä¹ \",\"items\":[{\"text\":\"æ¥å¸¸å¦ä¹ èµæ\",\"link\":\"/study/daily-data\"},{\"text\":\"æ¥å¸¸è¸©åï¼æä¹±ï¼\",\"link\":\"/study/daily-problem\"}]},{\"text\":\"Mobile ç§»å¨ç«¯è®°å½\",\"items\":[{\"text\":\"Mobile ç§»å¨ç«¯è®°å½\",\"link\":\"/study/mobile\"}]}]}],\"/problem\":[{\"text\":\"æ¥å¸¸å¼åè®°å½\",\"items\":[{\"text\":\"Vue å¼åé®é¢\",\"link\":\"/problem/vue\"},{\"text\":\"Vitepress å¼åé®é¢\",\"link\":\"/problem/vitepress\"},{\"text\":\"Css å¼åé®é¢\",\"link\":\"/problem/css\"},{\"text\":\"ReactNative å¼åé®é¢\",\"link\":\"/problem/react-native\"},{\"text\":\"Github é®é¢è®°å½\",\"link\":\"/problem/github\"},{\"text\":\"Git å¼åé®é¢\",\"link\":\"/problem/git\"},{\"text\":\"Vscode å¼åé®é¢\",\"link\":\"/problem/vscode\"},{\"text\":\"Node å¼åé®é¢\",\"link\":\"/problem/node\"},{\"text\":\"Shell å¼åé®é¢\",\"link\":\"/problem/shell\"},{\"text\":\"React å¼åé®é¢\",\"link\":\"/problem/react\"},{\"text\":\"Javascript å¼åé®é¢\",\"link\":\"/problem/javascript\"},{\"text\":\"Nextui å¼åè®°å½\",\"link\":\"/problem/nextui\"},{\"text\":\"Next.js 踩å\",\"link\":\"/problem/next-js\"},{\"text\":\"Figma å¼åè®°å½\",\"link\":\"/problem/figma\"},{\"text\":\"æµè§å¨æä»¶å¼å踩å\",\"link\":\"/problem/extension\"},{\"text\":\"Markdown Examples\",\"link\":\"/problem/markdown-examples\"},{\"text\":\"Runtime API Examples\",\"link\":\"/problem/api-examples\"}]},{\"text\":\"Typescript\",\"items\":[{\"text\":\"Typescriptï¼tsconfig详解)\",\"link\":\"/problem/typescript-config\"},{\"text\":\"Typescript å¼åé®é¢è®°å½\",\"link\":\"/problem/typescript\"}]},{\"text\":\"å·¥ç¨åè®°å½\",\"items\":[{\"text\":\"Vite å¼åé®é¢\",\"link\":\"/project/vite\"},{\"text\":\"Rsbuild å¼åé®é¢\",\"link\":\"/project/rsbuild\"},{\"text\":\"AST å¦ä¹ è®°å½\",\"link\":\"/project/ast\"},{\"text\":\"Eslint é
ç½®\",\"link\":\"/project/eslint\"},{\"text\":\"å端æå¡çæ§SDK\",\"link\":\"/project/monitor\"},{\"text\":\"æ¡é¢ç«¯åºç¨å¼å\",\"link\":\"/project/desktop\"}]},{\"text\":\"ç³»ç»é®é¢è®°å½\",\"items\":[{\"text\":\"Mac å¼åé®é¢\",\"link\":\"/systems/mac\"},{\"text\":\"Win å¼åé®é¢\",\"link\":\"/systems/win\"},{\"text\":\"Chrome å¼åè®°å½\",\"link\":\"/systems/chrome\"}]}
181],\"/project\":[{\"text\":\"æ¥å¸¸å¼åè®°å½\",\"items\":[{\"text\":\"Vue å¼åé®é¢\",\"link\":\"/problem/vue\"},{\"text\":\"Vitepress å¼åé®é¢\",\"link\":\"/problem/vitepress\"},{\"text\":\"Css å¼åé®é¢\",\"link\":\"/problem/css\"},{\"text\":\"ReactNative å¼åé®é¢\",\"link\":\"/problem/react-native\"},{\"text\":\"Github é®é¢è®°å½\",\"link\":\"/problem/github\"},{\"text\":\"Git å¼åé®é¢\",\"link\":\"/problem/git\"},{\"text\":\"Vscode å¼åé®é¢\",\"link\":\"/problem/vscode\"},{\"text\":\"Node å¼åé®é¢\",\"link\":\"/problem/node\"},{\"text\":\"Shell å¼åé®é¢\",\"link\":\"/problem/shell\"},{\"text\":\"React å¼åé®é¢\",\"link\":\"/problem/react\"},{\"text\":\"Javascript å¼åé®é¢\",\"link\":\"/problem/javascript\"},{\"text\":\"Nextui å¼åè®°å½\",\"link\":\"/problem/nextui\"},{\"text\":\"Next.js 踩å\",\"link\":\"/problem/next-js\"},{\"text\":\"Figma å¼åè®°å½\",\"link\":\"/problem/figma\"},{\"text\":\"æµè§å¨æä»¶å¼å踩å\",\"link\":\"/problem/extension\"},{\"text\":\"Markdown Examples\",\"link\":\"/problem/markdown-examples\"},{\"text\":\"Runtime API Examples\",\"link\":\"/problem/api-examples\"}]},{\"text\":\"Typescript\",\"items\":[{\"text\":\"Typescriptï¼tsconfig详解)\",\"link\":\"/problem/typescript-config\"},{\"text\":\"Typescript å¼åé®é¢è®°å½\",\"link\":\"/problem/typescript\"}]},{\"text\":\"å·¥ç¨åè®°å½\",\"items\":[{\"text\":\"Vite å¼åé®é¢\",\"link\":\"/project/vite\"},{\"text\":\"Rsbuild å¼åé®é¢\",\"link\":\"/project/rsbuild\"},{\"text\":\"AST å¦ä¹ è®°å½\",\"link\":\"/project/ast\"},{\"text\":\"Eslint é
ç½®\",\"link\":\"/project/eslint\"},{\"text\":\"å端æå¡çæ§SDK\",\"link\":\"/project/monitor\"},{\"text\":\"æ¡é¢ç«¯åºç¨å¼å\",\"link\":\"/project/desktop\"}]},{\"text\":\"ç³»ç»é®é¢è®°å½\",\"items\":[{\"text\":\"Mac å¼åé®é¢\",\"link\":\"/systems/mac\"},{\"text\":\"Win å¼åé®é¢\",\"link\":\"/systems/win\"},{\"text\":\"Chrome å¼åè®°å½\",\"link\":\"/systems/chrome\"}]}],\"/systems\":[{\"text\":\"æ¥å¸¸å¼åè®°å½\",\"items\":[{\"text\":\"Vue å¼åé®é¢\",\"link\":\"/problem/vue\"},{\"text\":\"Vitepress å¼åé®é¢\",\"link\":\"/problem/vitepress\"},{\"text\":\"Css å¼åé®é¢\",\"link\":\"/problem/css\"},{\"text\":\"ReactNative å¼åé®é¢\",\"link\":\"/problem/react-native\"},{\"text\":\"Github é®é¢è®°å½\",\"link\":\"/problem/github\"},{\"text\":\"Git å¼åé®é¢\",\"link\":\"/problem/git\"},{\"text\":\"Vscode å¼åé®é¢\",\"link\":\"/problem/vscode\"},{\"text\":\"Node å¼åé®é¢\",\"link\":\"/problem/node\"},{\"text\":\"Shell å¼åé®é¢\",\"link\":\"/problem/shell\"},{\"text\":\"React å¼åé®é¢\",\"link\":\"/problem/react\"},{\"text\":\"Javascript å¼åé®é¢\",\"link\":\"/problem/javascript\"},{\"text\":\"Nextui å¼åè®°å½\",\"link\":\"/problem/nextui\"},{\"text\":\"Next.js 踩å\",\"link\":\"/problem/next-js\"},{\"text\":\"Figma å¼åè®°å½\",\"link\":\"/problem/figma\"},{\"text\":\"æµè§å¨æä»¶å¼å踩å\",\"link\":\"/problem/extension\"},{\"text\":\"Markdown Examples\",\"link\":\"/problem/markdown-examples\"},{\"text\":\"Runtime API Examples\",\"link\":\"/problem/api-examples\"}]},{\"text\":\"Typescript\",\"items\":[{\"text\":\"Typescriptï¼tsconfig详解)\",\"link\":\"/problem/typescript-config\"},{\"text\":\"Typescript å¼åé®é¢è®°å½\",\"link\":\"/problem/typescript\"}]},{\"text\":\"å·¥ç¨åè®°å½\",\"items\":[{\"text\":\"Vite å¼åé®é¢\",\"link\":\"/project/vite\"},{\"text\":\"Rsbuild å¼åé®é¢\",\"link\":\"/project/rsbuild\"},{\"text\":\"AST å¦ä¹ è®°å½\",\"link\":\"/project/ast\"},{\"text\":\"Eslint é
ç½®\",\"link\":\"/project/eslint\"},{\"text\":\"å端æå¡çæ§SDK\",\"link\":\"/project/monitor\"},{\"text\":\"æ¡é¢ç«¯åºç¨å¼å\",\"link\":\"/project/desktop\"}]},{\"text\":\"ç³»ç»é®é¢è®°å½\",\"items\":[{\"text\":\"Mac å¼åé®é¢\",\"link\":\"/systems/mac\"},{\"text\":\"Win å¼åé®é¢\",\"link\":\"/systems/win\"},{\"text\":\"Chrome å¼åè®°å½\",\"link\":\"/systems/chrome\"}]}],\"/feature\":[{\"text\":\"DX å¼åè
ä½éª\",\"items\":[{\"text\":\"èªå¨åé¨ç½²\",\"link\":\"/feature/deploy\"}
181,{\"text\":\"Vscode ç¹æ§é
ç½®\",\"link\":\"/feature/vscode\"},{\"text\":\"Vscode æä»¶å¼å\",\"link\":\"/feature/vscode-plugin\"},{\"text\":\"Webstorm ç¹æ§é
ç½®\",\"link\":\"/feature/webstorm\"},{\"text\":\"æ£åè¡¨è¾¾å¼æå·§\",\"link\":\"/feature/regexp\"},{\"text\":\"æ£åéç¨åè½å½æ°\",\"link\":\"/feature/regexp-fn\"},{\"text\":\"Node CLI å¼å\",\"link\":\"/feature/node-cli\"}]},{\"text\":\"css å¼åæ¡æ¶ç¥è¯\",\"items\":[{\"text\":\"Scss 常ç¨ç¥è¯ç¹\",\"link\":\"/css-library/knowledge\"},{\"text\":\"å¼å飿 ¼ skill\",\"link\":\"/css-library/dev-skill\"},{\"text\":\"Scss å°è£
彿°\",\"link\":\"/css-library/function\"},{\"text\":\"Tailwind å¼åæå·§\",\"link\":\"/css-library/tailwind-skill\"}]},{\"text\":\"æ¸é±¼å·¥å
·\",\"items\":[{\"text\":\"é
读å¨\",\"link\":\"/play/epub-reader\"}]}],\"/play\":[{\"text\":\"DX å¼åè
ä½éª\",\"items\":[{\"text\":\"èªå¨åé¨ç½²\",\"link\":\"/feature/deploy\"},{\"text\":\"Vscode ç¹æ§é
ç½®\",\"link\":\"/feature/vscode\"},{\"text\":\"Vscode æä»¶å¼å\",\"link\":\"/feature/vscode-plugin\"}
181,{\"text\":\"Webstorm ç¹æ§é
ç½®\",\"link\":\"/feature/webstorm\"},{\"text\":\"æ£åè¡¨è¾¾å¼æå·§\",\"link\":\"/feature/regexp\"},{\"text\":\"æ£åéç¨åè½å½æ°\",\"link\":\"/feature/regexp-fn\"},{\"text\":\"Node CLI å¼å\",\"link\":\"/feature/node-cli\"}]},{\"text\":\"css å¼åæ¡æ¶ç¥è¯\",\"items\":[{\"text\":\"Scss 常ç¨ç¥è¯ç¹\",\"link\":\"/css-library/knowledge\"},{\"text\":\"å¼å飿 ¼ skill\",\"link\":\"/css-library/dev-skill\"},{\"text\":\"Scss å°è£
彿°\",\"link\":\"/css-library/function\"},{\"text\":\"Tailwind å¼åæå·§\",\"link\":\"/css-library/tailwind-skill\"}]},{\"text\":\"æ¸é±¼å·¥å
·\",\"items\":[{\"text\":\"é
读å¨\",\"link\":\"/play/epub-reader\"}]}],\"/css-library\":[{\"text\":\"DX å¼åè
ä½éª\",\"items\":[{\"text\":\"èªå¨åé¨ç½²\",\"link\":\"/feature/deploy\"},{\"text\":\"Vscode ç¹æ§é
ç½®\",\"link\":\"/feature/vscode\"},{\"text\":\"Vscode æä»¶å¼å\",\"link\":\"/feature/vscode-plugin\"},{\"text\":\"Webstorm ç¹æ§é
ç½®\",\"link\":\"/feature/webstorm\"},{\"text\":\"æ£åè¡¨è¾¾å¼æå·§\",\"link\":\"/feature/regexp\"},{\"text\":\"æ£åéç¨åè½å½æ°\",\"link\":\"/feature/regexp-fn\"},{\"text\":\"Node CLI å¼å\",\"link\":\"/feature/node-cli\"}]},{\"text\":\"css å¼åæ¡æ¶ç¥è¯\",\"items\":[{\"text\":\"Scss 常ç¨ç¥è¯ç¹\",\"link\":\"/css-library/knowledge\"},{\"text\":\"å¼å飿 ¼ skill\",\"link\":\"/css-library/dev-skill\"},{\"text\":\"Scss å°è£
彿°\",\"link\":\"/css-library/function\"},{\"text\":\"Tailwind å¼åæå·§\",\"link\":\"/css-library/tailwind-skill\"}]},{\"text\":\"æ¸é±¼å·¥å
·\",\"items\":[{\"text\":\"é
读å¨\",\"link\":\"/play/epub-reader\"}]}],\"/author\":[{\"text\":\"个人记å½\",\"items\":[{\"text\":\"çæ´»è®°å½ä¸ä¸ªäººç»éª\",\"link\":\"/author/life-notes\"}
181,{\"text\":\"个人项ç®ä¸ä½å\",\"link\":\"/author/personal-projects\"},{\"text\":\"é¢è¯åå¤ï¼è®°å½ãç®æ³ä¸ç¥è¯ç¹\",\"link\":\"/author/interview-prep\"},{\"text\":\"èä¸è®°å½ï¼å·¥ä½ä¸å¼æº\",\"link\":\"/author/career-records\"},{\"text\":\"年度å¤ç\",\"link\":\"/author/annual-reviews\"}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/code-jbrc/Awesome-15docs\"}],\"editLink\":{\"pattern\":\"https://github.com/code-jbrc/Awesome-15docs/tree/main/docs/src/:path\",\"text\":\"å¨ GitHub ç¼è¾æ¤é¡µ\"},\"lastUpdatedText\":\"æåæ´æ°äº\",\"footer\":{\"message\":\"Made with â¤ï¸\",\"copyright\":\"MIT License © 2023 <a href=\\\"https://github.com/winchesHe\\\">winchesHe</a>\"},\"outline\":[2,3],\"search\":{\"provider\":\"local\",\"options\":{\"miniSearch\":{\"options\":{\"tokenize\":\"_vp-fn_function tokenizeSearchText(text) {\\n const source = String(text).normalize(\\\"NFKC\\\");\\n const searchable = `${source} ${source.replace(/([a-z0-9])([A-Z])/g, \\\"$1 $2\\\")}`.toLowerCase();\\n const tokens = /* @__PURE__ */ new Set();\\n const tokenPattern = /[\\\\p{Script=Han}]+|[a-z0-9]+(?:[._:/@#-][a-z0-9]+)*/gu;\\n for (const match of searchable.matchAll(tokenPattern)) {\\n const value = match[0];\\n if (/^\\\\p{Script=Han}+$/u.test(value)) {\\n if (value.length === 1) {\\n tokens.add(value);\\n continue;\\n }\\n const maxGramSize = Math.min(value.length, 12);\\n for (let size = 2; size <= maxGramSize; size += 1) {\\n for (let index = 0; index <= value.length - size; index += 1)\\n tokens.add(value.slice(index, index + size));\\n }\\n if (value.length <= 24)\\n tokens.add(value);\\n continue;\\n }\\n tokens.add(value);\\n for (const part of value.split(/[._:/@#-]+/u)) {\\n if (part)\\n tokens.add(part);\\n }\\n }\\n return [...tokens];\\n}\"},\"searchOptions\":{\"tokenize\":\"_vp-fn_function tokenizeSearchText(text) {\\n const source = String(text).normalize(\\\"NFKC\\\");\\n const searchable = `${source} ${source.replace(/([a-z0-9])([A-Z])/g, \\\"$1 $2\\\")}`.toLowerCase();\\n const tokens = /* @__PURE__ */ new Set();\\n const tokenPattern = /[\\\\p{Script=Han}]+|[a-z0-9]+(?:[._:/@#-][a-z0-9]+)*/gu;\\n for (const match of searchable.matchAll(tokenPattern)) {\\n const value = match[0];\\n if (/^\\\\p{Script=Han}+$/u.test(value)) {\\n if (value.length === 1) {\\n tokens.add(value);\\n continue;\\n }\\n const maxGramSize = Math.min(value.length, 12);\\n for (let size = 2; size <= maxGramSize; size += 1) {\\n for (let index = 0; index <= value.length - size; index += 1)\\n tokens.add(value.slice(index, index + size));\\n }\\n if (value.length <= 24)\\n tokens.add(value);\\n continue;\\n }\\n tokens.add(value);\\n for (const part of value.split(/[._:/@#-]+/u)) {\\n if (part)\\n tokens.add(part);\\n }\\n }\\n return [...tokens];\\n}\",\"combineWith\":\"AND\"}},\"translations\":{\"button\":{\"buttonText\":\"æç´¢ææ¡£\",\"buttonAriaLabel\":\"æç´¢ææ¡£\"},\"modal\":{\"noResultsText\":\"æ æ³æ¾å°ç¸å
³ç»æ\",\"resetButtonTitle\":\"æ¸
餿¥è¯¢æ¡ä»¶\",\"footer\":{\"selectText\":\"éæ©\",\"navigateText\":\"忢\",\"closeText\":\"å
³é\"}}}}}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}"));</script>
181 182 183 </body> 184</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.