-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontributing.html
36 lines (36 loc) · 68.6 KB
/
contributing.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="VuePress 2.0.0-beta.60">
<style>
:root {
--c-bg: #fff;
}
html.dark {
--c-bg: #22272e;
}
html, body {
background-color: var(--c-bg);
}
</style>
<script>
const userMode = localStorage.getItem('vuepress-color-scheme');
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
document.documentElement.classList.toggle('dark', true);
}
</script>
<link rel="icon" type="image/png" sizes="16x16" href="/images/icons/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="/images/icons/favicon-32x32.png"><link rel="manifest" href="/manifest.webmanifest"><meta name="application-name" content="VuePress"><meta name="apple-mobile-web-app-title" content="VuePress"><meta name="apple-mobile-web-app-status-bar-style" content="black"><link rel="apple-touch-icon" href="/images/icons/apple-touch-icon.png"><link rel="mask-icon" href="/images/icons/safari-pinned-tab.svg" color="#3eaf7c"><meta name="msapplication-TileColor" content="#3eaf7c"><meta name="theme-color" content="#3eaf7c"><title>Contributing Guide | VuePress</title><meta name="description" content="Vue-powered Static Site Generator">
<link rel="preload" href="/assets/style-b99e1ec0.css" as="style"><link rel="stylesheet" href="/assets/style-b99e1ec0.css">
<link rel="modulepreload" href="/assets/app-5e408338.js"><link rel="modulepreload" href="/assets/framework-6ed030cc.js"><link rel="modulepreload" href="/assets/contributing.html-531a6b5d.js"><link rel="modulepreload" href="/assets/contributing.html-b3a91b68.js"><link rel="prefetch" href="/assets/index.html-eb3b0965.js" as="script"><link rel="prefetch" href="/assets/architecture.html-15ffb786.js" as="script"><link rel="prefetch" href="/assets/plugin.html-ff2f1277.js" as="script"><link rel="prefetch" href="/assets/theme.html-18536870.js" as="script"><link rel="prefetch" href="/assets/index.html-d07b6dfe.js" as="script"><link rel="prefetch" href="/assets/assets.html-cc02fc50.js" as="script"><link rel="prefetch" href="/assets/bundler.html-d23d2219.js" as="script"><link rel="prefetch" href="/assets/configuration.html-3a068944.js" as="script"><link rel="prefetch" href="/assets/deployment.html-2597f25a.js" as="script"><link rel="prefetch" href="/assets/getting-started.html-d832f46a.js" as="script"><link rel="prefetch" href="/assets/i18n.html-1d177187.js" as="script"><link rel="prefetch" href="/assets/markdown.html-039575be.js" as="script"><link rel="prefetch" href="/assets/migration.html-29973df3.js" as="script"><link rel="prefetch" href="/assets/page.html-c524f046.js" as="script"><link rel="prefetch" href="/assets/plugin.html-9779983c.js" as="script"><link rel="prefetch" href="/assets/theme.html-0f1f849a.js" as="script"><link rel="prefetch" href="/assets/cli.html-4c94b094.js" as="script"><link rel="prefetch" href="/assets/client-api.html-27a6e720.js" as="script"><link rel="prefetch" href="/assets/components.html-53821ae8.js" as="script"><link rel="prefetch" href="/assets/config.html-128eb16b.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-14c1468c.js" as="script"><link rel="prefetch" href="/assets/node-api.html-597c0bfe.js" as="script"><link rel="prefetch" href="/assets/plugin-api.html-34ca74e4.js" as="script"><link rel="prefetch" href="/assets/theme-api.html-84cb7c9c.js" as="script"><link rel="prefetch" href="/assets/index.html-212ca871.js" as="script"><link rel="prefetch" href="/assets/contributing.html-bb7131cd.js" as="script"><link rel="prefetch" href="/assets/index.html-a8365eef.js" as="script"><link rel="prefetch" href="/assets/adding-extra-pages.html-6f48f293.js" as="script"><link rel="prefetch" href="/assets/making-a-theme-extendable.html-81d8c397.js" as="script"><link rel="prefetch" href="/assets/markdown-and-vue-sfc.html-9b1d5801.js" as="script"><link rel="prefetch" href="/assets/passing-data-to-client-code.html-3a26f7d5.js" as="script"><link rel="prefetch" href="/assets/usage-of-client-config.html-5b9379ab.js" as="script"><link rel="prefetch" href="/assets/vite.html-0165c58d.js" as="script"><link rel="prefetch" href="/assets/webpack.html-248b78c1.js" as="script"><link rel="prefetch" href="/assets/components.html-d7647eda.js" as="script"><link rel="prefetch" href="/assets/config.html-ad71c1cf.js" as="script"><link rel="prefetch" href="/assets/extending.html-0c1713f4.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-f4fb6e3e.js" as="script"><link rel="prefetch" href="/assets/markdown.html-6282c1eb.js" as="script"><link rel="prefetch" href="/assets/styles.html-e8058a7f.js" as="script"><link rel="prefetch" href="/assets/active-header-links.html-c6dbd03e.js" as="script"><link rel="prefetch" href="/assets/back-to-top.html-a63d7bc5.js" as="script"><link rel="prefetch" href="/assets/container.html-16b94eab.js" as="script"><link rel="prefetch" href="/assets/docsearch.html-b07ba245.js" as="script"><link rel="prefetch" href="/assets/external-link-icon.html-5da6c63e.js" as="script"><link rel="prefetch" href="/assets/git.html-3e6d8db9.js" as="script"><link rel="prefetch" href="/assets/google-analytics.html-58eea122.js" as="script"><link rel="prefetch" href="/assets/medium-zoom.html-133267cf.js" as="script"><link rel="prefetch" href="/assets/nprogress.html-b630680c.js" as="script"><link rel="prefetch" href="/assets/palette.html-108ae898.js" as="script"><link rel="prefetch" href="/assets/prismjs.html-4e0bc95f.js" as="script"><link rel="prefetch" href="/assets/pwa-popup.html-08458f51.js" as="script"><link rel="prefetch" href="/assets/pwa.html-e29e3eb8.js" as="script"><link rel="prefetch" href="/assets/register-components.html-f1308e0d.js" as="script"><link rel="prefetch" href="/assets/search.html-58b147bf.js" as="script"><link rel="prefetch" href="/assets/shiki.html-03ef070c.js" as="script"><link rel="prefetch" href="/assets/theme-data.html-b86c7d82.js" as="script"><link rel="prefetch" href="/assets/toc.html-ea3d96a8.js" as="script"><link rel="prefetch" href="/assets/architecture.html-0f532e2c.js" as="script"><link rel="prefetch" href="/assets/plugin.html-11dd76ae.js" as="script"><link rel="prefetch" href="/assets/theme.html-d1fdc88a.js" as="script"><link rel="prefetch" href="/assets/index.html-9b858a11.js" as="script"><link rel="prefetch" href="/assets/assets.html-e18f9fbd.js" as="script"><link rel="prefetch" href="/assets/bundler.html-fbec2c69.js" as="script"><link rel="prefetch" href="/assets/configuration.html-27437cf7.js" as="script"><link rel="prefetch" href="/assets/deployment.html-2bd9a5e6.js" as="script"><link rel="prefetch" href="/assets/getting-started.html-e3bf7ff6.js" as="script"><link rel="prefetch" href="/assets/i18n.html-61e2b22d.js" as="script"><link rel="prefetch" href="/assets/markdown.html-737d4fee.js" as="script"><link rel="prefetch" href="/assets/migration.html-227a53b3.js" as="script"><link rel="prefetch" href="/assets/page.html-59e9bcb3.js" as="script"><link rel="prefetch" href="/assets/plugin.html-2761457f.js" as="script"><link rel="prefetch" href="/assets/theme.html-d9e3a5d2.js" as="script"><link rel="prefetch" href="/assets/cli.html-d5c706b0.js" as="script"><link rel="prefetch" href="/assets/client-api.html-4120cc8d.js" as="script"><link rel="prefetch" href="/assets/components.html-c9612ca3.js" as="script"><link rel="prefetch" href="/assets/config.html-c91bcdd7.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-03c0aa5a.js" as="script"><link rel="prefetch" href="/assets/node-api.html-406de5a5.js" as="script"><link rel="prefetch" href="/assets/plugin-api.html-99b815b8.js" as="script"><link rel="prefetch" href="/assets/theme-api.html-3eed8658.js" as="script"><link rel="prefetch" href="/assets/index.html-cafaa0c8.js" as="script"><link rel="prefetch" href="/assets/adding-extra-pages.html-f530440c.js" as="script"><link rel="prefetch" href="/assets/making-a-theme-extendable.html-5d69b830.js" as="script"><link rel="prefetch" href="/assets/markdown-and-vue-sfc.html-0d92bf49.js" as="script"><link rel="prefetch" href="/assets/passing-data-to-client-code.html-e34f12c5.js" as="script"><link rel="prefetch" href="/assets/usage-of-client-config.html-59ad7587.js" as="script"><link rel="prefetch" href="/assets/vite.html-77337bfb.js" as="script"><link rel="prefetch" href="/assets/webpack.html-2fc3983e.js" as="script"><link rel="prefetch" href="/assets/components.html-7b04ee97.js" as="script"><link rel="prefetch" href="/assets/config.html-6a75dd4a.js" as="script"><link rel="prefetch" href="/assets/extending.html-d7b1ccef.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-11baabfb.js" as="script"><link rel="prefetch" href="/assets/markdown.html-1647bb5d.js" as="script"><link rel="prefetch" href="/assets/styles.html-1432e72c.js" as="script"><link rel="prefetch" href="/assets/active-header-links.html-81da80a4.js" as="script"><link rel="prefetch" href="/assets/back-to-top.html-69b56cc5.js" as="script"><link rel="prefetch" href="/assets/container.html-0e941b3b.js" as="script"><link rel="prefetch" href="/assets/docsearch.html-c6ead751.js" as="script"><link rel="prefetch" href="/assets/external-link-icon.html-82749c85.js" as="script"><link rel="prefetch" href="/assets/git.html-1c892c9b.js" as="script"><link rel="prefetch" href="/assets/google-analytics.html-27d7aca5.js" as="script"><link rel="prefetch" href="/assets/medium-zoom.html-8a1006ac.js" as="script"><link rel="prefetch" href="/assets/nprogress.html-d70579db.js" as="script"><link rel="prefetch" href="/assets/palette.html-7091475c.js" as="script"><link rel="prefetch" href="/assets/prismjs.html-85c12997.js" as="script"><link rel="prefetch" href="/assets/pwa-popup.html-75e3c67a.js" as="script"><link rel="prefetch" href="/assets/pwa.html-541b3f57.js" as="script"><link rel="prefetch" href="/assets/register-components.html-2384e7c3.js" as="script"><link rel="prefetch" href="/assets/search.html-4b9f0352.js" as="script"><link rel="prefetch" href="/assets/shiki.html-5f4b6330.js" as="script"><link rel="prefetch" href="/assets/theme-data.html-9890e186.js" as="script"><link rel="prefetch" href="/assets/toc.html-51c60d26.js" as="script"><link rel="prefetch" href="/assets/404.html-60b35caa.js" as="script"><link rel="prefetch" href="/assets/index.html-23f1adde.js" as="script"><link rel="prefetch" href="/assets/architecture.html-b3f94d85.js" as="script"><link rel="prefetch" href="/assets/plugin.html-4141668c.js" as="script"><link rel="prefetch" href="/assets/theme.html-9ef1b326.js" as="script"><link rel="prefetch" href="/assets/index.html-bfc5178d.js" as="script"><link rel="prefetch" href="/assets/assets.html-03f23537.js" as="script"><link rel="prefetch" href="/assets/bundler.html-5bf0ad15.js" as="script"><link rel="prefetch" href="/assets/configuration.html-56996a58.js" as="script"><link rel="prefetch" href="/assets/deployment.html-1c7d99b1.js" as="script"><link rel="prefetch" href="/assets/getting-started.html-8492d11a.js" as="script"><link rel="prefetch" href="/assets/i18n.html-91c1c2a7.js" as="script"><link rel="prefetch" href="/assets/markdown.html-75790206.js" as="script"><link rel="prefetch" href="/assets/migration.html-dfc487c9.js" as="script"><link rel="prefetch" href="/assets/page.html-68d987af.js" as="script"><link rel="prefetch" href="/assets/plugin.html-25dc3b75.js" as="script"><link rel="prefetch" href="/assets/theme.html-51eda7df.js" as="script"><link rel="prefetch" href="/assets/cli.html-202bf8a0.js" as="script"><link rel="prefetch" href="/assets/client-api.html-03f5fc90.js" as="script"><link rel="prefetch" href="/assets/components.html-cd67f1a3.js" as="script"><link rel="prefetch" href="/assets/config.html-f640dc30.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-9fba2e90.js" as="script"><link rel="prefetch" href="/assets/node-api.html-be8d5eb8.js" as="script"><link rel="prefetch" href="/assets/plugin-api.html-b0142d30.js" as="script"><link rel="prefetch" href="/assets/theme-api.html-07ce4f9d.js" as="script"><link rel="prefetch" href="/assets/index.html-fe4089ad.js" as="script"><link rel="prefetch" href="/assets/contributing.html-06e67c83.js" as="script"><link rel="prefetch" href="/assets/index.html-40d21df7.js" as="script"><link rel="prefetch" href="/assets/adding-extra-pages.html-718fccb2.js" as="script"><link rel="prefetch" href="/assets/making-a-theme-extendable.html-3d955fa1.js" as="script"><link rel="prefetch" href="/assets/markdown-and-vue-sfc.html-1f2dc40c.js" as="script"><link rel="prefetch" href="/assets/passing-data-to-client-code.html-6dd6340c.js" as="script"><link rel="prefetch" href="/assets/usage-of-client-config.html-76a27be2.js" as="script"><link rel="prefetch" href="/assets/vite.html-f0558805.js" as="script"><link rel="prefetch" href="/assets/webpack.html-8d8debad.js" as="script"><link rel="prefetch" href="/assets/components.html-24be10c4.js" as="script"><link rel="prefetch" href="/assets/config.html-ffe14b5b.js" as="script"><link rel="prefetch" href="/assets/extending.html-94fff455.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-d371e6ef.js" as="script"><link rel="prefetch" href="/assets/markdown.html-c84d0bf7.js" as="script"><link rel="prefetch" href="/assets/styles.html-5486f9a9.js" as="script"><link rel="prefetch" href="/assets/active-header-links.html-161fdc28.js" as="script"><link rel="prefetch" href="/assets/back-to-top.html-7be18433.js" as="script"><link rel="prefetch" href="/assets/container.html-96ca3f9e.js" as="script"><link rel="prefetch" href="/assets/docsearch.html-5e19d63d.js" as="script"><link rel="prefetch" href="/assets/external-link-icon.html-b25b7408.js" as="script"><link rel="prefetch" href="/assets/git.html-559a2106.js" as="script"><link rel="prefetch" href="/assets/google-analytics.html-32978000.js" as="script"><link rel="prefetch" href="/assets/medium-zoom.html-8748bde3.js" as="script"><link rel="prefetch" href="/assets/nprogress.html-5c7be610.js" as="script"><link rel="prefetch" href="/assets/palette.html-e25c4bb6.js" as="script"><link rel="prefetch" href="/assets/prismjs.html-00ddb2ec.js" as="script"><link rel="prefetch" href="/assets/pwa-popup.html-2388b889.js" as="script"><link rel="prefetch" href="/assets/pwa.html-c3b367fe.js" as="script"><link rel="prefetch" href="/assets/register-components.html-2414d516.js" as="script"><link rel="prefetch" href="/assets/search.html-4fe445ca.js" as="script"><link rel="prefetch" href="/assets/shiki.html-a909dd5f.js" as="script"><link rel="prefetch" href="/assets/theme-data.html-d930fff6.js" as="script"><link rel="prefetch" href="/assets/toc.html-9b7913db.js" as="script"><link rel="prefetch" href="/assets/architecture.html-d2bbcd06.js" as="script"><link rel="prefetch" href="/assets/plugin.html-b2826d21.js" as="script"><link rel="prefetch" href="/assets/theme.html-9e6ac77d.js" as="script"><link rel="prefetch" href="/assets/index.html-d65714f1.js" as="script"><link rel="prefetch" href="/assets/assets.html-32e85571.js" as="script"><link rel="prefetch" href="/assets/bundler.html-b9ace9e1.js" as="script"><link rel="prefetch" href="/assets/configuration.html-eef62e87.js" as="script"><link rel="prefetch" href="/assets/deployment.html-1595b33d.js" as="script"><link rel="prefetch" href="/assets/getting-started.html-4c0a4eee.js" as="script"><link rel="prefetch" href="/assets/i18n.html-c1c7f4fa.js" as="script"><link rel="prefetch" href="/assets/markdown.html-35e0ad6e.js" as="script"><link rel="prefetch" href="/assets/migration.html-2136a7db.js" as="script"><link rel="prefetch" href="/assets/page.html-107d651c.js" as="script"><link rel="prefetch" href="/assets/plugin.html-cee7c842.js" as="script"><link rel="prefetch" href="/assets/theme.html-72ee3892.js" as="script"><link rel="prefetch" href="/assets/cli.html-49d7b65f.js" as="script"><link rel="prefetch" href="/assets/client-api.html-ac446031.js" as="script"><link rel="prefetch" href="/assets/components.html-95df4903.js" as="script"><link rel="prefetch" href="/assets/config.html-5f7402d8.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-c2cf49f0.js" as="script"><link rel="prefetch" href="/assets/node-api.html-7247af06.js" as="script"><link rel="prefetch" href="/assets/plugin-api.html-585ead79.js" as="script"><link rel="prefetch" href="/assets/theme-api.html-f3be5b88.js" as="script"><link rel="prefetch" href="/assets/index.html-ee317eed.js" as="script"><link rel="prefetch" href="/assets/adding-extra-pages.html-f9767aa9.js" as="script"><link rel="prefetch" href="/assets/making-a-theme-extendable.html-b0d5b9fb.js" as="script"><link rel="prefetch" href="/assets/markdown-and-vue-sfc.html-f66c27dc.js" as="script"><link rel="prefetch" href="/assets/passing-data-to-client-code.html-ef8e0bbe.js" as="script"><link rel="prefetch" href="/assets/usage-of-client-config.html-476987f1.js" as="script"><link rel="prefetch" href="/assets/vite.html-c9835945.js" as="script"><link rel="prefetch" href="/assets/webpack.html-3d87883a.js" as="script"><link rel="prefetch" href="/assets/components.html-d5b8f0d0.js" as="script"><link rel="prefetch" href="/assets/config.html-5d24e23d.js" as="script"><link rel="prefetch" href="/assets/extending.html-04433901.js" as="script"><link rel="prefetch" href="/assets/frontmatter.html-50957496.js" as="script"><link rel="prefetch" href="/assets/markdown.html-fcee2925.js" as="script"><link rel="prefetch" href="/assets/styles.html-a9309d2f.js" as="script"><link rel="prefetch" href="/assets/active-header-links.html-fd5ab942.js" as="script"><link rel="prefetch" href="/assets/back-to-top.html-66ec2c33.js" as="script"><link rel="prefetch" href="/assets/container.html-b545749d.js" as="script"><link rel="prefetch" href="/assets/docsearch.html-1e8e4ca6.js" as="script"><link rel="prefetch" href="/assets/external-link-icon.html-ee101276.js" as="script"><link rel="prefetch" href="/assets/git.html-b5c8b4f2.js" as="script"><link rel="prefetch" href="/assets/google-analytics.html-2330c73e.js" as="script"><link rel="prefetch" href="/assets/medium-zoom.html-44ad4538.js" as="script"><link rel="prefetch" href="/assets/nprogress.html-8d36d2e6.js" as="script"><link rel="prefetch" href="/assets/palette.html-ba9a42f4.js" as="script"><link rel="prefetch" href="/assets/prismjs.html-60fdcd22.js" as="script"><link rel="prefetch" href="/assets/pwa-popup.html-70d20865.js" as="script"><link rel="prefetch" href="/assets/pwa.html-242437db.js" as="script"><link rel="prefetch" href="/assets/register-components.html-53dcfe67.js" as="script"><link rel="prefetch" href="/assets/search.html-9dee2f40.js" as="script"><link rel="prefetch" href="/assets/shiki.html-81aceb99.js" as="script"><link rel="prefetch" href="/assets/theme-data.html-1de833c8.js" as="script"><link rel="prefetch" href="/assets/toc.html-ead35157.js" as="script"><link rel="prefetch" href="/assets/404.html-1f807de9.js" as="script"><link rel="prefetch" href="/assets/style-e9220a04.js" as="script"><link rel="prefetch" href="/assets/docsearch-1d421ddb.js" as="script"><link rel="prefetch" href="/assets/NpmBadge-7bce5d57.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/" class=""><img class="logo" src="/images/hero.png" alt="VuePress"><span class="site-name can-hide">VuePress</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Reference"><span class="title">Reference</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Reference"><span class="title">Reference</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>VuePress</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/cli.html" class="" aria-label="CLI"><!--[--><!--]--> CLI <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/config.html" class="" aria-label="Config"><!--[--><!--]--> Config <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/frontmatter.html" class="" aria-label="Frontmatter"><!--[--><!--]--> Frontmatter <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/components.html" class="" aria-label="Built-in Components"><!--[--><!--]--> Built-in Components <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin-api.html" class="" aria-label="Plugin API"><!--[--><!--]--> Plugin API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/theme-api.html" class="" aria-label="Theme API"><!--[--><!--]--> Theme API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/client-api.html" class="" aria-label="Client API"><!--[--><!--]--> Client API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/node-api.html" class="" aria-label="Node API"><!--[--><!--]--> Node API <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Bundlers</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/bundler/vite.html" class="" aria-label="Vite"><!--[--><!--]--> Vite <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/bundler/webpack.html" class="" aria-label="Webpack"><!--[--><!--]--> Webpack <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Default Theme</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/config.html" class="" aria-label="Config"><!--[--><!--]--> Config <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/frontmatter.html" class="" aria-label="Frontmatter"><!--[--><!--]--> Frontmatter <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/components.html" class="" aria-label="Built-in Components"><!--[--><!--]--> Built-in Components <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/markdown.html" class="" aria-label="Markdown"><!--[--><!--]--> Markdown <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/styles.html" class="" aria-label="Styles"><!--[--><!--]--> Styles <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/extending.html" class="" aria-label="Extending"><!--[--><!--]--> Extending <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Plugins"><span class="title">Plugins</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Plugins"><span class="title">Plugins</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Common Features</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/back-to-top.html" class="" aria-label="back-to-top"><!--[--><!--]--> back-to-top <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/container.html" class="" aria-label="container"><!--[--><!--]--> container <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/external-link-icon.html" class="" aria-label="external-link-icon"><!--[--><!--]--> external-link-icon <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/google-analytics.html" class="" aria-label="google-analytics"><!--[--><!--]--> google-analytics <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/medium-zoom.html" class="" aria-label="medium-zoom"><!--[--><!--]--> medium-zoom <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/nprogress.html" class="" aria-label="nprogress"><!--[--><!--]--> nprogress <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/register-components.html" class="" aria-label="register-components"><!--[--><!--]--> register-components <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Content Search</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/docsearch.html" class="" aria-label="docsearch"><!--[--><!--]--> docsearch <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/search.html" class="" aria-label="search"><!--[--><!--]--> search <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>PWA</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/pwa.html" class="" aria-label="pwa"><!--[--><!--]--> pwa <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/pwa-popup.html" class="" aria-label="pwa-popup"><!--[--><!--]--> pwa-popup <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Syntax Highlighting</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/prismjs.html" class="" aria-label="prismjs"><!--[--><!--]--> prismjs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/shiki.html" class="" aria-label="shiki"><!--[--><!--]--> shiki <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Theme Development</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/active-header-links.html" class="" aria-label="active-header-links"><!--[--><!--]--> active-header-links <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/git.html" class="" aria-label="git"><!--[--><!--]--> git <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/palette.html" class="" aria-label="palette"><!--[--><!--]--> palette <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/theme-data.html" class="" aria-label="theme-data"><!--[--><!--]--> theme-data <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/toc.html" class="" aria-label="toc"><!--[--><!--]--> toc <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Learn More"><span class="title">Learn More</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Learn More"><span class="title">Learn More</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Advanced</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/advanced/architecture.html" class="" aria-label="Architecture"><!--[--><!--]--> Architecture <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/advanced/plugin.html" class="" aria-label="Writing a Plugin"><!--[--><!--]--> Writing a Plugin <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/advanced/theme.html" class="" aria-label="Writing a Theme"><!--[--><!--]--> Writing a Theme <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/advanced/cookbook/" class="" aria-label="Cookbook"><!--[--><!--]--> Cookbook <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Resources</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a aria-current="page" href="/contributing.html" class="router-link-active router-link-exact-active router-link-active" aria-label="Contributing Guide"><!--[--><!--]--> Contributing Guide <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a class="external-link" href="https://github.com/vuepress/awesome-vuepress" rel="noopener noreferrer" target="_blank" aria-label="Awesome VuePress"><!--[--><!--]--> Awesome VuePress <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="v2.0.0-beta.60"><span class="title">v2.0.0-beta.60</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="v2.0.0-beta.60"><span class="title">v2.0.0-beta.60</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md" rel="noopener noreferrer" target="_blank" aria-label="Changelog"><!--[--><!--]--> Changelog <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://v1.vuepress.vuejs.org" rel="noopener noreferrer" target="_blank" aria-label="v1.x"><!--[--><!--]--> v1.x <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://v0.vuepress.vuejs.org" rel="noopener noreferrer" target="_blank" aria-label="v0.x"><!--[--><!--]--> v0.x <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">Languages</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">Languages</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/contributing.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/zh/contributing.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/vuepress/vuepress-next" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><div id="docsearch-container"></div></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/guide/" class="" aria-label="Guide"><!--[--><!--]--> Guide <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Reference"><span class="title">Reference</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Reference"><span class="title">Reference</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>VuePress</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/cli.html" class="" aria-label="CLI"><!--[--><!--]--> CLI <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/config.html" class="" aria-label="Config"><!--[--><!--]--> Config <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/frontmatter.html" class="" aria-label="Frontmatter"><!--[--><!--]--> Frontmatter <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/components.html" class="" aria-label="Built-in Components"><!--[--><!--]--> Built-in Components <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin-api.html" class="" aria-label="Plugin API"><!--[--><!--]--> Plugin API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/theme-api.html" class="" aria-label="Theme API"><!--[--><!--]--> Theme API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/client-api.html" class="" aria-label="Client API"><!--[--><!--]--> Client API <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/node-api.html" class="" aria-label="Node API"><!--[--><!--]--> Node API <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Bundlers</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/bundler/vite.html" class="" aria-label="Vite"><!--[--><!--]--> Vite <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/bundler/webpack.html" class="" aria-label="Webpack"><!--[--><!--]--> Webpack <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Default Theme</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/config.html" class="" aria-label="Config"><!--[--><!--]--> Config <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/frontmatter.html" class="" aria-label="Frontmatter"><!--[--><!--]--> Frontmatter <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/components.html" class="" aria-label="Built-in Components"><!--[--><!--]--> Built-in Components <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/markdown.html" class="" aria-label="Markdown"><!--[--><!--]--> Markdown <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/styles.html" class="" aria-label="Styles"><!--[--><!--]--> Styles <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/default-theme/extending.html" class="" aria-label="Extending"><!--[--><!--]--> Extending <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Plugins"><span class="title">Plugins</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Plugins"><span class="title">Plugins</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Common Features</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/back-to-top.html" class="" aria-label="back-to-top"><!--[--><!--]--> back-to-top <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/container.html" class="" aria-label="container"><!--[--><!--]--> container <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/external-link-icon.html" class="" aria-label="external-link-icon"><!--[--><!--]--> external-link-icon <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/google-analytics.html" class="" aria-label="google-analytics"><!--[--><!--]--> google-analytics <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/medium-zoom.html" class="" aria-label="medium-zoom"><!--[--><!--]--> medium-zoom <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/nprogress.html" class="" aria-label="nprogress"><!--[--><!--]--> nprogress <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/register-components.html" class="" aria-label="register-components"><!--[--><!--]--> register-components <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Content Search</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/docsearch.html" class="" aria-label="docsearch"><!--[--><!--]--> docsearch <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/search.html" class="" aria-label="search"><!--[--><!--]--> search <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>PWA</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/pwa.html" class="" aria-label="pwa"><!--[--><!--]--> pwa <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/pwa-popup.html" class="" aria-label="pwa-popup"><!--[--><!--]--> pwa-popup <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Syntax Highlighting</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/prismjs.html" class="" aria-label="prismjs"><!--[--><!--]--> prismjs <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/shiki.html" class="" aria-label="shiki"><!--[--><!--]--> shiki <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Theme Development</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/reference/plugin/active-header-links.html" class="" aria-label="active-header-links"><!--[--><!--]--> active-header-links <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/git.html" class="" aria-label="git"><!--[--><!--]--> git <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/palette.html" class="" aria-label="palette"><!--[--><!--]--> palette <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/theme-data.html" class="" aria-label="theme-data"><!--[--><!--]--> theme-data <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/reference/plugin/toc.html" class="" aria-label="toc"><!--[--><!--]--> toc <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Learn More"><span class="title">Learn More</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Learn More"><span class="title">Learn More</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Advanced</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a href="/advanced/architecture.html" class="" aria-label="Architecture"><!--[--><!--]--> Architecture <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/advanced/plugin.html" class="" aria-label="Writing a Plugin"><!--[--><!--]--> Writing a Plugin <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/advanced/theme.html" class="" aria-label="Writing a Theme"><!--[--><!--]--> Writing a Theme <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a href="/advanced/cookbook/" class="" aria-label="Cookbook"><!--[--><!--]--> Cookbook <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span>Resources</span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a aria-current="page" href="/contributing.html" class="router-link-active router-link-exact-active router-link-active" aria-label="Contributing Guide"><!--[--><!--]--> Contributing Guide <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a class="external-link" href="https://github.com/vuepress/awesome-vuepress" rel="noopener noreferrer" target="_blank" aria-label="Awesome VuePress"><!--[--><!--]--> Awesome VuePress <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="v2.0.0-beta.60"><span class="title">v2.0.0-beta.60</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="v2.0.0-beta.60"><span class="title">v2.0.0-beta.60</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md" rel="noopener noreferrer" target="_blank" aria-label="Changelog"><!--[--><!--]--> Changelog <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://v1.vuepress.vuejs.org" rel="noopener noreferrer" target="_blank" aria-label="v1.x"><!--[--><!--]--> v1.x <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://v0.vuepress.vuejs.org" rel="noopener noreferrer" target="_blank" aria-label="v0.x"><!--[--><!--]--> v0.x <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="Select language"><span class="title">Languages</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="Select language"><span class="title">Languages</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a aria-current="page" href="/contributing.html" class="router-link-active router-link-exact-active router-link-active" aria-label="English"><!--[--><!--]--> English <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/zh/contributing.html" class="" aria-label="简体中文"><!--[--><!--]--> 简体中文 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><a class="external-link" href="https://github.com/vuepress/vuepress-next" rel="noopener noreferrer" target="_blank" aria-label="GitHub"><!--[--><!--]--> GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading">Contributing Guide <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/contributing.html#overview" class="router-link-active router-link-exact-active sidebar-item" aria-label="Overview"><!--[--><!--]--> Overview <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/contributing.html#development-setup" class="router-link-active router-link-exact-active sidebar-item" aria-label="Development Setup"><!--[--><!--]--> Development Setup <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/contributing.html#scripts" class="router-link-active router-link-exact-active sidebar-item" aria-label="Scripts"><!--[--><!--]--> Scripts <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/contributing.html#pnpm-build" class="router-link-active router-link-exact-active sidebar-item" aria-label="pnpm build"><!--[--><!--]--> pnpm build <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/contributing.html#pnpm-clean" class="router-link-active router-link-exact-active sidebar-item" aria-label="pnpm clean"><!--[--><!--]--> pnpm clean <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/contributing.html#pnpm-docs" class="router-link-active router-link-exact-active sidebar-item" aria-label="pnpm docs:*"><!--[--><!--]--> pnpm docs:* <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/contributing.html#pnpm-lint" class="router-link-active router-link-exact-active sidebar-item" aria-label="pnpm lint"><!--[--><!--]--> pnpm lint <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/contributing.html#pnpm-test" class="router-link-active router-link-exact-active sidebar-item" aria-label="pnpm test"><!--[--><!--]--> pnpm test <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/contributing.html#documentation" class="router-link-active router-link-exact-active sidebar-item" aria-label="Documentation"><!--[--><!--]--> Documentation <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><!--]--><div><h1 id="contributing-guide" tabindex="-1"><a class="header-anchor" href="#contributing-guide" aria-hidden="true">#</a> Contributing Guide</h1><h2 id="overview" tabindex="-1"><a class="header-anchor" href="#overview" aria-hidden="true">#</a> Overview</h2><p>This repository employs a <a href="https://en.wikipedia.org/wiki/Monorepo" target="_blank" rel="noopener noreferrer">monorepo<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> setup with <a href="https://pnpm.io/workspaces" target="_blank" rel="noopener noreferrer">pnpm workspaces<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>, and hosts a number of associated but separated packages.</p><p>In the <code>packages</code> directory:</p><ul><li><code>bundler-vite</code>: The VuePress bundler package with vite. Use vite to <code>dev</code> and <code>build</code> VuePress app that generated by <code>@vuepress/core</code>.</li><li><code>bundler-webpack</code>: The VuePress bundler package with webpack. Use webpack to <code>dev</code> and <code>build</code> VuePress app that generated by <code>@vuepress/core</code>.</li><li><code>cli</code>: The VuePress command line interface (CLI) package. It will resolve user config file, and create VuePress app with <code>@vuepress/core</code>, then execute corresponding command.</li><li><code>client</code>: The VuePress client package. Provides the client entry, and exports types and composable utils that can be used in client side development.</li><li><code>core</code>: The VuePress core. Provides pure Node API to generate VuePress app, including page handling, plugin system and data preparation.</li><li><code>markdown</code>: The VuePress markdown package. Use <code>markdown-it</code> as the markdown parser and integrate some plugins to be used in VuePress.</li><li><code>shared</code>: Utilities that shared between node side and client side.</li><li><code>utils</code>: Utilities that should only be used in node side.</li></ul><p>In the <code>ecosystem</code> directory:</p><ul><li><code>plugin-${name}</code>: Official plugins.</li><li><code>theme-default</code>: The default theme.</li><li><code>vuepress</code>: A wrapper of <code>vuepress-vite</code>.</li><li><code>vuepress-vite</code>: A wrapper of <code>@vuepress/cli</code> + <code>@vuepress/bundler-vite</code> + <code>@vuepress/theme-default</code>. If users want to use default theme with vite, they can simply install this package.</li><li><code>vuepress-webpack</code>: A wrapper of <code>@vuepress/cli</code> + <code>@vuepress/bundler-webpack</code> + <code>@vuepress/theme-default</code>. If users want to use default theme with webpack, they can simply install this package.</li></ul><h2 id="development-setup" tabindex="-1"><a class="header-anchor" href="#development-setup" aria-hidden="true">#</a> Development Setup</h2><p>Pre-requirement:</p><ul><li><a href="http://nodejs.org" target="_blank" rel="noopener noreferrer">Node.js<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> <strong>version 14.18.0+</strong></li><li><a href="https://pnpm.io/" target="_blank" rel="noopener noreferrer">pnpm<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> <strong>version 7+</strong></li></ul><p>Clone the repo, and install dependencies:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="shiki dark-plus" style="background-color:#1E1E1E;" tabindex="0"><code><span class="line"><span style="color:#D4D4D4;">pnpm </span><span style="color:#CE9178;">install</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Build source code:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="shiki dark-plus" style="background-color:#1E1E1E;" tabindex="0"><code><span class="line"><span style="color:#D4D4D4;">pnpm </span><span style="color:#CE9178;">build</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Start developing the documentation site:</p><div class="language-bash line-numbers-mode" data-ext="sh"><pre class="shiki dark-plus" style="background-color:#1E1E1E;" tabindex="0"><code><span class="line"><span style="color:#D4D4D4;">pnpm </span><span style="color:#CE9178;">docs:dev</span></span>
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div><p>Main tools that used in this project:</p><ul><li><a href="https://www.typescriptlang.org/" target="_blank" rel="noopener noreferrer">TypeScript<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> as the development language</li><li><a href="https://vitest.dev/" target="_blank" rel="noopener noreferrer">Vitest<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> for unit testing</li><li><a href="https://eslint.org/" target="_blank" rel="noopener noreferrer">ESLint<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> + <a href="https://prettier.io/" target="_blank" rel="noopener noreferrer">Prettier<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a> for code linting and formatting</li></ul><h2 id="scripts" tabindex="-1"><a class="header-anchor" href="#scripts" aria-hidden="true">#</a> Scripts</h2><h3 id="pnpm-build" tabindex="-1"><a class="header-anchor" href="#pnpm-build" aria-hidden="true">#</a> <code>pnpm build</code></h3><p>The <code>build</code> script uses <code>tsc</code> and <code>tsup</code> to compile TypeScript source files to JavaScript dist files.</p><p>Also, it will copy necessary resources from source directory to dist directory, because some source files (e.g. <code>.vue</code>, <code>.css</code> files) would not be processed by <code>tsc</code> nor <code>tsup</code>, but should keep the same relative path in the dist directory.</p><p>You may need to run this script first after your clone this repository, because the dist files are ignored by <code>.gitignore</code>.</p><h3 id="pnpm-clean" tabindex="-1"><a class="header-anchor" href="#pnpm-clean" aria-hidden="true">#</a> <code>pnpm clean</code></h3><p>The <code>clean</code> script runs <code>clean</code> script in all packages, cleaning all the dist files and caches. In other words, it will remove all the files that generated by <code>build</code>, <code>copy</code> scripts.</p><p>It's used before you want to re-build source files from a clean / initial state.</p><h3 id="pnpm-docs" tabindex="-1"><a class="header-anchor" href="#pnpm-docs" aria-hidden="true">#</a> <code>pnpm docs:*</code></h3><h4 id="pnpm-docs-build-pnpm-docs-dev-pnpm-docs-clean" tabindex="-1"><a class="header-anchor" href="#pnpm-docs-build-pnpm-docs-dev-pnpm-docs-clean" aria-hidden="true">#</a> <code>pnpm docs:build</code>, <code>pnpm docs:dev</code>, <code>pnpm docs:clean</code></h4><p>The <code>docs:</code> prefix indicates that these scripts are for documentation, i.e. the <code>docs</code> directory.</p><p>VuePress is using itself to build its own documentation site.</p><p>You need to run <code>pnpm build</code> to build VuePress source files first, then run these <code>docs:</code> scripts to develop and build our documentation.</p><h4 id="pnpm-docs-serve" tabindex="-1"><a class="header-anchor" href="#pnpm-docs-serve" aria-hidden="true">#</a> <code>pnpm docs:serve</code></h4><p>Serve the documentation site locally.</p><p>You need to run <code>pnpm docs:build</code> first to generate the documentation dist files, and then run <code>pnpm docs:serve</code> to serve them.</p><h3 id="pnpm-lint" tabindex="-1"><a class="header-anchor" href="#pnpm-lint" aria-hidden="true">#</a> <code>pnpm lint</code></h3><p>The <code>lint</code> script uses ESLint to check all source files.</p><h3 id="pnpm-test" tabindex="-1"><a class="header-anchor" href="#pnpm-test" aria-hidden="true">#</a> <code>pnpm test</code></h3><p>The <code>test</code> script uses Vitest to run unit testings.</p><h2 id="documentation" tabindex="-1"><a class="header-anchor" href="#documentation" aria-hidden="true">#</a> Documentation</h2><p>VuePress documentation is powered by VuePress itself, which is built from the source code of this repository.</p><p>All the markdown source files are placed in <code>docs</code> directory. We are maintaining two translations:</p><ul><li>English (en-US) in <code>/</code> path</li><li>Chinese (zh-CN) in <code>/zh/</code> path</li></ul><p>We have two different deployments:</p><ul><li>Release deployment powered by <a href="https://www.netlify.com" target="_blank" rel="noopener noreferrer">Netlify<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>. This deployment is built from the latest released version, so users will not see unreleased changes. The domain name is <a href="https://v2.vuepress.vuejs.org" target="_blank" rel="noopener noreferrer">https://v2.vuepress.vuejs.org<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>.</li><li>Developer deployment powered by <a href="https://pages.github.com" target="_blank" rel="noopener noreferrer">GitHub Pages<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>. This deployment is built from the latest commit, so developers could preview the latest changes. The domain name is <a href="https://vuepress.github.io" target="_blank" rel="noopener noreferrer">https://vuepress.github.io<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span></a>.</li></ul></div><!--[--><!--]--></div><footer class="page-meta"><div class="meta-item edit-link"><a class="external-link meta-item-label" href="https://github.com/vuepress/vuepress-next/edit/main/docs/contributing.md" rel="noopener noreferrer" target="_blank" aria-label="Edit this page on GitHub"><!--[--><!--]--> Edit this page on GitHub <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></div><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: [email protected]">meteorlxy</span><!----><!--]--><!--]--></span></div></footer><!----><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/assets/app-5e408338.js" defer></script>
</body>
</html>