From c9051412f41733ca928355670323d94d791bf0a7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 31 Aug 2024 08:02:04 +0000 Subject: [PATCH] Deploy to GitHub pages --- 404.html | 43 ++++ advanced/architecture.html | 43 ++++ advanced/cookbook/adding-extra-pages.html | 68 ++++++ advanced/cookbook/index.html | 43 ++++ .../cookbook/making-a-theme-extendable.html | 72 ++++++ advanced/cookbook/markdown-and-vue-sfc.html | 72 ++++++ .../cookbook/passing-data-to-client-code.html | 62 ++++++ advanced/cookbook/resolving-routes.html | 60 +++++ advanced/cookbook/usage-of-client-config.html | 120 ++++++++++ advanced/plugin.html | 60 +++++ advanced/theme.html | 92 ++++++++ assets/404.html-BJQsmBKA.js | 1 + assets/NpmBadge-Bbgds1va.js | 1 + assets/adding-extra-pages.html-Cyu55hRC.js | 26 +++ assets/adding-extra-pages.html-DyVLezP4.js | 26 +++ assets/app-CqHoxGIc.js | 27 +++ assets/architecture.html-BgpA9p7z.js | 1 + assets/architecture.html-CbsChR0W.js | 1 + assets/assets.html-BZjFvqCZ.js | 24 ++ assets/assets.html-CYHEojlm.js | 24 ++ assets/bundler.html-CB2ZGG6E.js | 16 ++ assets/bundler.html-CxqWeejo.js | 16 ++ assets/cli.html-Bhuoj_P1.js | 43 ++++ assets/cli.html-CL4VepSP.js | 43 ++++ assets/client-api.html-D1N1s7pQ.js | 25 +++ assets/client-api.html-iG5vxWBM.js | 25 +++ assets/components.html-CbNhUHdN.js | 56 +++++ assets/components.html-DRbtb3z1.js | 56 +++++ assets/config.html-BfxQAIgY.js | 15 ++ assets/config.html-rHmtn1_Z.js | 15 ++ assets/configuration.html-BMBa25JX.js | 24 ++ assets/configuration.html-DNFceaxK.js | 24 ++ assets/deployment.html-BqB6jREd.js | 95 ++++++++ assets/deployment.html-DNlFV4-d.js | 94 ++++++++ assets/frontmatter.html-BCqH_rDa.js | 24 ++ assets/frontmatter.html-BfmWvdQI.js | 24 ++ assets/getting-started.html-dBw9gEVC.js | 36 +++ assets/getting-started.html-jV6wexI-.js | 36 +++ assets/hero-BNkrhNQ6.js | 1 + assets/i18n.html-9eIU_Fbw.js | 39 ++++ assets/i18n.html-C-Ty_JEU.js | 39 ++++ assets/index-DWGeGWcS.js | 14 ++ assets/index.html-BKJf41aw.js | 1 + assets/index.html-D279rePd.js | 1 + assets/index.html-DLD3LnRf.js | 1 + assets/index.html-Ks9ZeBY5.js | 1 + assets/introduction.html-C9CY7bZ4.js | 1 + assets/introduction.html-CI-XG4vo.js | 1 + ...making-a-theme-extendable.html-BMVOJX9y.js | 30 +++ ...making-a-theme-extendable.html-eeBKSgE0.js | 30 +++ assets/markdown-and-vue-sfc.html-D1DBAwNE.js | 30 +++ assets/markdown-and-vue-sfc.html-ilUJbhcw.js | 30 +++ assets/markdown.html-CeqjvBUr.js | 129 +++++++++++ assets/markdown.html-CrFYxoLK.js | 130 +++++++++++ assets/migration.html-Btp9Fp5f.js | 106 +++++++++ assets/migration.html-Dx3K7AjD.js | 106 +++++++++ assets/node-api.html-CZq-HjUT.js | 84 +++++++ assets/node-api.html-zXFbnqvU.js | 84 +++++++ assets/page.html-0uLVGCDw.js | 10 + assets/page.html-DBI9m5TN.js | 10 + ...ssing-data-to-client-code.html--Iz9ID3-.js | 20 ++ ...ssing-data-to-client-code.html-3RqgJn0U.js | 20 ++ assets/plugin-api.html-Cq8YwiX_.js | 79 +++++++ assets/plugin-api.html-DdD6cMAC.js | 79 +++++++ assets/plugin.html-Bsf-LYEz.js | 18 ++ assets/plugin.html-C4CtJaMz.js | 18 ++ assets/plugin.html-Dt7VyCWC.js | 13 ++ assets/plugin.html-NGNpGVQN.js | 13 ++ assets/resolving-routes.html-BlUKHldU.js | 18 ++ assets/resolving-routes.html-oz04Sye_.js | 18 ++ assets/style-COkz-bfM.css | 1 + assets/theme-api.html-BQ9zAVXy.js | 9 + assets/theme-api.html-Cys9a5AR.js | 9 + assets/theme.html-C-qJAiZh.js | 14 ++ assets/theme.html-Cobgd2Hp.js | 50 +++++ assets/theme.html-DC0exXkj.js | 50 +++++ assets/theme.html-DkSgNsRZ.js | 14 ++ assets/troubleshooting.html-BE0ZRamq.js | 1 + assets/troubleshooting.html-pLw8XOqQ.js | 1 + .../usage-of-client-config.html-CaL61Koh.js | 78 +++++++ .../usage-of-client-config.html-DJVJZyIC.js | 78 +++++++ assets/vite.html-D2YcGqRq.js | 9 + assets/vite.html-DiqpyHUF.js | 9 + assets/vuepress-core-process-C4qfrYlz.js | 1 + assets/webpack.html-B7FhctWX.js | 9 + assets/webpack.html-m4FSTBIG.js | 9 + browserconfig.xml | 9 + favicon.ico | Bin 0 -> 15086 bytes guide/assets.html | 68 ++++++ guide/bundler.html | 58 +++++ guide/configuration.html | 66 ++++++ guide/deployment.html | 136 ++++++++++++ guide/getting-started.html | 78 +++++++ guide/i18n.html | 81 +++++++ guide/introduction.html | 43 ++++ guide/markdown.html | 171 +++++++++++++++ guide/migration.html | 148 +++++++++++++ guide/page.html | 52 +++++ guide/plugin.html | 55 +++++ guide/theme.html | 56 +++++ guide/troubleshooting.html | 43 ++++ images/cookbook/extending-a-theme-01.png | Bin 0 -> 13453 bytes .../guide/vuepress-architecture-overview.png | Bin 0 -> 51869 bytes images/guide/vuepress-core-process.png | Bin 0 -> 56796 bytes images/hero.png | Bin 0 -> 153793 bytes images/icons/android-chrome-192x192.png | Bin 0 -> 6839 bytes images/icons/android-chrome-384x384.png | Bin 0 -> 15528 bytes images/icons/apple-touch-icon.png | Bin 0 -> 5373 bytes images/icons/favicon-16x16.png | Bin 0 -> 806 bytes images/icons/favicon-32x32.png | Bin 0 -> 1295 bytes images/icons/mstile-150x150.png | Bin 0 -> 4676 bytes images/icons/safari-pinned-tab.svg | 23 ++ images/logo.png | Bin 0 -> 3451 bytes index.html | 43 ++++ manifest.webmanifest | 21 ++ new.html | 3 + reference/bundler/vite.html | 51 +++++ reference/bundler/webpack.html | 51 +++++ reference/cli.html | 85 +++++++ reference/client-api.html | 67 ++++++ reference/components.html | 98 +++++++++ reference/config.html | 57 +++++ reference/frontmatter.html | 66 ++++++ reference/node-api.html | 126 +++++++++++ reference/plugin-api.html | 121 ++++++++++ reference/theme-api.html | 51 +++++ robots.txt | 5 + sitemap.xml | 3 + sitemap.xsl | 207 ++++++++++++++++++ zh/advanced/architecture.html | 43 ++++ zh/advanced/cookbook/adding-extra-pages.html | 68 ++++++ zh/advanced/cookbook/index.html | 43 ++++ .../cookbook/making-a-theme-extendable.html | 72 ++++++ .../cookbook/markdown-and-vue-sfc.html | 72 ++++++ .../cookbook/passing-data-to-client-code.html | 62 ++++++ zh/advanced/cookbook/resolving-routes.html | 60 +++++ .../cookbook/usage-of-client-config.html | 120 ++++++++++ zh/advanced/plugin.html | 60 +++++ zh/advanced/theme.html | 92 ++++++++ zh/guide/assets.html | 68 ++++++ zh/guide/bundler.html | 58 +++++ zh/guide/configuration.html | 66 ++++++ zh/guide/deployment.html | 137 ++++++++++++ zh/guide/getting-started.html | 78 +++++++ zh/guide/i18n.html | 81 +++++++ zh/guide/introduction.html | 43 ++++ zh/guide/markdown.html | 172 +++++++++++++++ zh/guide/migration.html | 148 +++++++++++++ zh/guide/page.html | 52 +++++ zh/guide/plugin.html | 55 +++++ zh/guide/theme.html | 56 +++++ zh/guide/troubleshooting.html | 43 ++++ zh/index.html | 43 ++++ zh/reference/bundler/vite.html | 51 +++++ zh/reference/bundler/webpack.html | 51 +++++ zh/reference/cli.html | 85 +++++++ zh/reference/client-api.html | 67 ++++++ zh/reference/components.html | 98 +++++++++ zh/reference/config.html | 57 +++++ zh/reference/frontmatter.html | 66 ++++++ zh/reference/node-api.html | 126 +++++++++++ zh/reference/plugin-api.html | 121 ++++++++++ zh/reference/theme-api.html | 51 +++++ 163 files changed, 7756 insertions(+) create mode 100644 404.html create mode 100644 advanced/architecture.html create mode 100644 advanced/cookbook/adding-extra-pages.html create mode 100644 advanced/cookbook/index.html create mode 100644 advanced/cookbook/making-a-theme-extendable.html create mode 100644 advanced/cookbook/markdown-and-vue-sfc.html create mode 100644 advanced/cookbook/passing-data-to-client-code.html create mode 100644 advanced/cookbook/resolving-routes.html create mode 100644 advanced/cookbook/usage-of-client-config.html create mode 100644 advanced/plugin.html create mode 100644 advanced/theme.html create mode 100644 assets/404.html-BJQsmBKA.js create mode 100644 assets/NpmBadge-Bbgds1va.js create mode 100644 assets/adding-extra-pages.html-Cyu55hRC.js create mode 100644 assets/adding-extra-pages.html-DyVLezP4.js create mode 100644 assets/app-CqHoxGIc.js create mode 100644 assets/architecture.html-BgpA9p7z.js create mode 100644 assets/architecture.html-CbsChR0W.js create mode 100644 assets/assets.html-BZjFvqCZ.js create mode 100644 assets/assets.html-CYHEojlm.js create mode 100644 assets/bundler.html-CB2ZGG6E.js create mode 100644 assets/bundler.html-CxqWeejo.js create mode 100644 assets/cli.html-Bhuoj_P1.js create mode 100644 assets/cli.html-CL4VepSP.js create mode 100644 assets/client-api.html-D1N1s7pQ.js create mode 100644 assets/client-api.html-iG5vxWBM.js create mode 100644 assets/components.html-CbNhUHdN.js create mode 100644 assets/components.html-DRbtb3z1.js create mode 100644 assets/config.html-BfxQAIgY.js create mode 100644 assets/config.html-rHmtn1_Z.js create mode 100644 assets/configuration.html-BMBa25JX.js create mode 100644 assets/configuration.html-DNFceaxK.js create mode 100644 assets/deployment.html-BqB6jREd.js create mode 100644 assets/deployment.html-DNlFV4-d.js create mode 100644 assets/frontmatter.html-BCqH_rDa.js create mode 100644 assets/frontmatter.html-BfmWvdQI.js create mode 100644 assets/getting-started.html-dBw9gEVC.js create mode 100644 assets/getting-started.html-jV6wexI-.js create mode 100644 assets/hero-BNkrhNQ6.js create mode 100644 assets/i18n.html-9eIU_Fbw.js create mode 100644 assets/i18n.html-C-Ty_JEU.js create mode 100644 assets/index-DWGeGWcS.js create mode 100644 assets/index.html-BKJf41aw.js create mode 100644 assets/index.html-D279rePd.js create mode 100644 assets/index.html-DLD3LnRf.js create mode 100644 assets/index.html-Ks9ZeBY5.js create mode 100644 assets/introduction.html-C9CY7bZ4.js create mode 100644 assets/introduction.html-CI-XG4vo.js create mode 100644 assets/making-a-theme-extendable.html-BMVOJX9y.js create mode 100644 assets/making-a-theme-extendable.html-eeBKSgE0.js create mode 100644 assets/markdown-and-vue-sfc.html-D1DBAwNE.js create mode 100644 assets/markdown-and-vue-sfc.html-ilUJbhcw.js create mode 100644 assets/markdown.html-CeqjvBUr.js create mode 100644 assets/markdown.html-CrFYxoLK.js create mode 100644 assets/migration.html-Btp9Fp5f.js create mode 100644 assets/migration.html-Dx3K7AjD.js create mode 100644 assets/node-api.html-CZq-HjUT.js create mode 100644 assets/node-api.html-zXFbnqvU.js create mode 100644 assets/page.html-0uLVGCDw.js create mode 100644 assets/page.html-DBI9m5TN.js create mode 100644 assets/passing-data-to-client-code.html--Iz9ID3-.js create mode 100644 assets/passing-data-to-client-code.html-3RqgJn0U.js create mode 100644 assets/plugin-api.html-Cq8YwiX_.js create mode 100644 assets/plugin-api.html-DdD6cMAC.js create mode 100644 assets/plugin.html-Bsf-LYEz.js create mode 100644 assets/plugin.html-C4CtJaMz.js create mode 100644 assets/plugin.html-Dt7VyCWC.js create mode 100644 assets/plugin.html-NGNpGVQN.js create mode 100644 assets/resolving-routes.html-BlUKHldU.js create mode 100644 assets/resolving-routes.html-oz04Sye_.js create mode 100644 assets/style-COkz-bfM.css create mode 100644 assets/theme-api.html-BQ9zAVXy.js create mode 100644 assets/theme-api.html-Cys9a5AR.js create mode 100644 assets/theme.html-C-qJAiZh.js create mode 100644 assets/theme.html-Cobgd2Hp.js create mode 100644 assets/theme.html-DC0exXkj.js create mode 100644 assets/theme.html-DkSgNsRZ.js create mode 100644 assets/troubleshooting.html-BE0ZRamq.js create mode 100644 assets/troubleshooting.html-pLw8XOqQ.js create mode 100644 assets/usage-of-client-config.html-CaL61Koh.js create mode 100644 assets/usage-of-client-config.html-DJVJZyIC.js create mode 100644 assets/vite.html-D2YcGqRq.js create mode 100644 assets/vite.html-DiqpyHUF.js create mode 100644 assets/vuepress-core-process-C4qfrYlz.js create mode 100644 assets/webpack.html-B7FhctWX.js create mode 100644 assets/webpack.html-m4FSTBIG.js create mode 100644 browserconfig.xml create mode 100644 favicon.ico create mode 100644 guide/assets.html create mode 100644 guide/bundler.html create mode 100644 guide/configuration.html create mode 100644 guide/deployment.html create mode 100644 guide/getting-started.html create mode 100644 guide/i18n.html create mode 100644 guide/introduction.html create mode 100644 guide/markdown.html create mode 100644 guide/migration.html create mode 100644 guide/page.html create mode 100644 guide/plugin.html create mode 100644 guide/theme.html create mode 100644 guide/troubleshooting.html create mode 100644 images/cookbook/extending-a-theme-01.png create mode 100644 images/guide/vuepress-architecture-overview.png create mode 100644 images/guide/vuepress-core-process.png create mode 100644 images/hero.png create mode 100644 images/icons/android-chrome-192x192.png create mode 100644 images/icons/android-chrome-384x384.png create mode 100644 images/icons/apple-touch-icon.png create mode 100644 images/icons/favicon-16x16.png create mode 100644 images/icons/favicon-32x32.png create mode 100644 images/icons/mstile-150x150.png create mode 100644 images/icons/safari-pinned-tab.svg create mode 100644 images/logo.png create mode 100644 index.html create mode 100644 manifest.webmanifest create mode 100644 new.html create mode 100644 reference/bundler/vite.html create mode 100644 reference/bundler/webpack.html create mode 100644 reference/cli.html create mode 100644 reference/client-api.html create mode 100644 reference/components.html create mode 100644 reference/config.html create mode 100644 reference/frontmatter.html create mode 100644 reference/node-api.html create mode 100644 reference/plugin-api.html create mode 100644 reference/theme-api.html create mode 100644 robots.txt create mode 100644 sitemap.xml create mode 100644 sitemap.xsl create mode 100644 zh/advanced/architecture.html create mode 100644 zh/advanced/cookbook/adding-extra-pages.html create mode 100644 zh/advanced/cookbook/index.html create mode 100644 zh/advanced/cookbook/making-a-theme-extendable.html create mode 100644 zh/advanced/cookbook/markdown-and-vue-sfc.html create mode 100644 zh/advanced/cookbook/passing-data-to-client-code.html create mode 100644 zh/advanced/cookbook/resolving-routes.html create mode 100644 zh/advanced/cookbook/usage-of-client-config.html create mode 100644 zh/advanced/plugin.html create mode 100644 zh/advanced/theme.html create mode 100644 zh/guide/assets.html create mode 100644 zh/guide/bundler.html create mode 100644 zh/guide/configuration.html create mode 100644 zh/guide/deployment.html create mode 100644 zh/guide/getting-started.html create mode 100644 zh/guide/i18n.html create mode 100644 zh/guide/introduction.html create mode 100644 zh/guide/markdown.html create mode 100644 zh/guide/migration.html create mode 100644 zh/guide/page.html create mode 100644 zh/guide/plugin.html create mode 100644 zh/guide/theme.html create mode 100644 zh/guide/troubleshooting.html create mode 100644 zh/index.html create mode 100644 zh/reference/bundler/vite.html create mode 100644 zh/reference/bundler/webpack.html create mode 100644 zh/reference/cli.html create mode 100644 zh/reference/client-api.html create mode 100644 zh/reference/components.html create mode 100644 zh/reference/config.html create mode 100644 zh/reference/frontmatter.html create mode 100644 zh/reference/node-api.html create mode 100644 zh/reference/plugin-api.html create mode 100644 zh/reference/theme-api.html diff --git a/404.html b/404.html new file mode 100644 index 000000000..31c94674d --- /dev/null +++ b/404.html @@ -0,0 +1,43 @@ + + + + + + + + + VuePress + + + + + +

404

How did we get here?
Take me home
+ + + diff --git a/advanced/architecture.html b/advanced/architecture.html new file mode 100644 index 000000000..2dec4b9ea --- /dev/null +++ b/advanced/architecture.html @@ -0,0 +1,43 @@ + + + + + + + + + Architecture | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/adding-extra-pages.html b/advanced/cookbook/adding-extra-pages.html new file mode 100644 index 000000000..03b24debc --- /dev/null +++ b/advanced/cookbook/adding-extra-pages.html @@ -0,0 +1,68 @@ + + + + + + + + + Adding Extra Pages | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/index.html b/advanced/cookbook/index.html new file mode 100644 index 000000000..5d9272b9d --- /dev/null +++ b/advanced/cookbook/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Introduction | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/making-a-theme-extendable.html b/advanced/cookbook/making-a-theme-extendable.html new file mode 100644 index 000000000..d243aeb41 --- /dev/null +++ b/advanced/cookbook/making-a-theme-extendable.html @@ -0,0 +1,72 @@ + + + + + + + + + Making a Theme Extendable | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/markdown-and-vue-sfc.html b/advanced/cookbook/markdown-and-vue-sfc.html new file mode 100644 index 000000000..b845d6a60 --- /dev/null +++ b/advanced/cookbook/markdown-and-vue-sfc.html @@ -0,0 +1,72 @@ + + + + + + + + + Markdown and Vue SFC | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/passing-data-to-client-code.html b/advanced/cookbook/passing-data-to-client-code.html new file mode 100644 index 000000000..17adce0b8 --- /dev/null +++ b/advanced/cookbook/passing-data-to-client-code.html @@ -0,0 +1,62 @@ + + + + + + + + + Passing Data to Client Code | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/resolving-routes.html b/advanced/cookbook/resolving-routes.html new file mode 100644 index 000000000..ab6e431f9 --- /dev/null +++ b/advanced/cookbook/resolving-routes.html @@ -0,0 +1,60 @@ + + + + + + + + + Resolving Routes | VuePress + + + + + +
+ + + diff --git a/advanced/cookbook/usage-of-client-config.html b/advanced/cookbook/usage-of-client-config.html new file mode 100644 index 000000000..f06b8dd22 --- /dev/null +++ b/advanced/cookbook/usage-of-client-config.html @@ -0,0 +1,120 @@ + + + + + + + + + Usage of Client Config | VuePress + + + + + +
+ + + diff --git a/advanced/plugin.html b/advanced/plugin.html new file mode 100644 index 000000000..57d10666e --- /dev/null +++ b/advanced/plugin.html @@ -0,0 +1,60 @@ + + + + + + + + + Writing a Plugin | VuePress + + + + + +
+ + + diff --git a/advanced/theme.html b/advanced/theme.html new file mode 100644 index 000000000..d70005a0f --- /dev/null +++ b/advanced/theme.html @@ -0,0 +1,92 @@ + + + + + + + + + Writing a Theme | VuePress + + + + + +
+ + + diff --git a/assets/404.html-BJQsmBKA.js b/assets/404.html-BJQsmBKA.js new file mode 100644 index 000000000..81527a8ff --- /dev/null +++ b/assets/404.html-BJQsmBKA.js @@ -0,0 +1 @@ +import{_ as t,o as e,c as o,a as n}from"./app-CqHoxGIc.js";const r={},a=n("p",null,"404 Not Found",-1),s=[a];function c(p,l){return e(),o("div",null,s)}const d=t(r,[["render",c],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/404.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"autoDesc":true,"filePathRelative":null}');export{d as comp,m as data}; diff --git a/assets/NpmBadge-Bbgds1va.js b/assets/NpmBadge-Bbgds1va.js new file mode 100644 index 000000000..c8033d35b --- /dev/null +++ b/assets/NpmBadge-Bbgds1va.js @@ -0,0 +1 @@ +import{i as p,j as n,_ as d,o as g,c as _,a as i}from"./app-CqHoxGIc.js";const l=p({__name:"NpmBadge",props:{package:{},distTag:{default:"next"}},setup(s,{expose:c}){c();const e=s,a=n(()=>`https://www.npmjs.com/package/${e.package}`),t=n(()=>e.distTag?`${e.package}@${e.distTag}`:e.package),o=n(()=>`https://badgen.net/npm/v/${e.package}/${e.distTag}?label=${encodeURIComponent(t.value)}`),r={props:e,badgeLink:a,badgeLabel:t,badgeImg:o};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),m=["href","title"],u=["src","alt"];function f(s,c,e,a,t,o){return g(),_("a",{class:"npm-badge",href:a.badgeLink,title:e.package,target:"_blank",rel:"noopener noreferrer"},[i("img",{src:a.badgeImg,alt:e.package},null,8,u)],8,m)}const k=d(l,[["render",f],["__scopeId","data-v-58259ba2"],["__file","NpmBadge.vue"]]);export{k as default}; diff --git a/assets/adding-extra-pages.html-Cyu55hRC.js b/assets/adding-extra-pages.html-Cyu55hRC.js new file mode 100644 index 000000000..a3ec98f4d --- /dev/null +++ b/assets/adding-extra-pages.html-Cyu55hRC.js @@ -0,0 +1,26 @@ +import{_ as p,r as o,o as t,c as r,a as n,b as s,d as e,w as l,e as c}from"./app-CqHoxGIc.js";const i={},d=n("h1",{id:"添加额外页面",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#添加额外页面"},[n("span",null,"添加额外页面")])],-1),D=n("p",null,"有时你可能希望在不创建 Markdown 文件的情况下添加一些额外的页面。",-1),y=c(`

添加默认的主页

作为一个主题作者,你可能不想要求用户必须创建一个 /README.md 文件来作为主页,但是你希望提供一个默认的主页:

import { createPage } from 'vuepress/core'
+
+export default {
+  // 初始化之后,所有的页面已经加载完毕
+  async onInitialized(app) {
+    // 如果主页不存在
+    if (app.pages.every((page) => page.path !== '/')) {
+      // 创建一个主页
+      const homepage = await createPage(app, {
+        path: '/',
+        // 设置 frontmatter
+        frontmatter: {
+          layout: 'Layout',
+        },
+        // 设置 markdown 内容
+        content: \`\\
+# 欢迎来到 \${app.options.title}
+
+这是默认主页
+\`,
+      })
+      // 把它添加到 \`app.pages\`
+      app.pages.push(homepage)
+    }
+  },
+}
`,3);function m(v,C){const a=o("RouteLink");return t(),r("div",null,[d,D,n("p",null,[s("我们可以借助于 "),e(a,{to:"/zh/reference/plugin-api.html"},{default:l(()=>[s("插件 API")]),_:1}),s(" 和 "),e(a,{to:"/zh/reference/node-api.html"},{default:l(()=>[s("Node API")]),_:1}),s(" 来轻松实现。")]),y])}const h=p(i,[["render",m],["__file","adding-extra-pages.html.vue"]]),g=JSON.parse('{"path":"/zh/advanced/cookbook/adding-extra-pages.html","title":"添加额外页面","lang":"zh-CN","frontmatter":{"description":"添加额外页面 有时你可能希望在不创建 Markdown 文件的情况下添加一些额外的页面。 我们可以借助于 和 来轻松实现。 添加默认的主页 作为一个主题作者,你可能不想要求用户必须创建一个 /README.md 文件来作为主页,但是你希望提供一个默认的主页:","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/advanced/cookbook/adding-extra-pages.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/advanced/cookbook/adding-extra-pages.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"添加额外页面"}],["meta",{"property":"og:description","content":"添加额外页面 有时你可能希望在不创建 Markdown 文件的情况下添加一些额外的页面。 我们可以借助于 和 来轻松实现。 添加默认的主页 作为一个主题作者,你可能不想要求用户必须创建一个 /README.md 文件来作为主页,但是你希望提供一个默认的主页:"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-12-28T05:20:14.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-28T05:20:14.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"添加额外页面\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-28T05:20:14.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"添加默认的主页","slug":"添加默认的主页","link":"#添加默认的主页","children":[]}],"git":{"updatedTime":1703740814000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2}]},"autoDesc":true,"filePathRelative":"zh/advanced/cookbook/adding-extra-pages.md"}');export{h as comp,g as data}; diff --git a/assets/adding-extra-pages.html-DyVLezP4.js b/assets/adding-extra-pages.html-DyVLezP4.js new file mode 100644 index 000000000..9e663bd57 --- /dev/null +++ b/assets/adding-extra-pages.html-DyVLezP4.js @@ -0,0 +1,26 @@ +import{_ as o,r as t,o as p,c as r,a,b as s,d as n,w as l,e as i}from"./app-CqHoxGIc.js";const c={},d=a("h1",{id:"adding-extra-pages",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#adding-extra-pages"},[a("span",null,"Adding Extra Pages")])],-1),D=a("p",null,"Sometimes you might want to add some extra pages without creating a markdown file in the source directory.",-1),y=i(`

Add a Default Homepage

As a theme author, you may not require users to create a /README.md file as the homepage, but you want to provide a default one:

import { createPage } from 'vuepress/core'
+
+export default {
+  // all pages have been loaded after initialization
+  async onInitialized(app) {
+    // if the homepage does not exist
+    if (app.pages.every((page) => page.path !== '/')) {
+      // create a homepage
+      const homepage = await createPage(app, {
+        path: '/',
+        // set frontmatter
+        frontmatter: {
+          layout: 'Layout',
+        },
+        // set markdown content
+        content: \`\\
+# Welcome to \${app.options.title}
+
+This is the default homepage
+\`,
+      })
+      // add it to \`app.pages\`
+      app.pages.push(homepage)
+    }
+  },
+}
`,3);function m(u,h){const e=t("RouteLink");return p(),r("div",null,[d,D,a("p",null,[s("With the help of "),n(e,{to:"/reference/plugin-api.html"},{default:l(()=>[s("Plugin API")]),_:1}),s(" and "),n(e,{to:"/reference/node-api.html"},{default:l(()=>[s("Node API")]),_:1}),s(", we can do that with ease.")]),y])}const v=o(c,[["render",m],["__file","adding-extra-pages.html.vue"]]),C=JSON.parse('{"path":"/advanced/cookbook/adding-extra-pages.html","title":"Adding Extra Pages","lang":"en-US","frontmatter":{"description":"Adding Extra Pages Sometimes you might want to add some extra pages without creating a markdown file in the source directory. With the help of and , we can do that with ease. Ad...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/advanced/cookbook/adding-extra-pages.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/advanced/cookbook/adding-extra-pages.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Adding Extra Pages"}],["meta",{"property":"og:description","content":"Adding Extra Pages Sometimes you might want to add some extra pages without creating a markdown file in the source directory. With the help of and , we can do that with ease. Ad..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2023-12-28T05:20:14.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-28T05:20:14.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Adding Extra Pages\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-28T05:20:14.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Add a Default Homepage","slug":"add-a-default-homepage","link":"#add-a-default-homepage","children":[]}],"git":{"updatedTime":1703740814000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2}]},"autoDesc":true,"filePathRelative":"advanced/cookbook/adding-extra-pages.md"}');export{v as comp,C as data}; diff --git a/assets/app-CqHoxGIc.js b/assets/app-CqHoxGIc.js new file mode 100644 index 000000000..485b5623b --- /dev/null +++ b/assets/app-CqHoxGIc.js @@ -0,0 +1,27 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/architecture.html-BgpA9p7z.js","assets/vuepress-core-process-C4qfrYlz.js","assets/assets.html-BZjFvqCZ.js","assets/hero-BNkrhNQ6.js","assets/architecture.html-CbsChR0W.js","assets/assets.html-CYHEojlm.js"])))=>i.map(i=>d[i]); +/** +* @vue/shared v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Mo(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const Ee={},dn=[],nt=()=>{},Ea=()=>!1,Qn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zo=e=>e.startsWith("onUpdate:"),ze=Object.assign,Do=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},wa=Object.prototype.hasOwnProperty,ue=(e,t)=>wa.call(e,t),te=Array.isArray,hn=e=>zr(e)==="[object Map]",xi=e=>zr(e)==="[object Set]",oe=e=>typeof e=="function",xe=e=>typeof e=="string",jt=e=>typeof e=="symbol",_e=e=>e!==null&&typeof e=="object",Ci=e=>(_e(e)||oe(e))&&oe(e.then)&&oe(e.catch),Ti=Object.prototype.toString,zr=e=>Ti.call(e),Sa=e=>zr(e).slice(8,-1),Ai=e=>zr(e)==="[object Object]",Vo=e=>xe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,pn=Mo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Dr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ka=/-(\w)/g,Xe=Dr(e=>e.replace(ka,(t,n)=>n?n.toUpperCase():"")),Pa=/\B([A-Z])/g,Bt=Dr(e=>e.replace(Pa,"-$1").toLowerCase()),Jn=Dr(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zr=Dr(e=>e?`on${Jn(e)}`:""),zt=(e,t)=>!Object.is(e,t),eo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},La=e=>{const t=parseFloat(e);return isNaN(t)?e:t},xa=e=>{const t=xe(e)?Number(e):NaN;return isNaN(t)?e:t};let gs;const Ri=()=>gs||(gs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xn(e){if(te(e)){const t={};for(let n=0;n{if(n){const r=n.split(Ta);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Ge(e){let t="";if(xe(e))t=e;else if(te(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Pe=e=>xe(e)?e:e==null?"":te(e)||_e(e)&&(e.toString===Ti||!oe(e.toString))?Mi(e)?Pe(e.value):JSON.stringify(e,zi,2):String(e),zi=(e,t)=>Mi(t)?zi(e,t.value):hn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],s)=>(n[to(r,s)+" =>"]=o,n),{})}:xi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>to(n))}:jt(t)?to(t):_e(t)&&!te(t)&&!Ai(t)?String(t):t,to=(e,t="")=>{var n;return jt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Qe;class Ma{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Qe,!t&&Qe&&(this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Qe;try{return Qe=this,t()}finally{Qe=n}}}on(){Qe=this}off(){Qe=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),Ut()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=It,n=en;try{return It=!0,en=this,this._runnings++,vs(this),this.fn()}finally{_s(this),this._runnings--,en=n,It=t}}stop(){this.active&&(vs(this),_s(this),this.onStop&&this.onStop(),this.active=!1)}}function Va(e){return e.value}function vs(e){e._trackId++,e._depsLength=0}function _s(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},kr=new WeakMap,tn=Symbol(""),yo=Symbol("");function qe(e,t,n){if(It&&en){let r=kr.get(e);r||kr.set(e,r=new Map);let o=r.get(n);o||r.set(n,o=ji(()=>r.delete(n))),Hi(en,o)}}function bt(e,t,n,r,o,s){const i=kr.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&te(e)){const a=Number(r);i.forEach((u,f)=>{(f==="length"||!jt(f)&&f>=a)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":te(e)?Vo(n)&&l.push(i.get("length")):(l.push(i.get(tn)),hn(e)&&l.push(i.get(yo)));break;case"delete":te(e)||(l.push(i.get(tn)),hn(e)&&l.push(i.get(yo)));break;case"set":hn(e)&&l.push(i.get(tn));break}Ho();for(const a of l)a&&Ni(a,4);No()}function $a(e,t){const n=kr.get(e);return n&&n.get(t)}const Ha=Mo("__proto__,__v_isRef,__isVue"),Bi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(jt)),bs=Na();function Na(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=fe(this);for(let s=0,i=this.length;s{e[t]=function(...n){Ft(),Ho();const r=fe(this)[t].apply(this,n);return No(),Ut(),r}}),e}function ja(e){jt(e)||(e=String(e));const t=fe(this);return qe(t,"has",e),t.hasOwnProperty(e)}class Fi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(o?s?ec:Gi:s?Ki:Wi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=te(t);if(!o){if(i&&ue(bs,n))return Reflect.get(bs,n,r);if(n==="hasOwnProperty")return ja}const l=Reflect.get(t,n,r);return(jt(n)?Bi.has(n):Ha(n))||(o||qe(t,"get",n),s)?l:Ve(l)?i&&Vo(n)?l:l.value:_e(l)?o?$r(l):Zn(l):l}}class Ui extends Fi{constructor(t=!1){super(!1,t)}set(t,n,r,o){let s=t[n];if(!this._isShallow){const a=sn(s);if(!En(r)&&!sn(r)&&(s=fe(s),r=fe(r)),!te(t)&&Ve(s)&&!Ve(r))return a?!1:(s.value=r,!0)}const i=te(t)&&Vo(n)?Number(n)e,Vr=e=>Reflect.getPrototypeOf(e);function ir(e,t,n=!1,r=!1){e=e.__v_raw;const o=fe(e),s=fe(t);n||(zt(t,s)&&qe(o,"get",t),qe(o,"get",s));const{has:i}=Vr(o),l=r?jo:n?Uo:jn;if(i.call(o,t))return l(e.get(t));if(i.call(o,s))return l(e.get(s));e!==o&&e.get(t)}function lr(e,t=!1){const n=this.__v_raw,r=fe(n),o=fe(e);return t||(zt(e,o)&&qe(r,"has",e),qe(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function ar(e,t=!1){return e=e.__v_raw,!t&&qe(fe(e),"iterate",tn),Reflect.get(e,"size",e)}function ys(e,t=!1){!t&&!En(e)&&!sn(e)&&(e=fe(e));const n=fe(this);return Vr(n).has.call(n,e)||(n.add(e),bt(n,"add",e,e)),this}function Es(e,t,n=!1){!n&&!En(t)&&!sn(t)&&(t=fe(t));const r=fe(this),{has:o,get:s}=Vr(r);let i=o.call(r,e);i||(e=fe(e),i=o.call(r,e));const l=s.call(r,e);return r.set(e,t),i?zt(t,l)&&bt(r,"set",e,t):bt(r,"add",e,t),this}function ws(e){const t=fe(this),{has:n,get:r}=Vr(t);let o=n.call(t,e);o||(e=fe(e),o=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return o&&bt(t,"delete",e,void 0),s}function Ss(){const e=fe(this),t=e.size!==0,n=e.clear();return t&&bt(e,"clear",void 0,void 0),n}function cr(e,t){return function(r,o){const s=this,i=s.__v_raw,l=fe(i),a=t?jo:e?Uo:jn;return!e&&qe(l,"iterate",tn),i.forEach((u,f)=>r.call(o,a(u),a(f),s))}}function ur(e,t,n){return function(...r){const o=this.__v_raw,s=fe(o),i=hn(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=o[e](...r),f=n?jo:t?Uo:jn;return!t&&qe(s,"iterate",a?yo:tn),{next(){const{value:c,done:p}=u.next();return p?{value:c,done:p}:{value:l?[f(c[0]),f(c[1])]:f(c),done:p}},[Symbol.iterator](){return this}}}}function Pt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ka(){const e={get(s){return ir(this,s)},get size(){return ar(this)},has:lr,add:ys,set:Es,delete:ws,clear:Ss,forEach:cr(!1,!1)},t={get(s){return ir(this,s,!1,!0)},get size(){return ar(this)},has:lr,add(s){return ys.call(this,s,!0)},set(s,i){return Es.call(this,s,i,!0)},delete:ws,clear:Ss,forEach:cr(!1,!0)},n={get(s){return ir(this,s,!0)},get size(){return ar(this,!0)},has(s){return lr.call(this,s,!0)},add:Pt("add"),set:Pt("set"),delete:Pt("delete"),clear:Pt("clear"),forEach:cr(!0,!1)},r={get(s){return ir(this,s,!0,!0)},get size(){return ar(this,!0)},has(s){return lr.call(this,s,!0)},add:Pt("add"),set:Pt("set"),delete:Pt("delete"),clear:Pt("clear"),forEach:cr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=ur(s,!1,!1),n[s]=ur(s,!0,!1),t[s]=ur(s,!1,!0),r[s]=ur(s,!0,!0)}),[e,n,t,r]}const[Ga,qa,Ya,Qa]=Ka();function Bo(e,t){const n=t?e?Qa:Ya:e?qa:Ga;return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(ue(n,o)&&o in r?n:r,o,s)}const Ja={get:Bo(!1,!1)},Xa={get:Bo(!1,!0)},Za={get:Bo(!0,!1)};const Wi=new WeakMap,Ki=new WeakMap,Gi=new WeakMap,ec=new WeakMap;function tc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function nc(e){return e.__v_skip||!Object.isExtensible(e)?0:tc(Sa(e))}function Zn(e){return sn(e)?e:Fo(e,!1,Fa,Ja,Wi)}function qi(e){return Fo(e,!1,Wa,Xa,Ki)}function $r(e){return Fo(e,!0,Ua,Za,Gi)}function Fo(e,t,n,r,o){if(!_e(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=nc(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return o.set(e,l),l}function mn(e){return sn(e)?mn(e.__v_raw):!!(e&&e.__v_isReactive)}function sn(e){return!!(e&&e.__v_isReadonly)}function En(e){return!!(e&&e.__v_isShallow)}function Yi(e){return e?!!e.__v_raw:!1}function fe(e){const t=e&&e.__v_raw;return t?fe(t):e}function rc(e){return Object.isExtensible(e)&&Oi(e,"__v_skip",!0),e}const jn=e=>_e(e)?Zn(e):e,Uo=e=>_e(e)?$r(e):e;class Qi{constructor(t,n,r,o){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new $o(()=>t(this._value),()=>zn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=fe(this);return(!t._cacheable||t.effect.dirty)&&zt(t._value,t._value=t.effect.run())&&zn(t,4),Wo(t),t.effect._dirtyLevel>=2&&zn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function oc(e,t,n=!1){let r,o;const s=oe(e);return s?(r=e,o=nt):(r=e.get,o=e.set),new Qi(r,o,s||!o,n)}function Wo(e){var t;It&&en&&(e=fe(e),Hi(en,(t=e.dep)!=null?t:e.dep=ji(()=>e.dep=void 0,e instanceof Qi?e:void 0)))}function zn(e,t=4,n,r){e=fe(e);const o=e.dep;o&&Ni(o,t)}function Ve(e){return!!(e&&e.__v_isRef===!0)}function ae(e){return Ji(e,!1)}function Dt(e){return Ji(e,!0)}function Ji(e,t){return Ve(e)?e:new sc(e,t)}class sc{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:fe(t),this._value=n?t:jn(t)}get value(){return Wo(this),this._value}set value(t){const n=this.__v_isShallow||En(t)||sn(t);t=n?t:fe(t),zt(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:jn(t),zn(this,4))}}function nn(e){return Ve(e)?e.value:e}const ic={get:(e,t,n)=>nn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return Ve(o)&&!Ve(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Xi(e){return mn(e)?e:new Proxy(e,ic)}class lc{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Wo(this),()=>zn(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function ac(e){return new lc(e)}function Zi(e){const t=te(e)?new Array(e.length):{};for(const n in e)t[n]=el(e,n);return t}class cc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return $a(fe(this._object),this._key)}}class uc{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function fc(e,t,n){return Ve(e)?e:oe(e)?new uc(e):_e(e)&&arguments.length>1?el(e,t,n):ae(e)}function el(e,t,n){const r=e[t];return Ve(r)?r:new cc(e,t,n)}/** +* @vue/runtime-core v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Mt(e,t,n,r){try{return r?e(...r):e()}catch(o){er(o,t,n)}}function rt(e,t,n,r){if(oe(e)){const o=Mt(e,t,n,r);return o&&Ci(o)&&o.catch(s=>{er(s,t,n)}),o}if(te(e)){const o=[];for(let s=0;s>>1,o=He[r],s=Fn(o);sht&&He.splice(t,1)}function mc(e){te(e)?gn.push(...e):(!Ct||!Ct.includes(e,e.allowRecurse?Jt+1:Jt))&&gn.push(e),nl()}function ks(e,t,n=Bn?ht+1:0){for(;nFn(n)-Fn(r));if(gn.length=0,Ct){Ct.push(...t);return}for(Ct=t,Jt=0;Jte.id==null?1/0:e.id,gc=(e,t)=>{const n=Fn(e)-Fn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function rl(e){Eo=!1,Bn=!0,He.sort(gc);try{for(ht=0;ht{r._d&&zs(-1);const s=Lr(t);let i;try{i=e(...o)}finally{Lr(s),r._d&&zs(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function xr(e,t){if(Me===null)return e;const n=Wr(Me),r=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),Go(()=>{e.isUnmounting=!0}),e}const Ze=[Function,Array],ol={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ze,onEnter:Ze,onAfterEnter:Ze,onEnterCancelled:Ze,onBeforeLeave:Ze,onLeave:Ze,onAfterLeave:Ze,onLeaveCancelled:Ze,onBeforeAppear:Ze,onAppear:Ze,onAfterAppear:Ze,onAppearCancelled:Ze},sl=e=>{const t=e.subTree;return t.component?sl(t.component):t},yc={name:"BaseTransition",props:ol,setup(e,{slots:t}){const n=Ur(),r=bc();return()=>{const o=t.default&&ll(t.default(),!0);if(!o||!o.length)return;let s=o[0];if(o.length>1){for(const p of o)if(p.type!==Fe){s=p;break}}const i=fe(e),{mode:l}=i;if(r.isLeaving)return no(s);const a=Ps(s);if(!a)return no(s);let u=wo(a,i,r,n,p=>u=p);Cr(a,u);const f=n.subTree,c=f&&Ps(f);if(c&&c.type!==Fe&&!Xt(a,c)&&sl(n).type!==Fe){const p=wo(c,i,r,n);if(Cr(c,p),l==="out-in"&&a.type!==Fe)return r.isLeaving=!0,p.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},no(s);l==="in-out"&&a.type!==Fe&&(p.delayLeave=(m,v,w)=>{const x=il(r,c);x[String(c.key)]=c,m[Tt]=()=>{v(),m[Tt]=void 0,delete u.delayedLeave},u.delayedLeave=w})}return s}}},Ec=yc;function il(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function wo(e,t,n,r,o){const{appear:s,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:f,onEnterCancelled:c,onBeforeLeave:p,onLeave:m,onAfterLeave:v,onLeaveCancelled:w,onBeforeAppear:x,onAppear:O,onAfterAppear:E,onAppearCancelled:g}=t,S=String(e.key),H=il(n,e),M=(U,P)=>{U&&rt(U,r,9,P)},z=(U,P)=>{const N=P[1];M(U,P),te(U)?U.every(b=>b.length<=1)&&N():U.length<=1&&N()},y={mode:i,persisted:l,beforeEnter(U){let P=a;if(!n.isMounted)if(s)P=x||a;else return;U[Tt]&&U[Tt](!0);const N=H[S];N&&Xt(e,N)&&N.el[Tt]&&N.el[Tt](),M(P,[U])},enter(U){let P=u,N=f,b=c;if(!n.isMounted)if(s)P=O||u,N=E||f,b=g||c;else return;let D=!1;const Z=U[fr]=ne=>{D||(D=!0,ne?M(b,[U]):M(N,[U]),y.delayedLeave&&y.delayedLeave(),U[fr]=void 0)};P?z(P,[U,Z]):Z()},leave(U,P){const N=String(e.key);if(U[fr]&&U[fr](!0),n.isUnmounting)return P();M(p,[U]);let b=!1;const D=U[Tt]=Z=>{b||(b=!0,P(),Z?M(w,[U]):M(v,[U]),U[Tt]=void 0,H[N]===e&&delete H[N])};H[N]=e,m?z(m,[U,D]):D()},clone(U){const P=wo(U,t,n,r,o);return o&&o(P),P}};return y}function no(e){if(tr(e))return e=$t(e),e.children=null,e}function Ps(e){if(!tr(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function Cr(e,t){e.shapeFlag&6&&e.component?Cr(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ll(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function al(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:s,suspensible:i=!0,onError:l}=e;let a=null,u,f=0;const c=()=>(f++,a=null,p()),p=()=>{let m;return a||(m=a=t().catch(v=>{if(v=v instanceof Error?v:new Error(String(v)),l)return new Promise((w,x)=>{l(v,()=>w(c()),()=>x(v),f+1)});throw v}).then(v=>m!==a&&a?a:(v&&(v.__esModule||v[Symbol.toStringTag]==="Module")&&(v=v.default),u=v,v)))};return de({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return u},setup(){const m=Ie;if(u)return()=>ro(u,m);const v=E=>{a=null,er(E,m,13,!r)};if(i&&m.suspense||rr)return p().then(E=>()=>ro(E,m)).catch(E=>(v(E),()=>r?se(r,{error:E}):null));const w=ae(!1),x=ae(),O=ae(!!o);return o&&setTimeout(()=>{O.value=!1},o),s!=null&&setTimeout(()=>{if(!w.value&&!x.value){const E=new Error(`Async component timed out after ${s}ms.`);v(E),x.value=E}},s),p().then(()=>{w.value=!0,m.parent&&tr(m.parent.vnode)&&(m.parent.effect.dirty=!0,Hr(m.parent.update))}).catch(E=>{v(E),x.value=E}),()=>{if(w.value&&u)return ro(u,m);if(x.value&&r)return se(r,{error:x.value});if(n&&!O.value)return se(n)}}})}function ro(e,t){const{ref:n,props:r,children:o,ce:s}=t.vnode,i=se(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const tr=e=>e.type.__isKeepAlive;function wc(e,t){cl(e,"a",t)}function Sc(e,t){cl(e,"da",t)}function cl(e,t,n=Ie){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(jr(t,r,n),n){let o=n.parent;for(;o&&o.parent;)tr(o.parent.vnode)&&kc(r,t,n,o),o=o.parent}}function kc(e,t,n,r){const o=jr(t,e,r,!0);Br(()=>{Do(r[t],o)},n)}function jr(e,t,n=Ie,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{Ft();const l=nr(n),a=rt(t,n,e,i);return l(),Ut(),a});return r?o.unshift(s):o.push(s),s}}const yt=e=>(t,n=Ie)=>{(!rr||e==="sp")&&jr(e,(...r)=>t(...r),n)},Pc=yt("bm"),je=yt("m"),Lc=yt("bu"),xc=yt("u"),Go=yt("bum"),Br=yt("um"),Cc=yt("sp"),Tc=yt("rtg"),Ac=yt("rtc");function Oc(e,t=Ie){jr("ec",e,t)}const ul="components";function qo(e,t){return Ic(ul,e,!0,t)||e}const Rc=Symbol.for("v-ndc");function Ic(e,t,n=!0,r=!1){const o=Me||Ie;if(o){const s=o.type;if(e===ul){const l=Pu(s,!1);if(l&&(l===t||l===Xe(t)||l===Jn(Xe(t))))return s}const i=Ls(o[e]||s[e],t)||Ls(o.appContext[e],t);return!i&&r?s:i}}function Ls(e,t){return e&&(e[t]||e[Xe(t)]||e[Jn(Xe(t))])}function Vt(e,t,n,r){let o;const s=n;if(te(e)||xe(e)){o=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,s));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,a=i.length;lOr(t)?!(t.type===Fe||t.type===ve&&!fl(t.children)):!0)?e:null}const So=e=>e?Ol(e)?Wr(e):So(e.parent):null,Dn=ze(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>So(e.parent),$root:e=>So(e.root),$emit:e=>e.emit,$options:e=>Yo(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Hr(e.update)}),$nextTick:e=>e.n||(e.n=Pn.bind(e.proxy)),$watch:e=>su.bind(e)}),oo=(e,t)=>e!==Ee&&!e.__isScriptSetup&&ue(e,t),Mc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:l,appContext:a}=e;let u;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(oo(r,t))return i[t]=1,r[t];if(o!==Ee&&ue(o,t))return i[t]=2,o[t];if((u=e.propsOptions[0])&&ue(u,t))return i[t]=3,s[t];if(n!==Ee&&ue(n,t))return i[t]=4,n[t];ko&&(i[t]=0)}}const f=Dn[t];let c,p;if(f)return t==="$attrs"&&qe(e.attrs,"get",""),f(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==Ee&&ue(n,t))return i[t]=4,n[t];if(p=a.config.globalProperties,ue(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return oo(o,t)?(o[t]=n,!0):r!==Ee&&ue(r,t)?(r[t]=n,!0):ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let l;return!!n[i]||e!==Ee&&ue(e,i)||oo(t,i)||(l=s[0])&&ue(l,i)||ue(r,i)||ue(Dn,i)||ue(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ue(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function xs(e){return te(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ko=!0;function zc(e){const t=Yo(e),n=e.proxy,r=e.ctx;ko=!1,t.beforeCreate&&Cs(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:l,provide:a,inject:u,created:f,beforeMount:c,mounted:p,beforeUpdate:m,updated:v,activated:w,deactivated:x,beforeDestroy:O,beforeUnmount:E,destroyed:g,unmounted:S,render:H,renderTracked:M,renderTriggered:z,errorCaptured:y,serverPrefetch:U,expose:P,inheritAttrs:N,components:b,directives:D,filters:Z}=t;if(u&&Dc(u,r,null),i)for(const Q in i){const q=i[Q];oe(q)&&(r[Q]=q.bind(n))}if(o){const Q=o.call(n,n);_e(Q)&&(e.data=Zn(Q))}if(ko=!0,s)for(const Q in s){const q=s[Q],ge=oe(q)?q.bind(n,n):oe(q.get)?q.get.bind(n,n):nt,De=!oe(q)&&oe(q.set)?q.set.bind(n):nt,Ue=I({get:ge,set:De});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:$e=>Ue.value=$e})}if(l)for(const Q in l)dl(l[Q],r,n,Q);if(a){const Q=oe(a)?a.call(n):a;Reflect.ownKeys(Q).forEach(q=>{rn(q,Q[q])})}f&&Cs(f,e,"c");function R(Q,q){te(q)?q.forEach(ge=>Q(ge.bind(n))):q&&Q(q.bind(n))}if(R(Pc,c),R(je,p),R(Lc,m),R(xc,v),R(wc,w),R(Sc,x),R(Oc,y),R(Ac,M),R(Tc,z),R(Go,E),R(Br,S),R(Cc,U),te(P))if(P.length){const Q=e.exposed||(e.exposed={});P.forEach(q=>{Object.defineProperty(Q,q,{get:()=>n[q],set:ge=>n[q]=ge})})}else e.exposed||(e.exposed={});H&&e.render===nt&&(e.render=H),N!=null&&(e.inheritAttrs=N),b&&(e.components=b),D&&(e.directives=D)}function Dc(e,t,n=nt){te(e)&&(e=Po(e));for(const r in e){const o=e[r];let s;_e(o)?"default"in o?s=Ne(o.from||r,o.default,!0):s=Ne(o.from||r):s=Ne(o),Ve(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[r]=s}}function Cs(e,t,n){rt(te(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function dl(e,t,n,r){const o=r.includes(".")?Ll(n,r):()=>n[r];if(xe(e)){const s=t[e];oe(s)&&Ae(o,s)}else if(oe(e))Ae(o,e.bind(n));else if(_e(e))if(te(e))e.forEach(s=>dl(s,t,n,r));else{const s=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(s)&&Ae(o,s,e)}}function Yo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!o.length&&!n&&!r?a=t:(a={},o.length&&o.forEach(u=>Tr(a,u,i,!0)),Tr(a,t,i)),_e(t)&&s.set(t,a),a}function Tr(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&Tr(e,s,n,!0),o&&o.forEach(i=>Tr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Vc[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Vc={data:Ts,props:As,emits:As,methods:In,computed:In,beforeCreate:Be,created:Be,beforeMount:Be,mounted:Be,beforeUpdate:Be,updated:Be,beforeDestroy:Be,beforeUnmount:Be,destroyed:Be,unmounted:Be,activated:Be,deactivated:Be,errorCaptured:Be,serverPrefetch:Be,components:In,directives:In,watch:Hc,provide:Ts,inject:$c};function Ts(e,t){return t?e?function(){return ze(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function $c(e,t){return In(Po(e),Po(t))}function Po(e){if(te(e)){const t={};for(let n=0;n1)return n&&oe(t)?t.call(r&&r.proxy):t}}const pl={},ml=()=>Object.create(pl),gl=e=>Object.getPrototypeOf(e)===pl;function Bc(e,t,n,r=!1){const o={},s=ml();e.propsDefaults=Object.create(null),vl(e,t,o,s);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=r?o:qi(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function Fc(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:i}}=e,l=fe(o),[a]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let c=0;c{a=!0;const[p,m]=_l(c,t,!0);ze(i,p),m&&l.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return _e(e)&&r.set(e,dn),dn;if(te(s))for(let f=0;fe[0]==="_"||e==="$stable",Qo=e=>te(e)?e.map(tt):[tt(e)],Wc=(e,t,n)=>{if(t._n)return t;const r=Ce((...o)=>Qo(t(...o)),n);return r._c=!1,r},yl=(e,t,n)=>{const r=e._ctx;for(const o in e){if(bl(o))continue;const s=e[o];if(oe(s))t[o]=Wc(o,s,r);else if(s!=null){const i=Qo(s);t[o]=()=>i}}},El=(e,t)=>{const n=Qo(t);e.slots.default=()=>n},wl=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Kc=(e,t,n)=>{const r=e.slots=ml();if(e.vnode.shapeFlag&32){const o=t._;o?(wl(r,t,n),n&&Oi(r,"_",o,!0)):yl(t,r)}else t&&El(e,t)},Gc=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=Ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:wl(o,t,n):(s=!t.$stable,yl(t,o)),i=t}else t&&(El(e,t),i={default:1});if(s)for(const l in o)!bl(l)&&i[l]==null&&delete o[l]};function Ar(e,t,n,r,o=!1){if(te(e)){e.forEach((p,m)=>Ar(p,t&&(te(t)?t[m]:t),n,r,o));return}if(vn(r)&&!o)return;const s=r.shapeFlag&4?Wr(r.component):r.el,i=o?null:s,{i:l,r:a}=e,u=t&&t.r,f=l.refs===Ee?l.refs={}:l.refs,c=l.setupState;if(u!=null&&u!==a&&(xe(u)?(f[u]=null,ue(c,u)&&(c[u]=null)):Ve(u)&&(u.value=null)),oe(a))Mt(a,l,12,[i,f]);else{const p=xe(a),m=Ve(a);if(p||m){const v=()=>{if(e.f){const w=p?ue(c,a)?c[a]:f[a]:a.value;o?te(w)&&Do(w,s):te(w)?w.includes(s)||w.push(s):p?(f[a]=[s],ue(c,a)&&(c[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else p?(f[a]=i,ue(c,a)&&(c[a]=i)):m&&(a.value=i,e.k&&(f[e.k]=i))};i?(v.id=-1,Ke(v,n)):v()}}}const qc=Symbol("_vte"),Yc=e=>e.__isTeleport;let Rs=!1;const cn=()=>{Rs||(console.error("Hydration completed but contains mismatches."),Rs=!0)},Qc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Jc=e=>e.namespaceURI.includes("MathML"),dr=e=>{if(Qc(e))return"svg";if(Jc(e))return"mathml"},hr=e=>e.nodeType===8;function Xc(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:s,parentNode:i,remove:l,insert:a,createComment:u}}=e,f=(g,S)=>{if(!S.hasChildNodes()){n(null,g,S),Pr(),S._vnode=g;return}c(S.firstChild,g,null,null,null),Pr(),S._vnode=g},c=(g,S,H,M,z,y=!1)=>{y=y||!!S.dynamicChildren;const U=hr(g)&&g.data==="[",P=()=>w(g,S,H,M,z,U),{type:N,ref:b,shapeFlag:D,patchFlag:Z}=S;let ne=g.nodeType;S.el=g,Z===-2&&(y=!1,S.dynamicChildren=null);let R=null;switch(N){case on:ne!==3?S.children===""?(a(S.el=o(""),i(g),g),R=g):R=P():(g.data!==S.children&&(cn(),g.data=S.children),R=s(g));break;case Fe:E(g)?(R=s(g),O(S.el=g.content.firstChild,g,H)):ne!==8||U?R=P():R=s(g);break;case Vn:if(U&&(g=s(g),ne=g.nodeType),ne===1||ne===3){R=g;const Q=!S.children.length;for(let q=0;q{y=y||!!S.dynamicChildren;const{type:U,props:P,patchFlag:N,shapeFlag:b,dirs:D,transition:Z}=S,ne=U==="input"||U==="option";if(ne||N!==-1){D&&dt(S,null,H,"created");let R=!1;if(E(g)){R=Sl(M,Z)&&H&&H.vnode.props&&H.vnode.props.appear;const q=g.content.firstChild;R&&Z.beforeEnter(q),O(q,g,H),S.el=g=q}if(b&16&&!(P&&(P.innerHTML||P.textContent))){let q=m(g.firstChild,S,g,H,M,z,y);for(;q;){cn();const ge=q;q=q.nextSibling,l(ge)}}else b&8&&g.textContent!==S.children&&(cn(),g.textContent=S.children);if(P){if(ne||!y||N&48){const q=g.tagName.includes("-");for(const ge in P)(ne&&(ge.endsWith("value")||ge==="indeterminate")||Qn(ge)&&!pn(ge)||ge[0]==="."||q)&&r(g,ge,null,P[ge],void 0,H)}else if(P.onClick)r(g,"onClick",null,P.onClick,void 0,H);else if(N&4&&mn(P.style))for(const q in P.style)P.style[q]}let Q;(Q=P&&P.onVnodeBeforeMount)&&et(Q,H,S),D&&dt(S,null,H,"beforeMount"),((Q=P&&P.onVnodeMounted)||D||R)&&Cl(()=>{Q&&et(Q,H,S),R&&Z.enter(g),D&&dt(S,null,H,"mounted")},M)}return g.nextSibling},m=(g,S,H,M,z,y,U)=>{U=U||!!S.dynamicChildren;const P=S.children,N=P.length;for(let b=0;b{const{slotScopeIds:U}=S;U&&(z=z?z.concat(U):U);const P=i(g),N=m(s(g),S,P,H,M,z,y);return N&&hr(N)&&N.data==="]"?s(S.anchor=N):(cn(),a(S.anchor=u("]"),P,N),N)},w=(g,S,H,M,z,y)=>{if(cn(),S.el=null,y){const N=x(g);for(;;){const b=s(g);if(b&&b!==N)l(b);else break}}const U=s(g),P=i(g);return l(g),n(null,S,P,U,H,M,dr(P),z),U},x=(g,S="[",H="]")=>{let M=0;for(;g;)if(g=s(g),g&&hr(g)&&(g.data===S&&M++,g.data===H)){if(M===0)return s(g);M--}return g},O=(g,S,H)=>{const M=S.parentNode;M&&M.replaceChild(g,S);let z=H;for(;z;)z.vnode.el===S&&(z.vnode.el=z.subTree.el=g),z=z.parent},E=g=>g.nodeType===1&&g.tagName.toLowerCase()==="template";return[f,c]}const Ke=Cl;function Zc(e){return eu(e,Xc)}function eu(e,t){const n=Ri();n.__VUE__=!0;const{insert:r,remove:o,patchProp:s,createElement:i,createText:l,createComment:a,setText:u,setElementText:f,parentNode:c,nextSibling:p,setScopeId:m=nt,insertStaticContent:v}=e,w=(d,h,_,C=null,k=null,A=null,B=void 0,V=null,$=!!h.dynamicChildren)=>{if(d===h)return;d&&!Xt(d,h)&&(C=L(d),$e(d,k,A,!0),d=null),h.patchFlag===-2&&($=!1,h.dynamicChildren=null);const{type:T,ref:G,shapeFlag:X}=h;switch(T){case on:x(d,h,_,C);break;case Fe:O(d,h,_,C);break;case Vn:d==null&&E(h,_,C,B);break;case ve:b(d,h,_,C,k,A,B,V,$);break;default:X&1?H(d,h,_,C,k,A,B,V,$):X&6?D(d,h,_,C,k,A,B,V,$):(X&64||X&128)&&T.process(d,h,_,C,k,A,B,V,$,Y)}G!=null&&k&&Ar(G,d&&d.ref,A,h||d,!h)},x=(d,h,_,C)=>{if(d==null)r(h.el=l(h.children),_,C);else{const k=h.el=d.el;h.children!==d.children&&u(k,h.children)}},O=(d,h,_,C)=>{d==null?r(h.el=a(h.children||""),_,C):h.el=d.el},E=(d,h,_,C)=>{[d.el,d.anchor]=v(d.children,h,_,C,d.el,d.anchor)},g=({el:d,anchor:h},_,C)=>{let k;for(;d&&d!==h;)k=p(d),r(d,_,C),d=k;r(h,_,C)},S=({el:d,anchor:h})=>{let _;for(;d&&d!==h;)_=p(d),o(d),d=_;o(h)},H=(d,h,_,C,k,A,B,V,$)=>{h.type==="svg"?B="svg":h.type==="math"&&(B="mathml"),d==null?M(h,_,C,k,A,B,V,$):U(d,h,k,A,B,V,$)},M=(d,h,_,C,k,A,B,V)=>{let $,T;const{props:G,shapeFlag:X,transition:J,dirs:ie}=d;if($=d.el=i(d.type,A,G&&G.is,G),X&8?f($,d.children):X&16&&y(d.children,$,null,C,k,so(d,A),B,V),ie&&dt(d,null,C,"created"),z($,d,d.scopeId,B,C),G){for(const be in G)be!=="value"&&!pn(be)&&s($,be,null,G[be],A,C);"value"in G&&s($,"value",null,G.value,A),(T=G.onVnodeBeforeMount)&&et(T,C,d)}ie&&dt(d,null,C,"beforeMount");const le=Sl(k,J);le&&J.beforeEnter($),r($,h,_),((T=G&&G.onVnodeMounted)||le||ie)&&Ke(()=>{T&&et(T,C,d),le&&J.enter($),ie&&dt(d,null,C,"mounted")},k)},z=(d,h,_,C,k)=>{if(_&&m(d,_),C)for(let A=0;A{for(let T=$;T{const V=h.el=d.el;let{patchFlag:$,dynamicChildren:T,dirs:G}=h;$|=d.patchFlag&16;const X=d.props||Ee,J=h.props||Ee;let ie;if(_&&Kt(_,!1),(ie=J.onVnodeBeforeUpdate)&&et(ie,_,h,d),G&&dt(h,d,_,"beforeUpdate"),_&&Kt(_,!0),(X.innerHTML&&J.innerHTML==null||X.textContent&&J.textContent==null)&&f(V,""),T?P(d.dynamicChildren,T,V,_,C,so(h,k),A):B||q(d,h,V,null,_,C,so(h,k),A,!1),$>0){if($&16)N(V,X,J,_,k);else if($&2&&X.class!==J.class&&s(V,"class",null,J.class,k),$&4&&s(V,"style",X.style,J.style,k),$&8){const le=h.dynamicProps;for(let be=0;be{ie&&et(ie,_,h,d),G&&dt(h,d,_,"updated")},C)},P=(d,h,_,C,k,A,B)=>{for(let V=0;V{if(h!==_){if(h!==Ee)for(const A in h)!pn(A)&&!(A in _)&&s(d,A,h[A],null,k,C);for(const A in _){if(pn(A))continue;const B=_[A],V=h[A];B!==V&&A!=="value"&&s(d,A,V,B,k,C)}"value"in _&&s(d,"value",h.value,_.value,k)}},b=(d,h,_,C,k,A,B,V,$)=>{const T=h.el=d?d.el:l(""),G=h.anchor=d?d.anchor:l("");let{patchFlag:X,dynamicChildren:J,slotScopeIds:ie}=h;ie&&(V=V?V.concat(ie):ie),d==null?(r(T,_,C),r(G,_,C),y(h.children||[],_,G,k,A,B,V,$)):X>0&&X&64&&J&&d.dynamicChildren?(P(d.dynamicChildren,J,_,k,A,B,V),(h.key!=null||k&&h===k.subTree)&&kl(d,h,!0)):q(d,h,_,G,k,A,B,V,$)},D=(d,h,_,C,k,A,B,V,$)=>{h.slotScopeIds=V,d==null?h.shapeFlag&512?k.ctx.activate(h,_,C,B,$):Z(h,_,C,k,A,B,$):ne(d,h,$)},Z=(d,h,_,C,k,A,B)=>{const V=d.component=yu(d,C,k);if(tr(d)&&(V.ctx.renderer=Y),Eu(V,!1,B),V.asyncDep){if(k&&k.registerDep(V,R,B),!d.el){const $=V.subTree=se(Fe);O(null,$,h,_)}}else R(V,d,h,_,k,A,B)},ne=(d,h,_)=>{const C=h.component=d.component;if(uu(d,h,_))if(C.asyncDep&&!C.asyncResolved){Q(C,h,_);return}else C.next=h,pc(C.update),C.effect.dirty=!0,C.update();else h.el=d.el,C.vnode=h},R=(d,h,_,C,k,A,B)=>{const V=()=>{if(d.isMounted){let{next:G,bu:X,u:J,parent:ie,vnode:le}=d;{const an=Pl(d);if(an){G&&(G.el=le.el,Q(d,G,B)),an.asyncDep.then(()=>{d.isUnmounted||V()});return}}let be=G,he;Kt(d,!1),G?(G.el=le.el,Q(d,G,B)):G=le,X&&eo(X),(he=G.props&&G.props.onVnodeBeforeUpdate)&&et(he,ie,G,le),Kt(d,!0);const Re=io(d),st=d.subTree;d.subTree=Re,w(st,Re,c(st.el),L(st),d,k,A),G.el=Re.el,be===null&&fu(d,Re.el),J&&Ke(J,k),(he=G.props&&G.props.onVnodeUpdated)&&Ke(()=>et(he,ie,G,le),k)}else{let G;const{el:X,props:J}=h,{bm:ie,m:le,parent:be}=d,he=vn(h);if(Kt(d,!1),ie&&eo(ie),!he&&(G=J&&J.onVnodeBeforeMount)&&et(G,be,h),Kt(d,!0),X&&me){const Re=()=>{d.subTree=io(d),me(X,d.subTree,d,k,null)};he?h.type.__asyncLoader().then(()=>!d.isUnmounted&&Re()):Re()}else{const Re=d.subTree=io(d);w(null,Re,_,C,d,k,A),h.el=Re.el}if(le&&Ke(le,k),!he&&(G=J&&J.onVnodeMounted)){const Re=h;Ke(()=>et(G,be,Re),k)}(h.shapeFlag&256||be&&vn(be.vnode)&&be.vnode.shapeFlag&256)&&d.a&&Ke(d.a,k),d.isMounted=!0,h=_=C=null}},$=d.effect=new $o(V,nt,()=>Hr(T),d.scope),T=d.update=()=>{$.dirty&&$.run()};T.i=d,T.id=d.uid,Kt(d,!0),T()},Q=(d,h,_)=>{h.component=d;const C=d.vnode.props;d.vnode=h,d.next=null,Fc(d,h.props,C,_),Gc(d,h.children,_),Ft(),ks(d),Ut()},q=(d,h,_,C,k,A,B,V,$=!1)=>{const T=d&&d.children,G=d?d.shapeFlag:0,X=h.children,{patchFlag:J,shapeFlag:ie}=h;if(J>0){if(J&128){De(T,X,_,C,k,A,B,V,$);return}else if(J&256){ge(T,X,_,C,k,A,B,V,$);return}}ie&8?(G&16&&We(T,k,A),X!==T&&f(_,X)):G&16?ie&16?De(T,X,_,C,k,A,B,V,$):We(T,k,A,!0):(G&8&&f(_,""),ie&16&&y(X,_,C,k,A,B,V,$))},ge=(d,h,_,C,k,A,B,V,$)=>{d=d||dn,h=h||dn;const T=d.length,G=h.length,X=Math.min(T,G);let J;for(J=0;JG?We(d,k,A,!0,!1,X):y(h,_,C,k,A,B,V,$,X)},De=(d,h,_,C,k,A,B,V,$)=>{let T=0;const G=h.length;let X=d.length-1,J=G-1;for(;T<=X&&T<=J;){const ie=d[T],le=h[T]=$?At(h[T]):tt(h[T]);if(Xt(ie,le))w(ie,le,_,null,k,A,B,V,$);else break;T++}for(;T<=X&&T<=J;){const ie=d[X],le=h[J]=$?At(h[J]):tt(h[J]);if(Xt(ie,le))w(ie,le,_,null,k,A,B,V,$);else break;X--,J--}if(T>X){if(T<=J){const ie=J+1,le=ieJ)for(;T<=X;)$e(d[T],k,A,!0),T++;else{const ie=T,le=T,be=new Map;for(T=le;T<=J;T++){const Ye=h[T]=$?At(h[T]):tt(h[T]);Ye.key!=null&&be.set(Ye.key,T)}let he,Re=0;const st=J-le+1;let an=!1,hs=0;const Cn=new Array(st);for(T=0;T=st){$e(Ye,k,A,!0);continue}let ft;if(Ye.key!=null)ft=be.get(Ye.key);else for(he=le;he<=J;he++)if(Cn[he-le]===0&&Xt(Ye,h[he])){ft=he;break}ft===void 0?$e(Ye,k,A,!0):(Cn[ft-le]=T+1,ft>=hs?hs=ft:an=!0,w(Ye,h[ft],_,null,k,A,B,V,$),Re++)}const ps=an?tu(Cn):dn;for(he=ps.length-1,T=st-1;T>=0;T--){const Ye=le+T,ft=h[Ye],ms=Ye+1{const{el:A,type:B,transition:V,children:$,shapeFlag:T}=d;if(T&6){Ue(d.component.subTree,h,_,C);return}if(T&128){d.suspense.move(h,_,C);return}if(T&64){B.move(d,h,_,Y);return}if(B===ve){r(A,h,_);for(let X=0;X<$.length;X++)Ue($[X],h,_,C);r(d.anchor,h,_);return}if(B===Vn){g(d,h,_);return}if(C!==2&&T&1&&V)if(C===0)V.beforeEnter(A),r(A,h,_),Ke(()=>V.enter(A),k);else{const{leave:X,delayLeave:J,afterLeave:ie}=V,le=()=>r(A,h,_),be=()=>{X(A,()=>{le(),ie&&ie()})};J?J(A,le,be):be()}else r(A,h,_)},$e=(d,h,_,C=!1,k=!1)=>{const{type:A,props:B,ref:V,children:$,dynamicChildren:T,shapeFlag:G,patchFlag:X,dirs:J,cacheIndex:ie}=d;if(X===-2&&(k=!1),V!=null&&Ar(V,null,_,d,!0),ie!=null&&(h.renderCache[ie]=void 0),G&256){h.ctx.deactivate(d);return}const le=G&1&&J,be=!vn(d);let he;if(be&&(he=B&&B.onVnodeBeforeUnmount)&&et(he,h,d),G&6)ut(d.component,_,C);else{if(G&128){d.suspense.unmount(_,C);return}le&&dt(d,null,h,"beforeUnmount"),G&64?d.type.remove(d,h,_,Y,C):T&&!T.hasOnce&&(A!==ve||X>0&&X&64)?We(T,h,_,!1,!0):(A===ve&&X&384||!k&&G&16)&&We($,h,_),C&&St(d)}(be&&(he=B&&B.onVnodeUnmounted)||le)&&Ke(()=>{he&&et(he,h,d),le&&dt(d,null,h,"unmounted")},_)},St=d=>{const{type:h,el:_,anchor:C,transition:k}=d;if(h===ve){kt(_,C);return}if(h===Vn){S(d);return}const A=()=>{o(_),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(d.shapeFlag&1&&k&&!k.persisted){const{leave:B,delayLeave:V}=k,$=()=>B(_,A);V?V(d.el,A,$):$()}else A()},kt=(d,h)=>{let _;for(;d!==h;)_=p(d),o(d),d=_;o(h)},ut=(d,h,_)=>{const{bum:C,scope:k,update:A,subTree:B,um:V,m:$,a:T}=d;Is($),Is(T),C&&eo(C),k.stop(),A&&(A.active=!1,$e(B,d,h,_)),V&&Ke(V,h),Ke(()=>{d.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&d.asyncDep&&!d.asyncResolved&&d.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},We=(d,h,_,C=!1,k=!1,A=0)=>{for(let B=A;B{if(d.shapeFlag&6)return L(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=p(d.anchor||d.el),_=h&&h[qc];return _?p(_):h};let W=!1;const j=(d,h,_)=>{d==null?h._vnode&&$e(h._vnode,null,null,!0):w(h._vnode||null,d,h,null,null,null,_),h._vnode=d,W||(W=!0,ks(),Pr(),W=!1)},Y={p:w,um:$e,m:Ue,r:St,mt:Z,mc:y,pc:q,pbc:P,n:L,o:e};let ce,me;return t&&([ce,me]=t(Y)),{render:j,hydrate:ce,createApp:jc(j,ce)}}function so({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Kt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Sl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function kl(e,t,n=!1){const r=e.children,o=t.children;if(te(r)&&te(o))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function Pl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Pl(t)}function Is(e){if(e)for(let t=0;tNe(nu);function ou(e,t){return Jo(e,null,t)}const pr={};function Ae(e,t,n){return Jo(e,t,n)}function Jo(e,t,{immediate:n,deep:r,flush:o,once:s,onTrack:i,onTrigger:l}=Ee){if(t&&s){const M=t;t=(...z)=>{M(...z),H()}}const a=Ie,u=M=>r===!0?M:Rt(M,r===!1?1:void 0);let f,c=!1,p=!1;if(Ve(e)?(f=()=>e.value,c=En(e)):mn(e)?(f=()=>u(e),c=!0):te(e)?(p=!0,c=e.some(M=>mn(M)||En(M)),f=()=>e.map(M=>{if(Ve(M))return M.value;if(mn(M))return u(M);if(oe(M))return Mt(M,a,2)})):oe(e)?t?f=()=>Mt(e,a,2):f=()=>(m&&m(),rt(e,a,3,[v])):f=nt,t&&r){const M=f;f=()=>Rt(M())}let m,v=M=>{m=g.onStop=()=>{Mt(M,a,4),m=g.onStop=void 0}},w;if(rr)if(v=nt,t?n&&rt(t,a,3,[f(),p?[]:void 0,v]):f(),o==="sync"){const M=ru();w=M.__watcherHandles||(M.__watcherHandles=[])}else return nt;let x=p?new Array(e.length).fill(pr):pr;const O=()=>{if(!(!g.active||!g.dirty))if(t){const M=g.run();(r||c||(p?M.some((z,y)=>zt(z,x[y])):zt(M,x)))&&(m&&m(),rt(t,a,3,[M,x===pr?void 0:p&&x[0]===pr?[]:x,v]),x=M)}else g.run()};O.allowRecurse=!!t;let E;o==="sync"?E=O:o==="post"?E=()=>Ke(O,a&&a.suspense):(O.pre=!0,a&&(O.id=a.uid),E=()=>Hr(O));const g=new $o(f,nt,E),S=Di(),H=()=>{g.stop(),S&&Do(S.effects,g)};return t?n?O():x=g.run():o==="post"?Ke(g.run.bind(g),a&&a.suspense):g.run(),w&&w.push(H),H}function su(e,t,n){const r=this.proxy,o=xe(e)?e.includes(".")?Ll(r,e):()=>r[e]:e.bind(r,r);let s;oe(t)?s=t:(s=t.handler,n=t);const i=nr(this),l=Jo(o,s.bind(r),n);return i(),l}function Ll(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o{Rt(r,t,n)});else if(Ai(e)){for(const r in e)Rt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Rt(e[r],t,n)}return e}const iu=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Xe(t)}Modifiers`]||e[`${Bt(t)}Modifiers`];function lu(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||Ee;let o=n;const s=t.startsWith("update:"),i=s&&iu(r,t.slice(7));i&&(i.trim&&(o=n.map(f=>xe(f)?f.trim():f)),i.number&&(o=n.map(La)));let l,a=r[l=Zr(t)]||r[l=Zr(Xe(t))];!a&&s&&(a=r[l=Zr(Bt(t))]),a&&rt(a,e,6,o);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,rt(u,e,6,o)}}function xl(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let i={},l=!1;if(!oe(e)){const a=u=>{const f=xl(u,t,!0);f&&(l=!0,ze(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(_e(e)&&r.set(e,null),null):(te(s)?s.forEach(a=>i[a]=null):ze(i,s),_e(e)&&r.set(e,i),i)}function Fr(e,t){return!e||!Qn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ue(e,t[0].toLowerCase()+t.slice(1))||ue(e,Bt(t))||ue(e,t))}function io(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[s],slots:i,attrs:l,emit:a,render:u,renderCache:f,props:c,data:p,setupState:m,ctx:v,inheritAttrs:w}=e,x=Lr(e);let O,E;try{if(n.shapeFlag&4){const S=o||r,H=S;O=tt(u.call(H,S,f,c,m,p,v)),E=l}else{const S=t;O=tt(S.length>1?S(c,{attrs:l,slots:i,emit:a}):S(c,null)),E=t.props?l:au(l)}}catch(S){$n.length=0,er(S,e,1),O=se(Fe)}let g=O;if(E&&w!==!1){const S=Object.keys(E),{shapeFlag:H}=g;S.length&&H&7&&(s&&S.some(zo)&&(E=cu(E,s)),g=$t(g,E,!1,!0))}return n.dirs&&(g=$t(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&(g.transition=n.transition),O=g,Lr(x),O}const au=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qn(n))&&((t||(t={}))[n]=e[n]);return t},cu=(e,t)=>{const n={};for(const r in e)(!zo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function uu(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:l,patchFlag:a}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Ms(r,i,u):!!i;if(a&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function Cl(e,t){t&&t.pendingBranch?te(e)?t.effects.push(...e):t.effects.push(e):mc(e)}const ve=Symbol.for("v-fgt"),on=Symbol.for("v-txt"),Fe=Symbol.for("v-cmt"),Vn=Symbol.for("v-stc"),$n=[];let Je=null;function K(e=!1){$n.push(Je=e?null:[])}function hu(){$n.pop(),Je=$n[$n.length-1]||null}let Un=1;function zs(e){Un+=e,e<0&&Je&&(Je.hasOnce=!0)}function Tl(e){return e.dynamicChildren=Un>0?Je||dn:null,hu(),Un>0&&Je&&Je.push(e),e}function ee(e,t,n,r,o,s){return Tl(re(e,t,n,r,o,s,!0))}function Le(e,t,n,r,o){return Tl(se(e,t,n,r,o,!0))}function Or(e){return e?e.__v_isVNode===!0:!1}function Xt(e,t){return e.type===t.type&&e.key===t.key}const Al=({key:e})=>e??null,yr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?xe(e)||Ve(e)||oe(e)?{i:Me,r:e,k:t,f:!!n}:e:null);function re(e,t=null,n=null,r=0,o=null,s=e===ve?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Al(t),ref:t&&yr(t),scopeId:Nr,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Me};return l?(Xo(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=xe(n)?8:16),Un>0&&!i&&Je&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&Je.push(a),a}const se=pu;function pu(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===Rc)&&(e=Fe),Or(e)){const l=$t(e,t,!0);return n&&Xo(l,n),Un>0&&!s&&Je&&(l.shapeFlag&6?Je[Je.indexOf(e)]=l:Je.push(l)),l.patchFlag=-2,l}if(Lu(e)&&(e=e.__vccOpts),t){t=mu(t);let{class:l,style:a}=t;l&&!xe(l)&&(t.class=Ge(l)),_e(a)&&(Yi(a)&&!te(a)&&(a=ze({},a)),t.style=Xn(a))}const i=xe(e)?1:du(e)?128:Yc(e)?64:_e(e)?4:oe(e)?2:0;return re(e,t,n,r,o,i,s,!0)}function mu(e){return e?Yi(e)||gl(e)?ze({},e):e:null}function $t(e,t,n=!1,r=!1){const{props:o,ref:s,patchFlag:i,children:l,transition:a}=e,u=t?vu(o||{},t):o,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Al(u),ref:t&&t.ref?n&&s?te(s)?s.concat(yr(t)):[s,yr(t)]:yr(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ve?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&$t(e.ssContent),ssFallback:e.ssFallback&&$t(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&Cr(f,a.clone(f)),f}function Ht(e=" ",t=0){return se(on,null,e,t)}function gu(e,t){const n=se(Vn,null,e);return n.staticCount=t,n}function Te(e="",t=!1){return t?(K(),Le(Fe,null,e)):se(Fe,null,e)}function tt(e){return e==null||typeof e=="boolean"?se(Fe):te(e)?se(ve,null,e.slice()):typeof e=="object"?At(e):se(on,null,String(e))}function At(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:$t(e)}function Xo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(te(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Xo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!gl(t)?t._ctx=Me:o===3&&Me&&(Me.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:Me},n=32):(t=String(t),r&64?(n=16,t=[Ht(t)]):n=8);e.children=t,e.shapeFlag|=n}function vu(...e){const t={};for(let n=0;nIe||Me;let Rr,xo;{const e=Ri(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),s=>{o.length>1?o.forEach(i=>i(s)):o[0](s)}};Rr=t("__VUE_INSTANCE_SETTERS__",n=>Ie=n),xo=t("__VUE_SSR_SETTERS__",n=>rr=n)}const nr=e=>{const t=Ie;return Rr(e),e.scope.on(),()=>{e.scope.off(),Rr(t)}},Ds=()=>{Ie&&Ie.scope.off(),Rr(null)};function Ol(e){return e.vnode.shapeFlag&4}let rr=!1;function Eu(e,t=!1,n=!1){t&&xo(t);const{props:r,children:o}=e.vnode,s=Ol(e);Bc(e,r,s,t),Kc(e,o,n);const i=s?wu(e,t):void 0;return t&&xo(!1),i}function wu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Mc);const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?ku(e):null,s=nr(e);Ft();const i=Mt(r,e,0,[e.props,o]);if(Ut(),s(),Ci(i)){if(i.then(Ds,Ds),t)return i.then(l=>{Vs(e,l,t)}).catch(l=>{er(l,e,0)});e.asyncDep=i}else Vs(e,i,t)}else Rl(e,t)}function Vs(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:_e(t)&&(e.setupState=Xi(t)),Rl(e,n)}let $s;function Rl(e,t,n){const r=e.type;if(!e.render){if(!t&&$s&&!r.render){const o=r.template||Yo(e).template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=r,u=ze(ze({isCustomElement:s,delimiters:l},i),a);r.render=$s(o,u)}}e.render=r.render||nt}{const o=nr(e);Ft();try{zc(e)}finally{Ut(),o()}}}const Su={get(e,t){return qe(e,"get",""),e[t]}};function ku(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Su),slots:e.slots,emit:e.emit,expose:t}}function Wr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Xi(rc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Dn)return Dn[n](e)},has(t,n){return n in t||n in Dn}})):e.proxy}function Pu(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Lu(e){return oe(e)&&"__vccOpts"in e}const I=(e,t)=>oc(e,t,rr);function ye(e,t,n){const r=arguments.length;return r===2?_e(t)&&!te(t)?Or(t)?se(e,null,[t]):se(e,t):se(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Or(n)&&(n=[n]),se(e,t,n))}const xu="3.4.38";/** +* @vue/runtime-dom v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Cu="http://www.w3.org/2000/svg",Tu="http://www.w3.org/1998/Math/MathML",_t=typeof document<"u"?document:null,Hs=_t&&_t.createElement("template"),Au={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?_t.createElementNS(Cu,e):t==="mathml"?_t.createElementNS(Tu,e):n?_t.createElement(e,{is:n}):_t.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>_t.createTextNode(e),createComment:e=>_t.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>_t.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Hs.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Hs.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Lt="transition",Tn="animation",Wn=Symbol("_vtc"),or=(e,{slots:t})=>ye(Ec,Ou(e),t);or.displayName="Transition";const Il={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};or.props=ze({},ol,Il);const Gt=(e,t=[])=>{te(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ns=e=>e?te(e)?e.some(t=>t.length>1):e.length>1:!1;function Ou(e){const t={};for(const b in e)b in Il||(t[b]=e[b]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:u=i,appearToClass:f=l,leaveFromClass:c=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,v=Ru(o),w=v&&v[0],x=v&&v[1],{onBeforeEnter:O,onEnter:E,onEnterCancelled:g,onLeave:S,onLeaveCancelled:H,onBeforeAppear:M=O,onAppear:z=E,onAppearCancelled:y=g}=t,U=(b,D,Z)=>{qt(b,D?f:l),qt(b,D?u:i),Z&&Z()},P=(b,D)=>{b._isLeaving=!1,qt(b,c),qt(b,m),qt(b,p),D&&D()},N=b=>(D,Z)=>{const ne=b?z:E,R=()=>U(D,b,Z);Gt(ne,[D,R]),js(()=>{qt(D,b?a:s),xt(D,b?f:l),Ns(ne)||Bs(D,r,w,R)})};return ze(t,{onBeforeEnter(b){Gt(O,[b]),xt(b,s),xt(b,i)},onBeforeAppear(b){Gt(M,[b]),xt(b,a),xt(b,u)},onEnter:N(!1),onAppear:N(!0),onLeave(b,D){b._isLeaving=!0;const Z=()=>P(b,D);xt(b,c),xt(b,p),zu(),js(()=>{b._isLeaving&&(qt(b,c),xt(b,m),Ns(S)||Bs(b,r,x,Z))}),Gt(S,[b,Z])},onEnterCancelled(b){U(b,!1),Gt(g,[b])},onAppearCancelled(b){U(b,!0),Gt(y,[b])},onLeaveCancelled(b){P(b),Gt(H,[b])}})}function Ru(e){if(e==null)return null;if(_e(e))return[lo(e.enter),lo(e.leave)];{const t=lo(e);return[t,t]}}function lo(e){return xa(e)}function xt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Wn]||(e[Wn]=new Set)).add(t)}function qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Wn];n&&(n.delete(t),n.size||(e[Wn]=void 0))}function js(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Iu=0;function Bs(e,t,n,r){const o=e._endId=++Iu,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Mu(e,t);if(!i)return r();const u=i+"end";let f=0;const c=()=>{e.removeEventListener(u,p),s()},p=m=>{m.target===e&&++f>=a&&c()};setTimeout(()=>{f(n[v]||"").split(", "),o=r(`${Lt}Delay`),s=r(`${Lt}Duration`),i=Fs(o,s),l=r(`${Tn}Delay`),a=r(`${Tn}Duration`),u=Fs(l,a);let f=null,c=0,p=0;t===Lt?i>0&&(f=Lt,c=i,p=s.length):t===Tn?u>0&&(f=Tn,c=u,p=a.length):(c=Math.max(i,u),f=c>0?i>u?Lt:Tn:null,p=f?f===Lt?s.length:a.length:0);const m=f===Lt&&/\b(transform|all)(,|$)/.test(r(`${Lt}Property`).toString());return{type:f,timeout:c,propCount:p,hasTransform:m}}function Fs(e,t){for(;e.lengthUs(n)+Us(e[r])))}function Us(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function zu(){return document.body.offsetHeight}function Du(e,t,n){const r=e[Wn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ir=Symbol("_vod"),Ml=Symbol("_vsh"),Mr={beforeMount(e,{value:t},{transition:n}){e[Ir]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):An(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),An(e,!0),r.enter(e)):r.leave(e,()=>{An(e,!1)}):An(e,t))},beforeUnmount(e,{value:t}){An(e,t)}};function An(e,t){e.style.display=t?e[Ir]:"none",e[Ml]=!t}const Vu=Symbol(""),$u=/(^|;)\s*display\s*:/;function Hu(e,t,n){const r=e.style,o=xe(n);let s=!1;if(n&&!o){if(t)if(xe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Er(r,l,"")}else for(const i in t)n[i]==null&&Er(r,i,"");for(const i in n)i==="display"&&(s=!0),Er(r,i,n[i])}else if(o){if(t!==n){const i=r[Vu];i&&(n+=";"+i),r.cssText=n,s=$u.test(n)}}else t&&e.removeAttribute("style");Ir in e&&(e[Ir]=s?r.display:"",e[Ml]&&(r.display="none"))}const Ws=/\s*!important$/;function Er(e,t,n){if(te(n))n.forEach(r=>Er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Nu(e,t);Ws.test(n)?e.setProperty(Bt(r),n.replace(Ws,""),"important"):e[r]=n}}const Ks=["Webkit","Moz","ms"],ao={};function Nu(e,t){const n=ao[t];if(n)return n;let r=Xe(t);if(r!=="filter"&&r in e)return ao[t]=r;r=Jn(r);for(let o=0;oco||(Ku.then(()=>co=0),co=Date.now());function qu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;rt(Yu(r,n.value),t,5,[r])};return n.value=e,n.attached=Gu(),n}function Yu(e,t){if(te(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Js=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Qu=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Du(e,r,i):t==="style"?Hu(e,n,r):Qn(t)?zo(t)||Uu(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Ju(e,t,r,i))?(ju(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&qs(e,t,r,i,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),qs(e,t,r,i))};function Ju(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Js(t)&&oe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Js(t)&&xe(n)?!1:t in e}const Xu={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Zu=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=Bt(o.key);if(t.some(i=>i===s||Xu[i]===s))return e(o)})},ef=ze({patchProp:Qu},Au);let uo,Xs=!1;function tf(){return uo=Xs?uo:Zc(ef),Xs=!0,uo}const nf=(...e)=>{const t=tf().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=of(r);if(o)return n(o,!0,rf(o))},t};function rf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function of(e){return xe(e)?document.querySelector(e):e}var sr=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),sf=/.md((\?|#).*)?$/,lf=(e,t="/")=>sr(e)||e.startsWith("/")&&!e.startsWith(t)&&!sf.test(e),Kr=e=>/^(https?:)?\/\//.test(e),Zs=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},af="http://.",cf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return Zs(new URL(`${n}/${e}`,af).pathname)}return Zs(e)},uf=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},ff=(e,t="/")=>{const n=e.replace(/^(?:https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n},df=/(#|\?)/,zl=e=>{const[t,...n]=e.split(df);return{pathname:t,hashAndQueries:n.join("")}},hf=["link","meta","script","style","noscript","template"],pf=["title","base"],mf=([e,t,n])=>pf.includes(e)?e:hf.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,gf=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=mf(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},vf=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Dl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Zo=e=>e[0]==="/"?e.slice(1):e,es=e=>Object.prototype.toString.call(e)==="[object Object]",it=e=>typeof e=="string";const _f="modulepreload",bf=function(e){return"/"+e},ei={},F=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));o=Promise.all(n.map(l=>{if(l=bf(l),l in ei)return;ei[l]=!0;const a=l.endsWith(".css"),u=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const f=document.createElement("link");if(f.rel=a?"stylesheet":_f,a||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),a)return new Promise((c,p)=>{f.addEventListener("load",c),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${l}`)))})}))}return o.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},yf=JSON.parse("{}"),Ef=Object.fromEntries([["/",{loader:()=>F(()=>import("./index.html-BKJf41aw.js"),[]),meta:{title:"Home"}}],["/advanced/architecture.html",{loader:()=>F(()=>import("./architecture.html-BgpA9p7z.js"),__vite__mapDeps([0,1])),meta:{title:"Architecture"}}],["/advanced/plugin.html",{loader:()=>F(()=>import("./plugin.html-C4CtJaMz.js"),[]),meta:{title:"Writing a Plugin"}}],["/advanced/theme.html",{loader:()=>F(()=>import("./theme.html-Cobgd2Hp.js"),[]),meta:{title:"Writing a Theme"}}],["/guide/assets.html",{loader:()=>F(()=>import("./assets.html-BZjFvqCZ.js"),__vite__mapDeps([2,3])),meta:{title:"Assets"}}],["/guide/bundler.html",{loader:()=>F(()=>import("./bundler.html-CB2ZGG6E.js"),[]),meta:{title:"Bundler"}}],["/guide/configuration.html",{loader:()=>F(()=>import("./configuration.html-BMBa25JX.js"),[]),meta:{title:"Configuration"}}],["/guide/deployment.html",{loader:()=>F(()=>import("./deployment.html-DNlFV4-d.js"),[]),meta:{title:"Deployment"}}],["/guide/getting-started.html",{loader:()=>F(()=>import("./getting-started.html-jV6wexI-.js"),[]),meta:{title:"Getting Started"}}],["/guide/i18n.html",{loader:()=>F(()=>import("./i18n.html-C-Ty_JEU.js"),[]),meta:{title:"I18n"}}],["/guide/introduction.html",{loader:()=>F(()=>import("./introduction.html-CI-XG4vo.js"),[]),meta:{title:"Introduction"}}],["/guide/markdown.html",{loader:()=>F(()=>import("./markdown.html-CeqjvBUr.js"),[]),meta:{title:"Markdown"}}],["/guide/migration.html",{loader:()=>F(()=>import("./migration.html-Dx3K7AjD.js"),[]),meta:{title:"Migrating from v1"}}],["/guide/page.html",{loader:()=>F(()=>import("./page.html-0uLVGCDw.js"),[]),meta:{title:"Page"}}],["/guide/plugin.html",{loader:()=>F(()=>import("./plugin.html-Dt7VyCWC.js"),[]),meta:{title:"Plugin"}}],["/guide/theme.html",{loader:()=>F(()=>import("./theme.html-C-qJAiZh.js"),[]),meta:{title:"Theme"}}],["/guide/troubleshooting.html",{loader:()=>F(()=>import("./troubleshooting.html-BE0ZRamq.js"),[]),meta:{title:"Troubleshooting"}}],["/reference/cli.html",{loader:()=>F(()=>import("./cli.html-Bhuoj_P1.js"),[]),meta:{title:"Command Line Interface"}}],["/reference/client-api.html",{loader:()=>F(()=>import("./client-api.html-iG5vxWBM.js"),[]),meta:{title:"Client API"}}],["/reference/components.html",{loader:()=>F(()=>import("./components.html-DRbtb3z1.js"),[]),meta:{title:"Built-in Components"}}],["/reference/config.html",{loader:()=>F(()=>import("./config.html-BfxQAIgY.js"),[]),meta:{title:"Config"}}],["/reference/frontmatter.html",{loader:()=>F(()=>import("./frontmatter.html-BCqH_rDa.js"),[]),meta:{title:"Frontmatter"}}],["/reference/node-api.html",{loader:()=>F(()=>import("./node-api.html-CZq-HjUT.js"),[]),meta:{title:"Node API"}}],["/reference/plugin-api.html",{loader:()=>F(()=>import("./plugin-api.html-Cq8YwiX_.js"),[]),meta:{title:"Plugin API"}}],["/reference/theme-api.html",{loader:()=>F(()=>import("./theme-api.html-BQ9zAVXy.js"),[]),meta:{title:"Theme API"}}],["/zh/",{loader:()=>F(()=>import("./index.html-Ks9ZeBY5.js"),[]),meta:{title:"首页"}}],["/advanced/cookbook/",{loader:()=>F(()=>import("./index.html-DLD3LnRf.js"),[]),meta:{title:"Introduction"}}],["/advanced/cookbook/adding-extra-pages.html",{loader:()=>F(()=>import("./adding-extra-pages.html-DyVLezP4.js"),[]),meta:{title:"Adding Extra Pages"}}],["/advanced/cookbook/making-a-theme-extendable.html",{loader:()=>F(()=>import("./making-a-theme-extendable.html-eeBKSgE0.js"),[]),meta:{title:"Making a Theme Extendable"}}],["/advanced/cookbook/markdown-and-vue-sfc.html",{loader:()=>F(()=>import("./markdown-and-vue-sfc.html-D1DBAwNE.js"),[]),meta:{title:"Markdown and Vue SFC"}}],["/advanced/cookbook/passing-data-to-client-code.html",{loader:()=>F(()=>import("./passing-data-to-client-code.html-3RqgJn0U.js"),[]),meta:{title:"Passing Data to Client Code"}}],["/advanced/cookbook/resolving-routes.html",{loader:()=>F(()=>import("./resolving-routes.html-oz04Sye_.js"),[]),meta:{title:"Resolving Routes"}}],["/advanced/cookbook/usage-of-client-config.html",{loader:()=>F(()=>import("./usage-of-client-config.html-CaL61Koh.js"),[]),meta:{title:"Usage of Client Config"}}],["/reference/bundler/vite.html",{loader:()=>F(()=>import("./vite.html-D2YcGqRq.js"),[]),meta:{title:"Vite"}}],["/reference/bundler/webpack.html",{loader:()=>F(()=>import("./webpack.html-m4FSTBIG.js"),[]),meta:{title:"Webpack"}}],["/zh/advanced/architecture.html",{loader:()=>F(()=>import("./architecture.html-CbsChR0W.js"),__vite__mapDeps([4,1])),meta:{title:"架构"}}],["/zh/advanced/plugin.html",{loader:()=>F(()=>import("./plugin.html-Bsf-LYEz.js"),[]),meta:{title:"开发插件"}}],["/zh/advanced/theme.html",{loader:()=>F(()=>import("./theme.html-DC0exXkj.js"),[]),meta:{title:"开发主题"}}],["/zh/guide/assets.html",{loader:()=>F(()=>import("./assets.html-CYHEojlm.js"),__vite__mapDeps([5,3])),meta:{title:"静态资源"}}],["/zh/guide/bundler.html",{loader:()=>F(()=>import("./bundler.html-CxqWeejo.js"),[]),meta:{title:"打包工具"}}],["/zh/guide/configuration.html",{loader:()=>F(()=>import("./configuration.html-DNFceaxK.js"),[]),meta:{title:"配置"}}],["/zh/guide/deployment.html",{loader:()=>F(()=>import("./deployment.html-BqB6jREd.js"),[]),meta:{title:"部署"}}],["/zh/guide/getting-started.html",{loader:()=>F(()=>import("./getting-started.html-dBw9gEVC.js"),[]),meta:{title:"快速上手"}}],["/zh/guide/i18n.html",{loader:()=>F(()=>import("./i18n.html-9eIU_Fbw.js"),[]),meta:{title:"多语言支持"}}],["/zh/guide/introduction.html",{loader:()=>F(()=>import("./introduction.html-C9CY7bZ4.js"),[]),meta:{title:"介绍"}}],["/zh/guide/markdown.html",{loader:()=>F(()=>import("./markdown.html-CrFYxoLK.js"),[]),meta:{title:"Markdown"}}],["/zh/guide/migration.html",{loader:()=>F(()=>import("./migration.html-Btp9Fp5f.js"),[]),meta:{title:"从 v1 迁移"}}],["/zh/guide/page.html",{loader:()=>F(()=>import("./page.html-DBI9m5TN.js"),[]),meta:{title:"页面"}}],["/zh/guide/plugin.html",{loader:()=>F(()=>import("./plugin.html-NGNpGVQN.js"),[]),meta:{title:"插件"}}],["/zh/guide/theme.html",{loader:()=>F(()=>import("./theme.html-DkSgNsRZ.js"),[]),meta:{title:"主题"}}],["/zh/guide/troubleshooting.html",{loader:()=>F(()=>import("./troubleshooting.html-pLw8XOqQ.js"),[]),meta:{title:"常见问题"}}],["/zh/reference/cli.html",{loader:()=>F(()=>import("./cli.html-CL4VepSP.js"),[]),meta:{title:"命令行接口"}}],["/zh/reference/client-api.html",{loader:()=>F(()=>import("./client-api.html-D1N1s7pQ.js"),[]),meta:{title:"客户端 API"}}],["/zh/reference/components.html",{loader:()=>F(()=>import("./components.html-CbNhUHdN.js"),[]),meta:{title:"内置组件"}}],["/zh/reference/config.html",{loader:()=>F(()=>import("./config.html-rHmtn1_Z.js"),[]),meta:{title:"配置"}}],["/zh/reference/frontmatter.html",{loader:()=>F(()=>import("./frontmatter.html-BfmWvdQI.js"),[]),meta:{title:"Frontmatter"}}],["/zh/reference/node-api.html",{loader:()=>F(()=>import("./node-api.html-zXFbnqvU.js"),[]),meta:{title:"Node API"}}],["/zh/reference/plugin-api.html",{loader:()=>F(()=>import("./plugin-api.html-DdD6cMAC.js"),[]),meta:{title:"插件 API"}}],["/zh/reference/theme-api.html",{loader:()=>F(()=>import("./theme-api.html-Cys9a5AR.js"),[]),meta:{title:"主题 API"}}],["/zh/advanced/cookbook/",{loader:()=>F(()=>import("./index.html-D279rePd.js"),[]),meta:{title:"介绍"}}],["/zh/advanced/cookbook/adding-extra-pages.html",{loader:()=>F(()=>import("./adding-extra-pages.html-Cyu55hRC.js"),[]),meta:{title:"添加额外页面"}}],["/zh/advanced/cookbook/making-a-theme-extendable.html",{loader:()=>F(()=>import("./making-a-theme-extendable.html-BMVOJX9y.js"),[]),meta:{title:"开发一个可继承的主题"}}],["/zh/advanced/cookbook/markdown-and-vue-sfc.html",{loader:()=>F(()=>import("./markdown-and-vue-sfc.html-ilUJbhcw.js"),[]),meta:{title:"Markdown 与 Vue SFC"}}],["/zh/advanced/cookbook/passing-data-to-client-code.html",{loader:()=>F(()=>import("./passing-data-to-client-code.html--Iz9ID3-.js"),[]),meta:{title:"向客户端代码传递数据"}}],["/zh/advanced/cookbook/resolving-routes.html",{loader:()=>F(()=>import("./resolving-routes.html-BlUKHldU.js"),[]),meta:{title:"解析路由"}}],["/zh/advanced/cookbook/usage-of-client-config.html",{loader:()=>F(()=>import("./usage-of-client-config.html-DJVJZyIC.js"),[]),meta:{title:"客户端配置的使用方法"}}],["/zh/reference/bundler/vite.html",{loader:()=>F(()=>import("./vite.html-DiqpyHUF.js"),[]),meta:{title:"Vite"}}],["/zh/reference/bundler/webpack.html",{loader:()=>F(()=>import("./webpack.html-B7FhctWX.js"),[]),meta:{title:"Webpack"}}],["/404.html",{loader:()=>F(()=>import("./404.html-BJQsmBKA.js"),[]),meta:{title:""}}]]);/*! + * vue-router v4.4.3 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const fn=typeof document<"u";function wf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const pe=Object.assign;function fo(e,t){const n={};for(const r in t){const o=t[r];n[r]=lt(o)?o.map(e):e(o)}return n}const Hn=()=>{},lt=Array.isArray,Vl=/#/g,Sf=/&/g,kf=/\//g,Pf=/=/g,Lf=/\?/g,$l=/\+/g,xf=/%5B/g,Cf=/%5D/g,Hl=/%5E/g,Tf=/%60/g,Nl=/%7B/g,Af=/%7C/g,jl=/%7D/g,Of=/%20/g;function ts(e){return encodeURI(""+e).replace(Af,"|").replace(xf,"[").replace(Cf,"]")}function Rf(e){return ts(e).replace(Nl,"{").replace(jl,"}").replace(Hl,"^")}function Co(e){return ts(e).replace($l,"%2B").replace(Of,"+").replace(Vl,"%23").replace(Sf,"%26").replace(Tf,"`").replace(Nl,"{").replace(jl,"}").replace(Hl,"^")}function If(e){return Co(e).replace(Pf,"%3D")}function Mf(e){return ts(e).replace(Vl,"%23").replace(Lf,"%3F")}function zf(e){return e==null?"":Mf(e).replace(kf,"%2F")}function Kn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Df=/\/$/,Vf=e=>e.replace(Df,"");function ho(e,t,n="/"){let r,o={},s="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),s=t.slice(a+1,l>-1?l:t.length),o=e(s)),l>-1&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=jf(r??t,n),{fullPath:r+(s&&"?")+s+i,path:r,query:o,hash:Kn(i)}}function $f(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ti(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Hf(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&wn(t.matched[r],n.matched[o])&&Bl(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function wn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Bl(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Nf(e[n],t[n]))return!1;return!0}function Nf(e,t){return lt(e)?ni(e,t):lt(t)?ni(t,e):e===t}function ni(e,t){return lt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function jf(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,i,l;for(i=0;i1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(i).join("/")}const vt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Gn;(function(e){e.pop="pop",e.push="push"})(Gn||(Gn={}));var Nn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Nn||(Nn={}));function Bf(e){if(!e)if(fn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Vf(e)}const Ff=/^[^#]+#/;function Uf(e,t){return e.replace(Ff,"#")+t}function Wf(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Gr=()=>({left:window.scrollX,top:window.scrollY});function Kf(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Wf(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ri(e,t){return(history.state?history.state.position-t:-1)+e}const To=new Map;function Gf(e,t){To.set(e,t)}function qf(e){const t=To.get(e);return To.delete(e),t}let Yf=()=>location.protocol+"//"+location.host;function Fl(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let l=o.includes(e.slice(s))?e.slice(s).length:1,a=o.slice(l);return a[0]!=="/"&&(a="/"+a),ti(a,"")}return ti(n,e)+r+o}function Qf(e,t,n,r){let o=[],s=[],i=null;const l=({state:p})=>{const m=Fl(e,location),v=n.value,w=t.value;let x=0;if(p){if(n.value=m,t.value=p,i&&i===v){i=null;return}x=w?p.position-w.position:0}else r(m);o.forEach(O=>{O(n.value,v,{delta:x,type:Gn.pop,direction:x?x>0?Nn.forward:Nn.back:Nn.unknown})})};function a(){i=n.value}function u(p){o.push(p);const m=()=>{const v=o.indexOf(p);v>-1&&o.splice(v,1)};return s.push(m),m}function f(){const{history:p}=window;p.state&&p.replaceState(pe({},p.state,{scroll:Gr()}),"")}function c(){for(const p of s)p();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:a,listen:u,destroy:c}}function oi(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?Gr():null}}function Jf(e){const{history:t,location:n}=window,r={value:Fl(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(a,u,f){const c=e.indexOf("#"),p=c>-1?(n.host&&document.querySelector("base")?e:e.slice(c))+a:Yf()+e+a;try{t[f?"replaceState":"pushState"](u,"",p),o.value=u}catch(m){console.error(m),n[f?"replace":"assign"](p)}}function i(a,u){const f=pe({},t.state,oi(o.value.back,a,o.value.forward,!0),u,{position:o.value.position});s(a,f,!0),r.value=a}function l(a,u){const f=pe({},o.value,t.state,{forward:a,scroll:Gr()});s(f.current,f,!0);const c=pe({},oi(r.value,a,null),{position:f.position+1},u);s(a,c,!1),r.value=a}return{location:r,state:o,push:l,replace:i}}function Xf(e){e=Bf(e);const t=Jf(e),n=Qf(e,t.state,t.location,t.replace);function r(s,i=!0){i||n.pauseListeners(),history.go(s)}const o=pe({location:"",base:e,go:r,createHref:Uf.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function Zf(e){return typeof e=="string"||e&&typeof e=="object"}function Ul(e){return typeof e=="string"||typeof e=="symbol"}const Wl=Symbol("");var si;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(si||(si={}));function Sn(e,t){return pe(new Error,{type:e,[Wl]:!0},t)}function mt(e,t){return e instanceof Error&&Wl in e&&(t==null||!!(e.type&t))}const ii="[^/]+?",ed={sensitive:!1,strict:!1,start:!0,end:!0},td=/[.+*?^${}()[\]/\\]/g;function nd(e,t){const n=pe({},ed,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const f=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let c=0;ct.length?t.length===1&&t[0]===80?1:-1:0}function Kl(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const od={type:0,value:""},sd=/[a-zA-Z0-9_]/;function id(e){if(!e)return[[]];if(e==="/")return[[od]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=0,r=n;const o=[];let s;function i(){s&&o.push(s),s=[]}let l=0,a,u="",f="";function c(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:f,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function p(){u+=a}for(;l{i(g)}:Hn}function i(c){if(Ul(c)){const p=r.get(c);p&&(r.delete(c),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(c);p>-1&&(n.splice(p,1),c.record.name&&r.delete(c.record.name),c.children.forEach(i),c.alias.forEach(i))}}function l(){return n}function a(c){const p=dd(c,n);n.splice(p,0,c),c.record.name&&!ci(c)&&r.set(c.record.name,c)}function u(c,p){let m,v={},w,x;if("name"in c&&c.name){if(m=r.get(c.name),!m)throw Sn(1,{location:c});x=m.record.name,v=pe(ai(p.params,m.keys.filter(g=>!g.optional).concat(m.parent?m.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),c.params&&ai(c.params,m.keys.map(g=>g.name))),w=m.stringify(v)}else if(c.path!=null)w=c.path,m=n.find(g=>g.re.test(w)),m&&(v=m.parse(w),x=m.record.name);else{if(m=p.name?r.get(p.name):n.find(g=>g.re.test(p.path)),!m)throw Sn(1,{location:c,currentLocation:p});x=m.record.name,v=pe({},p.params,c.params),w=m.stringify(v)}const O=[];let E=m;for(;E;)O.unshift(E.record),E=E.parent;return{name:x,path:w,params:v,matched:O,meta:fd(O)}}e.forEach(c=>s(c));function f(){n.length=0,r.clear()}return{addRoute:s,resolve:u,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:o}}function ai(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function cd(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:ud(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function ud(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ci(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function fd(e){return e.reduce((t,n)=>pe(t,n.meta),{})}function ui(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function dd(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;Kl(e,t[s])<0?r=s:n=s+1}const o=hd(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function hd(e){let t=e;for(;t=t.parent;)if(Gl(t)&&Kl(e,t)===0)return t}function Gl({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function pd(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Co(s)):[r&&Co(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function md(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=lt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const gd=Symbol(""),di=Symbol(""),qr=Symbol(""),ns=Symbol(""),Ao=Symbol("");function On(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ot(e,t,n,r,o,s=i=>i()){const i=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const u=p=>{p===!1?a(Sn(4,{from:n,to:t})):p instanceof Error?a(p):Zf(p)?a(Sn(2,{from:t,to:p})):(i&&r.enterCallbacks[o]===i&&typeof p=="function"&&i.push(p),l())},f=s(()=>e.call(r&&r.instances[o],t,n,u));let c=Promise.resolve(f);e.length<3&&(c=c.then(u)),c.catch(p=>a(p))})}function po(e,t,n,r,o=s=>s()){const s=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(vd(a)){const f=(a.__vccOpts||a)[t];f&&s.push(Ot(f,n,r,i,l,o))}else{let u=a();s.push(()=>u.then(f=>{if(!f)return Promise.reject(new Error(`Couldn't resolve component "${l}" at "${i.path}"`));const c=wf(f)?f.default:f;i.components[l]=c;const m=(c.__vccOpts||c)[t];return m&&Ot(m,n,r,i,l,o)()}))}}return s}function vd(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function hi(e){const t=Ne(qr),n=Ne(ns),r=I(()=>{const a=nn(e.to);return t.resolve(a)}),o=I(()=>{const{matched:a}=r.value,{length:u}=a,f=a[u-1],c=n.matched;if(!f||!c.length)return-1;const p=c.findIndex(wn.bind(null,f));if(p>-1)return p;const m=pi(a[u-2]);return u>1&&pi(f)===m&&c[c.length-1].path!==m?c.findIndex(wn.bind(null,a[u-2])):p}),s=I(()=>o.value>-1&&Ed(n.params,r.value.params)),i=I(()=>o.value>-1&&o.value===n.matched.length-1&&Bl(n.params,r.value.params));function l(a={}){return yd(a)?t[nn(e.replace)?"replace":"push"](nn(e.to)).catch(Hn):Promise.resolve()}return{route:r,href:I(()=>r.value.href),isActive:s,isExactActive:i,navigate:l}}const _d=de({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:hi,setup(e,{slots:t}){const n=Zn(hi(e)),{options:r}=Ne(qr),o=I(()=>({[mi(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[mi(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:ye("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),bd=_d;function yd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ed(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!lt(o)||o.length!==r.length||r.some((s,i)=>s!==o[i]))return!1}return!0}function pi(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const mi=(e,t,n)=>e??t??n,wd=de({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ne(Ao),o=I(()=>e.route||r.value),s=Ne(di,0),i=I(()=>{let u=nn(s);const{matched:f}=o.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),l=I(()=>o.value.matched[i.value]);rn(di,I(()=>i.value+1)),rn(gd,l),rn(Ao,o);const a=ae();return Ae(()=>[a.value,l.value,e.name],([u,f,c],[p,m,v])=>{f&&(f.instances[c]=u,m&&m!==f&&u&&u===p&&(f.leaveGuards.size||(f.leaveGuards=m.leaveGuards),f.updateGuards.size||(f.updateGuards=m.updateGuards))),u&&f&&(!m||!wn(f,m)||!p)&&(f.enterCallbacks[c]||[]).forEach(w=>w(u))},{flush:"post"}),()=>{const u=o.value,f=e.name,c=l.value,p=c&&c.components[f];if(!p)return gi(n.default,{Component:p,route:u});const m=c.props[f],v=m?m===!0?u.params:typeof m=="function"?m(u):m:null,x=ye(p,pe({},v,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(c.instances[f]=null)},ref:a}));return gi(n.default,{Component:x,route:u})||x}}});function gi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Sd=wd;function kd(e){const t=ad(e.routes,e),n=e.parseQuery||pd,r=e.stringifyQuery||fi,o=e.history,s=On(),i=On(),l=On(),a=Dt(vt);let u=vt;fn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=fo.bind(null,L=>""+L),c=fo.bind(null,zf),p=fo.bind(null,Kn);function m(L,W){let j,Y;return Ul(L)?(j=t.getRecordMatcher(L),Y=W):Y=L,t.addRoute(Y,j)}function v(L){const W=t.getRecordMatcher(L);W&&t.removeRoute(W)}function w(){return t.getRoutes().map(L=>L.record)}function x(L){return!!t.getRecordMatcher(L)}function O(L,W){if(W=pe({},W||a.value),typeof L=="string"){const h=ho(n,L,W.path),_=t.resolve({path:h.path},W),C=o.createHref(h.fullPath);return pe(h,_,{params:p(_.params),hash:Kn(h.hash),redirectedFrom:void 0,href:C})}let j;if(L.path!=null)j=pe({},L,{path:ho(n,L.path,W.path).path});else{const h=pe({},L.params);for(const _ in h)h[_]==null&&delete h[_];j=pe({},L,{params:c(h)}),W.params=c(W.params)}const Y=t.resolve(j,W),ce=L.hash||"";Y.params=f(p(Y.params));const me=$f(r,pe({},L,{hash:Rf(ce),path:Y.path})),d=o.createHref(me);return pe({fullPath:me,hash:ce,query:r===fi?md(L.query):L.query||{}},Y,{redirectedFrom:void 0,href:d})}function E(L){return typeof L=="string"?ho(n,L,a.value.path):pe({},L)}function g(L,W){if(u!==L)return Sn(8,{from:W,to:L})}function S(L){return z(L)}function H(L){return S(pe(E(L),{replace:!0}))}function M(L){const W=L.matched[L.matched.length-1];if(W&&W.redirect){const{redirect:j}=W;let Y=typeof j=="function"?j(L):j;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=E(Y):{path:Y},Y.params={}),pe({query:L.query,hash:L.hash,params:Y.path!=null?{}:L.params},Y)}}function z(L,W){const j=u=O(L),Y=a.value,ce=L.state,me=L.force,d=L.replace===!0,h=M(j);if(h)return z(pe(E(h),{state:typeof h=="object"?pe({},ce,h.state):ce,force:me,replace:d}),W||j);const _=j;_.redirectedFrom=W;let C;return!me&&Hf(r,Y,j)&&(C=Sn(16,{to:_,from:Y}),Ue(Y,Y,!0,!1)),(C?Promise.resolve(C):P(_,Y)).catch(k=>mt(k)?mt(k,2)?k:De(k):q(k,_,Y)).then(k=>{if(k){if(mt(k,2))return z(pe({replace:d},E(k.to),{state:typeof k.to=="object"?pe({},ce,k.to.state):ce,force:me}),W||_)}else k=b(_,Y,!0,d,ce);return N(_,Y,k),k})}function y(L,W){const j=g(L,W);return j?Promise.reject(j):Promise.resolve()}function U(L){const W=kt.values().next().value;return W&&typeof W.runWithContext=="function"?W.runWithContext(L):L()}function P(L,W){let j;const[Y,ce,me]=Pd(L,W);j=po(Y.reverse(),"beforeRouteLeave",L,W);for(const h of Y)h.leaveGuards.forEach(_=>{j.push(Ot(_,L,W))});const d=y.bind(null,L,W);return j.push(d),We(j).then(()=>{j=[];for(const h of s.list())j.push(Ot(h,L,W));return j.push(d),We(j)}).then(()=>{j=po(ce,"beforeRouteUpdate",L,W);for(const h of ce)h.updateGuards.forEach(_=>{j.push(Ot(_,L,W))});return j.push(d),We(j)}).then(()=>{j=[];for(const h of me)if(h.beforeEnter)if(lt(h.beforeEnter))for(const _ of h.beforeEnter)j.push(Ot(_,L,W));else j.push(Ot(h.beforeEnter,L,W));return j.push(d),We(j)}).then(()=>(L.matched.forEach(h=>h.enterCallbacks={}),j=po(me,"beforeRouteEnter",L,W,U),j.push(d),We(j))).then(()=>{j=[];for(const h of i.list())j.push(Ot(h,L,W));return j.push(d),We(j)}).catch(h=>mt(h,8)?h:Promise.reject(h))}function N(L,W,j){l.list().forEach(Y=>U(()=>Y(L,W,j)))}function b(L,W,j,Y,ce){const me=g(L,W);if(me)return me;const d=W===vt,h=fn?history.state:{};j&&(Y||d?o.replace(L.fullPath,pe({scroll:d&&h&&h.scroll},ce)):o.push(L.fullPath,ce)),a.value=L,Ue(L,W,j,d),De()}let D;function Z(){D||(D=o.listen((L,W,j)=>{if(!ut.listening)return;const Y=O(L),ce=M(Y);if(ce){z(pe(ce,{replace:!0}),Y).catch(Hn);return}u=Y;const me=a.value;fn&&Gf(ri(me.fullPath,j.delta),Gr()),P(Y,me).catch(d=>mt(d,12)?d:mt(d,2)?(z(d.to,Y).then(h=>{mt(h,20)&&!j.delta&&j.type===Gn.pop&&o.go(-1,!1)}).catch(Hn),Promise.reject()):(j.delta&&o.go(-j.delta,!1),q(d,Y,me))).then(d=>{d=d||b(Y,me,!1),d&&(j.delta&&!mt(d,8)?o.go(-j.delta,!1):j.type===Gn.pop&&mt(d,20)&&o.go(-1,!1)),N(Y,me,d)}).catch(Hn)}))}let ne=On(),R=On(),Q;function q(L,W,j){De(L);const Y=R.list();return Y.length?Y.forEach(ce=>ce(L,W,j)):console.error(L),Promise.reject(L)}function ge(){return Q&&a.value!==vt?Promise.resolve():new Promise((L,W)=>{ne.add([L,W])})}function De(L){return Q||(Q=!L,Z(),ne.list().forEach(([W,j])=>L?j(L):W()),ne.reset()),L}function Ue(L,W,j,Y){const{scrollBehavior:ce}=e;if(!fn||!ce)return Promise.resolve();const me=!j&&qf(ri(L.fullPath,0))||(Y||!j)&&history.state&&history.state.scroll||null;return Pn().then(()=>ce(L,W,me)).then(d=>d&&Kf(d)).catch(d=>q(d,L,W))}const $e=L=>o.go(L);let St;const kt=new Set,ut={currentRoute:a,listening:!0,addRoute:m,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:x,getRoutes:w,resolve:O,options:e,push:S,replace:H,go:$e,back:()=>$e(-1),forward:()=>$e(1),beforeEach:s.add,beforeResolve:i.add,afterEach:l.add,onError:R.add,isReady:ge,install(L){const W=this;L.component("RouterLink",bd),L.component("RouterView",Sd),L.config.globalProperties.$router=W,Object.defineProperty(L.config.globalProperties,"$route",{enumerable:!0,get:()=>nn(a)}),fn&&!St&&a.value===vt&&(St=!0,S(o.location).catch(ce=>{}));const j={};for(const ce in vt)Object.defineProperty(j,ce,{get:()=>a.value[ce],enumerable:!0});L.provide(qr,W),L.provide(ns,qi(j)),L.provide(Ao,a);const Y=L.unmount;kt.add(L),L.unmount=function(){kt.delete(L),kt.size<1&&(u=vt,D&&D(),D=null,a.value=vt,St=!1,Q=!1),Y()}}};function We(L){return L.reduce((W,j)=>W.then(()=>U(j)),Promise.resolve())}return ut}function Pd(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let i=0;iwn(u,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(u=>wn(u,a))||o.push(a))}return[n,r,o]}function Wt(){return Ne(qr)}function Et(e){return Ne(ns)}var rs=Symbol(""),pt=()=>{const e=Ne(rs);if(!e)throw new Error("useClientData() is called without provider.");return e},Ld=()=>pt().pageComponent,Ln=()=>pt().pageData,ct=()=>pt().pageFrontmatter,xd=()=>pt().pageHead,ql=()=>pt().pageLang,Cd=()=>pt().pageLayout,ln=()=>pt().routeLocale,Td=()=>pt().routes,Yl=()=>pt().siteData,os=()=>pt().siteLocaleData,Ad=Symbol(""),Oo=Dt(yf),bn=Dt(Ef),Ql=(e,t)=>{const n=cf(e,t);if(bn.value[n])return n;const r=encodeURI(n);if(bn.value[r])return r;const o=Oo.value[n]||Oo.value[r];return o||n},qn=(e,t)=>{const{pathname:n,hashAndQueries:r}=zl(e),o=Ql(n,t),s=o+r;return bn.value[o]?{...bn.value[o],path:s,notFound:!1}:{...bn.value["/404.html"],path:s,notFound:!0}},Od=(e,t)=>{const{pathname:n,hashAndQueries:r}=zl(e);return Ql(n,t)+r},Rd=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},Yr=de({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=Wt(),r=Et(),o=I(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/${Od(e.to,r.path).substring(1)}`);return()=>{var s;return ye("a",{class:["route-link",{[e.activeClass]:e.active}],href:o.value,onClick:(i={})=>{Rd(i)&&n.push(e.to).catch()}},(s=t.default)==null?void 0:s.call(t))}}}),xn=de({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=fc(e,"config"),r=Et(),o=Yl(),s=I(()=>sr(n.value.link)),i=I(()=>n.value.target||(s.value?"_blank":void 0)),l=I(()=>i.value==="_blank"),a=I(()=>!s.value&&!l.value),u=I(()=>n.value.rel||(l.value?"noopener noreferrer":null)),f=I(()=>n.value.ariaLabel??n.value.text),c=I(()=>{if(n.value.exact)return!1;const m=Object.keys(o.value.locales);return m.length?m.every(v=>v!==n.value.link):n.value.link!=="/"}),p=I(()=>a.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(r.path):c.value?r.path.startsWith(n.value.link):r.path===n.value.link:!1);return()=>{const{before:m,after:v,default:w}=t,x=(w==null?void 0:w(n.value))||[m==null?void 0:m(n.value),n.value.text,v==null?void 0:v(n.value)];return a.value?ye(Yr,{class:"auto-link",to:n.value.link,active:p.value,"aria-label":f.value},()=>x):ye("a",{class:"auto-link external-link",href:n.value.link,"aria-label":f.value,rel:u.value,target:i.value},x)}}}),ss=de({name:"ClientOnly",setup(e,t){const n=ae(!1);return je(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),is=de({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=Ld(),n=I(()=>{if(!e.path)return t.value;const r=qn(e.path);return al(()=>r.loader().then(({comp:o})=>o))});return()=>ye(n.value)}}),Id="Layout",Md="en-US",Yt=Zn({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=it(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return gf(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||Md,resolvePageLayout:(e,t)=>{const n=it(e.frontmatter.layout)?e.frontmatter.layout:Id;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>uf(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},r)=>{var o;return{...n,...t[r],head:[...((o=t[r])==null?void 0:o.head)??[],...n.head??[]]}}}),wt=(e={})=>e,ls=e=>Kr(e)?e:`/${Zo(e)}`;function Qr(e){return Di()?(Da(e),!0):!1}function at(e){return typeof e=="function"?e():nn(e)}const as=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zd=Object.prototype.toString,Dd=e=>zd.call(e)==="[object Object]",Ro=()=>{};function Jl(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const Xl=e=>e();function Vd(e,t={}){let n,r,o=Ro;const s=l=>{clearTimeout(l),o(),o=Ro};return l=>{const a=at(e),u=at(t.maxWait);return n&&s(n),a<=0||u!==void 0&&u<=0?(r&&(s(r),r=null),Promise.resolve(l())):new Promise((f,c)=>{o=t.rejectOnCancel?c:f,u&&!r&&(r=setTimeout(()=>{n&&s(n),r=null,f(l())},u)),n=setTimeout(()=>{r&&s(r),r=null,f(l())},a)})}}function $d(e=Xl){const t=ae(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:$r(t),pause:n,resume:r,eventFilter:o}}function Hd(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function Nd(e){return Ur()}function jd(e,t=200,n={}){return Jl(Vd(t,n),e)}function Bd(e,t,n={}){const{eventFilter:r=Xl,...o}=n;return Ae(e,Jl(r,t),o)}function Fd(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:i,resume:l,isActive:a}=$d(r);return{stop:Bd(e,t,{...o,eventFilter:s}),pause:i,resume:l,isActive:a}}function cs(e,t=!0,n){Nd()?je(e,n):t?e():Pn(e)}function Ud(e,t,n={}){const{immediate:r=!0}=n,o=ae(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){o.value=!1,i()}function a(...u){i(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},at(t))}return r&&(o.value=!0,as&&a()),Qr(l),{isPending:$r(o),start:a,stop:l}}function Wd(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=Ve(e),s=ae(e);function i(l){if(arguments.length)return s.value=l,s.value;{const a=at(n);return s.value=s.value===a?at(r):a,s.value}}return o?i:[s,i]}function Zt(e){var t;const n=at(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Nt=as?window:void 0,Zl=as?window.navigator:void 0;function ot(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Nt):[t,n,r,o]=e,!t)return Ro;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(f=>f()),s.length=0},l=(f,c,p,m)=>(f.addEventListener(c,p,m),()=>f.removeEventListener(c,p,m)),a=Ae(()=>[Zt(t),at(o)],([f,c])=>{if(i(),!f)return;const p=Dd(c)?{...c}:c;s.push(...n.flatMap(m=>r.map(v=>l(f,m,v,p))))},{immediate:!0,flush:"post"}),u=()=>{a(),i()};return Qr(u),u}function Kd(){const e=ae(!1),t=Ur();return t&&je(()=>{e.value=!0},t),e}function Jr(e){const t=Kd();return I(()=>(t.value,!!e()))}function us(e,t={}){const{window:n=Nt}=t,r=Jr(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=ae(!1),i=u=>{s.value=u.matches},l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},a=ou(()=>{r.value&&(l(),o=n.matchMedia(at(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),s.value=o.matches)});return Qr(()=>{a(),l(),o=void 0}),s}function vi(e,t={}){const{controls:n=!1,navigator:r=Zl}=t,o=Jr(()=>r&&"permissions"in r),s=Dt(),i=typeof e=="string"?{name:e}:e,l=Dt(),a=()=>{var f,c;l.value=(c=(f=s.value)==null?void 0:f.state)!=null?c:"prompt"};ot(s,"change",a);const u=Hd(async()=>{if(o.value){if(!s.value)try{s.value=await r.permissions.query(i)}catch{s.value=void 0}finally{a()}if(n)return fe(s.value)}});return u(),n?{state:l,isSupported:o,query:u}:l}function Gd(e={}){const{navigator:t=Zl,read:n=!1,source:r,copiedDuring:o=1500,legacy:s=!1}=e,i=Jr(()=>t&&"clipboard"in t),l=vi("clipboard-read"),a=vi("clipboard-write"),u=I(()=>i.value||s),f=ae(""),c=ae(!1),p=Ud(()=>c.value=!1,o);function m(){i.value&&O(l.value)?t.clipboard.readText().then(E=>{f.value=E}):f.value=x()}u.value&&n&&ot(["copy","cut"],m);async function v(E=at(r)){u.value&&E!=null&&(i.value&&O(a.value)?await t.clipboard.writeText(E):w(E),f.value=E,c.value=!0,p.start())}function w(E){const g=document.createElement("textarea");g.value=E??"",g.style.position="absolute",g.style.opacity="0",document.body.appendChild(g),g.select(),document.execCommand("copy"),g.remove()}function x(){var E,g,S;return(S=(g=(E=document==null?void 0:document.getSelection)==null?void 0:E.call(document))==null?void 0:g.toString())!=null?S:""}function O(E){return E==="granted"||E==="prompt"}return{isSupported:u,text:f,copied:c,copy:v}}const mr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},gr="__vueuse_ssr_handlers__",qd=Yd();function Yd(){return gr in mr||(mr[gr]=mr[gr]||{}),mr[gr]}function Qd(e,t){return qd[e]||t}function Jd(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Xd={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},_i="vueuse-storage";function ea(e,t,n,r={}){var o;const{flush:s="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:a=!0,mergeDefaults:u=!1,shallow:f,window:c=Nt,eventFilter:p,onError:m=P=>{console.error(P)},initOnMounted:v}=r,w=(f?Dt:ae)(typeof t=="function"?t():t);if(!n)try{n=Qd("getDefaultStorage",()=>{var P;return(P=Nt)==null?void 0:P.localStorage})()}catch(P){m(P)}if(!n)return w;const x=at(t),O=Jd(x),E=(o=r.serializer)!=null?o:Xd[O],{pause:g,resume:S}=Fd(w,()=>M(w.value),{flush:s,deep:i,eventFilter:p});c&&l&&cs(()=>{n instanceof Storage?ot(c,"storage",y):ot(c,_i,U),v&&y()}),v||y();function H(P,N){if(c){const b={key:e,oldValue:P,newValue:N,storageArea:n};c.dispatchEvent(n instanceof Storage?new StorageEvent("storage",b):new CustomEvent(_i,{detail:b}))}}function M(P){try{const N=n.getItem(e);if(P==null)H(N,null),n.removeItem(e);else{const b=E.write(P);N!==b&&(n.setItem(e,b),H(N,b))}}catch(N){m(N)}}function z(P){const N=P?P.newValue:n.getItem(e);if(N==null)return a&&x!=null&&n.setItem(e,E.write(x)),x;if(!P&&u){const b=E.read(N);return typeof u=="function"?u(b,x):O==="object"&&!Array.isArray(b)?{...x,...b}:b}else return typeof N!="string"?N:E.read(N)}function y(P){if(!(P&&P.storageArea!==n)){if(P&&P.key==null){w.value=x;return}if(!(P&&P.key!==e)){g();try{(P==null?void 0:P.newValue)!==E.write(w.value)&&(w.value=z(P))}catch(N){m(N)}finally{P?Pn(S):S()}}}}function U(P){y(P.detail)}return w}function Zd(e){return us("(prefers-color-scheme: dark)",e)}function eh(e,t,n={}){const{window:r=Nt,...o}=n;let s;const i=Jr(()=>r&&"ResizeObserver"in r),l=()=>{s&&(s.disconnect(),s=void 0)},a=I(()=>{const c=at(e);return Array.isArray(c)?c.map(p=>Zt(p)):[Zt(c)]}),u=Ae(a,c=>{if(l(),i.value&&r){s=new ResizeObserver(t);for(const p of c)p&&s.observe(p,o)}},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return Qr(f),{isSupported:i,stop:f}}function th(e,t={width:0,height:0},n={}){const{window:r=Nt,box:o="content-box"}=n,s=I(()=>{var c,p;return(p=(c=Zt(e))==null?void 0:c.namespaceURI)==null?void 0:p.includes("svg")}),i=ae(t.width),l=ae(t.height),{stop:a}=eh(e,([c])=>{const p=o==="border-box"?c.borderBoxSize:o==="content-box"?c.contentBoxSize:c.devicePixelContentBoxSize;if(r&&s.value){const m=Zt(e);if(m){const v=m.getBoundingClientRect();i.value=v.width,l.value=v.height}}else if(p){const m=Array.isArray(p)?p:[p];i.value=m.reduce((v,{inlineSize:w})=>v+w,0),l.value=m.reduce((v,{blockSize:w})=>v+w,0)}else i.value=c.contentRect.width,l.value=c.contentRect.height},n);cs(()=>{const c=Zt(e);c&&(i.value="offsetWidth"in c?c.offsetWidth:t.width,l.value="offsetHeight"in c?c.offsetHeight:t.height)});const u=Ae(()=>Zt(e),c=>{i.value=c?t.width:0,l.value=c?t.height:0});function f(){a(),u()}return{width:i,height:l,stop:f}}function nh(e={}){const{window:t=Nt,behavior:n="auto"}=e;if(!t)return{x:ae(0),y:ae(0)};const r=ae(t.scrollX),o=ae(t.scrollY),s=I({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=I({get(){return o.value},set(l){scrollTo({top:l,behavior:n})}});return ot(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:i}}function rh(e={}){const{window:t=Nt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:s=!0,type:i="inner"}=e,l=ae(n),a=ae(r),u=()=>{t&&(i==="outer"?(l.value=t.outerWidth,a.value=t.outerHeight):s?(l.value=t.innerWidth,a.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,a.value=t.document.documentElement.clientHeight))};if(u(),cs(u),ot("resize",u,{passive:!0}),o){const f=us("(orientation: portrait)");Ae(f,()=>u())}return{width:l,height:a}}const bi=async(e,t)=>{const{path:n,query:r}=e.currentRoute.value,{scrollBehavior:o}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:r,hash:t}),e.options.scrollBehavior=o},oh=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=Wt();ot("scroll",jd(()=>{var v,w;const i=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(i-0)c.some(O=>O.hash===x.hash));for(let x=0;x=(((v=O.parentElement)==null?void 0:v.offsetTop)??0)-r,S=!E||i<(((w=E.parentElement)==null?void 0:w.offsetTop)??0)-r;if(!(g&&S))continue;const M=decodeURIComponent(o.currentRoute.value.hash),z=decodeURIComponent(O.hash);if(M===z)return;if(f){for(let y=x+1;y{const t=ln();return I(()=>e[t.value]??{})},fh=()=>{const e=Td();return I(()=>Object.keys(e.value))},mo=(e,t)=>{var r;const n=(r=Ur())==null?void 0:r.appContext.components;return n?e in n||Xe(e)in n||Jn(Xe(e))in n:!1},na=e=>new Promise(t=>{setTimeout(t,e)}),dh=(e,t=2)=>{if(t===!1)return[];const[n,r]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t,o=e.filter(i=>i.level>=n&&i.level<=r),s=[];e:for(let i=0;i=0;a--){const u=o[a];if(u.level{let n;if(t.length){const r=e.cloneNode(!0);r.querySelectorAll(t.join(",")).forEach(o=>{o.remove()}),n=r.textContent||""}else n=e.textContent||"";return n.trim()},ph=({selector:e=[...new Array(6)].map((r,o)=>`[vp-content] h${o+1}`).join(","),levels:t=2,ignore:n=[]}={})=>{const r=Array.from(document.querySelectorAll(e)).filter(o=>o.id&&o.hasChildNodes()).map(o=>{const s=Number(o.tagName[1]);return{element:o,title:hh(o,n),link:`#${o.id}`,slug:o.id,level:s}});return dh(r,t)},mh=e=>typeof e<"u",ra=(e,t)=>it(e)&&e.startsWith(t),{keys:gh}=Object,oa=e=>ra(e,"/");var vh={"/zh/":{backToTop:"返回顶部"},"/":{backToTop:"Back to top"}};const _h=de({name:"BackToTop",setup(){const e=ct(),t=ta(vh),n=Dt(),{height:r}=th(n),{height:o}=rh(),{y:s}=nh(),i=I(()=>e.value.backToTop!==!1&&s.value>100),l=I(()=>s.value/(r.value-o.value)*100);return je(()=>{n.value=document.body}),()=>ye(or,{name:"back-to-top"},()=>i.value?ye("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[ye("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":l.value},ye("svg",ye("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*l.value*.48} ${Math.PI*(100-l.value)*.48}`}))),ye("div",{class:"back-to-top-icon"})]):null)}}),bh=wt({rootComponents:[_h]}),yh=Object.freeze(Object.defineProperty({__proto__:null,default:bh},Symbol.toStringTag,{value:"Module"})),Eh=/language-(shellscript|shell|bash|sh|zsh)/,wh=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o,ignoreSelector:s=[],transform:i})=>{const l=us("(max-width: 419px)"),a=I(()=>!l.value||o),u=ta(n),f=Ln(),c=x=>{var E;if(x.hasAttribute("copy-code"))return;const O=document.createElement("button");O.type="button",O.classList.add("vp-copy-code-button"),O.setAttribute("aria-label",u.value.copy),O.setAttribute("data-copied",u.value.copied),(E=x.parentElement)==null||E.insertBefore(O,x),x.setAttribute("copy-code","")};Ae(()=>[f.value.path,a.value],async()=>{document.body.classList.toggle("no-copy-code",!a.value),a.value&&(await Pn(),await na(e),document.querySelectorAll(r.join(",")).forEach(c))},{immediate:!0});const{copy:m}=Gd({legacy:!0}),v=new WeakMap,w=async(x,O,E)=>{const g=O.cloneNode(!0);s.length&&g.querySelectorAll(s.join(",")).forEach(M=>{M.remove()}),i&&i(g);let S=g.textContent||"";if(Eh.test(x.className)&&(S=S.replace(/^ *(\$|>) /gm,"")),await m(S),t<=0)return;E.classList.add("copied"),clearTimeout(v.get(E));const H=setTimeout(()=>{E.classList.remove("copied"),E.blur(),v.delete(E)},t);v.set(E,H)};ot("click",x=>{const O=x.target;if(a.value&&O.matches('div[class*="language-"] > button.vp-copy-code-button')){const E=O.parentElement,g=O.nextElementSibling;if(!E||!g)return;w(E,g,O)}})};var Sh=[],kh={"/zh/":{copy:"复制代码",copied:"已复制"},"/":{copy:"Copy code",copied:"Copied"}},Ph=['[vp-content] div[class*="language-"] pre'];const Lh=wt({setup:()=>{wh({selector:Ph,ignoreSelector:Sh,locales:kh,duration:2e3,delay:500,showInMobile:!1})}}),xh=Object.freeze(Object.defineProperty({__proto__:null,default:Lh},Symbol.toStringTag,{value:"Module"})),Ch=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var Qt=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},r=window.Promise||function(b){function D(){}b(D,D)},o=function(b){var D=b.target;if(D===U){v();return}g.indexOf(D)!==-1&&w({target:D})},s=function(){if(!(H||!y.original)){var b=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(M-b)>z.scrollOffset&&setTimeout(v,150)}},i=function(b){var D=b.key||b.keyCode;(D==="Escape"||D==="Esc"||D===27)&&v()},l=function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=b;if(b.background&&(U.style.background=b.background),b.container&&b.container instanceof Object&&(D.container=Qt({},z.container,b.container)),b.template){var Z=wr(b.template)?b.template:document.querySelector(b.template);D.template=Z}return z=Qt({},z,D),g.forEach(function(ne){ne.dispatchEvent(un("medium-zoom:update",{detail:{zoom:P}}))}),P},a=function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(Qt({},z,b))},u=function(){for(var b=arguments.length,D=Array(b),Z=0;Z0?D.reduce(function(R,Q){return[].concat(R,Ei(Q))},[]):g;return ne.forEach(function(R){R.classList.remove("medium-zoom-image"),R.dispatchEvent(un("medium-zoom:detach",{detail:{zoom:P}}))}),g=g.filter(function(R){return ne.indexOf(R)===-1}),P},c=function(b,D){var Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(ne){ne.addEventListener("medium-zoom:"+b,D,Z)}),S.push({type:"medium-zoom:"+b,listener:D,options:Z}),P},p=function(b,D){var Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return g.forEach(function(ne){ne.removeEventListener("medium-zoom:"+b,D,Z)}),S=S.filter(function(ne){return!(ne.type==="medium-zoom:"+b&&ne.listener.toString()===D.toString())}),P},m=function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=b.target,Z=function(){var R={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},Q=void 0,q=void 0;if(z.container)if(z.container instanceof Object)R=Qt({},R,z.container),Q=R.width-R.left-R.right-z.margin*2,q=R.height-R.top-R.bottom-z.margin*2;else{var ge=wr(z.container)?z.container:document.querySelector(z.container),De=ge.getBoundingClientRect(),Ue=De.width,$e=De.height,St=De.left,kt=De.top;R=Qt({},R,{width:Ue,height:$e,left:St,top:kt})}Q=Q||R.width-z.margin*2,q=q||R.height-z.margin*2;var ut=y.zoomedHd||y.original,We=yi(ut)?Q:ut.naturalWidth||Q,L=yi(ut)?q:ut.naturalHeight||q,W=ut.getBoundingClientRect(),j=W.top,Y=W.left,ce=W.width,me=W.height,d=Math.min(Math.max(ce,We),Q)/ce,h=Math.min(Math.max(me,L),q)/me,_=Math.min(d,h),C=(-Y+(Q-ce)/2+z.margin+R.left)/_,k=(-j+(q-me)/2+z.margin+R.top)/_,A="scale("+_+") translate3d("+C+"px, "+k+"px, 0)";y.zoomed.style.transform=A,y.zoomedHd&&(y.zoomedHd.style.transform=A)};return new r(function(ne){if(D&&g.indexOf(D)===-1){ne(P);return}var R=function Ue(){H=!1,y.zoomed.removeEventListener("transitionend",Ue),y.original.dispatchEvent(un("medium-zoom:opened",{detail:{zoom:P}})),ne(P)};if(y.zoomed){ne(P);return}if(D)y.original=D;else if(g.length>0){var Q=g;y.original=Q[0]}else{ne(P);return}if(y.original.dispatchEvent(un("medium-zoom:open",{detail:{zoom:P}})),M=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,H=!0,y.zoomed=Oh(y.original),document.body.appendChild(U),z.template){var q=wr(z.template)?z.template:document.querySelector(z.template);y.template=document.createElement("div"),y.template.appendChild(q.content.cloneNode(!0)),document.body.appendChild(y.template)}if(y.original.parentElement&&y.original.parentElement.tagName==="PICTURE"&&y.original.currentSrc&&(y.zoomed.src=y.original.currentSrc),document.body.appendChild(y.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),y.original.classList.add("medium-zoom-image--hidden"),y.zoomed.classList.add("medium-zoom-image--opened"),y.zoomed.addEventListener("click",v),y.zoomed.addEventListener("transitionend",R),y.original.getAttribute("data-zoom-src")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("srcset"),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading"),y.zoomedHd.src=y.zoomed.getAttribute("data-zoom-src"),y.zoomedHd.onerror=function(){clearInterval(ge),console.warn("Unable to reach the zoom image target "+y.zoomedHd.src),y.zoomedHd=null,Z()};var ge=setInterval(function(){y.zoomedHd.complete&&(clearInterval(ge),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",v),document.body.appendChild(y.zoomedHd),Z())},10)}else if(y.original.hasAttribute("srcset")){y.zoomedHd=y.zoomed.cloneNode(),y.zoomedHd.removeAttribute("sizes"),y.zoomedHd.removeAttribute("loading");var De=y.zoomedHd.addEventListener("load",function(){y.zoomedHd.removeEventListener("load",De),y.zoomedHd.classList.add("medium-zoom-image--opened"),y.zoomedHd.addEventListener("click",v),document.body.appendChild(y.zoomedHd),Z()})}else Z()})},v=function(){return new r(function(b){if(H||!y.original){b(P);return}var D=function Z(){y.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(y.zoomed),y.zoomedHd&&document.body.removeChild(y.zoomedHd),document.body.removeChild(U),y.zoomed.classList.remove("medium-zoom-image--opened"),y.template&&document.body.removeChild(y.template),H=!1,y.zoomed.removeEventListener("transitionend",Z),y.original.dispatchEvent(un("medium-zoom:closed",{detail:{zoom:P}})),y.original=null,y.zoomed=null,y.zoomedHd=null,y.template=null,b(P)};H=!0,document.body.classList.remove("medium-zoom--opened"),y.zoomed.style.transform="",y.zoomedHd&&(y.zoomedHd.style.transform=""),y.template&&(y.template.style.transition="opacity 150ms",y.template.style.opacity=0),y.original.dispatchEvent(un("medium-zoom:close",{detail:{zoom:P}})),y.zoomed.addEventListener("transitionend",D)})},w=function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=b.target;return y.original?v():m({target:D})},x=function(){return z},O=function(){return g},E=function(){return y.original},g=[],S=[],H=!1,M=0,z=n,y={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?z=t:(t||typeof t=="string")&&u(t),z=Qt({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},z);var U=Ah(z.background);document.addEventListener("click",o),document.addEventListener("keyup",i),document.addEventListener("scroll",s),window.addEventListener("resize",v);var P={open:m,close:v,toggle:w,update:l,clone:a,attach:u,detach:f,on:c,off:p,getOptions:x,getImages:O,getZoomedImage:E};return P};function Ih(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",n==="top"&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var Mh=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Ih(Mh);const zh=Symbol("mediumZoom");var Dh={};const Vh="[vp-content] > img, [vp-content] :not(a) > img",$h=Dh,Hh=300,Nh=wt({enhance({app:e,router:t}){const n=Rh($h);n.refresh=(r=Vh)=>{n.detach(),n.attach(r)},e.provide(zh,n),t.afterEach(()=>{na(Hh).then(()=>{n.refresh()})})}}),jh=Object.freeze(Object.defineProperty({__proto__:null,default:Nh},Symbol.toStringTag,{value:"Module"}));/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const wi=(e,t)=>{e.classList.add(t)},Si=(e,t)=>{e.classList.remove(t)},Bh=e=>{var t;(t=e==null?void 0:e.parentNode)==null||t.removeChild(e)},go=(e,t,n)=>en?n:e,ki=e=>(-1+e)*100,Fh=(()=>{const e=[],t=()=>{const n=e.shift();n&&n(t)};return n=>{e.push(n),e.length===1&&t()}})(),Uh=e=>e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(t,n)=>n.toUpperCase()),_r=(()=>{const e=["Webkit","O","Moz","ms"],t={},n=s=>{const{style:i}=document.body;if(s in i)return s;const l=s.charAt(0).toUpperCase()+s.slice(1);let a=e.length;for(;a--;){const u=`${e[a]}${l}`;if(u in i)return u}return s},r=s=>{const i=Uh(s);return t[i]??(t[i]=n(i))},o=(s,i,l)=>{s.style[r(i)]=l};return(s,i)=>{for(const l in i){const a=i[l];Object.hasOwn(i,l)&&mh(a)&&o(s,l,a)}}})(),gt={minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},Se={percent:null,isRendered:()=>!!document.getElementById("nprogress"),set:e=>{const{speed:t,easing:n}=gt,r=Se.isStarted(),o=go(e,gt.minimum,1);Se.percent=o===1?null:o;const s=Se.render(!r),i=s.querySelector(gt.barSelector);return s.offsetWidth,Fh(l=>{_r(i,{transform:`translate3d(${ki(o)}%,0,0)`,transition:`all ${t}ms ${n}`}),o===1?(_r(s,{transition:"none",opacity:"1"}),s.offsetWidth,setTimeout(()=>{_r(s,{transition:`all ${t}ms linear`,opacity:"0"}),setTimeout(()=>{Se.remove(),l()},t)},t)):setTimeout(()=>{l()},t)}),Se},isStarted:()=>typeof Se.percent=="number",start:()=>{Se.percent||Se.set(0);const e=()=>{setTimeout(()=>{Se.percent&&(Se.trickle(),e())},gt.trickleSpeed)};return e(),Se},done:e=>!e&&!Se.percent?Se:Se.increase(.3+.5*Math.random()).set(1),increase:e=>{let{percent:t}=Se;return t?(t=go(t+(typeof e=="number"?e:(1-t)*go(Math.random()*t,.1,.95)),0,.994),Se.set(t)):Se.start()},trickle:()=>Se.increase(Math.random()*gt.trickleRate),render:e=>{if(Se.isRendered())return document.getElementById("nprogress");wi(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=gt.template;const n=t.querySelector(gt.barSelector),r=document.querySelector(gt.parent),o=e?"-100":ki(Se.percent??0);return _r(n,{transition:"all 0 linear",transform:`translate3d(${o}%,0,0)`}),r&&(r!==document.body&&wi(r,"nprogress-custom-parent"),r.appendChild(t)),t},remove:()=>{Si(document.documentElement,"nprogress-busy"),Si(document.querySelector(gt.parent),"nprogress-custom-parent"),Bh(document.getElementById("nprogress"))}},Wh=()=>{je(()=>{const e=Wt(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||Se.start()}),e.afterEach(n=>{t.add(n.path),Se.done()})})},Kh=wt({setup(){Wh()}}),Gh=Object.freeze(Object.defineProperty({__proto__:null,default:Kh},Symbol.toStringTag,{value:"Module"})),qh=JSON.parse(`{"logo":"/images/hero.png","repo":"vuepress/core","docsRepo":"vuepress/docs","docsDir":"docs","locales":{"/":{"navbar":[{"text":"Guide","children":["/guide/introduction.md","/guide/getting-started.md","/guide/configuration.md","/guide/page.md","/guide/markdown.md","/guide/assets.md","/guide/i18n.md","/guide/deployment.md","/guide/theme.md","/guide/plugin.md","/guide/bundler.md","/guide/migration.md","/guide/troubleshooting.md"]},{"text":"Reference","children":[{"text":"Core","children":[{"text":"CLI","link":"/reference/cli.html"},"/reference/config.md","/reference/frontmatter.md","/reference/components.md","/reference/plugin-api.md","/reference/theme-api.md","/reference/client-api.md","/reference/node-api.md"]},{"text":"Bundlers","children":["/reference/bundler/vite.md","/reference/bundler/webpack.md"]},{"text":"Ecosystem","children":[{"text":"Default Theme","link":"https://ecosystem.vuejs.press/themes/default/"},{"text":"Plugins","link":"https://ecosystem.vuejs.press/plugins/"}]}]},{"text":"Learn More","children":[{"text":"Advanced","children":["/advanced/architecture.md","/advanced/plugin.md","/advanced/theme.md",{"text":"Cookbook","link":"/advanced/cookbook/"}]},{"text":"Resources","children":[{"text":"Ecosystem","link":"https://ecosystem.vuejs.press/"},{"text":"MarketPlace","link":"https://marketplace.vuejs.press"},{"text":"Contributing Guide","link":"https://github.com/vuepress/core/blob/main/CONTRIBUTING.md"}]}]},{"text":"v2.0.0-rc.15","children":[{"text":"Changelog","link":"https://github.com/vuepress/core/blob/main/CHANGELOG.md"},{"text":"v1.x","link":"https://v1.vuepress.vuejs.org"},{"text":"v0.x","link":"https://v0.vuepress.vuejs.org"}]}],"sidebar":{"/guide/":[{"text":"Guide","children":["/guide/introduction.md","/guide/getting-started.md","/guide/configuration.md","/guide/page.md","/guide/markdown.md","/guide/assets.md","/guide/i18n.md","/guide/deployment.md","/guide/theme.md","/guide/plugin.md","/guide/bundler.md","/guide/migration.md","/guide/troubleshooting.md"]}],"/advanced/":[{"text":"Advanced","children":["/advanced/architecture.md","/advanced/plugin.md","/advanced/theme.md"]},{"text":"Cookbook","children":["/advanced/cookbook/README.md","/advanced/cookbook/usage-of-client-config.md","/advanced/cookbook/adding-extra-pages.md","/advanced/cookbook/making-a-theme-extendable.md","/advanced/cookbook/passing-data-to-client-code.md","/advanced/cookbook/markdown-and-vue-sfc.md","/advanced/cookbook/resolving-routes.md"]}],"/reference/":[{"text":"Core","collapsible":true,"children":["/reference/cli.md","/reference/config.md","/reference/frontmatter.md","/reference/components.md","/reference/plugin-api.md","/reference/theme-api.md","/reference/client-api.md","/reference/node-api.md"]},{"text":"Bundlers","children":["/reference/bundler/vite.md","/reference/bundler/webpack.md"]},{"text":"Ecosystem","children":[{"text":"Default Theme","link":"https://ecosystem.vuejs.press/themes/default/"},{"text":"Plugins","link":"https://ecosystem.vuejs.press/plugins/"}]}]},"editLinkText":"Edit this page on GitHub","selectLanguageName":"English"},"/zh/":{"navbar":[{"text":"指南","children":["/zh/guide/introduction.md","/zh/guide/getting-started.md","/zh/guide/configuration.md","/zh/guide/page.md","/zh/guide/markdown.md","/zh/guide/assets.md","/zh/guide/i18n.md","/zh/guide/deployment.md","/zh/guide/theme.md","/zh/guide/plugin.md","/zh/guide/bundler.md","/zh/guide/migration.md","/zh/guide/troubleshooting.md"]},{"text":"参考","children":[{"text":"核心","children":["/zh/reference/cli.md","/zh/reference/config.md","/zh/reference/frontmatter.md","/zh/reference/components.md","/zh/reference/plugin-api.md","/zh/reference/theme-api.md","/zh/reference/client-api.md","/zh/reference/node-api.md"]},{"text":"打包工具","children":["/zh/reference/bundler/vite.md","/zh/reference/bundler/webpack.md"]},{"text":"生态系统","children":[{"text":"默认主题","link":"https://ecosystem.vuejs.press/zh/themes/default/"},{"text":"插件","link":"https://ecosystem.vuejs.press/zh/plugins/"}]}]},{"text":"了解更多","children":[{"text":"深入","children":["/zh/advanced/architecture.md","/zh/advanced/plugin.md","/zh/advanced/theme.md",{"text":"Cookbook","link":"/zh/advanced/cookbook/"}]},{"text":"其他资源","children":[{"text":"生态系统","link":"https://ecosystem.vuejs.press/zh/"},{"text":"市场","link":"https://marketplace.vuejs.press/zh/"},{"text":"贡献指南","link":"https://github.com/vuepress/core/blob/main/CONTRIBUTING_zh.md"}]}]},{"text":"v2.0.0-rc.15","children":[{"text":"更新日志","link":"https://github.com/vuepress/core/blob/main/CHANGELOG.md"},{"text":"v1.x","link":"https://v1.vuepress.vuejs.org/zh/"},{"text":"v0.x","link":"https://v0.vuepress.vuejs.org/zh/"}]}],"selectLanguageName":"简体中文","selectLanguageText":"选择语言","selectLanguageAriaLabel":"选择语言","sidebar":{"/zh/guide/":[{"text":"指南","children":["/zh/guide/introduction.md","/zh/guide/getting-started.md","/zh/guide/configuration.md","/zh/guide/page.md","/zh/guide/markdown.md","/zh/guide/assets.md","/zh/guide/i18n.md","/zh/guide/deployment.md","/zh/guide/theme.md","/zh/guide/plugin.md","/zh/guide/bundler.md","/zh/guide/migration.md","/zh/guide/troubleshooting.md"]}],"/zh/advanced/":[{"text":"深入","children":["/zh/advanced/architecture.md","/zh/advanced/plugin.md","/zh/advanced/theme.md"]},{"text":"Cookbook","children":["/zh/advanced/cookbook/README.md","/zh/advanced/cookbook/usage-of-client-config.md","/zh/advanced/cookbook/adding-extra-pages.md","/zh/advanced/cookbook/making-a-theme-extendable.md","/zh/advanced/cookbook/passing-data-to-client-code.md","/zh/advanced/cookbook/markdown-and-vue-sfc.md","/zh/advanced/cookbook/resolving-routes.md"]}],"/zh/reference/":[{"text":"核心","collapsible":true,"children":["/zh/reference/cli.md","/zh/reference/config.md","/zh/reference/frontmatter.md","/zh/reference/components.md","/zh/reference/plugin-api.md","/zh/reference/theme-api.md","/zh/reference/client-api.md","/zh/reference/node-api.md"]},{"text":"打包工具","children":["/zh/reference/bundler/vite.md","/zh/reference/bundler/webpack.md"]},{"text":"生态系统","children":[{"text":"默认主题","link":"https://ecosystem.vuejs.press/zh/themes/default/"},{"text":"插件","link":"https://ecosystem.vuejs.press/zh/plugins/"}]}]},"editLinkText":"在 GitHub 上编辑此页","lastUpdatedText":"上次更新","contributorsText":"贡献者","tip":"提示","warning":"注意","danger":"警告","notFound":["这里什么都没有","我们怎么到这来了?","这是一个 404 页面","看起来我们进入了错误的链接"],"backToHome":"返回首页","openInNewWindow":"在新窗口打开","toggleColorMode":"切换颜色模式","toggleSidebar":"切换侧边栏"}},"colorMode":"auto","colorModeSwitch":true,"navbar":[],"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebar":"heading","sidebarDepth":2,"editLink":true,"editLinkText":"Edit this page","lastUpdated":true,"lastUpdatedText":"Last Updated","contributors":true,"contributorsText":"Contributors","notFound":["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],"backToHome":"Take me home","openInNewWindow":"open in new window","toggleColorMode":"toggle color mode","toggleSidebar":"toggle sidebar"}`),Yh=ae(qh),sa=()=>Yh,ia=Symbol(""),Qh=()=>{const e=Ne(ia);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},Jh=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},Xh=wt({enhance({app:e}){const t=sa(),n=e._context.provides[rs],r=I(()=>Jh(t.value,n.routeLocale.value));e.provide(ia,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),Zh=Object.freeze(Object.defineProperty({__proto__:null,default:Xh},Symbol.toStringTag,{value:"Module"})),ep=()=>sa(),Oe=()=>Qh(),la=Symbol(""),tp=e=>{const t=(n=e.value)=>{const r=window.document.documentElement;r.dataset.theme=n?"dark":"light"};je(()=>{Ae(e,t,{immediate:!0})}),Br(()=>{t()})},Xr=()=>{const e=Ne(la);if(!e)throw new Error("useDarkMode() is called without provider.");return e},np=()=>{const e=Oe(),t=Zd(),n=ea("vuepress-color-scheme",e.value.colorMode),r=I({get(){return e.value.colorModeSwitch?n.value==="auto"?t.value:n.value==="dark":e.value.colorMode==="dark"},set(o){o===t.value?n.value="auto":n.value=o?"dark":"light"}});rn(la,r),tp(r)};let vo=null,Rn=null;const rp={wait:()=>vo,pending:()=>{vo=new Promise(e=>{Rn=e})},resolve:()=>{Rn==null||Rn(),vo=null,Rn=null}},aa=()=>rp,kn=(e,t)=>{const{notFound:n,meta:r,path:o}=qn(e,t);return n?{text:o,link:o}:{text:r.title||o,link:o}},Pi=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),op=(e,t)=>{if(t.hash===e)return!0;const n=Pi(t.path),r=Pi(e);return n===r},ca=(e,t)=>e.link&&op(e.link,t)?!0:"children"in e?e.children.some(n=>ca(n,t)):!1,ua=e=>!lf(e)&&!sr(e),fa=e=>!Kr(e)||e.includes("github.com")?"GitHub":e.includes("bitbucket.org")?"Bitbucket":e.includes("gitlab.com")?"GitLab":e.includes("gitee.com")?"Gitee":null,sp={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},ip=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const n=fa(e);return n!==null?sp[n]:null},lp=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const s=ip({docsRepo:e,editLinkPattern:o});return s?s.replace(/:repo/,Kr(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Zo(`${Dl(n)}/${r}`)):null},yn=(e="",t="")=>oa(t)||sr(t)?t:`${vf(e)}${t}`,Sr=ae([]),ap=()=>{const e=Wt(),t=Oe(),n=ct(),r=I(()=>n.value.sidebarDepth??t.value.sidebarDepth??2);e.beforeEach((s,i)=>{s.path!==i.path&&(Sr.value=[])});const o=()=>{if(r.value<=0){Sr.value=[];return}Sr.value=ph({levels:[2,r.value+1],ignore:[".vp-badge"]})};Ae(r,o),je(o)},cp=()=>Sr,up=e=>({text:e.title,link:e.link,children:fs(e.children)}),fs=e=>e?e.map(t=>up(t)):[],da=(e,t)=>[{text:e.title,children:fs(t)}],ha=(e,t,n,r="")=>{const o=(s,i)=>{var a;const l=it(s)?kn(yn(i,s)):it(s.link)?{...s,link:ua(s.link)?kn(yn(i,s.link)).link:s.link}:s;if("children"in l)return{...l,children:l.children.map(u=>o(u,yn(i,l.prefix)))};if(l.link===n){const u=((a=t[0])==null?void 0:a.level)===1?t[0].children:t;return{...l,children:fs(u)}}return l};return e.map(s=>o(s,r))},fp=(e,t,n,r)=>{const o=gh(e).sort((s,i)=>i.length-s.length);for(const s of o)if(ra(decodeURI(r),s)){const i=e[s];return i?i==="heading"?da(t,n):ha(i,n,r,s):[]}return console.warn(`${decodeURI(r)} is missing sidebar config.`),[]},pa=Symbol("sidebarItems"),ds=()=>{const e=Ne(pa);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},dp=(e,t,n,r,o)=>e===!1?[]:e==="heading"?da(t,o):Array.isArray(e)?ha(e,o,n,r):es(e)?fp(e,t,o,n):[],hp=()=>{const e=Oe(),t=ct(),n=Ln(),r=Et(),o=ln(),s=cp(),i=I(()=>t.value.home?!1:t.value.sidebar??e.value.sidebar??"heading"),l=I(()=>dp(i.value,n.value,r.path,o.value,s.value));rn(pa,l)},pp=de({__name:"Badge",props:{type:{default:"tip"},text:{default:""},vertical:{default:void 0}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),we=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};function mp(e,t,n,r,o,s){return K(),ee("span",{class:Ge(["vp-badge",n.type]),style:Xn({verticalAlign:n.vertical})},[ke(e.$slots,"default",{},()=>[Ht(Pe(n.text),1)])],6)}const gp=we(pp,[["render",mp],["__file","Badge.vue"]]),vp=de({name:"CodeGroup",slots:Object,setup(e,{slots:t}){const n=ae([]),r=Xr(),o=ae();je(()=>{if(!o.value)return;const c=o.value.querySelector('div[class*="language-"]');if(c&&c.dataset.highlighter==="shiki"){const p=c.style.getPropertyValue("--shiki-light"),m=c.style.getPropertyValue("--shiki-dark"),v=c.style.getPropertyValue("--shiki-light-bg"),w=c.style.getPropertyValue("--shiki-dark-bg");Ae(r,x=>{o.value.style.setProperty("--vp-c-code-tab-bg",x?w:v),o.value.style.setProperty("--vp-c-code-tab-title",x?m:p)},{immediate:!0})}});const s=ae(-1),i=ea("vuepress-code-group",{}),l=I(()=>n.value.map(c=>c.innerText).join(","));je(()=>{Ae(()=>i.value[l.value],(c=-1)=>{s.value!==c&&(s.value=c)},{immediate:!0}),Ae(s,c=>{i.value[l.value]!==c&&(i.value[l.value]=c)})});const a=(c=s.value)=>{c{c>0?s.value=c-1:s.value=n.value.length-1,n.value[s.value].focus()},f=(c,p)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),s.value=p):c.key==="ArrowRight"?(c.preventDefault(),a(p)):c.key==="ArrowLeft"&&(c.preventDefault(),u(p))};return()=>{var p;const c=(((p=t.default)==null?void 0:p.call(t))??[]).filter(m=>m.type.name==="CodeGroupItem").map(m=>(m.props===null&&(m.props={}),m));return c.length===0?null:(s.value<0||s.value>c.length-1?(s.value=c.findIndex(m=>m.props.active===""||m.props.active===!0),s.value===-1&&(s.value=0)):c.forEach((m,v)=>{m.props.active=v===s.value}),ye("div",{class:"code-group",ref:o},[ye("div",{class:"code-group-nav",role:"tablist"},c.map((m,v)=>{const w=v===s.value;return ye("button",{ref:x=>{x&&(n.value[v]=x)},class:{"code-group-nav-tab":!0,active:w},role:"tab",ariaSelected:w,onClick:()=>{s.value=v},onKeydown:x=>{f(x,v)}},m.props.title)})),c]))}}}),_p=de({name:"CodeGroupItem",__name:"CodeGroupItem",props:{title:{},active:{type:Boolean}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}});function bp(e,t,n,r,o,s){return K(),ee("div",{class:Ge(["code-group-item",{active:n.active}]),role:"tabpanel"},[ke(e.$slots,"default")],2)}const yp=we(_p,[["render",bp],["__file","CodeGroupItem.vue"]]),Ep=de({__name:"VPHomeFeatures",setup(e,{expose:t}){t();const n=ct(),r=I(()=>n.value.features??[]),o={frontmatter:n,features:r};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),wp={key:0,class:"vp-features"};function Sp(e,t,n,r,o,s){return r.features.length?(K(),ee("div",wp,[(K(!0),ee(ve,null,Vt(r.features,i=>(K(),ee("div",{key:i.title,class:"vp-feature"},[re("h2",null,Pe(i.title),1),re("p",null,Pe(i.details),1)]))),128))])):Te("",!0)}const kp=we(Ep,[["render",Sp],["__file","VPHomeFeatures.vue"]]),Pp=de({__name:"VPHomeFooter",setup(e,{expose:t}){t();const n=ct(),r=I(()=>n.value.footer),o=I(()=>n.value.footerHtml),s={frontmatter:n,footer:r,footerHtml:o};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Lp=["innerHTML"],xp=["textContent"];function Cp(e,t,n,r,o,s){return r.footer?(K(),ee(ve,{key:0},[r.footerHtml?(K(),ee("div",{key:0,class:"vp-footer","vp-footer":"",innerHTML:r.footer},null,8,Lp)):(K(),ee("div",{key:1,class:"vp-footer","vp-footer":"",textContent:Pe(r.footer)},null,8,xp))],64)):Te("",!0)}const Tp=we(Pp,[["render",Cp],["__file","VPHomeFooter.vue"]]),Ap=de({__name:"VPHomeHero",setup(e,{expose:t}){t();const n=ct(),r=os(),o=Xr(),s=I(()=>n.value.heroText===null?null:n.value.heroText||r.value.title||"Hello"),i=I(()=>n.value.tagline===null?null:n.value.tagline||r.value.description||"Welcome to your VuePress site"),l=I(()=>o.value&&n.value.heroImageDark!==void 0?n.value.heroImageDark:n.value.heroImage),a=I(()=>n.value.heroAlt||s.value||"hero"),u=I(()=>n.value.heroHeight??280),f=I(()=>Array.isArray(n.value.actions)?n.value.actions.map(({text:m,link:v,type:w="primary"})=>({text:m,link:v,type:w})):[]),p={frontmatter:n,siteLocale:r,isDarkMode:o,heroText:s,tagline:i,heroImage:l,heroAlt:a,heroHeight:u,actions:f,HomeHeroImage:()=>{if(!l.value)return null;const m=ye("img",{class:"vp-hero-image",src:ls(l.value),alt:a.value,height:u.value});return n.value.heroImageDark===void 0?m:ye(ss,()=>m)},get AutoLink(){return xn}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Op={class:"vp-hero"},Rp={key:0,id:"main-title"},Ip={key:1,class:"vp-hero-description"},Mp={key:2,class:"vp-hero-actions"};function zp(e,t,n,r,o,s){return K(),ee("header",Op,[se(r.HomeHeroImage),r.heroText?(K(),ee("h1",Rp,Pe(r.heroText),1)):Te("",!0),r.tagline?(K(),ee("p",Ip,Pe(r.tagline),1)):Te("",!0),r.actions.length?(K(),ee("p",Mp,[(K(!0),ee(ve,null,Vt(r.actions,i=>(K(),Le(r.AutoLink,{key:i.text,class:Ge(["vp-hero-action-button",[i.type]]),config:i},null,8,["class","config"]))),128))])):Te("",!0)])}const Dp=we(Ap,[["render",zp],["__file","VPHomeHero.vue"]]),Vp=de({__name:"VPHome",setup(e,{expose:t}){t();const n={VPHomeFeatures:kp,VPHomeFooter:Tp,VPHomeHero:Dp,get Content(){return is}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),$p={class:"vp-home"},Hp={class:"theme-default-content","vp-content":""};function Np(e,t,n,r,o,s){return K(),ee("main",$p,[se(r.VPHomeHero),se(r.VPHomeFeatures),re("div",Hp,[se(r.Content)]),se(r.VPHomeFooter)])}const jp=we(Vp,[["render",Np],["__file","VPHome.vue"]]),Bp=de({__name:"VPNavbarBrand",setup(e,{expose:t}){t();const n=ln(),r=os(),o=Oe(),s=Xr(),i=I(()=>o.value.home||n.value),l=I(()=>r.value.title),a=I(()=>s.value&&o.value.logoDark!==void 0?o.value.logoDark:o.value.logo),u=I(()=>o.value.logoAlt??l.value),f=I(()=>l.value.toLocaleUpperCase().trim()===u.value.toLocaleUpperCase().trim()),p={routeLocale:n,siteLocale:r,themeLocale:o,isDarkMode:s,navbarBrandLink:i,navbarBrandTitle:l,navbarBrandLogo:a,navbarBrandLogoAlt:u,navBarLogoAltMatchesTitle:f,NavbarBrandLogo:()=>{if(!a.value)return null;const m=ye("img",{class:"vp-site-logo",src:ls(a.value),alt:u.value});return o.value.logoDark===void 0?m:ye(ss,()=>m)},get RouteLink(){return Yr}};return Object.defineProperty(p,"__isScriptSetup",{enumerable:!1,value:!0}),p}}),Fp=["aria-hidden"];function Up(e,t,n,r,o,s){return K(),Le(r.RouteLink,{to:r.navbarBrandLink},{default:Ce(()=>[se(r.NavbarBrandLogo),r.navbarBrandTitle?(K(),ee("span",{key:0,class:Ge(["vp-site-name",{"vp-hide-mobile":r.navbarBrandLogo}]),"aria-hidden":r.navBarLogoAltMatchesTitle},Pe(r.navbarBrandTitle),11,Fp)):Te("",!0)]),_:1},8,["to"])}const Wp=we(Bp,[["render",Up],["__file","VPNavbarBrand.vue"]]),Kp=de({__name:"VPDropdownTransition",setup(e,{expose:t}){t();const o={setHeight:s=>{s.style.height=`${s.scrollHeight}px`},unsetHeight:s=>{s.style.height=""}};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function Gp(e,t,n,r,o,s){return K(),Le(or,{name:"vp-dropdown",onEnter:r.setHeight,onAfterEnter:r.unsetHeight,onBeforeLeave:r.setHeight},{default:Ce(()=>[ke(e.$slots,"default")]),_:3})}const ma=we(Kp,[["render",Gp],["__file","VPDropdownTransition.vue"]]),qp=de({__name:"VPNavbarDropdown",props:{item:{}},setup(e,{expose:t}){t();const n=e,{item:r}=Zi(n),o=Et(),s=ae(!1),i=I(()=>r.value.ariaLabel||r.value.text),l=(f,c)=>c[c.length-1]===f,a=f=>{const c=f.detail===0;s.value=c?!s.value:!1};Ae(()=>o.path,()=>{s.value=!1});const u={props:n,item:r,route:o,open:s,dropdownAriaLabel:i,isLastItemOfArray:l,handleDropdown:a,VPDropdownTransition:ma,get AutoLink(){return xn}};return Object.defineProperty(u,"__isScriptSetup",{enumerable:!1,value:!0}),u}}),Yp=["aria-label"],Qp={class:"title"},Jp=re("span",{class:"arrow down"},null,-1),Xp=["aria-label"],Zp={class:"title"},em={class:"vp-navbar-dropdown"},tm={class:"vp-navbar-dropdown-subtitle"},nm={key:1},rm={class:"vp-navbar-dropdown-subitem-wrapper"};function om(e,t,n,r,o,s){return K(),ee("div",{class:Ge(["vp-navbar-dropdown-wrapper",{open:r.open}])},[re("button",{class:"vp-navbar-dropdown-title",type:"button","aria-label":r.dropdownAriaLabel,onClick:r.handleDropdown},[re("span",Qp,Pe(r.item.text),1),Jp],8,Yp),re("button",{class:"vp-navbar-dropdown-title-mobile",type:"button","aria-label":r.dropdownAriaLabel,onClick:t[0]||(t[0]=i=>r.open=!r.open)},[re("span",Zp,Pe(r.item.text),1),re("span",{class:Ge(["arrow",r.open?"down":"right"])},null,2)],8,Xp),se(r.VPDropdownTransition,null,{default:Ce(()=>[xr(re("ul",em,[(K(!0),ee(ve,null,Vt(r.item.children,i=>(K(),ee("li",{key:i.text,class:"vp-navbar-dropdown-item"},["children"in i?(K(),ee(ve,{key:0},[re("h4",tm,[i.link?(K(),Le(r.AutoLink,{key:0,config:i,onFocusout:l=>r.isLastItemOfArray(i,r.item.children)&&i.children.length===0&&(r.open=!1)},null,8,["config","onFocusout"])):(K(),ee("span",nm,Pe(i.text),1))]),re("ul",rm,[(K(!0),ee(ve,null,Vt(i.children,l=>(K(),ee("li",{key:l.link,class:"vp-navbar-dropdown-subitem"},[se(r.AutoLink,{config:l,onFocusout:a=>r.isLastItemOfArray(l,i.children)&&r.isLastItemOfArray(i,r.item.children)&&(r.open=!1)},null,8,["config","onFocusout"])]))),128))])],64)):(K(),Le(r.AutoLink,{key:1,config:i,onFocusout:l=>r.isLastItemOfArray(i,r.item.children)&&(r.open=!1)},null,8,["config","onFocusout"]))]))),128))],512),[[Mr,r.open]])]),_:1})],2)}const sm=we(qp,[["render",om],["__file","VPNavbarDropdown.vue"]]),ga=(e,t="")=>it(e)?kn(yn(t,e)):"children"in e?{...e,children:e.children.map(n=>ga(n,yn(t,e.prefix)))}:{...e,link:ua(e.link)?kn(yn(t,e.link)).link:e.link},im=()=>{const e=Oe();return I(()=>(e.value.navbar||[]).map(t=>ga(t)))},lm=()=>{const e=Oe(),t=I(()=>e.value.repo),n=I(()=>t.value?fa(t.value):null),r=I(()=>t.value&&!Kr(t.value)?`https://github.com/${t.value}`:t.value),o=I(()=>r.value?e.value.repoLabel?e.value.repoLabel:n.value===null?"Source":n.value:null);return I(()=>!r.value||!o.value?[]:[{text:o.value,link:r.value}])},am=()=>{const e=Et(),t=fh(),n=ln(),r=Yl(),o=os(),s=ep(),i=Oe();return I(()=>{const l=Object.keys(r.value.locales);if(l.length<2)return[];const a=e.path,u=e.fullPath;return[{text:`${i.value.selectLanguageText}`,ariaLabel:`${i.value.selectLanguageAriaLabel??i.value.selectLanguageText}`,children:l.map(c=>{var O,E;const p=((O=r.value.locales)==null?void 0:O[c])??{},m=((E=s.value.locales)==null?void 0:E[c])??{},v=`${p.lang}`,w=m.selectLanguageName??v;if(v===o.value.lang)return{text:w,activeMatch:".",link:e.fullPath};const x=a.replace(n.value,c);return{text:w,link:t.value.some(g=>g===x)?u.replace(a,x):m.home??c}})}]})},cm="719px",um={mobile:cm};var Yn;(function(e){e.Mobile="mobile"})(Yn||(Yn={}));const fm={[Yn.Mobile]:Number.parseInt(um.mobile.replace("px",""),10)},va=(e,t)=>{const n=fm[e];Number.isInteger(n)&&(ot("orientationchange",()=>{t(n)},!1),ot("resize",()=>{t(n)},!1),je(()=>{t(n)}))},dm=de({__name:"VPNavbarItems",setup(e,{expose:t}){t();const n=im(),r=am(),o=lm(),s=ae(!1),i=I(()=>Oe().value.navbarLabel??"site navigation"),l=I(()=>[...n.value,...r.value,...o.value]);va(Yn.Mobile,u=>{s.value=window.innerWidth(K(),ee("div",{key:i.text,class:"vp-navbar-item"},["children"in i?(K(),Le(r.VPNavbarDropdown,{key:0,class:Ge({mobile:r.isMobile}),item:i},null,8,["class","item"])):(K(),Le(r.AutoLink,{key:1,config:i},null,8,["config"]))]))),128))],8,hm)):Te("",!0)}const _a=we(dm,[["render",pm],["__file","VPNavbarItems.vue"]]),mm={},gm={class:"dark-icon",viewBox:"0 0 32 32"},vm=re("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"},null,-1),_m=[vm];function bm(e,t){return K(),ee("svg",gm,_m)}const ym=we(mm,[["render",bm],["__file","VPDarkIcon.vue"]]),Em={},wm={class:"light-icon",viewBox:"0 0 32 32"},Sm=gu('',9),km=[Sm];function Pm(e,t){return K(),ee("svg",wm,km)}const Lm=we(Em,[["render",Pm],["__file","VPLightIcon.vue"]]),xm=de({__name:"VPToggleColorModeButton",setup(e,{expose:t}){t();const n=Oe(),r=Xr(),s={themeLocale:n,isDarkMode:r,toggleColorMode:()=>{r.value=!r.value},VPDarkIcon:ym,VPLightIcon:Lm};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),Cm=["title"];function Tm(e,t,n,r,o,s){return K(),ee("button",{type:"button",class:"vp-toggle-color-mode-button",title:r.themeLocale.toggleColorMode,onClick:r.toggleColorMode},[xr(se(r.VPLightIcon,null,null,512),[[Mr,!r.isDarkMode]]),xr(se(r.VPDarkIcon,null,null,512),[[Mr,r.isDarkMode]])],8,Cm)}const Am=we(xm,[["render",Tm],["__file","VPToggleColorModeButton.vue"]]),Om=de({__name:"VPToggleSidebarButton",emits:["toggle"],setup(e,{expose:t}){t();const r={themeLocale:Oe()};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Rm=["title"],Im=re("div",{class:"icon","aria-hidden":"true"},[re("span"),re("span"),re("span")],-1),Mm=[Im];function zm(e,t,n,r,o,s){return K(),ee("div",{class:"vp-toggle-sidebar-button",title:r.themeLocale.toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},Mm,8,Rm)}const Dm=we(Om,[["render",zm],["__file","VPToggleSidebarButton.vue"]]),Vm=de({__name:"VPNavbar",emits:["toggleSidebar"],setup(e,{expose:t}){t();const n=Oe(),r=ae(null),o=ae(null),s=ae(0),i=I(()=>s.value?{maxWidth:`${s.value}px`}:{}),l=(u,f)=>{var m;const c=(m=u==null?void 0:u.ownerDocument.defaultView)==null?void 0:m.getComputedStyle(u,null)[f],p=Number.parseInt(c,10);return Number.isNaN(p)?0:p};va(Yn.Mobile,u=>{var c;const f=l(r.value,"paddingLeft")+l(r.value,"paddingRight");window.innerWidthe.$emit("toggleSidebar"))}),re("span",Hm,[se(r.VPNavbarBrand)],512),re("div",{class:"vp-navbar-items-wrapper",style:Xn(r.linksWrapperStyle)},[ke(e.$slots,"before"),se(r.VPNavbarItems,{class:"vp-hide-mobile"}),ke(e.$slots,"after"),r.themeLocale.colorModeSwitch?(K(),Le(r.VPToggleColorModeButton,{key:0})):Te("",!0),se(i)],4)],512)}const jm=we(Vm,[["render",Nm],["__file","VPNavbar.vue"]]),Bm={},Fm={class:"edit-icon",viewBox:"0 0 1024 1024"},Um=re("g",{fill:"currentColor"},[re("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),re("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})],-1),Wm=[Um];function Km(e,t){return K(),ee("svg",Fm,Wm)}const Gm=we(Bm,[["render",Km],["__file","VPEditIcon.vue"]]),qm=()=>{const e=Oe(),t=Ln(),n=ct();return I(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})},Ym=()=>{const e=Oe(),t=Ln(),n=ct();return I(()=>{if(!(n.value.editLink??e.value.editLink??!0))return null;const{repo:o,docsRepo:s=o,docsBranch:i="main",docsDir:l="",editLinkText:a}=e.value;if(!s)return null;const u=lp({docsRepo:s,docsBranch:i,docsDir:l,filePathRelative:t.value.filePathRelative,editLinkPattern:n.value.editLinkPattern??e.value.editLinkPattern});return u?{text:a??"Edit this page",link:u}:null})},Qm=()=>{const e=Oe(),t=Ln(),n=ct();return I(()=>{var s;return!(n.value.lastUpdated??e.value.lastUpdated??!0)||!((s=t.value.git)!=null&&s.updatedTime)?null:new Date(t.value.git.updatedTime).toLocaleString()})},Jm=de({__name:"VPPageMeta",setup(e,{expose:t}){t();const n=Oe(),r=Ym(),o=Qm(),s=qm(),i={themeLocale:n,editLink:r,lastUpdated:o,contributors:s,VPEditIcon:Gm,get AutoLink(){return xn}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),Xm={class:"vp-page-meta"},Zm={key:0,class:"vp-meta-item edit-link"},eg={class:"vp-meta-item git-info"},tg={key:0,class:"vp-meta-item last-updated"},ng={class:"meta-item-label"},rg={class:"meta-item-info"},og={key:1,class:"vp-meta-item contributors"},sg={class:"meta-item-label"},ig={class:"meta-item-info"},lg=["title"];function ag(e,t,n,r,o,s){const i=qo("ClientOnly");return K(),ee("footer",Xm,[r.editLink?(K(),ee("div",Zm,[se(r.AutoLink,{class:"label",config:r.editLink},{before:Ce(()=>[se(r.VPEditIcon)]),_:1},8,["config"])])):Te("",!0),re("div",eg,[r.lastUpdated?(K(),ee("div",tg,[re("span",ng,Pe(r.themeLocale.lastUpdatedText)+": ",1),se(i,null,{default:Ce(()=>[re("span",rg,Pe(r.lastUpdated),1)]),_:1})])):Te("",!0),r.contributors&&r.contributors.length?(K(),ee("div",og,[re("span",sg,Pe(r.themeLocale.contributorsText)+": ",1),re("span",ig,[(K(!0),ee(ve,null,Vt(r.contributors,(l,a)=>(K(),ee(ve,{key:a},[re("span",{class:"contributor",title:`email: ${l.email}`},Pe(l.name),9,lg),a!==r.contributors.length-1?(K(),ee(ve,{key:0},[Ht(", ")],64)):Te("",!0)],64))),128))])])):Te("",!0)])])}const cg=we(Jm,[["render",ag],["__file","VPPageMeta.vue"]]),ug=()=>{const e=Wt(),t=Et();return n=>{n&&(oa(n)?t.path!==n&&e.push(n):sr(n)?window.open(n):e.push(encodeURI(n)))}},Li=(e,t)=>e===!1?!1:it(e)?kn(e,t):es(e)?{...e,link:kn(e.link,t).link}:null,Io=(e,t,n)=>{const r=e.findIndex(s=>s.link===t);if(r!==-1){const s=e[r+n];return s?s.link?s:"prefix"in s&&!qn(s.prefix).notFound?{...s,link:s.prefix}:null:null}for(const s of e)if("children"in s){const i=Io(s.children,t,n);if(i)return i}const o=e.findIndex(s=>"prefix"in s&&s.prefix===t);if(o!==-1){const s=e[o+n];return s?s.link?s:"prefix"in s&&!qn(s.prefix).notFound?{...s,link:s.prefix}:null:null}return null},fg=()=>{const e=ct(),t=Oe(),n=ds(),r=Et(),o=I(()=>{const i=Li(e.value.prev,r.path);return i===!1?null:i??(t.value.prev===!1?null:Io(n.value,r.path,-1))}),s=I(()=>{const i=Li(e.value.next,r.path);return i===!1?null:i??(t.value.next===!1?null:Io(n.value,r.path,1))});return{prevLink:o,nextLink:s}},dg=de({__name:"VPPageNav",setup(e,{expose:t}){t();const n=Oe(),r=ug(),{prevLink:o,nextLink:s}=fg(),i=I(()=>n.value.pageNavbarLabel??"page navigation");ot("keydown",a=>{a.altKey&&(a.key==="ArrowRight"?s.value&&(r(s.value.link),a.preventDefault()):a.key==="ArrowLeft"&&o.value&&(r(o.value.link),a.preventDefault()))});const l={themeLocale:n,navigate:r,prevLink:o,nextLink:s,navbarLabel:i,get AutoLink(){return xn}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),hg=["aria-label"],pg={class:"hint"},mg=re("span",{class:"arrow left"},null,-1),gg={class:"link"},vg={class:"hint"},_g=re("span",{class:"arrow right"},null,-1),bg={class:"link"};function yg(e,t,n,r,o,s){return r.prevLink||r.nextLink?(K(),ee("nav",{key:0,class:"vp-page-nav","aria-label":r.navbarLabel},[r.prevLink?(K(),Le(r.AutoLink,{key:0,class:"prev",config:r.prevLink},{default:Ce(()=>[re("div",pg,[mg,Ht(" "+Pe(r.themeLocale.prev??"Prev"),1)]),re("div",gg,[re("span",null,Pe(r.prevLink.text),1)])]),_:1},8,["config"])):Te("",!0),r.nextLink?(K(),Le(r.AutoLink,{key:1,class:"next",config:r.nextLink},{default:Ce(()=>[re("div",vg,[Ht(Pe(r.themeLocale.next??"Next")+" ",1),_g]),re("div",bg,[re("span",null,Pe(r.nextLink.text),1)])]),_:1},8,["config"])):Te("",!0)],8,hg)):Te("",!0)}const Eg=we(dg,[["render",yg],["__file","VPPageNav.vue"]]),wg=de({__name:"VPPage",setup(e,{expose:t}){t(),ap();const n={VPPageMeta:cg,VPPageNav:Eg,get Content(){return is}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Sg={class:"vp-page"},kg={class:"theme-default-content","vp-content":""};function Pg(e,t,n,r,o,s){return K(),ee("main",Sg,[ke(e.$slots,"top"),re("div",kg,[ke(e.$slots,"content-top"),se(r.Content),ke(e.$slots,"content-bottom")]),se(r.VPPageMeta),se(r.VPPageNav),ke(e.$slots,"bottom")])}const Lg=we(wg,[["render",Pg],["__file","VPPage.vue"]]),xg=de({__name:"VPSidebarItem",props:{item:{},depth:{default:0}},setup(e,{expose:t}){t();const n=e,{item:r,depth:o}=Zi(n),s=Et(),i=Wt(),l=I(()=>"collapsible"in r.value&&r.value.collapsible),a=I(()=>ca(r.value,s)),u=I(()=>({"vp-sidebar-item":!0,"vp-sidebar-heading":o.value===0,active:a.value,collapsible:l.value})),f=I(()=>l.value?a.value:!0),[c,p]=Wd(f.value),m=x=>{l.value&&(x.preventDefault(),p())},v=i.afterEach(()=>{Pn(()=>{c.value=f.value})});Go(()=>{v()});const w={props:n,item:r,depth:o,route:s,router:i,collapsible:l,isActive:a,itemClass:u,isOpenDefault:f,isOpen:c,toggleIsOpen:p,onClick:m,unregisterRouterHook:v,VPDropdownTransition:ma,get AutoLink(){return xn}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}}),Cg={class:"vp-sidebar-children"};function Tg(e,t,n,r,o,s){const i=qo("VPSidebarItem",!0);return K(),ee("li",null,[r.item.link?(K(),Le(r.AutoLink,{key:0,class:Ge(r.itemClass),config:r.item},null,8,["class","config"])):(K(),ee("p",{key:1,tabindex:"0",class:Ge(r.itemClass),onClick:r.onClick,onKeydown:Zu(r.onClick,["enter"])},[Ht(Pe(r.item.text)+" ",1),r.collapsible?(K(),ee("span",{key:0,class:Ge(["arrow",r.isOpen?"down":"right"])},null,2)):Te("",!0)],34)),"children"in r.item&&r.item.children.length?(K(),Le(r.VPDropdownTransition,{key:2},{default:Ce(()=>[xr(re("ul",Cg,[(K(!0),ee(ve,null,Vt(r.item.children,l=>(K(),Le(i,{key:`${r.depth}${l.text}${l.link}`,item:l,depth:r.depth+1},null,8,["item","depth"]))),128))],512),[[Mr,r.isOpen]])]),_:1})):Te("",!0)])}const Ag=we(xg,[["render",Tg],["__file","VPSidebarItem.vue"]]),Og=de({__name:"VPSidebarItems",setup(e,{expose:t}){t();const n=Et(),r=ds();je(()=>{Ae(()=>n.hash,s=>{const i=document.querySelector(".vp-sidebar");if(!i)return;const l=document.querySelector(`.vp-sidebar a.vp-sidebar-item[href="${n.path}${s}"]`);if(!l)return;const{top:a,height:u}=i.getBoundingClientRect(),{top:f,height:c}=l.getBoundingClientRect();fa+u&&l.scrollIntoView(!1)})});const o={route:n,sidebarItems:r,VPSidebarItem:Ag};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Rg={key:0,class:"vp-sidebar-items"};function Ig(e,t,n,r,o,s){return r.sidebarItems.length?(K(),ee("ul",Rg,[(K(!0),ee(ve,null,Vt(r.sidebarItems,i=>(K(),Le(r.VPSidebarItem,{key:`${i.text}${i.link}`,item:i},null,8,["item"]))),128))])):Te("",!0)}const Mg=we(Og,[["render",Ig],["__file","VPSidebarItems.vue"]]),zg=de({__name:"VPSidebar",setup(e,{expose:t}){t();const n={VPNavbarItems:_a,VPSidebarItems:Mg};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Dg={class:"vp-sidebar","vp-sidebar":""};function Vg(e,t,n,r,o,s){return K(),ee("aside",Dg,[se(r.VPNavbarItems),ke(e.$slots,"top"),se(r.VPSidebarItems),ke(e.$slots,"bottom")])}const $g=we(zg,[["render",Vg],["__file","VPSidebar.vue"]]),Hg=de({__name:"Layout",setup(e,{expose:t}){t();const n=Ln(),r=ct(),o=Oe(),s=I(()=>r.value.navbar!==!1&&o.value.navbar!==!1),i=ds(),l=ae(!1),a=g=>{l.value=typeof g=="boolean"?g:!l.value},u={x:0,y:0},f=g=>{u.x=g.changedTouches[0].clientX,u.y=g.changedTouches[0].clientY},c=g=>{const S=g.changedTouches[0].clientX-u.x,H=g.changedTouches[0].clientY-u.y;Math.abs(S)>Math.abs(H)&&Math.abs(S)>40&&(S>0&&u.x<=80?a(!0):a(!1))},p=I(()=>r.value.externalLinkIcon??o.value.externalLinkIcon??!0),m=I(()=>[{"no-navbar":!s.value,"no-sidebar":!i.value.length,"sidebar-open":l.value,"external-link-icon":p.value},r.value.pageClass]);let v;je(()=>{v=Wt().afterEach(()=>{a(!1)})}),Br(()=>{v()});const w=aa(),x=w.resolve,O=w.pending,E={page:n,frontmatter:r,themeLocale:o,shouldShowNavbar:s,sidebarItems:i,isSidebarOpen:l,toggleSidebar:a,touchStart:u,onTouchStart:f,onTouchEnd:c,enableExternalLinkIcon:p,containerClass:m,get unregisterRouterHook(){return v},set unregisterRouterHook(g){v=g},scrollPromise:w,onBeforeEnter:x,onBeforeLeave:O,VPHome:jp,VPNavbar:jm,VPPage:Lg,VPSidebar:$g};return Object.defineProperty(E,"__isScriptSetup",{enumerable:!1,value:!0}),E}});function Ng(e,t,n,r,o,s){return K(),ee("div",{class:Ge(["vp-theme-container",r.containerClass]),"vp-container":"",onTouchstart:r.onTouchStart,onTouchend:r.onTouchEnd},[ke(e.$slots,"navbar",{},()=>[r.shouldShowNavbar?(K(),Le(r.VPNavbar,{key:0,onToggleSidebar:r.toggleSidebar},{before:Ce(()=>[ke(e.$slots,"navbar-before")]),after:Ce(()=>[ke(e.$slots,"navbar-after")]),_:3})):Te("",!0)]),re("div",{class:"vp-sidebar-mask",onClick:t[0]||(t[0]=i=>r.toggleSidebar(!1))}),ke(e.$slots,"sidebar",{},()=>[se(r.VPSidebar,null,{top:Ce(()=>[ke(e.$slots,"sidebar-top")]),bottom:Ce(()=>[ke(e.$slots,"sidebar-bottom")]),_:3})]),ke(e.$slots,"page",{},()=>[r.frontmatter.home?(K(),Le(r.VPHome,{key:0})):(K(),Le(or,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:r.onBeforeEnter,onBeforeLeave:r.onBeforeLeave},{default:Ce(()=>[(K(),Le(r.VPPage,{key:r.page.path},{top:Ce(()=>[ke(e.$slots,"page-top")]),"content-top":Ce(()=>[ke(e.$slots,"page-content-top")]),"content-bottom":Ce(()=>[ke(e.$slots,"page-content-bottom")]),bottom:Ce(()=>[ke(e.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34)}const jg=we(Hg,[["render",Ng],["__file","Layout.vue"]]),Bg=de({__name:"NotFound",setup(e,{expose:t}){t();const n=ln(),r=Oe(),o=r.value.notFound??["Not Found"],s=()=>o[Math.floor(Math.random()*o.length)],i=r.value.home??n.value,l=r.value.backToHome??"Back to home",a={routeLocale:n,themeLocale:r,messages:o,getMsg:s,homeLink:i,homeText:l,get RouteLink(){return Yr}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Fg=e=>(vc("data-v-0a9b9ffc"),e=e(),_c(),e),Ug={class:"vp-theme-container","vp-container":""},Wg={class:"page"},Kg={class:"theme-default-content","vp-content":""},Gg=Fg(()=>re("h1",null,"404",-1));function qg(e,t,n,r,o,s){return K(),ee("div",Ug,[re("main",Wg,[re("div",Kg,[Gg,re("blockquote",null,Pe(r.getMsg()),1),se(r.RouteLink,{to:r.homeLink},{default:Ce(()=>[Ht(Pe(r.homeText),1)]),_:1},8,["to"])])])])}const Yg=we(Bg,[["render",qg],["__scopeId","data-v-0a9b9ffc"],["__file","NotFound.vue"]]),Qg=wt({enhance({app:e,router:t}){mo("Badge")||e.component("Badge",gp),mo("CodeGroup")||e.component("CodeGroup",vp),mo("CodeGroupItem")||e.component("CodeGroupItem",yp),e.component("VPSearch",()=>{const r=e.component("Docsearch")??e.component("SearchBox");return r?ye(r):null});const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...r)=>(await aa().wait(),n(...r))},setup(){np(),hp()},layouts:{Layout:jg,NotFound:Yg}}),Jg=Object.freeze(Object.defineProperty({__proto__:null,default:Qg},Symbol.toStringTag,{value:"Module"})),Xg=e=>{const t=ot("keydown",n=>{const r=n.key==="k"&&(n.ctrlKey||n.metaKey);!(n.key==="/")&&!r||(n.preventDefault(),e(),t())})};function Zg(e,t,n){var r,o,s;n===void 0&&(n={});var i=(r=n.isImmediate)!=null&&r,l=(o=n.callback)!=null&&o,a=n.maxWait,u=Date.now(),f=[];function c(){if(a!==void 0){var m=Date.now()-u;if(m+t>=a)return a-m}return t}var p=function(){var m=[].slice.call(arguments),v=this;return new Promise(function(w,x){var O=i&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,u=Date.now(),!i){var g=e.apply(v,m);l&&l(g),f.forEach(function(S){return(0,S.resolve)(g)}),f=[]}},c()),O){var E=e.apply(v,m);return l&&l(E),w(E)}f.push({resolve:w,reject:x})})};return p.cancel=function(m){s!==void 0&&clearTimeout(s),f.forEach(function(v){return(0,v.reject)(m)}),f=[]},p}const ev=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,tv=()=>{const e=Wt();return{transformItems:t=>t.map(n=>({...n,url:`/${Zo(ff(n.url,"/"))}`})),hitComponent:({hit:t,children:n})=>({type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:t.url,onClick:r=>{ev(r)||(r.preventDefault(),e.push(t.url.replace("/","/")))},children:n},__v:null}),navigator:{navigate:({itemUrl:t})=>{e.push(t.replace("/","/"))}},transformSearchClient:t=>{const n=Zg(t.search,500);return{...t,search:async(...r)=>n(...r)}}}};var nv={appId:"34YFD9IUQ2",apiKey:"9a9058b8655746634e01071411c366b8",indexName:"vuepress",searchParameters:{facetFilters:["tags:v2"]},locales:{"/zh/":{placeholder:"搜索文档",translations:{button:{buttonText:"搜索文档",buttonAriaLabel:"搜索文档"},modal:{searchBox:{resetButtonTitle:"清除查询条件",resetButtonAriaLabel:"清除查询条件",cancelButtonText:"取消",cancelButtonAriaLabel:"取消"},startScreen:{recentSearchesTitle:"搜索历史",noRecentSearchesText:"没有搜索历史",saveRecentSearchButtonTitle:"保存至搜索历史",removeRecentSearchButtonTitle:"从搜索历史中移除",favoriteSearchesTitle:"收藏",removeFavoriteSearchButtonTitle:"从收藏中移除"},errorScreen:{titleText:"无法获取结果",helpText:"你可能需要检查你的网络连接"},footer:{selectText:"选择",navigateText:"切换",closeText:"关闭",searchByText:"搜索提供者"},noResultsScreen:{noResultsText:"无法找到相关结果",suggestedQueryText:"你可以尝试查询",reportMissingResultsText:"你认为该查询应该有结果?",reportMissingResultsLinkText:"点击反馈"}}}}}};const rv=nv,ov=ae(rv),ba=Symbol(""),sv=()=>{const e=Ne(ba),t=ln();return I(()=>{var n;return{...e.value,...(n=e.value.locales)==null?void 0:n[t.value]}})},iv=e=>{e.provide(ba,ov)},lv=(e,t=[])=>[`lang:${e}`,...Array.isArray(t)?t:[t]],av=({buttonText:e="Search",buttonAriaLabel:t=e}={})=>``,cv=16,ya=()=>{if(document.querySelector(".DocSearch-Modal"))return;const e=new Event("keydown");e.key="k",e.metaKey=!0,window.dispatchEvent(e),setTimeout(ya,cv)},uv=e=>{const t="algolia-preconnect";("requestIdleCallback"in window?window.requestIdleCallback:setTimeout)(()=>{if(document.head.querySelector(`#${t}`))return;const r=document.createElement("link");r.id=t,r.rel="preconnect",r.href=`https://${e}-dsn.algolia.net`,r.crossOrigin="",document.head.appendChild(r)})};F(()=>Promise.resolve({}),[]),F(()=>Promise.resolve({}),[]);const fv=de({name:"Docsearch",props:{containerId:{type:String,default:"docsearch-container"},options:{type:Object,default:()=>({})}},setup(e){const t=sv(),n=tv(),r=ql(),o=ln(),s=ae(!1),i=ae(!1),l=I(()=>{const{locales:f={},...c}=e.options;return{...t.value,...c,...f[o.value]}}),a=async()=>{var c;const{default:f}=await F(async()=>{const{default:p}=await import("./index-DWGeGWcS.js");return{default:p}},[]);f({...n,...l.value,container:`#${e.containerId}`,searchParameters:{...l.value.searchParameters,facetFilters:lv(r.value,(c=l.value.searchParameters)==null?void 0:c.facetFilters)}}),s.value=!0},u=()=>{i.value||s.value||(i.value=!0,a(),ya(),Ae(o,a))};return Xg(u),je(()=>{uv(l.value.appId)}),()=>{var f;return[ye("div",{id:e.containerId,style:{display:s.value?"block":"none"}}),s.value?null:ye("div",{onClick:u,innerHTML:av((f=l.value.translations)==null?void 0:f.button)})]}}}),dv=wt({enhance({app:e}){iv(e),e.component("Docsearch",fv)}}),hv=Object.freeze(Object.defineProperty({__proto__:null,default:dv},Symbol.toStringTag,{value:"Module"})),pv=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e.id}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer??[],window.gtag=function(){window.dataLayer.push(arguments)},window.gtag("js",new Date),e.debug?window.gtag("config",e.id,{debug_mode:!0}):window.gtag("config",e.id)};var mv={id:"G-CTB8FQ7VMW"};const gv=mv,vv=wt({enhance(){pv(gv)}}),_v=Object.freeze(Object.defineProperty({__proto__:null,default:vv},Symbol.toStringTag,{value:"Module"})),bv={enhance:({app:e})=>{e.component("NpmBadge",al(()=>F(()=>import("./NpmBadge-Bbgds1va.js"),[])))}},yv=Object.freeze(Object.defineProperty({__proto__:null,default:bv},Symbol.toStringTag,{value:"Module"})),Ev=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),br=[uh,yh,xh,Ch,jh,Gh,Zh,Jg,hv,_v,yv,Ev].map(e=>e.default).filter(Boolean),wv=JSON.parse('{"base":"/","lang":"en-US","title":"","description":"","head":[["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"}]],"locales":{"/":{"lang":"en-US","title":"VuePress","description":"Vue-powered Static Site Generator"},"/zh/":{"lang":"zh-CN","title":"VuePress","description":"Vue 驱动的静态网站生成器"}}}');var Mn=Dt(wv),Sv=Xf,kv=()=>{const e=kd({history:Sv(Dl("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===vt){const r=qn(t.fullPath);if(r.path!==t.fullPath)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},Pv=e=>{e.component("ClientOnly",ss),e.component("Content",is),e.component("RouteLink",Yr)},Lv=(e,t,n)=>{const r=I(()=>t.currentRoute.value.path),o=ac((x,O)=>({get(){return x(),t.currentRoute.value.meta._pageChunk},set(E){t.currentRoute.value.meta._pageChunk=E,O()}})),s=I(()=>Yt.resolveLayouts(n)),i=I(()=>Yt.resolveRouteLocale(Mn.value.locales,r.value)),l=I(()=>Yt.resolveSiteLocaleData(Mn.value,i.value)),a=I(()=>o.value.comp),u=I(()=>o.value.data),f=I(()=>u.value.frontmatter),c=I(()=>Yt.resolvePageHeadTitle(u.value,l.value)),p=I(()=>Yt.resolvePageHead(c.value,f.value,l.value)),m=I(()=>Yt.resolvePageLang(u.value,l.value)),v=I(()=>Yt.resolvePageLayout(u.value,s.value)),w={layouts:s,pageData:u,pageComponent:a,pageFrontmatter:f,pageHead:p,pageHeadTitle:c,pageLang:m,pageLayout:v,redirects:Oo,routeLocale:i,routePath:r,routes:bn,siteData:Mn,siteLocaleData:l};return e.provide(rs,w),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>p.value},$headTitle:{get:()=>c.value},$lang:{get:()=>m.value},$page:{get:()=>u.value},$routeLocale:{get:()=>i.value},$site:{get:()=>Mn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>ls}}),w},xv=()=>{const e=xd(),t=ql();let n=[];const r=()=>{e.value.forEach(i=>{const l=Cv(i);l&&n.push(l)})},o=()=>{const i=[];return e.value.forEach(l=>{const a=Tv(l);a&&i.push(a)}),i},s=()=>{document.documentElement.lang=t.value;const i=o();n.forEach((l,a)=>{const u=i.findIndex(f=>l.isEqualNode(f));u===-1?(l.remove(),delete n[a]):i.splice(u,1)}),i.forEach(l=>document.head.appendChild(l)),n=[...n.filter(l=>!!l),...i]};rn(Ad,s),je(()=>{r(),Ae(e,s,{immediate:!1})})},Cv=([e,t,n=""])=>{const r=Object.entries(t).map(([l,a])=>it(a)?`[${l}=${JSON.stringify(a)}]`:a===!0?`[${l}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(l=>l.innerText===n)||null},Tv=([e,t,n])=>{if(!it(e))return null;const r=document.createElement(e);return es(t)&&Object.entries(t).forEach(([o,s])=>{it(s)?r.setAttribute(o,s):s===!0&&r.setAttribute(o,"")}),it(n)&&r.appendChild(document.createTextNode(n)),r},Av=nf,Ov=async()=>{var n;const e=Av({name:"Vuepress",setup(){var s;xv();for(const i of br)(s=i.setup)==null||s.call(i);const r=br.flatMap(({rootComponents:i=[]})=>i.map(l=>ye(l))),o=Cd();return()=>[ye(o.value),r]}}),t=kv();Pv(e),Lv(e,t,br);for(const r of br)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:Mn}));return e.use(t),{app:e,router:t}};Ov().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{ve as F,we as _,re as a,Ht as b,ee as c,Ov as createVueApp,se as d,gu as e,Vt as f,ae as g,ye as h,de as i,I as j,K as o,qo as r,Pe as t,Ce as w}; diff --git a/assets/architecture.html-BgpA9p7z.js b/assets/architecture.html-BgpA9p7z.js new file mode 100644 index 000000000..d5859734b --- /dev/null +++ b/assets/architecture.html-BgpA9p7z.js @@ -0,0 +1 @@ +import{_ as i,a as n}from"./vuepress-core-process-C4qfrYlz.js";import{_ as s,r as a,o as c,c as p,a as t,b as e,d as r,w as l,e as u}from"./app-CqHoxGIc.js";const d={},h=u('

Architecture

Overview

vuepress-architecture-overview

The above figure shows a brief overview of the VuePress architecture:

  • Node App will generate temp files, including the pages, routes, etc.
  • Bundler will handle Client App together with the temp files, just like a common Vue app.

As a developer, you must be aware of that VuePress has two main parts: Node App and Client App, which is important when developing plugins and themes:

  • The entry file of a plugin or a theme will be loaded in Node App.
  • Client files will be loaded in Client App, which will be handled by bundler. For example, components, client config files, etc.

Core Process and Hooks

vuepress-core-process

',9),m=t("strong",null,"init",-1),g=t("li",null,"Theme and plugins will be loaded. That means all the plugins should be used before initialization.",-1),v=t("li",null,[e("In the "),t("strong",null,"prepare"),e(" stage: "),t("ul",null,[t("li",null,"Temp files will be generated, so all hooks related to client files will be processed here.")])],-1),f=t("strong",null,"dev / build",-1);function w(_,b){const o=a("RouteLink");return c(),p("div",null,[h,t("p",null,[e("The above figure shows the core process of VuePress Node App and the hooks of "),r(o,{to:"/reference/plugin-api.html"},{default:l(()=>[e("Plugin API")]),_:1}),e(":")]),t("ul",null,[t("li",null,[e("In the "),m,e(" stage: "),t("ul",null,[g,t("li",null,[e("As we are using markdown-it to parse the markdown file, so we need to create markdown-it instance before loading pages: "),t("ul",null,[t("li",null,[r(o,{to:"/reference/plugin-api.html#extendsmarkdownoptions"},{default:l(()=>[e("extendsMarkdownOptions")]),_:1}),e(" hook will be processed to create markdown-it instance.")]),t("li",null,[r(o,{to:"/reference/plugin-api.html#extendsmarkdown"},{default:l(()=>[e("extendsMarkdown")]),_:1}),e(" hook will be processed extends markdown-it instance.")])])]),t("li",null,[e("Page files will be loaded: "),t("ul",null,[t("li",null,[r(o,{to:"/reference/plugin-api.html#extendspageoptions"},{default:l(()=>[e("extendsPageOptions")]),_:1}),e(" hook will be processed to create pages.")]),t("li",null,[r(o,{to:"/reference/plugin-api.html#extendspage"},{default:l(()=>[e("extendsPage")]),_:1}),e(" hook will be processed to extends page object.")])])])])]),v,t("li",null,[e("In the "),f,e(" stage: "),t("ul",null,[t("li",null,[e("Bundler will be resolved: "),t("ul",null,[t("li",null,[r(o,{to:"/reference/plugin-api.html#extendsbundleroptions"},{default:l(()=>[e("extendsBundlerOptions")]),_:1}),e(" hook will be processed to create bundler configuration.")]),t("li",null,[r(o,{to:"/reference/plugin-api.html#alias"},{default:l(()=>[e("alias")]),_:1}),e(" hook and "),r(o,{to:"/reference/plugin-api.html#define"},{default:l(()=>[e("define")]),_:1}),e(" hook would be used in bundler configuration, so they will be processed here.")])])])])])])])}const y=s(d,[["render",w],["__file","architecture.html.vue"]]),A=JSON.parse('{"path":"/advanced/architecture.html","title":"Architecture","lang":"en-US","frontmatter":{"description":"Architecture Overview vuepress-architecture-overview The above figure shows a brief overview of the VuePress architecture: Node App will generate temp files, including the pages...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/advanced/architecture.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/advanced/architecture.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Architecture"}],["meta",{"property":"og:description","content":"Architecture Overview vuepress-architecture-overview The above figure shows a brief overview of the VuePress architecture: Node App will generate temp files, including the pages..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://v2.vuepress.vuejs.org/images/guide/vuepress-architecture-overview.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-02-05T05:23:13.000Z"}],["meta",{"property":"article:modified_time","content":"2024-02-05T05:23:13.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Architecture\\",\\"image\\":[\\"https://v2.vuepress.vuejs.org/images/guide/vuepress-architecture-overview.png\\",\\"https://v2.vuepress.vuejs.org/images/guide/vuepress-core-process.png\\"],\\"dateModified\\":\\"2024-02-05T05:23:13.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Core Process and Hooks","slug":"core-process-and-hooks","link":"#core-process-and-hooks","children":[]}],"git":{"updatedTime":1707110593000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"advanced/architecture.md"}');export{y as comp,A as data}; diff --git a/assets/architecture.html-CbsChR0W.js b/assets/architecture.html-CbsChR0W.js new file mode 100644 index 000000000..c8633b526 --- /dev/null +++ b/assets/architecture.html-CbsChR0W.js @@ -0,0 +1 @@ +import{_ as n,a as s}from"./vuepress-core-process-C4qfrYlz.js";import{_ as a,r as i,o as p,c as u,a as t,b as e,d as r,w as o,e as c}from"./app-CqHoxGIc.js";const d={},h=c('

架构

概览

vuepress-architecture-overview

上图展示了 VuePress 的简要架构:

  • Node App 会生成临时文件,包括页面、路由等。
  • Bundler 会将 Client App 和临时文件一起进行打包,就像处理一个普通的 Vue App 一样。

作为开发者,你必须要意识到 VuePress 分为两个主要部分: Node AppClient App ,这一点对于开发插件和主题来说都十分重要。

  • 插件或者主题的入口文件会在 Node App 中被加载。
  • 客户端文件会在 Client App 中被加载,也就是会被 Bundler 处理。比如组件、客户端配置文件等。

核心流程与 Hooks

vuepress-core-process

',9),m=t("strong",null,"init",-1),g=t("li",null,"主题和插件会被加载。这意味着插件需要在初始化之前使用。",-1),v=t("li",null,[e("在 "),t("strong",null,"prepare"),e(" 阶段: "),t("ul",null,[t("li",null,"临时文件会被生成,因此所有和客户端文件相关的 Hooks 会在此处调用。")])],-1),_=t("strong",null,"dev / build",-1);function f(k,x){const l=i("RouteLink");return p(),u("div",null,[h,t("p",null,[e("上图展示了 VuePress 的核心流程以及 "),r(l,{to:"/zh/reference/plugin-api.html"},{default:o(()=>[e("插件 API")]),_:1}),e(" 的 Hooks :")]),t("ul",null,[t("li",null,[e("在 "),m,e(" 阶段: "),t("ul",null,[g,t("li",null,[e("由于我们要使用 markdown-it 来解析 Markdown 文件,因此需要在加载页面文件之前创建 markdown-it 实例: "),t("ul",null,[t("li",null,[r(l,{to:"/zh/reference/plugin-api.html#extendsmarkdownoptions"},{default:o(()=>[e("extendsMarkdownOptions")]),_:1}),e(" Hook 会被调用,用以创建 markdown-it 实例。")]),t("li",null,[r(l,{to:"/zh/reference/plugin-api.html#extendsmarkdown"},{default:o(()=>[e("extendsMarkdown")]),_:1}),e(" Hook 会被调用,用以扩展 markdown-it 实例。")])])]),t("li",null,[e("页面文件会被加载: "),t("ul",null,[t("li",null,[r(l,{to:"/zh/reference/plugin-api.html#extendspageoptions"},{default:o(()=>[e("extendsPageOptions")]),_:1}),e(" Hook 会被调用,用以创建页面。")]),t("li",null,[r(l,{to:"/zh/reference/plugin-api.html#extendspage"},{default:o(()=>[e("extendsPage")]),_:1}),e(" Hook 会被调用,用以扩展页面对象。")])])])])]),v,t("li",null,[e("在 "),_,e(" 阶段: "),t("ul",null,[t("li",null,[e("Bundler 会被加载: "),t("ul",null,[t("li",null,[r(l,{to:"/zh/reference/plugin-api.html#extendsbundleroptions"},{default:o(()=>[e("extendsBundlerOptions")]),_:1}),e(" Hook 会被调用,用以生成 Bundler 的配置。")]),t("li",null,[r(l,{to:"/zh/reference/plugin-api.html#alias"},{default:o(()=>[e("alias")]),_:1}),e(" Hook 和 "),r(l,{to:"/zh/reference/plugin-api.html#define"},{default:o(()=>[e("define")]),_:1}),e(" Hook 会被用在 Bundler 的配置中,所以它们会在此处调用。")])])])])])])])}const A=a(d,[["render",f],["__file","architecture.html.vue"]]),V=JSON.parse('{"path":"/zh/advanced/architecture.html","title":"架构","lang":"zh-CN","frontmatter":{"description":"架构 概览 vuepress-architecture-overview 上图展示了 VuePress 的简要架构: Node App 会生成临时文件,包括页面、路由等。 Bundler 会将 Client App 和临时文件一起进行打包,就像处理一个普通的 Vue App 一样。 作为开发者,你必须要意识到 VuePress 分为两个主要部分: No...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/advanced/architecture.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/advanced/architecture.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"架构"}],["meta",{"property":"og:description","content":"架构 概览 vuepress-architecture-overview 上图展示了 VuePress 的简要架构: Node App 会生成临时文件,包括页面、路由等。 Bundler 会将 Client App 和临时文件一起进行打包,就像处理一个普通的 Vue App 一样。 作为开发者,你必须要意识到 VuePress 分为两个主要部分: No..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://v2.vuepress.vuejs.org/images/guide/vuepress-architecture-overview.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-02-05T05:23:13.000Z"}],["meta",{"property":"article:modified_time","content":"2024-02-05T05:23:13.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"架构\\",\\"image\\":[\\"https://v2.vuepress.vuejs.org/images/guide/vuepress-architecture-overview.png\\",\\"https://v2.vuepress.vuejs.org/images/guide/vuepress-core-process.png\\"],\\"dateModified\\":\\"2024-02-05T05:23:13.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"概览","slug":"概览","link":"#概览","children":[]},{"level":2,"title":"核心流程与 Hooks","slug":"核心流程与-hooks","link":"#核心流程与-hooks","children":[]}],"git":{"updatedTime":1707110593000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2}]},"autoDesc":true,"filePathRelative":"zh/advanced/architecture.md"}');export{A as comp,V as data}; diff --git a/assets/assets.html-BZjFvqCZ.js b/assets/assets.html-BZjFvqCZ.js new file mode 100644 index 000000000..29c678934 --- /dev/null +++ b/assets/assets.html-BZjFvqCZ.js @@ -0,0 +1,24 @@ +import{_ as t}from"./hero-BNkrhNQ6.js";import{_ as r,r as p,o as i,c,a as e,b as s,d as n,w as l,e as o}from"./app-CqHoxGIc.js";const d={},u=o('

Assets

Relative URLs

You can reference any assets using relative URLs in your Markdown content:

![An image](./image.png)

or

![An image](image.png)

This is generally the suggested way to import images, as users usually place images near the Markdown file that references them.

Public Files

You can put some static assets inside public directory, and they will be copied to the root of the generated directory.

',9),D=e("code",null,".vuepress/public",-1),m=o(`

It would be useful in some cases:

  • You may need to provide static assets that are not directly referenced in any of your Markdown files, for example, favicon and PWA icons.
  • You may need to serve some shared static assets, which may even be referenced outside your site, for example, logo images.
  • You may want to reference images using absolute URLs in your Markdown content.

Take our documentation source files as an example, we are putting the logo of VuePress inside the public directory:

└─ docs
+   ├─ .vuepress
+   |  └─ public
+   |     └─ images
+   |        └─ hero.png  # <- Logo file
+   └─ guide
+      └─ assets.md       # <- Here we are

We can reference our logo in current page like this:

Input

![VuePress Logo](/images/hero.png)

Output

VuePress Logo

Base Helper

',10),y=e("code",null,"https://foo.github.io/bar/",-1),h=e("code",null,"'/bar/'",-1),g=e("code",null,"https://foo.github.io/bar/images/hero.png",-1),v=o('

In most cases, you don't need to worry about the reference path of those public files, as VuePress will automatically handle base for you:

<!-- you don't need to prepend `/bar/` to `/images/hero.png` manually -->\n\n![VuePress Logo](/images/hero.png)
',2),b={class:"hint-container tip"},C=e("p",{class:"hint-container-title"},"Tips",-1),f=e("code",null,"true",-1),k=e("code",null,"base",-1),E=e("code",null,"base",-1),_=o(`
<script setup>
+import { ref } from 'vue'
+import { withBase } from 'vuepress/client'
+
+const logoPath = ref('/images/hero.png')
+</script>
+
+<template>
+  <img :src="withBase(logoPath)" />
+</template>

You can also access the helper by $withBase directly:

<img :src="$withBase('/images/hero.png')" alt="VuePress Logo">

Packages and Path Aliases

Although it is not a common usage, you can reference images from dependent packages:

npm install -D package-name

Since markdown image syntax regards image links as relative paths by default, you need to use <img> tag:

<img src="package-name/image.png" alt="Image from dependency">

The path aliases that set in config file are also supported:

import { getDirname, path } from 'vuepress/utils'
+
+const __dirname = getDirname(import.meta.url)
+
+export default {
+  alias: {
+    '@alias': path.resolve(__dirname, './path/to/some/dir'),
+  },
+}
<img src="@alias/image.png" alt="Image from path alias">
`,11),A={class:"hint-container tip"},w=e("p",{class:"hint-container-title"},"Tips",-1);function x(F,P){const a=p("RouteLink");return i(),c("div",null,[u,e("p",null,[s("The default public directory is "),D,s(", which can be changed by "),n(a,{to:"/reference/config.html#public"},{default:l(()=>[s("public")]),_:1}),s(" option.")]),m,e("p",null,[s("If your site is deployed to a non-root URL, for example, "),y,s(", then the "),n(a,{to:"/reference/config.html#base"},{default:l(()=>[s("base")]),_:1}),s(" should be set to "),h,s(". Obviously, your public files would be served like "),g,s(" after deployment.")]),v,e("div",b,[C,e("p",null,[s("When using "),n(a,{to:"/reference/bundler/webpack.html"},{default:l(()=>[s("webpack bundler")]),_:1}),s(", you need to set "),n(a,{to:"/reference/config.html#markdown-assets"},{default:l(()=>[s("markdown.assets.absolutePathPrependBase")]),_:1}),s(" to "),f,s(" to automatically prepend base to markdown images.")])]),e("p",null,[s("However, sometimes you may have some dynamical links referencing public files, especially when you are authoring a custom theme. In such case, the "),k,s(" could not be handled automatically. To help with that, VuePress provides a "),n(a,{to:"/reference/client-api.html#withbase"},{default:l(()=>[s("withBase")]),_:1}),s(" helper to prepend "),E,s(" for you:")]),_,e("div",A,[w,e("p",null,[s("Config reference: "),n(a,{to:"/reference/plugin-api.html#alias"},{default:l(()=>[s("alias")]),_:1})])])])}const q=r(d,[["render",x],["__file","assets.html.vue"]]),T=JSON.parse('{"path":"/guide/assets.html","title":"Assets","lang":"en-US","frontmatter":{"description":"Assets Relative URLs You can reference any assets using relative URLs in your Markdown content: or This is generally the suggested way to import images, as users usually place i...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/assets.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/assets.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Assets"}],["meta",{"property":"og:description","content":"Assets Relative URLs You can reference any assets using relative URLs in your Markdown content: or This is generally the suggested way to import images, as users usually place i..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://v2.vuepress.vuejs.org/images/hero.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-31T07:59:53.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T07:59:53.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Assets\\",\\"image\\":[\\"https://v2.vuepress.vuejs.org/images/hero.png\\",\\"https://v2.vuepress.vuejs.org/images/hero.png\\",\\"https://v2.vuepress.vuejs.org/images/hero.png\\"],\\"dateModified\\":\\"2024-08-31T07:59:53.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Relative URLs","slug":"relative-urls","link":"#relative-urls","children":[]},{"level":2,"title":"Public Files","slug":"public-files","link":"#public-files","children":[{"level":3,"title":"Base Helper","slug":"base-helper","link":"#base-helper","children":[]}]},{"level":2,"title":"Packages and Path Aliases","slug":"packages-and-path-aliases","link":"#packages-and-path-aliases","children":[]}],"git":{"updatedTime":1725091193000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":4},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"guide/assets.md"}');export{q as comp,T as data}; diff --git a/assets/assets.html-CYHEojlm.js b/assets/assets.html-CYHEojlm.js new file mode 100644 index 000000000..c83cc8007 --- /dev/null +++ b/assets/assets.html-CYHEojlm.js @@ -0,0 +1,24 @@ +import{_ as t}from"./hero-BNkrhNQ6.js";import{_ as p,r,o as i,c,a as e,b as s,d as n,w as l,e as o}from"./app-CqHoxGIc.js";const d={},D=o('

静态资源

相对路径

你可以在你的 Markdown 内容中使用相对路径来引用静态资源:

![图片](./image.png)

![图片](image.png)

一般情况下,我们推荐你使用这种方式来引用图片,因为人们通常会把图片放在引用它的 Markdown 文件附近。

Public 文件

你可以把一些静态资源放在 Public 目录中,它们会被复制到最终生成的网站的根目录下。

',9),u=e("code",null,".vuepress/public",-1),m=o(`

在下列这些情况中,你可能会用到它:

  • 你可能需要提供一些静态资源,但是它们并不直接被你的 Markdown 文件引用,比如 favicon 和 PWA 图标。
  • 你可能想要托管一些共享的静态资源,甚至可能需要在你的网站外部引用它,比如 Logo 图片。
  • 你可能想在你的 Markdown 内容中通过绝对路径来引入图片。

以我们文档的源文件为例,我们把 VuePress 的 Logo 放在了 Public 目录下:

└─ docs
+   ├─ .vuepress
+   |  └─ public
+   |     └─ images
+   |        └─ hero.png  # <- Logo 文件
+   └─ guide
+      └─ assets.md       # <- 我们在这里

我们可以这样在当前页面引用 Logo :

Input

![VuePress Logo](/images/hero.png)

Output

VuePress Logo

Base Helper

',10),h=e("code",null,"https://foo.github.io/bar/",-1),y=e("code",null,"'/bar/'",-1),v=e("code",null,"https://foo.github.io/bar/images/hero.png",-1),g=o('

在大多数情况下,你不需要担心这些 Public 文件的引用路径,因为 VuePress 会自动帮你处理 base 前缀:

<!-- 你不需要给 `/images/hero.png` 手动添加 `/bar/` 前缀 -->\n\n![VuePress Logo](/images/hero.png)
',2),b={class:"hint-container tip"},C=e("p",{class:"hint-container-title"},"提示",-1),E=e("code",null,"true",-1),k=e("code",null,"base",-1),_=e("code",null,"base",-1),f=e("code",null,"base",-1),x=o(`
<script setup>
+import { ref } from 'vue'
+import { withBase } from 'vuepress/client'
+
+const logoPath = ref('/images/hero.png')
+</script>
+
+<template>
+  <img :src="withBase(logoPath)" />
+</template>

你也可以通过 $withBase 来直接使用这个工具函数:

<img :src="$withBase('/images/hero.png')" alt="VuePress Logo">

依赖包和路径别名

尽管这不是常见用法,但是你可以从依赖包中引用图片:

npm install -D package-name

由于 Markdown 会默认将图片链接视为相对链接,你需要使用 <img> 标签:

<img src="package-name/image.png" alt="来自依赖包的图片">

在配置文件中设置的路径别名也同样支持:

import { getDirname, path } from 'vuepress/utils'
+
+const __dirname = getDirname(import.meta.url)
+
+export default {
+  alias: {
+    '@alias': path.resolve(__dirname, './path/to/some/dir'),
+  },
+}
<img src="@alias/image.png" alt="来自路径别名的图片">
`,11),A={class:"hint-container tip"},P=e("p",{class:"hint-container-title"},"提示",-1);function F(w,q){const a=r("RouteLink");return i(),c("div",null,[D,e("p",null,[s("默认的 Public 目录是 "),u,s(" ,可以通过 "),n(a,{to:"/zh/reference/config.html#public"},{default:l(()=>[s("public")]),_:1}),s(" 配置项来修改。")]),m,e("p",null,[s("如果你的网站部署在非根路径下,例如 "),h,s(" ,那么你应该把 "),n(a,{to:"/zh/reference/config.html#base"},{default:l(()=>[s("base")]),_:1}),s(" 设置为 "),y,s("。显然,此时你的 Public 文件会被部署在 "),v,s(" 这样的链接下。")]),g,e("div",b,[C,e("p",null,[s("在使用 "),n(a,{to:"/zh/reference/bundler/webpack.html"},{default:l(()=>[s("Webpack 打包工具")]),_:1}),s(" 时,你需要将 "),n(a,{to:"/zh/reference/config.html#markdown-assets"},{default:l(()=>[s("markdown.assets.absolutePathPrependBase")]),_:1}),s(" 设置为 "),E,s(" 来给 Markdown 图片自动添加 "),k,s(" 前缀。")])]),e("p",null,[s("然而,有些情况下,你可能会有一些指向 Public 文件的动态路径,尤其是在你开发一个自定义主题的时候。在这种情况下, "),_,s(" 无法被自动处理。为了解决这个问题,VuePress 提供了 "),n(a,{to:"/zh/reference/client-api.html#withbase"},{default:l(()=>[s("withBase")]),_:1}),s(" 工具函数,它可以帮助你添加 "),f,s(" 前缀:")]),x,e("div",A,[P,e("p",null,[s("配置参考: "),n(a,{to:"/zh/reference/plugin-api.html#alias"},{default:l(()=>[s("alias")]),_:1})])])])}const z=p(d,[["render",F],["__file","assets.html.vue"]]),B=JSON.parse('{"path":"/zh/guide/assets.html","title":"静态资源","lang":"zh-CN","frontmatter":{"description":"静态资源 相对路径 你可以在你的 Markdown 内容中使用相对路径来引用静态资源: 或 一般情况下,我们推荐你使用这种方式来引用图片,因为人们通常会把图片放在引用它的 Markdown 文件附近。 Public 文件 你可以把一些静态资源放在 Public 目录中,它们会被复制到最终生成的网站的根目录下。 默认的 Public 目录是 .vuepr...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/assets.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/assets.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"静态资源"}],["meta",{"property":"og:description","content":"静态资源 相对路径 你可以在你的 Markdown 内容中使用相对路径来引用静态资源: 或 一般情况下,我们推荐你使用这种方式来引用图片,因为人们通常会把图片放在引用它的 Markdown 文件附近。 Public 文件 你可以把一些静态资源放在 Public 目录中,它们会被复制到最终生成的网站的根目录下。 默认的 Public 目录是 .vuepr..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://v2.vuepress.vuejs.org/images/hero.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-31T07:59:53.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T07:59:53.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"静态资源\\",\\"image\\":[\\"https://v2.vuepress.vuejs.org/images/hero.png\\",\\"https://v2.vuepress.vuejs.org/images/hero.png\\",\\"https://v2.vuepress.vuejs.org/images/hero.png\\"],\\"dateModified\\":\\"2024-08-31T07:59:53.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"相对路径","slug":"相对路径","link":"#相对路径","children":[]},{"level":2,"title":"Public 文件","slug":"public-文件","link":"#public-文件","children":[{"level":3,"title":"Base Helper","slug":"base-helper","link":"#base-helper","children":[]}]},{"level":2,"title":"依赖包和路径别名","slug":"依赖包和路径别名","link":"#依赖包和路径别名","children":[]}],"git":{"updatedTime":1725091193000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":4},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/guide/assets.md"}');export{z as comp,B as data}; diff --git a/assets/bundler.html-CB2ZGG6E.js b/assets/bundler.html-CB2ZGG6E.js new file mode 100644 index 000000000..66acfac3e --- /dev/null +++ b/assets/bundler.html-CB2ZGG6E.js @@ -0,0 +1,16 @@ +import{_ as c,r,o as p,c as d,d as n,w as l,a as e,b as s,e as o}from"./app-CqHoxGIc.js";const u={},b=o('

Bundler

VuePress supports using Webpack or Vite to dev and build sites. You can choose which bundler to use according to your preference, and no extra configuration is required.

Install a Bundler

When installing the vuepress package, no bundlers will be installed. You need to choose a bundler to install.

',4),h=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install vite bundler")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install webpack bundler")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-webpack@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),m=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install vite bundler")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install webpack bundler")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-webpack@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),v=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install vite bundler")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install webpack bundler")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-webpack@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),y=e("h2",{id:"use-a-bundler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#use-a-bundler"},[e("span",null,"Use a Bundler")])],-1),g=e("p",null,"Generally, you could use a bundler without extra configuration, because we have already configured them properly to work with VuePress.",-1),C=o(`
import { viteBundler } from '@vuepress/bundler-vite'
+// import { webpackBundler } from '@vuepress/bundler-webpack'
+
+export default {
+  bundler: viteBundler(),
+  // bundler: webpackBundler(),
+}

When you need to customize the bundler, you can set the corresponding options:

`,2);function D(_,f){const a=r("CodeGroupItem"),i=r("CodeGroup"),t=r("RouteLink");return p(),d("div",null,[b,n(i,null,{default:l(()=>[n(a,{title:"pnpm",active:""},{default:l(()=>[h]),_:1}),n(a,{title:"yarn"},{default:l(()=>[m]),_:1}),n(a,{title:"npm"},{default:l(()=>[v]),_:1})]),_:1}),y,g,e("p",null,[s("You can use a bundler via the "),n(t,{to:"/reference/config.html#bundler"},{default:l(()=>[s("bundler")]),_:1}),s(" option:")]),C,e("ul",null,[e("li",null,[n(t,{to:"/reference/bundler/vite.html"},{default:l(()=>[s("Bundlers > Vite")]),_:1})]),e("li",null,[n(t,{to:"/reference/bundler/webpack.html"},{default:l(()=>[s("Bundlers > Webpack")]),_:1})])])])}const E=c(u,[["render",D],["__file","bundler.html.vue"]]),x=JSON.parse('{"path":"/guide/bundler.html","title":"Bundler","lang":"en-US","frontmatter":{"description":"Bundler VuePress supports using Webpack or Vite to dev and build sites. You can choose which bundler to use according to your preference, and no extra configuration is required....","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/bundler.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/bundler.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Bundler"}],["meta",{"property":"og:description","content":"Bundler VuePress supports using Webpack or Vite to dev and build sites. You can choose which bundler to use according to your preference, and no extra configuration is required...."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2023-12-28T04:39:48.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-28T04:39:48.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Bundler\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-28T04:39:48.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Install a Bundler","slug":"install-a-bundler","link":"#install-a-bundler","children":[]},{"level":2,"title":"Use a Bundler","slug":"use-a-bundler","link":"#use-a-bundler","children":[]}],"git":{"updatedTime":1703738388000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2}]},"autoDesc":true,"filePathRelative":"guide/bundler.md"}');export{E as comp,x as data}; diff --git a/assets/bundler.html-CxqWeejo.js b/assets/bundler.html-CxqWeejo.js new file mode 100644 index 000000000..415fc512d --- /dev/null +++ b/assets/bundler.html-CxqWeejo.js @@ -0,0 +1,16 @@ +import{_ as c,r,o as i,c as d,d as n,w as l,a as e,b as s,e as o}from"./app-CqHoxGIc.js";const u={},m=o('

打包工具

VuePress 支持使用 ViteWebpack 作为打包工具来进行网站的开发和构建。你可以根据自己的喜好来选择使用哪个打包工具,并且不需要进行额外的配置。

安装打包工具

在安装 vuepress 包时,并不会自动安装打包工具,你需要选择并安装一个打包工具。

',4),h=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 vite 打包工具")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 webpack 打包工具")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-webpack@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),b=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 vite 打包工具")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 webpack 打包工具")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-webpack@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),v=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 vite 打包工具")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 webpack 打包工具")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-webpack@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),y=e("h2",{id:"使用打包工具",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#使用打包工具"},[e("span",null,"使用打包工具")])],-1),C=e("p",null,"一般情况下,你不要任何额外配置就可以使用打包工具,因为我们已经帮你配置好了它们。",-1),D=o(`
import { viteBundler } from '@vuepress/bundler-vite'
+// import { webpackBundler } from '@vuepress/bundler-webpack'
+
+export default {
+  bundler: viteBundler(),
+  // bundler: webpackBundler(),
+}

当你需要对打包工具进行进阶配置时,只需要传入对应的配置项即可:

`,2);function g(_,k){const a=r("CodeGroupItem"),p=r("CodeGroup"),t=r("RouteLink");return i(),d("div",null,[m,n(p,null,{default:l(()=>[n(a,{title:"pnpm",active:""},{default:l(()=>[h]),_:1}),n(a,{title:"yarn"},{default:l(()=>[b]),_:1}),n(a,{title:"npm"},{default:l(()=>[v]),_:1})]),_:1}),y,C,e("p",null,[s("你只需要通过 "),n(t,{to:"/zh/reference/config.html#bundler"},{default:l(()=>[s("bundler")]),_:1}),s(" 配置项指定打包工具即可:")]),D,e("ul",null,[e("li",null,[n(t,{to:"/zh/reference/bundler/vite.html"},{default:l(()=>[s("打包工具 > Vite")]),_:1})]),e("li",null,[n(t,{to:"/zh/reference/bundler/webpack.html"},{default:l(()=>[s("打包工具 > Webpack")]),_:1})])])])}const E=c(u,[["render",g],["__file","bundler.html.vue"]]),x=JSON.parse('{"path":"/zh/guide/bundler.html","title":"打包工具","lang":"zh-CN","frontmatter":{"description":"打包工具 VuePress 支持使用 Vite 或 Webpack 作为打包工具来进行网站的开发和构建。你可以根据自己的喜好来选择使用哪个打包工具,并且不需要进行额外的配置。 安装打包工具 在安装 vuepress 包时,并不会自动安装打包工具,你需要选择并安装一个打包工具。 使用打包工具 一般情况下,你不要任何额外配置就可以使用打包工具,因为我们已经...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/bundler.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/bundler.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"打包工具"}],["meta",{"property":"og:description","content":"打包工具 VuePress 支持使用 Vite 或 Webpack 作为打包工具来进行网站的开发和构建。你可以根据自己的喜好来选择使用哪个打包工具,并且不需要进行额外的配置。 安装打包工具 在安装 vuepress 包时,并不会自动安装打包工具,你需要选择并安装一个打包工具。 使用打包工具 一般情况下,你不要任何额外配置就可以使用打包工具,因为我们已经..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-12-28T04:39:48.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-28T04:39:48.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"打包工具\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-28T04:39:48.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"安装打包工具","slug":"安装打包工具","link":"#安装打包工具","children":[]},{"level":2,"title":"使用打包工具","slug":"使用打包工具","link":"#使用打包工具","children":[]}],"git":{"updatedTime":1703738388000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/guide/bundler.md"}');export{E as comp,x as data}; diff --git a/assets/cli.html-Bhuoj_P1.js b/assets/cli.html-Bhuoj_P1.js new file mode 100644 index 000000000..492b1ada0 --- /dev/null +++ b/assets/cli.html-Bhuoj_P1.js @@ -0,0 +1,43 @@ +import{_ as a,r as i,o as l,c as p,a as t,b as e,d as r,w as c,e as n}from"./app-CqHoxGIc.js";const d={},o=n(`

Command Line Interface

Run vuepress --help to get following help messages:

Usage:
+  $ vuepress <command> [options]
+
+Commands:
+  dev [sourceDir]    Start development server
+  build [sourceDir]  Build to static site
+  info               Display environment information
+
+For more info, run any command with the \`--help\` flag:
+  $ vuepress dev --help
+  $ vuepress build --help
+  $ vuepress info --help
+
+Options:
+  -v, --version  Display version number
+  -h, --help     Display this message

Tips

VuePress is using debug module.

Set environment variable DEBUG=vuepress* to enable debug logs.

dev

Start a development server to develop your VuePress site locally.

Usage:
+  $ vuepress dev [sourceDir]
+
+Options:
+  -c, --config <config>  Set path to config file
+  -p, --port <port>      Use specified port (default: 8080)
+  -t, --temp <temp>      Set the directory of the temporary files
+  --host <host>          Use specified host (default: 0.0.0.0)
+  --cache <cache>        Set the directory of the cache files
+  --clean-temp           Clean the temporary files before dev
+  --clean-cache          Clean the cache files before dev
+  --open                 Open browser when ready
+  --debug                Enable debug mode
+  --no-watch             Disable watching page and config files (default: true)
+  -v, --version          Display version number
+  -h, --help             Display this message

Tips

Options set by CLI will override those options with the same name in your config file.

build

`,9),u=n(`
Usage:
+  $ vuepress build [sourceDir]
+
+Options:
+  -c, --config <config>  Set path to config file
+  -d, --dest <dest>      Set the directory build output (default: .vuepress/dist)
+  -t, --temp <temp>      Set the directory of the temporary files
+  --cache <cache>        Set the directory of the cache files
+  --clean-temp           Clean the temporary files before build
+  --clean-cache          Clean the cache files before build
+  --debug                Enable debug mode
+  -v, --version          Display version number
+  -h, --help             Display this message

Tips

Options set by CLI will override those options with the same name in your config file.

info

Outputs information about your system and dependencies.

This command would be helpful when you want to check your environment or report an issue.

`,5);function v(m,h){const s=i("RouteLink");return l(),p("div",null,[o,t("p",null,[e("Build your VuePress site to static files, which are ready for "),r(s,{to:"/guide/deployment.html"},{default:c(()=>[e("deployment")]),_:1}),e(".")]),u])}const g=a(d,[["render",v],["__file","cli.html.vue"]]),f=JSON.parse('{"path":"/reference/cli.html","title":"Command Line Interface","lang":"en-US","frontmatter":{"description":"Command Line Interface Run vuepress --help to get following help messages: Tips VuePress is using debug module. Set environment variable DEBUG=vuepress* to enable debug logs. de...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/reference/cli.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/reference/cli.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Command Line Interface"}],["meta",{"property":"og:description","content":"Command Line Interface Run vuepress --help to get following help messages: Tips VuePress is using debug module. Set environment variable DEBUG=vuepress* to enable debug logs. de..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-02-06T15:46:43.000Z"}],["meta",{"property":"article:modified_time","content":"2024-02-06T15:46:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Command Line Interface\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-02-06T15:46:43.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"dev","slug":"dev","link":"#dev","children":[]},{"level":2,"title":"build","slug":"build","link":"#build","children":[]},{"level":2,"title":"info","slug":"info","link":"#info","children":[]}],"git":{"updatedTime":1707234403000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":3},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"reference/cli.md"}');export{g as comp,f as data}; diff --git a/assets/cli.html-CL4VepSP.js b/assets/cli.html-CL4VepSP.js new file mode 100644 index 000000000..d0460604e --- /dev/null +++ b/assets/cli.html-CL4VepSP.js @@ -0,0 +1,43 @@ +import{_ as a,r as i,o as l,c as p,a as t,b as e,d as r,w as c,e as s}from"./app-CqHoxGIc.js";const d={},o=s(`

命令行接口

执行 vuepress --help 来获取下列帮助信息:

Usage:
+  $ vuepress <command> [options]
+
+Commands:
+  dev [sourceDir]    Start development server
+  build [sourceDir]  Build to static site
+  info               Display environment information
+
+For more info, run any command with the \`--help\` flag:
+  $ vuepress dev --help
+  $ vuepress build --help
+  $ vuepress info --help
+
+Options:
+  -v, --version  Display version number
+  -h, --help     Display this message

提示

VuePress 使用了 debug 模块。

设置环境变量 DEBUG=vuepress* 可以启用调试日志。

dev

启动一个开发服务器,在本地开发你的 VuePress 站点。

Usage:
+  $ vuepress dev [sourceDir]
+
+Options:
+  -c, --config <config>  Set path to config file
+  -p, --port <port>      Use specified port (default: 8080)
+  -t, --temp <temp>      Set the directory of the temporary files
+  --host <host>          Use specified host (default: 0.0.0.0)
+  --cache <cache>        Set the directory of the cache files
+  --clean-temp           Clean the temporary files before dev
+  --clean-cache          Clean the cache files before dev
+  --open                 Open browser when ready
+  --debug                Enable debug mode
+  --no-watch             Disable watching page and config files (default: true)
+  -v, --version          Display version number
+  -h, --help             Display this message

提示

通过命令行设置的配置项,会覆盖你配置文件中的同名配置项。

build

`,9),v=s(`
Usage:
+  $ vuepress build [sourceDir]
+
+Options:
+  -c, --config <config>  Set path to config file
+  -d, --dest <dest>      Set the directory build output (default: .vuepress/dist)
+  -t, --temp <temp>      Set the directory of the temporary files
+  --cache <cache>        Set the directory of the cache files
+  --clean-temp           Clean the temporary files before build
+  --clean-cache          Clean the cache files before build
+  --debug                Enable debug mode
+  -v, --version          Display version number
+  -h, --help             Display this message

提示

通过命令行设置的配置项,会覆盖你配置文件中的同名配置项。

info

输出当前系统和依赖相关的信息。

在你想要检查你的环境,或者提交 Issue 时候,可以使用该命令。

`,5);function u(m,h){const n=i("RouteLink");return l(),p("div",null,[o,t("p",null,[e("将你的 VuePress 站点构建成静态文件,以便你进行后续"),r(n,{to:"/zh/guide/deployment.html"},{default:c(()=>[e("部署")]),_:1}),e("。")]),v])}const g=a(d,[["render",u],["__file","cli.html.vue"]]),f=JSON.parse('{"path":"/zh/reference/cli.html","title":"命令行接口","lang":"zh-CN","frontmatter":{"description":"命令行接口 执行 vuepress --help 来获取下列帮助信息: 提示 VuePress 使用了 debug 模块。 设置环境变量 DEBUG=vuepress* 可以启用调试日志。 dev 启动一个开发服务器,在本地开发你的 VuePress 站点。 提示 通过命令行设置的配置项,会覆盖你配置文件中的同名配置项。 build 将你的 VuePr...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/reference/cli.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/reference/cli.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"命令行接口"}],["meta",{"property":"og:description","content":"命令行接口 执行 vuepress --help 来获取下列帮助信息: 提示 VuePress 使用了 debug 模块。 设置环境变量 DEBUG=vuepress* 可以启用调试日志。 dev 启动一个开发服务器,在本地开发你的 VuePress 站点。 提示 通过命令行设置的配置项,会覆盖你配置文件中的同名配置项。 build 将你的 VuePr..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-02-06T15:46:43.000Z"}],["meta",{"property":"article:modified_time","content":"2024-02-06T15:46:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"命令行接口\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-02-06T15:46:43.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"dev","slug":"dev","link":"#dev","children":[]},{"level":2,"title":"build","slug":"build","link":"#build","children":[]},{"level":2,"title":"info","slug":"info","link":"#info","children":[]}],"git":{"updatedTime":1707234403000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":3},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/reference/cli.md"}');export{g as comp,f as data}; diff --git a/assets/client-api.html-D1N1s7pQ.js b/assets/client-api.html-D1N1s7pQ.js new file mode 100644 index 000000000..f81966736 --- /dev/null +++ b/assets/client-api.html-D1N1s7pQ.js @@ -0,0 +1,25 @@ +import{_ as p,r as o,o as r,c,a as e,d as s,w as n,b as l,e as t}from"./app-CqHoxGIc.js";const d={},u=t(`

客户端 API

客户端 API 可以通过 vuepress/client 来引入。

组合式 API

useClientData

  • 详情:

    返回所有客户端数据的 Ref 对象。

    每个属性也可以通过下列的组合式 API 来访问。

  • 示例:

<script setup lang="ts">
+import { useClientData } from 'vuepress/client'
+
+const {
+  pageData,
+  pageFrontmatter,
+  pageHead,
+  pageHeadTitle,
+  pageLang,
+  routeLocale,
+  siteData,
+  siteLocaleData,
+} = useClientData()
+</script>

usePageData

`,7),h=e("li",null,[e("p",null,"详情:"),e("p",null,"返回当前页面数据的 Ref 对象。")],-1),D=e("p",null,"参考:",-1),v=e("h3",{id:"usepagefrontmatter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#usepagefrontmatter"},[e("span",null,"usePageFrontmatter")])],-1),g=e("ul",null,[e("li",null,[e("p",null,"详情:"),e("p",null,"返回当前页面 Frontmatter 的 Ref 对象。"),e("p",null,[l("它的值是页面数据的 "),e("code",null,"frontmatter"),l(" 属性。")])])],-1),_=e("h3",{id:"usepagehead",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#usepagehead"},[e("span",null,"usePageHead")])],-1),m=e("p",null,"详情:",-1),y=e("p",null,"返回当前页面 Head 配置的 Ref 对象。",-1),f=t('

usePageHeadTitle

  • 详情:

    返回当前页面 Head 中的标题的 Ref 对象。

    它的值是连接页面标题和站点标题后得到的。

usePageLang

  • 详情:

    返回当前页面语言的 Ref 对象。

    它的值是页面数据的 lang 属性。

useRoutes

',5),C=e("li",null,[e("p",null,"详情:"),e("p",null,"返回所有路由的 Ref 对象。"),e("p",null,"它的值是站点数据的路由信息。")],-1),b=e("p",null,"参考:",-1),k=e("h3",{id:"useroutelocale",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#useroutelocale"},[e("span",null,"useRouteLocale")])],-1),E=e("p",null,"详情:",-1),F=e("p",null,"返回当前路由对应的 locale path 的 Ref 对象。",-1),P=t('

useSiteData

  • 详情:

    返回站点数据的 Ref 对象。

useSiteLocaleData

  • 详情:

    返回当前 locale 的站点数据的 Ref 对象。

    当前 locale 中的配置已经合并到顶层配置中。

工具函数

defineClientConfig

',6),x=e("p",null,"详情:",-1),R=e("p",null,"参考:",-1),S=e("h3",{id:"resolveroute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#resolveroute"},[e("span",null,"resolveRoute")])],-1),A=e("li",null,[e("p",null,"详情:"),e("p",null,"解析给定链接对应的路由")],-1),I=e("p",null,"参考:",-1),V=e("h2",{id:"resolveroutepath",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#resolveroutepath"},[e("span",null,"resolveRoutePath")])],-1),z=e("li",null,[e("p",null,"详情:"),e("p",null,"解析给定链接对应的路由路径")],-1),L=e("p",null,"参考:",-1),H=e("h3",{id:"withbase",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#withbase"},[e("span",null,"withBase")])],-1),B=e("p",null,"详情:",-1),N=e("p",null,"参考:",-1),U=t(`

常量

在客户端代码中有一些常量可以使用。

如果想要把这些常量的类型定义补充到你的代码环境中,请将 vuepress/client-types 添加到你的 tsconfig.json 里:

{
+  "compilerOptions": {
+    "types": ["vuepress/client-types"]
+  }
+}

__VUEPRESS_VERSION__

  • 类型: string

  • 详情:

    VuePress Core 的版本号。

__VUEPRESS_BASE__

`,7),T=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),q=e("p",null,"详情:",-1),w=t('

__VUEPRESS_DEV__

  • 类型: boolean

  • 详情:

    一个环境标记,用于标识当前是否运行在 dev 模式下。

__VUEPRESS_SSR__

  • 类型: boolean

  • 详情:

    一个环境标记,用于标识当前是否运行在服务端渲染 (SSR) 环境下。

进阶能力

',5),j={id:"resolvers",tabindex:"-1"},O={class:"header-anchor",href:"#resolvers"},Z=t(`
  • 类型: Record<string, Function>

  • 详情:

    一个响应式对象,其中的方法决定了如何获取全局计算属性。

  • 示例:

在客户端配置文件中自定义 <title> 的格式:

import { defineClientConfig, resolvers } from 'vuepress/client'
+
+export default defineClientConfig({
+  enhance({ app, router, siteData }) {
+    resolvers.resolvePageHeadTitle = (page, siteLocale) =>
+      \`\${siteLocale.title} > \${page.title}\`
+  },
+})

警告

resolvers 会直接影响 VuePress 的基础功能,在修改前请确保你已充分了解其用途。

`,4);function M($,J){const a=o("RouteLink"),i=o("Badge");return r(),c("div",null,[u,e("ul",null,[h,e("li",null,[D,e("ul",null,[e("li",null,[s(a,{to:"/zh/reference/node-api.html#data"},{default:n(()=>[l("Node API > Page 属性 > data")]),_:1})]),e("li",null,[s(a,{to:"/zh/reference/plugin-api.html#extendspage"},{default:n(()=>[l("插件 API > extendsPage")]),_:1})])])])]),v,g,_,e("ul",null,[e("li",null,[m,y,e("p",null,[l("它的值是合并 "),s(a,{to:"/zh/reference/frontmatter.html#head"},{default:n(()=>[l("head")]),_:1}),l(" Frontmatter 和 "),s(a,{to:"/zh/reference/config.html#head"},{default:n(()=>[l("head")]),_:1}),l(" 配置,并进行去重后得到的。")])])]),f,e("ul",null,[C,e("li",null,[b,e("ul",null,[e("li",null,[s(a,{to:"/zh/advanced/cookbook/resolving-routes.html"},{default:n(()=>[l("深入 > Cookbook > 解析路由")]),_:1})])])])]),k,e("ul",null,[e("li",null,[E,F,e("p",null,[l("它的值是 "),s(a,{to:"/zh/reference/config.html#locales"},{default:n(()=>[l("locales")]),_:1}),l(" 配置的键之一。")])])]),P,e("ul",null,[e("li",null,[x,e("p",null,[l("帮助你创建 "),s(a,{to:"/zh/reference/plugin-api.html#clientconfigfile"},{default:n(()=>[l("clientConfigFile")]),_:1}),l(" 的工具函数。")])]),e("li",null,[R,e("ul",null,[e("li",null,[s(a,{to:"/zh/advanced/cookbook/usage-of-client-config.html"},{default:n(()=>[l("深入 > Cookbook > 客户端配置的使用方法")]),_:1})])])])]),S,e("ul",null,[A,e("li",null,[I,e("ul",null,[e("li",null,[s(a,{to:"/zh/advanced/cookbook/resolving-routes.html"},{default:n(()=>[l("深入 > Cookbook > 解析路由")]),_:1})])])])]),V,e("ul",null,[z,e("li",null,[L,e("ul",null,[e("li",null,[s(a,{to:"/zh/advanced/cookbook/resolving-routes.html"},{default:n(()=>[l("深入 > Cookbook > 解析路由")]),_:1})])])])]),H,e("ul",null,[e("li",null,[B,e("p",null,[l("在 URL 前添加站点 "),s(a,{to:"/zh/reference/config.html#base"},{default:n(()=>[l("base")]),_:1}),l(" 前缀。")])]),e("li",null,[N,e("ul",null,[e("li",null,[s(a,{to:"/zh/guide/assets.html#base-helper"},{default:n(()=>[l("指南 > 静态资源 > Base Helper")]),_:1})])])])]),U,e("ul",null,[T,e("li",null,[q,e("p",null,[l("配置中的 "),s(a,{to:"/zh/reference/config.html#base"},{default:n(()=>[l("base")]),_:1}),l(" 字段。")])])]),w,e("h3",j,[e("a",O,[e("span",null,[l("resolvers "),s(i,{text:"实验性能力"})])])]),Z])}const K=p(d,[["render",M],["__file","client-api.html.vue"]]),Q=JSON.parse('{"path":"/zh/reference/client-api.html","title":"客户端 API","lang":"zh-CN","frontmatter":{"description":"客户端 API 客户端 API 可以通过 vuepress/client 来引入。 组合式 API useClientData 详情: 返回所有客户端数据的 Ref 对象。 每个属性也可以通过下列的组合式 API 来访问。 示例: usePageData 详情: 返回当前页面数据的 Ref 对象。 参考: usePageFrontmatter 详情: ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/reference/client-api.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/reference/client-api.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"客户端 API"}],["meta",{"property":"og:description","content":"客户端 API 客户端 API 可以通过 vuepress/client 来引入。 组合式 API useClientData 详情: 返回所有客户端数据的 Ref 对象。 每个属性也可以通过下列的组合式 API 来访问。 示例: usePageData 详情: 返回当前页面数据的 Ref 对象。 参考: usePageFrontmatter 详情: ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-24T08:18:58.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-24T08:18:58.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"客户端 API\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-24T08:18:58.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"组合式 API","slug":"组合式-api","link":"#组合式-api","children":[{"level":3,"title":"useClientData","slug":"useclientdata","link":"#useclientdata","children":[]},{"level":3,"title":"usePageData","slug":"usepagedata","link":"#usepagedata","children":[]},{"level":3,"title":"usePageFrontmatter","slug":"usepagefrontmatter","link":"#usepagefrontmatter","children":[]},{"level":3,"title":"usePageHead","slug":"usepagehead","link":"#usepagehead","children":[]},{"level":3,"title":"usePageHeadTitle","slug":"usepageheadtitle","link":"#usepageheadtitle","children":[]},{"level":3,"title":"usePageLang","slug":"usepagelang","link":"#usepagelang","children":[]},{"level":3,"title":"useRoutes","slug":"useroutes","link":"#useroutes","children":[]},{"level":3,"title":"useRouteLocale","slug":"useroutelocale","link":"#useroutelocale","children":[]},{"level":3,"title":"useSiteData","slug":"usesitedata","link":"#usesitedata","children":[]},{"level":3,"title":"useSiteLocaleData","slug":"usesitelocaledata","link":"#usesitelocaledata","children":[]}]},{"level":2,"title":"工具函数","slug":"工具函数","link":"#工具函数","children":[{"level":3,"title":"defineClientConfig","slug":"defineclientconfig","link":"#defineclientconfig","children":[]},{"level":3,"title":"resolveRoute","slug":"resolveroute","link":"#resolveroute","children":[]}]},{"level":2,"title":"resolveRoutePath","slug":"resolveroutepath","link":"#resolveroutepath","children":[{"level":3,"title":"withBase","slug":"withbase","link":"#withbase","children":[]}]},{"level":2,"title":"常量","slug":"常量","link":"#常量","children":[{"level":3,"title":"__VUEPRESS_VERSION__","slug":"vuepress-version","link":"#vuepress-version","children":[]},{"level":3,"title":"__VUEPRESS_BASE__","slug":"vuepress-base","link":"#vuepress-base","children":[]},{"level":3,"title":"__VUEPRESS_DEV__","slug":"vuepress-dev","link":"#vuepress-dev","children":[]},{"level":3,"title":"__VUEPRESS_SSR__","slug":"vuepress-ssr","link":"#vuepress-ssr","children":[]}]},{"level":2,"title":"进阶能力","slug":"进阶能力","link":"#进阶能力","children":[{"level":3,"title":"resolvers","slug":"resolvers","link":"#resolvers","children":[]}]}],"git":{"updatedTime":1716538738000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mister-Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/reference/client-api.md"}');export{K as comp,Q as data}; diff --git a/assets/client-api.html-iG5vxWBM.js b/assets/client-api.html-iG5vxWBM.js new file mode 100644 index 000000000..b67c6a33a --- /dev/null +++ b/assets/client-api.html-iG5vxWBM.js @@ -0,0 +1,25 @@ +import{_ as r,r as o,o as p,c,a as e,d as l,w as a,b as s,e as t}from"./app-CqHoxGIc.js";const d={},u=t(`

Client API

Client API can be imported from vuepress/client.

Composition API

useClientData

  • Details:

    Returns all the client data ref objects.

    Each property can also be accessed by the following composition APIs.

  • Example:

<script setup lang="ts">
+import { useClientData } from 'vuepress/client'
+
+const {
+  pageData,
+  pageFrontmatter,
+  pageHead,
+  pageHeadTitle,
+  pageLang,
+  routeLocale,
+  siteData,
+  siteLocaleData,
+} = useClientData()
+</script>

usePageData

`,7),h=e("li",null,[e("p",null,"Details:"),e("p",null,"Returns the page data ref object of current page.")],-1),v=e("p",null,"Also see:",-1),D=e("h3",{id:"usepagefrontmatter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#usepagefrontmatter"},[e("span",null,"usePageFrontmatter")])],-1),g=e("ul",null,[e("li",null,[e("p",null,"Details:"),e("p",null,"Returns the frontmatter ref object of current page."),e("p",null,[s("The value is the "),e("code",null,"frontmatter"),s(" property of the page data.")])])],-1),f=e("h3",{id:"usepagehead",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#usepagehead"},[e("span",null,"usePageHead")])],-1),m=e("p",null,"Details:",-1),y=e("p",null,"Returns the head config ref object of current page.",-1),_=t('

usePageHeadTitle

  • Details:

    Returns the head title ref object of current page.

    The value is obtained by joining the page title and site title.

usePageLang

  • Details:

    Returns the language ref object of current page.

    The value is the lang property of the page data.

useRoutes

',5),b=e("li",null,[e("p",null,"Details:"),e("p",null,"Returns the routes ref object."),e("p",null,[s("The value is the "),e("code",null,"routes"),s(" property of the site data.")])],-1),C=e("p",null,"Also see:",-1),k=e("h3",{id:"useroutelocale",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#useroutelocale"},[e("span",null,"useRouteLocale")])],-1),E=e("p",null,"Details:",-1),P=e("p",null,"Returns the locale path ref object of current route.",-1),F=t('

useSiteData

  • Details:

    Returns the site data ref object.

useSiteLocaleData

  • Details:

    Returns the site data ref object of current locale.

    The properties of current locale have been merged into the root-level properties.

Helpers

defineClientConfig

',6),x=e("p",null,"Details:",-1),A=e("p",null,"Also see:",-1),R=e("h3",{id:"resolveroute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#resolveroute"},[e("span",null,"resolveRoute")])],-1),S=e("li",null,[e("p",null,"Details:"),e("p",null,"Parses the route of the given link.")],-1),T=e("p",null,"Also see:",-1),j=e("h2",{id:"resolveroutepath",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#resolveroutepath"},[e("span",null,"resolveRoutePath")])],-1),V=e("li",null,[e("p",null,"Details:"),e("p",null,"Parses the route path of the given link.")],-1),I=e("p",null,"Also see:",-1),w=e("h3",{id:"withbase",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#withbase"},[e("span",null,"withBase")])],-1),L=e("p",null,"Details:",-1),H=e("p",null,"Also see:",-1),U=t(`

Constants

There are some constants that available in the client side code.

To shim the types of these constants in client side code, add vuepress/client-types to your tsconfig.json:

{
+  "compilerOptions": {
+    "types": ["vuepress/client-types"]
+  }
+}

__VUEPRESS_VERSION__

  • Type: string

  • Details:

    Version of VuePress core package.

__VUEPRESS_BASE__

`,7),B=e("li",null,[e("p",null,[s("Type: "),e("code",null,"string")])],-1),N=e("p",null,"Details:",-1),q=t('

__VUEPRESS_DEV__

  • Type: boolean

  • Details:

    An environment flag indicating whether it is currently running in dev mode.

__VUEPRESS_SSR__

  • Type: boolean

  • Details:

    An environment flag indicating whether it is currently running in server-side-rendering (SSR) build.

Advanced

',5),z={id:"resolvers",tabindex:"-1"},O={class:"header-anchor",href:"#resolvers"},Z=t(`
  • Type: Record<string, Function>

  • Details:

    An reactive object, methods of which determining how to resolve global computed.

  • Example:

Customizing the format of <title> in client config file:

import { defineClientConfig, resolvers } from 'vuepress/client'
+
+export default defineClientConfig({
+  enhance({ app, router, siteData }) {
+    resolvers.resolvePageHeadTitle = (page, siteLocale) =>
+      \`\${siteLocale.title} > \${page.title}\`
+  },
+})

Caution

resolvers will affect the basic functionality of VuePress. Please make sure you have fully understood its purpose before modifying it.

`,4);function M($,G){const n=o("RouteLink"),i=o("Badge");return p(),c("div",null,[u,e("ul",null,[h,e("li",null,[v,e("ul",null,[e("li",null,[l(n,{to:"/reference/node-api.html#data"},{default:a(()=>[s("Node API > Page Properties > data")]),_:1})]),e("li",null,[l(n,{to:"/reference/plugin-api.html#extendspage"},{default:a(()=>[s("Plugin API > extendsPage")]),_:1})])])])]),D,g,f,e("ul",null,[e("li",null,[m,y,e("p",null,[s("The value is obtained by merging and deduplicating "),l(n,{to:"/reference/frontmatter.html#head"},{default:a(()=>[s("head")]),_:1}),s(" frontmatter and "),l(n,{to:"/reference/config.html#head"},{default:a(()=>[s("head")]),_:1}),s(" config.")])])]),_,e("ul",null,[b,e("li",null,[C,e("ul",null,[e("li",null,[l(n,{to:"/advanced/cookbook/resolving-routes.html"},{default:a(()=>[s("Advanced > Cookbook > Resolving Routes")]),_:1})])])])]),k,e("ul",null,[e("li",null,[E,P,e("p",null,[s("The value is one of the keys of the "),l(n,{to:"/reference/config.html#locales"},{default:a(()=>[s("locales")]),_:1}),s(" config.")])])]),F,e("ul",null,[e("li",null,[x,e("p",null,[s("Helper for creating "),l(n,{to:"/reference/plugin-api.html#clientconfigfile"},{default:a(()=>[s("clientConfigFile")]),_:1}),s(".")])]),e("li",null,[A,e("ul",null,[e("li",null,[l(n,{to:"/advanced/cookbook/usage-of-client-config.html"},{default:a(()=>[s("Advanced > Cookbook > Usage of Client Config")]),_:1})])])])]),R,e("ul",null,[S,e("li",null,[T,e("ul",null,[e("li",null,[l(n,{to:"/advanced/cookbook/resolving-routes.html"},{default:a(()=>[s("Advanced > Cookbook > Resolving Routes")]),_:1})])])])]),j,e("ul",null,[V,e("li",null,[I,e("ul",null,[e("li",null,[l(n,{to:"/advanced/cookbook/resolving-routes.html"},{default:a(()=>[s("Advanced > Cookbook > Resolving Routes")]),_:1})])])])]),w,e("ul",null,[e("li",null,[L,e("p",null,[s("Prefix URL with site "),l(n,{to:"/reference/config.html#base"},{default:a(()=>[s("base")]),_:1}),s(".")])]),e("li",null,[H,e("ul",null,[e("li",null,[l(n,{to:"/guide/assets.html#base-helper"},{default:a(()=>[s("Guide > Assets > Base Helper")]),_:1})])])])]),U,e("ul",null,[B,e("li",null,[N,e("p",null,[s("The "),l(n,{to:"/reference/config.html#base"},{default:a(()=>[s("base")]),_:1}),s(" option from config.")])])]),q,e("h3",z,[e("a",O,[e("span",null,[s("resolvers "),l(i,{text:"experimental"})])])]),Z])}const K=r(d,[["render",M],["__file","client-api.html.vue"]]),Q=JSON.parse('{"path":"/reference/client-api.html","title":"Client API","lang":"en-US","frontmatter":{"description":"Client API Client API can be imported from vuepress/client. Composition API useClientData Details: Returns all the client data ref objects. Each property can also be accessed by...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/reference/client-api.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/reference/client-api.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Client API"}],["meta",{"property":"og:description","content":"Client API Client API can be imported from vuepress/client. Composition API useClientData Details: Returns all the client data ref objects. Each property can also be accessed by..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-24T08:18:58.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-24T08:18:58.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Client API\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-24T08:18:58.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Composition API","slug":"composition-api","link":"#composition-api","children":[{"level":3,"title":"useClientData","slug":"useclientdata","link":"#useclientdata","children":[]},{"level":3,"title":"usePageData","slug":"usepagedata","link":"#usepagedata","children":[]},{"level":3,"title":"usePageFrontmatter","slug":"usepagefrontmatter","link":"#usepagefrontmatter","children":[]},{"level":3,"title":"usePageHead","slug":"usepagehead","link":"#usepagehead","children":[]},{"level":3,"title":"usePageHeadTitle","slug":"usepageheadtitle","link":"#usepageheadtitle","children":[]},{"level":3,"title":"usePageLang","slug":"usepagelang","link":"#usepagelang","children":[]}]},{"level":2,"title":"useRoutes","slug":"useroutes","link":"#useroutes","children":[{"level":3,"title":"useRouteLocale","slug":"useroutelocale","link":"#useroutelocale","children":[]},{"level":3,"title":"useSiteData","slug":"usesitedata","link":"#usesitedata","children":[]},{"level":3,"title":"useSiteLocaleData","slug":"usesitelocaledata","link":"#usesitelocaledata","children":[]}]},{"level":2,"title":"Helpers","slug":"helpers","link":"#helpers","children":[{"level":3,"title":"defineClientConfig","slug":"defineclientconfig","link":"#defineclientconfig","children":[]},{"level":3,"title":"resolveRoute","slug":"resolveroute","link":"#resolveroute","children":[]}]},{"level":2,"title":"resolveRoutePath","slug":"resolveroutepath","link":"#resolveroutepath","children":[{"level":3,"title":"withBase","slug":"withbase","link":"#withbase","children":[]}]},{"level":2,"title":"Constants","slug":"constants","link":"#constants","children":[{"level":3,"title":"__VUEPRESS_VERSION__","slug":"vuepress-version","link":"#vuepress-version","children":[]},{"level":3,"title":"__VUEPRESS_BASE__","slug":"vuepress-base","link":"#vuepress-base","children":[]},{"level":3,"title":"__VUEPRESS_DEV__","slug":"vuepress-dev","link":"#vuepress-dev","children":[]},{"level":3,"title":"__VUEPRESS_SSR__","slug":"vuepress-ssr","link":"#vuepress-ssr","children":[]}]},{"level":2,"title":"Advanced","slug":"advanced","link":"#advanced","children":[{"level":3,"title":"resolvers","slug":"resolvers","link":"#resolvers","children":[]}]}],"git":{"updatedTime":1716538738000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mister-Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"reference/client-api.md"}');export{K as comp,Q as data}; diff --git a/assets/components.html-CbNhUHdN.js b/assets/components.html-CbNhUHdN.js new file mode 100644 index 000000000..b04fbdd3d --- /dev/null +++ b/assets/components.html-CbNhUHdN.js @@ -0,0 +1,56 @@ +import{_ as a,r as o,o as t,c as p,a as s,d as i,w as c,e as l,b as n}from"./app-CqHoxGIc.js";const r={},d=l(`

内置组件

  • Props:

    • config
      • 类型:AutoLinkConfig
      • 是否必须:true
interface AutoLinkConfig {
+  /**
+   * 判断该链接是否被激活的模式,优先级高于 \`exact\`
+   */
+  activeMatch?: RegExp | string
+
+  /**
+   * \`aria-label\` 属性
+   */
+  ariaLabel?: string
+
+  /**
+   * 该链接是否只有在 URL 完全匹配时才激活
+   */
+  exact?: boolean
+
+  /**
+   * 自动链接的 URL
+   */
+  link: string
+
+  /**
+   * \`rel\` 属性
+   */
+  rel?: string
+
+  /**
+   * \`target\` 属性
+   */
+  target?: string
+
+  /**
+   * 自动链接的文本
+   */
+  text: string
+}
  • 使用:
<AutoLink :config="autoLinkConfig" />
+
+<AutoLink :config="autoLinkConfig">
+  default 插槽
+</AutoLink>
+
+<AutoLink :config="autoLinkConfig">
+  <template #before>before 插槽</template>
+  <template #after>after 插槽</template>
+</AutoLink>
+
+<AutoLink :config="autoLinkConfig">
+  <template v-slot="config">{{ config.text }}</template>
+</AutoLink>
+
+<AutoLink :config="autoLinkConfig">
+  <template #before="config">{{ config.text }}</template>
+</AutoLink>
  • 详情:

    该组件将会自动将内部链接渲染为 <RouteLink> ,将外部链接渲染为 <a> ,并添加必要的属性。

    你可以通过 beforeafter 插槽,在文本之前和之后渲染内容。也可以通过 default 插槽,直接渲染文本(默认文本是 config.text)。

    该组件主要是为了开发主题时使用,普通用户在绝大多数情况下并不会用到它。对于主题作者来说,我们建议你在不确定链接是内部链接还是外部链接时,尽量使用这个组件。

ClientOnly

  • 使用:
<ClientOnly>
+  <NonSsrFriendlyComponent />
+</ClientOnly>
  • 详情:

    该组件和它的子元素只会在客户端被渲染。也就是说,它不会在构建 (SSR) 过程中被渲染到 HTML 内。

    如果一个组件在 setup() 中直接使用 浏览器 / DOM API ,它会导致构建过程报错,因为这些 API 在 Node.js 的环境中是无法使用的。在这种情况下,你可以选择一种方式:

    • 修改这个组件,只在 onBeforeMount()onMounted() Hook 中使用 浏览器 / DOM API 。
    • 使用 <ClientOnly> 包裹这个组件。

Content

  • Props:

    • path
      • 类型: string
      • 是否必须: false
  • 使用:

<Content path="/path/to/page.md" />
`,14),u=s("li",null,[s("p",null,"详情:"),s("p",null,"该组件会渲染页面的 Markdown 内容。"),s("p",null,[n("如果没有传入 "),s("code",null,"path"),n(" Prop ,它会渲染当前路由下的页面内容。")]),s("p",null,"该组件主要是为了开发主题时使用。在绝大多数情况下你不会用到它。")],-1),y=s("p",null,"参考:",-1),v=l(`
  • Props:

    • to
      • 类型: string
      • 是否必须: true
    • active
      • 类型: boolean
      • 是否必须: false
      • 默认值: false
    • activeClass
      • 类型: string
      • 是否必须: false
      • 默认值: 'route-link-active'
  • 使用:

<RouteLink to="/path/to/target-page.md">目标页面</RouteLink>
+<RouteLink active to="/path/to/current-page.md">当前页面</RouteLink>
  • 详情:

    该组件会渲染一个链接,用于跳转到指定页面。

    如果 active Prop 被设置为 true ,那么这个链接会被额外添加一个 activeClass 类名。需要注意的是,这里的 active 状态并不会根据当前路由自动更新。

    该组件主要是为了开发主题时使用,普通用户在绝大多数情况下并不会用到它。对于主题作者来说,我们建议你在渲染内部链接时尽量使用这个组件,而不是使用 vue-router<RouterLink> 组件。

`,4);function m(D,g){const e=o("RouteLink");return t(),p("div",null,[d,s("ul",null,[u,s("li",null,[y,s("ul",null,[s("li",null,[i(e,{to:"/zh/reference/node-api.html#path"},{default:c(()=>[n("Node API > Page 属性 > path")]),_:1})])])])]),v])}const h=a(r,[["render",m],["__file","components.html.vue"]]),b=JSON.parse('{"path":"/zh/reference/components.html","title":"内置组件","lang":"zh-CN","frontmatter":{"description":"内置组件 AutoLink Props: config 类型:AutoLinkConfig 是否必须:true 使用: 详情: 该组件将会自动将内部链接渲染为 ,将外部链接渲染为 ,并添加必要的属性。 你可以通过 before 和 after 插槽,在文本之前和之后渲染内容。也可以通过 default 插槽,直接渲染文本...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/reference/components.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/reference/components.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"内置组件"}],["meta",{"property":"og:description","content":"内置组件 AutoLink Props: config 类型:AutoLinkConfig 是否必须:true 使用: 详情: 该组件将会自动将内部链接渲染为 ,将外部链接渲染为 ,并添加必要的属性。 你可以通过 before 和 after 插槽,在文本之前和之后渲染内容。也可以通过 default 插槽,直接渲染文本..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-31T07:59:53.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T07:59:53.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"内置组件\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-31T07:59:53.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"AutoLink","slug":"autolink","link":"#autolink","children":[]},{"level":2,"title":"ClientOnly","slug":"clientonly","link":"#clientonly","children":[]},{"level":2,"title":"Content","slug":"content","link":"#content","children":[]},{"level":2,"title":"RouteLink","slug":"routelink","link":"#routelink","children":[]}],"git":{"updatedTime":1725091193000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":4},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1},{"name":"张怀文","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/reference/components.md"}');export{h as comp,b as data}; diff --git a/assets/components.html-DRbtb3z1.js b/assets/components.html-DRbtb3z1.js new file mode 100644 index 000000000..197c0c27b --- /dev/null +++ b/assets/components.html-DRbtb3z1.js @@ -0,0 +1,56 @@ +import{_ as a,r as o,o as t,c as i,a as s,d as p,w as c,e,b as n}from"./app-CqHoxGIc.js";const r={},d=e(`

Built-in Components

  • Props:

    • config
      • Type: AutoLinkConfig
      • Required: true
interface AutoLinkConfig {
+  /**
+   * Pattern to determine if the link should be active, which has higher priority than \`exact\`
+   */
+  activeMatch?: RegExp | string
+
+  /**
+   * The \`aria-label\` attribute
+   */
+  ariaLabel?: string
+
+  /**
+   * Whether the link should be active only if the url is an exact match
+   */
+  exact?: boolean
+
+  /**
+   * URL of the auto link
+   */
+  link: string
+
+  /**
+   * The \`rel\` attribute
+   */
+  rel?: string
+
+  /**
+   * The \`target\` attribute
+   */
+  target?: string
+
+  /**
+   * Text of the auto link
+   */
+  text: string
+}
  • Usage:
<AutoLink :config="autoLinkConfig" />
+
+<AutoLink :config="autoLinkConfig">
+  default slot
+</AutoLink>
+
+<AutoLink :config="autoLinkConfig">
+  <template #before>before slot</template>
+  <template #after>after slot</template>
+</AutoLink>
+
+<AutoLink :config="autoLinkConfig">
+  <template v-slot="config">{{ config.text }}</template>
+</AutoLink>
+
+<AutoLink :config="autoLinkConfig">
+  <template #before="config">{{ config.text }}</template>
+</AutoLink>
  • Details:

    This component will automatically render internal link as <RouteLink>, and render external link as <a>. It will also add necessary attributes correspondingly.

    You can make use of the before and after slots to render content before and after the text. Also, you can use the default slot to render the text (default text is config.text).

    This component is mainly for developing themes. Users won't need it in most cases. For theme authors, it's recommended to use this component to render links that could be either internal or external.

ClientOnly

  • Usage:
<ClientOnly>
+  <NonSsrFriendlyComponent />
+</ClientOnly>
  • Details:

    This component and its children will only be rendered in client-side. That means, it will not be rendered to HTML during build (SSR).

    If a component is trying to access Browser / DOM APIs directly in setup(), an error will occur during build because those APIs are unavailable in Node.js environment. In such case, you could do either:

    • Modify the component to only access Browser / DOM APIs in onBeforeMount() or onMounted() hook.
    • Wrap the component with <ClientOnly>.

Content

  • Props:

    • path
      • Type: string
      • Required: false
  • Usage:

<Content path="/path/to/page.md" />
`,14),u=s("li",null,[s("p",null,"Details:"),s("p",null,"This component will render the Markdown content of a page."),s("p",null,[n("If the "),s("code",null,"path"),n(" prop is not provided, it will render the page content of current route.")]),s("p",null,"This component is mainly for developing themes. You won't need it in most cases.")],-1),y=s("p",null,"Also see:",-1),m=e(`
  • Props:

    • to
      • Type: string
      • Required: true
    • active
      • Type: boolean
      • Required: false
      • Default: false
    • activeClass
      • Type: string
      • Required: false
      • Default: 'route-link-active'
  • Usage:

<RouteLink to="/path/to/target-page.md">target page</RouteLink>
+<RouteLink active to="/path/to/current-page.md">current page</RouteLink>
  • Details:

    This component will render a link to the target page.

    If the active prop is set to true, the link will have an extra activeClass. Notice that the active status won't be updated automatically when the route changes.

    This component is mainly for developing themes. Users won't need it in most cases. For theme authors, it's recommended to use this component to render internal links instead of the <RouterLink> component from vue-router.

`,4);function v(h,D){const l=o("RouteLink");return t(),i("div",null,[d,s("ul",null,[u,s("li",null,[y,s("ul",null,[s("li",null,[p(l,{to:"/reference/node-api.html#path"},{default:c(()=>[n("Node API > Page Properties > path")]),_:1})])])])]),m])}const C=a(r,[["render",v],["__file","components.html.vue"]]),b=JSON.parse('{"path":"/reference/components.html","title":"Built-in Components","lang":"en-US","frontmatter":{"description":"Built-in Components AutoLink Props: config Type: AutoLinkConfig Required: true Usage: Details: This component will automatically render internal link as , and render ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/reference/components.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/reference/components.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Built-in Components"}],["meta",{"property":"og:description","content":"Built-in Components AutoLink Props: config Type: AutoLinkConfig Required: true Usage: Details: This component will automatically render internal link as , and render ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-31T07:59:53.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T07:59:53.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Built-in Components\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-31T07:59:53.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"AutoLink","slug":"autolink","link":"#autolink","children":[]},{"level":2,"title":"ClientOnly","slug":"clientonly","link":"#clientonly","children":[]},{"level":2,"title":"Content","slug":"content","link":"#content","children":[]},{"level":2,"title":"RouteLink","slug":"routelink","link":"#routelink","children":[]}],"git":{"updatedTime":1725091193000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":4},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1},{"name":"张怀文","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"reference/components.md"}');export{C as comp,b as data}; diff --git a/assets/config.html-BfxQAIgY.js b/assets/config.html-BfxQAIgY.js new file mode 100644 index 000000000..f00364f23 --- /dev/null +++ b/assets/config.html-BfxQAIgY.js @@ -0,0 +1,15 @@ +import{_ as a,r as s,o as r,c as d,a as e,d as t,w as i,b as l,e as o}from"./app-CqHoxGIc.js";const p={},c=o('

Config

Site Config

base

',3),u=o('
  • Type: string

  • Default: /

  • Details:

    The base URL the site will be deployed at.

    You will need to set this if you plan to deploy your site under a sub path. It should always start and end with a slash. For example, if you plan to deploy your site to GitHub pages at https://foo.github.io/bar/, then you should set base to "/bar/".

    The base is automatically prepended to the URLs that start with / in other options, so you only need to specify it once. (Except for attrs of head)

    Notice that base should be an absolute URL pathname starting and ending with / .

  • ',3),h=e("p",null,"Also see:",-1),f=e("h3",{id:"lang",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#lang"},[e("span",null,"lang")])],-1),m=o("
  • Type: string

  • Default: en-US

  • Details:

    Language for the site.

    This will be the lang attribute of the <html> tag in the rendered HTML.

    This can be specified in different locales.

  • ",3),g=e("p",null,"Also see:",-1),k=e("li",null,[e("a",{href:"#locales"},"Config > locales")],-1),b=o('

    title

    • Type: string

    • Default: ''

    • Details:

      Title for the site.

      This will be the suffix for all page titles, and displayed in the navbar in the default theme.

      This can be specified in different locales.

    • Also see:

    description

    ',3),y=o("
  • Type: string

  • Default: ''

  • Details:

    Description for the site.

    This will be the content attribute of <meta name="description" /> tag in the rendered HTML, which will be overrode by the description field of page frontmatter.

    This can be specified in different locales.

  • ",3),_=e("p",null,"Also see:",-1),D=e("li",null,[e("a",{href:"#locales"},"Config > locales")],-1),v=o(`
    • Type: HeadConfig[]

    • Default: []

    • Details:

      Extra tags to inject into the <head> tag in the rendered HTML.

      You can specify each tag in the form of [tagName, { attrName: attrValue }, innerHTML?].

      This can be specified in different locales.

      Notice that if the attrValue is a pathname, it will be kept as-is without prepending base automatically, so remember to prepend it manually if needed.

    • Example:

      To add a custom favicon:

    export default {
    +  head: [['link', { rel: 'icon', href: '/images/logo.png' }]],
    +}

    Rendered as:

    <head>
    +  <link rel="icon" href="/images/logo.png" />
    +</head>
    `,5),w=e("li",null,[e("a",{href:"#locales"},"Config > locales")],-1),C=e("h3",{id:"locales",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#locales"},[e("span",null,"locales")])],-1),x=o('
  • Type: { [path: string]: Partial<SiteLocaleData> }

  • Default: {}

  • Details:

    Specify locales for i18n support.

    Acceptable fields:

  • ',3),T=e("p",null,"Also see:",-1),E=e("h2",{id:"theme-config",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#theme-config"},[e("span",null,"Theme Config")])],-1),P=e("h3",{id:"theme",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#theme"},[e("span",null,"theme")])],-1),A=e("li",null,[e("p",null,[l("Type: "),e("code",null,"Theme")])],-1),S=e("li",null,[e("p",null,"Details:"),e("p",null,"Set the theme of your site."),e("p",null,"If this option is not set, the default theme will be used.")],-1),B=e("p",null,"Also see:",-1),F=e("li",null,[e("a",{href:"https://ecosystem.vuejs.press/themes/default/config.html",target:"_blank",rel:"noopener noreferrer"},"Default Theme > Config")],-1),O=e("h2",{id:"bundler-config",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#bundler-config"},[e("span",null,"Bundler Config")])],-1),L=e("h3",{id:"bundler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#bundler"},[e("span",null,"bundler")])],-1),M=o("
  • Type: Bundler

  • Details:

    Set the bundler of your site.

    If this option is not set, the default bundler will be used:

    • With vuepress or vuepress-vite, the default bundler is vite.
    • With vuepress-webpack, the default bundler is webpack.
  • ",2),I=e("p",null,"Also see:",-1),R=o('

    Common Config

    dest

    • Type: string

    • Default: `${sourceDir}/.vuepress/dist`

    • Details:

      Specify the output directory for vuepress build command.

    temp

    • Type: string

    • Default: `${sourceDir}/.vuepress/.temp`

    • Details:

      Specify the directory for temporary files.

    Warning

    Since VuePress will load temp files during dev and build, the temp directory should be inside project root to resolve dependencies correctly.

    cache

    • Type: string

    • Default: `${sourceDir}/.vuepress/.cache`

    • Details:

      Specify the directory for cache files.

    public

    ',9),G=e("li",null,[e("p",null,[l("Type: "),e("code",null,"string")])],-1),j=e("li",null,[e("p",null,[l("Default: "),e("code",null,"`${sourceDir}/.vuepress/public`")])],-1),V=e("li",null,[e("p",null,"Details:"),e("p",null,"Specify the directory for public files.")],-1),q=e("p",null,"Also see:",-1),H=o('

    debug

    • Type: boolean

    • Default: false

    • Details:

      Enable debug mode or not.

      This would be helpful for developers. Also, we are using debug package for debug logging, which can be enabled via DEBUG=vuepress* environment variable.

    pagePatterns

    • Type: string[]

    • Default: ['**/*.md', '!.vuepress', '!node_modules']

    • Details:

      Specify the patterns of files you want to be resolved as pages. The patterns are relative to the source directory.

    permalinkPattern

    ',5),N=o("
  • Type: string | null

  • Default: null

  • Details:

    Specify the pattern to generate permalink.

    This will be overrode by the permalinkPattern field of page frontmatter.

  • ",3),U=e("p",null,"Also see:",-1),Y=o('

    Dev Config

    host

    • Type: string

    • Default: '0.0.0.0'

    • Details:

      Specify the host to use for the dev server.

    port

    • Type: number

    • Default: 8080

    • Details:

      Specify the port to use for the dev server.

    open

    • Type: boolean

    • Default: false

    • Details:

      Whether to open the browser after dev-server had been started.

    templateDev

    • Type: string

    • Default: '@vuepress/client/templates/dev.html'

    • Details:

      Specify the path of the HTML template to be used for dev.

    Build Config

    shouldPreload

    • Type: ((file: string, type: string) => boolean)) | boolean

    • Default: true

    • Details:

      A function to control what files should have <link rel="preload"> resource hints generated. Set to true or false to enable or disable totally.

      By default, only those files that are required by current page will be preloaded. So you can keep it true in most cases.

    shouldPrefetch

    • Type: ((file: string, type: string) => boolean)) | boolean

    • Default: true

    • Details:

      A function to control what files should have <link rel="prefetch"> resource hints generated. Set to true or false to enable or disable for all files.

      If you set it to true, all files that required by other pages will be prefetched. This is good for small sites, which will speed up the navigation, but it might not be a good idea if you have lots of pages in your site.

    templateBuild

    • Type: string

    • Default: '@vuepress/client/templates/build.html'

    • Details:

      Specify the path of the HTML template to be used for build.

    templateBuildRenderer

    • Type: TemplateRenderer

    • Default: templateRenderer

    • Details:

      Specify the HTML template renderer to be used for build.

    Markdown Config

    markdown

    ',20),W=o('
  • Type: MarkdownOptions

  • Default: {}

  • Details:

    Configure VuePress built-in Markdown syntax extensions.

    It accepts all options of markdown-it, and the following additional options.

  • ',3),$=e("p",null,"Also see:",-1),z=e("li",null,[e("a",{href:"https://github.com/markdown-it/markdown-it#init-with-presets-and-options",target:"_blank",rel:"noopener noreferrer"},"markdown-it > Init with presets and options")],-1),Z=o(`

    markdown.anchor

    • Type: AnchorPluginOptions | false

    • Default:

    const defaultOptions = {
    +  level: [1, 2, 3, 4, 5, 6],
    +  permalink: anchorPlugin.permalink.headerLink({
    +    class: 'header-anchor',
    +    safariReaderFix: true,
    +  }),
    +}
    `,3),J=e("li",null,[e("p",null,"Details:"),e("p",null,[l("Options for "),e("a",{href:"https://github.com/valeriangalliat/markdown-it-anchor",target:"_blank",rel:"noopener noreferrer"},"markdown-it-anchor"),l(".")]),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),K=e("p",null,"Also see:",-1),Q=o('

    markdown.assets

    • Type: AssetsPluginOptions | false

    • Details:

      Options for VuePress built-in markdown-it assets plugin.

      Set to false to disable this plugin.

    Caution

    You should not configure it unless you understand what it is for.

    markdown.component

    Caution

    You should not configure it unless you understand what it is for.

    markdown.emoji

    ',7),X=e("li",null,[e("p",null,[l("Type: "),e("code",null,"EmojiPluginOptions | false")])],-1),ee=e("li",null,[e("p",null,"Details:"),e("p",null,[l("Options for "),e("a",{href:"https://github.com/markdown-it/markdown-it-emoji",target:"_blank",rel:"noopener noreferrer"},"markdown-it-emoji"),l(".")]),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),le=e("p",null,"Also see:",-1),ne=e("h3",{id:"markdown-frontmatter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-frontmatter"},[e("span",null,"markdown.frontmatter")])],-1),te=e("li",null,[e("p",null,[l("Type: "),e("code",null,"FrontmatterPluginOptions | false")])],-1),ie=e("li",null,[e("p",null,"Details:"),e("p",null,[l("Options for "),e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-frontmatter",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-frontmatter"),l(".")]),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),oe=e("p",null,"Also see:",-1),ae=o(`

    Caution

    You should not configure it unless you understand what it is for.

    markdown.headers

    • Type: HeadersPluginOptions | false

    • Default:

    const defaultOptions = {
    +  level: [2, 3],
    +}
    `,4),se=e("li",null,[e("p",null,"Details:"),e("p",null,[l("Options for "),e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-headers",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-headers"),l(".")]),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),re=e("p",null,"Also see:",-1),de=e("h3",{id:"markdown-importcode",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-importcode"},[e("span",null,"markdown.importCode")])],-1),pe=e("li",null,[e("p",null,[l("Type: "),e("code",null,"ImportCodePluginOptions | false")])],-1),ce=e("li",null,[e("p",null,"Details:"),e("p",null,"Options for VuePress built-in markdown-it import-code plugin."),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),ue=e("p",null,"Also see:",-1),he=o('

    markdown.importCode.handleImportPath

    • Type: (str: string) => string

    • Default: (str) => str

    • Details:

      A function to handle the import path of the import code syntax.

    ',3),fe=o('
  • Type: LinksPluginOptions | false

  • Details:

    Options for VuePress built-in markdown-it links plugin.

    It will convert the tag of internal links to internalTag, and add extra attributes and icon to external links.

    Set to false to disable this plugin.

  • ',2),me=e("p",null,"Also see:",-1),ge=e("h4",{id:"markdown-links-internaltag",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-links-internaltag"},[e("span",null,"markdown.links.internalTag")])],-1),ke=e("li",null,[e("p",null,[l("Type: "),e("code",null,"'a' | 'RouteLink' | 'RouterLink'")])],-1),be=e("li",null,[e("p",null,[l("Default: "),e("code",null,"'RouteLink'")])],-1),ye=e("p",null,"Details:",-1),_e=e("p",null,"Tag for internal links.",-1),De=o('
    • Type: Record<string, string>

    • Default: { target: '_blank', rel: 'noopener noreferrer' }

    • Details:

      Additional attributes for external links.

    markdown.sfc

    ',3),ve=e("li",null,[e("p",null,[l("Type: "),e("code",null,"SfcPluginOptions | false")])],-1),we=e("li",null,[e("p",null,"Details:"),e("p",null,[l("Options for "),e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-sfc",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-sfc"),l(".")]),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),Ce=e("p",null,"Also see:",-1),xe=o(`

    Caution

    You should not configure it unless you understand what it is for.

    markdown.slugify

    • Type: (str: string) => string

    • Details:

      The default slugify function.

    markdown.title

    Caution

    You should not configure it unless you understand what it is for.

    markdown.toc

    • Type: TocPluginOptions | false

    • Default:

    const defaultOptions = {
    +  level: [2, 3],
    +}
    `,9),Te=e("li",null,[e("p",null,"Details:"),e("p",null,[l("Options for "),e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-toc",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-toc"),l(".")]),e("p",null,[l("Set to "),e("code",null,"false"),l(" to disable this plugin.")])],-1),Ee=e("p",null,"Also see:",-1),Pe=e("h4",{id:"markdown-vpre-block",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-vpre-block"},[e("span",null,"markdown.vPre.block")])],-1),Ae=o("
  • Type: boolean

  • Default: true

  • Details:

    Add v-pre directive to <pre> tag of code block or not.

  • ",3),Se=e("p",null,"Also see:",-1),Be=e("h4",{id:"markdown-vpre-inline",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-vpre-inline"},[e("span",null,"markdown.vPre.inline")])],-1),Fe=o("
  • Type: boolean

  • Default: true

  • Details:

    Add v-pre directive to <code> tag of inline code or not.

  • ",3),Oe=e("p",null,"Also see:",-1),Le=e("h2",{id:"plugin-config",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#plugin-config"},[e("span",null,"Plugin Config")])],-1),Me=e("h3",{id:"plugins",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#plugins"},[e("span",null,"plugins")])],-1),Ie=e("li",null,[e("p",null,[l("Type: "),e("code",null,"(Plugin | Plugin[])[]")])],-1),Re=e("li",null,[e("p",null,"Details:"),e("p",null,"Plugins to use."),e("p",null,"This option accepts an array, each item of which could be a plugin or an array of plugins.")],-1),Ge=e("p",null,"Also see:",-1),je=e("h2",{id:"plugin-api",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#plugin-api"},[e("span",null,"Plugin API")])],-1),Ve=e("p",null,[l("User config file also works as a VuePress plugin, so all of the Plugin APIs are available except the "),e("code",null,"name"),l(" and "),e("code",null,"multiple"),l(" options.")],-1);function qe(He,Ne){const n=s("RouteLink");return r(),d("div",null,[c,e("ul",null,[u,e("li",null,[h,e("ul",null,[e("li",null,[t(n,{to:"/guide/assets.html#base-helper"},{default:i(()=>[l("Guide > Assets > Base Helper")]),_:1})]),e("li",null,[t(n,{to:"/guide/deployment.html"},{default:i(()=>[l("Guide > Deployment")]),_:1})])])])]),f,e("ul",null,[m,e("li",null,[g,e("ul",null,[k,e("li",null,[t(n,{to:"/reference/frontmatter.html#lang"},{default:i(()=>[l("Frontmatter > lang")]),_:1})])])])]),b,e("ul",null,[y,e("li",null,[_,e("ul",null,[D,e("li",null,[t(n,{to:"/reference/frontmatter.html#description"},{default:i(()=>[l("Frontmatter > description")]),_:1})])])])]),v,e("ul",null,[e("li",null,[l("Also see: "),e("ul",null,[w,e("li",null,[t(n,{to:"/reference/frontmatter.html#head"},{default:i(()=>[l("Frontmatter > head")]),_:1})])])])]),C,e("ul",null,[x,e("li",null,[T,e("ul",null,[e("li",null,[t(n,{to:"/guide/i18n.html"},{default:i(()=>[l("Guide > I18n")]),_:1})])])])]),E,P,e("ul",null,[A,S,e("li",null,[B,e("ul",null,[e("li",null,[t(n,{to:"/guide/theme.html"},{default:i(()=>[l("Guide > Theme")]),_:1})]),F])])]),O,L,e("ul",null,[M,e("li",null,[I,e("ul",null,[e("li",null,[t(n,{to:"/guide/bundler.html"},{default:i(()=>[l("Guide > Bundler")]),_:1})]),e("li",null,[t(n,{to:"/reference/bundler/vite.html"},{default:i(()=>[l("Bundlers > Vite")]),_:1})]),e("li",null,[t(n,{to:"/reference/bundler/webpack.html"},{default:i(()=>[l("Bundlers > Webpack")]),_:1})])])])]),R,e("ul",null,[G,j,V,e("li",null,[q,e("ul",null,[e("li",null,[t(n,{to:"/guide/assets.html#public-files"},{default:i(()=>[l("Guide > Assets > Public Files")]),_:1})])])])]),H,e("ul",null,[N,e("li",null,[U,e("ul",null,[e("li",null,[t(n,{to:"/reference/frontmatter.html#permalinkpattern"},{default:i(()=>[l("Frontmatter > permalinkPattern")]),_:1})])])])]),Y,e("ul",null,[W,e("li",null,[$,e("ul",null,[z,e("li",null,[t(n,{to:"/guide/markdown.html#syntax-extensions"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions")]),_:1})])])])]),Z,e("ul",null,[J,e("li",null,[K,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#header-anchors"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Header Anchors")]),_:1})])])])]),Q,e("ul",null,[X,ee,e("li",null,[le,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#emoji"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Emoji")]),_:1})])])])]),ne,e("ul",null,[te,ie,e("li",null,[oe,e("ul",null,[e("li",null,[t(n,{to:"/guide/page.html#frontmatter"},{default:i(()=>[l("Guide > Page > Frontmatter")]),_:1})]),e("li",null,[t(n,{to:"/reference/node-api.html#frontmatter"},{default:i(()=>[l("Node API > Page Properties > frontmatter")]),_:1})])])])]),ae,e("ul",null,[se,e("li",null,[re,e("ul",null,[e("li",null,[t(n,{to:"/reference/node-api.html#headers"},{default:i(()=>[l("Node API > Page Properties > headers")]),_:1})])])])]),de,e("ul",null,[pe,ce,e("li",null,[ue,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#import-code-blocks"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Import Code Blocks")]),_:1})])])])]),he,e("ul",null,[fe,e("li",null,[me,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#links"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Links")]),_:1})])])])]),ge,e("ul",null,[ke,be,e("li",null,[ye,_e,e("p",null,[l("By default, this plugin will transform internal links to "),t(n,{to:"/reference/components.html#routelink"},{default:i(()=>[l("RouteLink")]),_:1}),l(".")])])]),De,e("ul",null,[ve,we,e("li",null,[Ce,e("ul",null,[e("li",null,[t(n,{to:"/advanced/cookbook/markdown-and-vue-sfc.html"},{default:i(()=>[l("Cookbook > Markdown and Vue SFC")]),_:1})]),e("li",null,[t(n,{to:"/reference/node-api.html#sfcblocks"},{default:i(()=>[l("Node API > Page Properties > sfcBlocks")]),_:1})])])])]),xe,e("ul",null,[Te,e("li",null,[Ee,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#table-of-contents"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Table of Contents")]),_:1})])])])]),Pe,e("ul",null,[Ae,e("li",null,[Se,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#wrap-with-v-pre"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Code Blocks > Wrap with v-pre")]),_:1})])])])]),Be,e("ul",null,[Fe,e("li",null,[Oe,e("ul",null,[e("li",null,[t(n,{to:"/guide/markdown.html#wrap-with-v-pre"},{default:i(()=>[l("Guide > Markdown > Syntax Extensions > Code Blocks > Wrap with v-pre")]),_:1})])])])]),Le,Me,e("ul",null,[Ie,Re,e("li",null,[Ge,e("ul",null,[e("li",null,[t(n,{to:"/guide/plugin.html"},{default:i(()=>[l("Guide > Plugin")]),_:1})])])])]),je,Ve,e("p",null,[l("Please check out "),t(n,{to:"/reference/plugin-api.html"},{default:i(()=>[l("Plugin API Reference")]),_:1}),l(" for a full list of Plugin APIs.")])])}const Ye=a(p,[["render",qe],["__file","config.html.vue"]]),We=JSON.parse('{"path":"/reference/config.html","title":"Config","lang":"en-US","frontmatter":{"description":"Config Site Config base Type: string Default: / Details: The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path. I...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/reference/config.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/reference/config.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Config"}],["meta",{"property":"og:description","content":"Config Site Config base Type: string Default: / Details: The base URL the site will be deployed at. You will need to set this if you plan to deploy your site under a sub path. I..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-14T14:29:58.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-14T14:29:58.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Config\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-14T14:29:58.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Site Config","slug":"site-config","link":"#site-config","children":[{"level":3,"title":"base","slug":"base","link":"#base","children":[]},{"level":3,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":3,"title":"title","slug":"title","link":"#title","children":[]},{"level":3,"title":"description","slug":"description","link":"#description","children":[]},{"level":3,"title":"head","slug":"head","link":"#head","children":[]},{"level":3,"title":"locales","slug":"locales","link":"#locales","children":[]}]},{"level":2,"title":"Theme Config","slug":"theme-config","link":"#theme-config","children":[{"level":3,"title":"theme","slug":"theme","link":"#theme","children":[]}]},{"level":2,"title":"Bundler Config","slug":"bundler-config","link":"#bundler-config","children":[{"level":3,"title":"bundler","slug":"bundler","link":"#bundler","children":[]}]},{"level":2,"title":"Common Config","slug":"common-config","link":"#common-config","children":[{"level":3,"title":"dest","slug":"dest","link":"#dest","children":[]},{"level":3,"title":"temp","slug":"temp","link":"#temp","children":[]},{"level":3,"title":"cache","slug":"cache","link":"#cache","children":[]},{"level":3,"title":"public","slug":"public","link":"#public","children":[]},{"level":3,"title":"debug","slug":"debug","link":"#debug","children":[]},{"level":3,"title":"pagePatterns","slug":"pagepatterns","link":"#pagepatterns","children":[]},{"level":3,"title":"permalinkPattern","slug":"permalinkpattern","link":"#permalinkpattern","children":[]}]},{"level":2,"title":"Dev Config","slug":"dev-config","link":"#dev-config","children":[{"level":3,"title":"host","slug":"host","link":"#host","children":[]},{"level":3,"title":"port","slug":"port","link":"#port","children":[]},{"level":3,"title":"open","slug":"open","link":"#open","children":[]},{"level":3,"title":"templateDev","slug":"templatedev","link":"#templatedev","children":[]}]},{"level":2,"title":"Build Config","slug":"build-config","link":"#build-config","children":[{"level":3,"title":"shouldPreload","slug":"shouldpreload","link":"#shouldpreload","children":[]},{"level":3,"title":"shouldPrefetch","slug":"shouldprefetch","link":"#shouldprefetch","children":[]},{"level":3,"title":"templateBuild","slug":"templatebuild","link":"#templatebuild","children":[]},{"level":3,"title":"templateBuildRenderer","slug":"templatebuildrenderer","link":"#templatebuildrenderer","children":[]}]},{"level":2,"title":"Markdown Config","slug":"markdown-config","link":"#markdown-config","children":[{"level":3,"title":"markdown","slug":"markdown","link":"#markdown","children":[]},{"level":3,"title":"markdown.anchor","slug":"markdown-anchor","link":"#markdown-anchor","children":[]},{"level":3,"title":"markdown.assets","slug":"markdown-assets","link":"#markdown-assets","children":[]},{"level":3,"title":"markdown.component","slug":"markdown-component","link":"#markdown-component","children":[]},{"level":3,"title":"markdown.emoji","slug":"markdown-emoji","link":"#markdown-emoji","children":[]},{"level":3,"title":"markdown.frontmatter","slug":"markdown-frontmatter","link":"#markdown-frontmatter","children":[]},{"level":3,"title":"markdown.headers","slug":"markdown-headers","link":"#markdown-headers","children":[]},{"level":3,"title":"markdown.importCode","slug":"markdown-importcode","link":"#markdown-importcode","children":[]},{"level":3,"title":"markdown.links","slug":"markdown-links","link":"#markdown-links","children":[]},{"level":3,"title":"markdown.sfc","slug":"markdown-sfc","link":"#markdown-sfc","children":[]},{"level":3,"title":"markdown.slugify","slug":"markdown-slugify","link":"#markdown-slugify","children":[]},{"level":3,"title":"markdown.title","slug":"markdown-title","link":"#markdown-title","children":[]},{"level":3,"title":"markdown.toc","slug":"markdown-toc","link":"#markdown-toc","children":[]}]},{"level":2,"title":"Plugin Config","slug":"plugin-config","link":"#plugin-config","children":[{"level":3,"title":"plugins","slug":"plugins","link":"#plugins","children":[]}]},{"level":2,"title":"Plugin API","slug":"plugin-api","link":"#plugin-api","children":[]}],"git":{"updatedTime":1720967398000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2},{"name":"lebennington","email":"100212066+lebennington@users.noreply.github.com","commits":1}]},"autoDesc":true,"filePathRelative":"reference/config.md"}');export{Ye as comp,We as data}; diff --git a/assets/config.html-rHmtn1_Z.js b/assets/config.html-rHmtn1_Z.js new file mode 100644 index 000000000..13f9653f3 --- /dev/null +++ b/assets/config.html-rHmtn1_Z.js @@ -0,0 +1,15 @@ +import{_ as o,r as i,o as r,c as d,a as e,d as a,w as t,b as l,e as s}from"./app-CqHoxGIc.js";const p={},c=s('

    配置

    站点配置

    base

    ',3),u=s('
  • 类型: string

  • 默认值: /

  • 详情:

    部署站点的基础路径。

    如果你想让你的网站部署到一个子路径下,你将需要设置它。它的值应当总是以斜杠开始,并以斜杠结束。举例来说,如果你想将你的网站部署到 https://foo.github.io/bar/,那么 base 应该被设置成 "/bar/"

    base 将会作为前缀自动地插入到以 / 开始的其他选项的链接中,所以你只需要指定一次。(head 中的属性除外)

    需要注意的是, base 应该是一个以 / 开始和结束的绝对路径名。

  • ',3),h=e("p",null,"参考:",-1),m=s('

    lang

    • 类型: string

    • 默认值: en-US

    • 详情:

      站点的语言。

      它将会在最终渲染出的 HTML 中作为 <html> 标签的 lang 属性。

      它可以设置在不同语言的 locales 中。

    • 参考:

    title

    • 类型: string

    • 默认值: ''

    • 详情:

      站点的标题。

      它将会作为所有页面标题的后缀,并且在默认主题的导航栏中显示。

      它可以设置在不同语言的 locales 中。

    • 参考:

    description

    ',5),g=s("
  • 类型: string

  • 默认值: ''

  • 详情:

    站点的描述。

    它将会在最终渲染出的 HTML 中作为 <meta name="description" /> 标签的 content 属性。它会被每个页面的 Frontmatter 中的 description 字段覆盖。

    它可以设置在不同语言的 locales 中。

  • ",3),k=e("p",null,"参考:",-1),f=e("li",null,[e("a",{href:"#locales"},"配置 > locales")],-1),_=s(`
    • 类型: HeadConfig[]

    • 默认值: []

    • 详情:

      在最终渲染出的 HTML 的 <head> 标签内加入的额外标签。

      你可以通过 [tagName, { attrName: attrValue }, innerHTML?] 的格式来添加标签。

      它可以设置在不同语言的 locales 中。

      需要注意的是,如果 attrValue 是一个 pathname ,它不会被自动添加 base 前缀,所以如果需要的话请记得手动添加前缀。

    • 示例:

      增加一个自定义的 favicon :

    export default {
    +  head: [['link', { rel: 'icon', href: '/images/logo.png' }]],
    +}

    渲染为:

    <head>
    +  <link rel="icon" href="/images/logo.png" />
    +</head>
    `,5),b=e("li",null,[e("a",{href:"#locales"},"配置 > locales")],-1),v=e("h3",{id:"locales",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#locales"},[e("span",null,"locales")])],-1),D=s('
  • 类型: { [path: string]: Partial<SiteLocaleData> }

  • 默认值: {}

  • 详情:

    多语言支持的各个语言 locales 。

    可以使用的字段有:

  • ',3),w=e("p",null,"参考:",-1),y=e("h2",{id:"主题配置",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#主题配置"},[e("span",null,"主题配置")])],-1),E=e("h3",{id:"theme",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#theme"},[e("span",null,"theme")])],-1),x=e("li",null,[e("p",null,[l("类型: "),e("code",null,"Theme")])],-1),C=e("li",null,[e("p",null,"详情:"),e("p",null,"设置站点要使用的主题。"),e("p",null,"如果不设置该选项,将会使用默认主题。")],-1),P=e("p",null,"参考:",-1),B=e("li",null,[e("a",{href:"https://ecosystem.vuejs.press/zh/themes/default/config.html",target:"_blank",rel:"noopener noreferrer"},"默认主题 > 配置")],-1),A=e("h2",{id:"打包工具配置",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#打包工具配置"},[e("span",null,"打包工具配置")])],-1),z=e("h3",{id:"bundler",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#bundler"},[e("span",null,"bundler")])],-1),F=s("
  • 类型: Bundler

  • 详情:

    设置站点要使用的打包工具。

    如果不设置该选项,将会使用默认的打包工具:

    • 使用 vuepressvuepress-vite 时,默认的打包工具是 Vite 。
    • 使用 vuepress-webpack 时,默认的打包工具是 Webpack 。
  • ",2),M=e("p",null,"参考:",-1),T=s('

    通用配置项

    dest

    • 类型: string

    • 默认值: `${sourceDir}/.vuepress/dist`

    • 详情:

      指定 vuepress build 命令的输出目录。

    temp

    • 类型: string

    • 默认值: `${sourceDir}/.vuepress/.temp`

    • 详情:

      指定临时文件目录。

    注意

    VuePress 在开发和构建时会加载临时文件,因此临时文件目录应位于项目根目录内部,以便可以正确地解析到依赖。

    cache

    • 类型: string

    • 默认值: `${sourceDir}/.vuepress/.cache`

    • 详情:

      指定缓存文件目录。

    public

    ',9),V=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),j=e("li",null,[e("p",null,[l("默认值: "),e("code",null,"`${sourceDir}/.vuepress/public`")])],-1),L=e("li",null,[e("p",null,"详情:"),e("p",null,"指定 Public 文件目录。")],-1),O=e("p",null,"参考:",-1),q=s('

    debug

    • 类型: boolean

    • 默认值: false

    • 详情:

      是否启用 Debug 模式。

      该配置项主要提供给开发者使用。同时,我们使用了 debug 模块打印 Debug 日志,可以通过 DEBUG=vuepress* 环境变量来启用。

    pagePatterns

    • 类型: string[]

    • 默认值: ['**/*.md', '!.vuepress', '!node_modules']

    • 详情:

      指定页面文件的 Patterns 。这些 Patterns 是相对于 Source 目录的。

    permalinkPattern

    ',5),I=s("
  • 类型: string | null

  • 默认值: null

  • 详情:

    指定为页面生成永久链接的 Pattern 。

    它会被每个页面的 Frontmatter 中的 permalinkPattern 字段覆盖。

  • ",3),N=e("p",null,"参考:",-1),H=s('

    Dev 配置项

    host

    • 类型: string

    • 默认值: '0.0.0.0'

    • 详情:

      指定开发服务器的主机名。

    port

    • 类型: number

    • 默认值: 8080

    • 详情:

      指定开发服务器的端口号。

    open

    • 类型: boolean

    • 默认值: false

    • 详情:

      是否在开发服务器启动后打开浏览器。

    templateDev

    • 类型: string

    • 默认值: '@vuepress/client/templates/dev.html'

    • 详情:

      指定开发时使用的 HTML 模板。

    Build 配置项

    shouldPreload

    • 类型: ((file: string, type: string) => boolean)) | boolean

    • 默认值: true

    • 详情:

      一个函数,用来控制哪些文件是需要生成对应的 <link rel="preload"> 标签的。设置为 true 或者 false 来完全启用或禁用它。

      默认情况下,只有当前页面所需的文件会被预加载。所以在绝大部分情况下,你只需要使用 true 就可以了。

    shouldPrefetch

    • 类型: ((file: string, type: string) => boolean)) | boolean

    • 默认值: true

    • 详情:

      一个函数,用来控制哪些文件是需要生成对应的 <link rel="prefetch"> 标签的。设置为 true 或者 false 来完全启用或禁用它。

      如果你将它设置为 true ,所有其它页面所需的文件都会被预拉取。这对于小型站点来说是十分有帮助的,因为它会大大提升页面切换的速度。但是在你的网站有很多页面时不建议你这么做。

    templateBuild

    • 类型: string

    • 默认值: '@vuepress/client/templates/build.html'

    • 详情:

      指定构建时使用的 HTML 模板路径。

    templateBuildRenderer

    • 类型: TemplateRenderer

    • 默认值: templateRenderer

    • 详情:

      指定构建时使用的 HTML 模板渲染函数。

    Markdown 配置

    markdown

    ',20),R=s('
  • 类型: MarkdownOptions

  • 默认值: {}

  • 详情:

    对 VuePress 内置的 Markdown 语法扩展进行配置。

    它可以接收 markdown-it 的所有配置项,以及下列额外的配置项。

  • ',3),S=e("p",null,"参考:",-1),$=e("li",null,[e("a",{href:"https://github.com/markdown-it/markdown-it#init-with-presets-and-options",target:"_blank",rel:"noopener noreferrer"},"markdown-it > Init with presets and options")],-1),U=s(`

    markdown.anchor

    • 类型: AnchorPluginOptions | false

    • 默认值:

    const defaultOptions = {
    +  level: [1, 2, 3, 4, 5, 6],
    +  permalink: anchorPlugin.permalink.headerLink({
    +    class: 'header-anchor',
    +    safariReaderFix: true,
    +  }),
    +}
    `,3),Z=e("li",null,[e("p",null,"详情:"),e("p",null,[e("a",{href:"https://github.com/valeriangalliat/markdown-it-anchor",target:"_blank",rel:"noopener noreferrer"},"markdown-it-anchor"),l(" 的配置项。")]),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),W=e("p",null,"参考:",-1),G=s('

    markdown.assets

    • 类型: AssetsPluginOptions | false

    • 详情:

      VuePress 内置的 markdown-it assets 插件的配置项。

      设置为 false 可以禁用该插件。

    警告

    除非你了解它的用途,否则你不应该设置该配置项。

    markdown.component

    警告

    除非你了解它的用途,否则你不应该设置该配置项。

    markdown.emoji

    ',7),J=e("li",null,[e("p",null,[l("类型: "),e("code",null,"EmojiPluginOptions | false")])],-1),K=e("li",null,[e("p",null,"详情:"),e("p",null,[e("a",{href:"https://github.com/markdown-it/markdown-it-emoji",target:"_blank",rel:"noopener noreferrer"},"markdown-it-emoji"),l(" 的配置项。")]),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),Q=e("p",null,"参考:",-1),X=e("h3",{id:"markdown-frontmatter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-frontmatter"},[e("span",null,"markdown.frontmatter")])],-1),Y=e("li",null,[e("p",null,[l("类型: "),e("code",null,"FrontmatterPluginOptions | false")])],-1),ee=e("li",null,[e("p",null,"详情:"),e("p",null,[e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-frontmatter",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-frontmatter"),l(" 插件的配置项。")]),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),le=e("p",null,"参考:",-1),ne=s(`

    警告

    除非你了解它的用途,否则你不应该设置该配置项。

    markdown.headers

    • 类型: HeadersPluginOptions | false

    • 默认值:

    const defaultOptions = {
    +  level: [2, 3],
    +}
    `,4),ae=e("li",null,[e("p",null,"详情:"),e("p",null,[e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-headers",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-headers"),l(" 插件的配置项。")]),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),te=e("p",null,"参考:",-1),se=e("h3",{id:"markdown-importcode",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-importcode"},[e("span",null,"markdown.importCode")])],-1),oe=e("li",null,[e("p",null,[l("类型: "),e("code",null,"ImportCodePluginOptions | false")])],-1),ie=e("li",null,[e("p",null,"详情:"),e("p",null,"VuePress 内置的 markdown-it 导入代码插件的配置项。"),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),re=e("p",null,"参考:",-1),de=s('

    markdown.importCode.handleImportPath

    • 类型: (str: string) => string

    • 默认值: (str) => str

    • 详情:

      一个函数,用于处理导入代码语法中的文件导入路径。

    ',3),pe=s('
  • 类型: LinkPluginOptions | false

  • 详情:

    VuePress 内置的 markdown-it 链接插件的配置项。

    它可以把站内链接的 tag 转换为 internalTag ,并且可以在站外链接上添加额外的属性和图标。

    设置为 false 可以禁用该插件。

  • ',2),ce=e("p",null,"参考:",-1),ue=e("h4",{id:"markdown-links-internaltag",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-links-internaltag"},[e("span",null,"markdown.links.internalTag")])],-1),he=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),me=e("li",null,[e("p",null,[l("默认值: "),e("code",null,"'RouteLink'")])],-1),ge=e("p",null,"详情:",-1),ke=e("p",null,"内部链接所使用的标签。",-1),fe=s('
    • 类型: Record<string, string>

    • 默认值: { target: '_blank', rel: 'noopener noreferrer' }

    • 详情:

      为外部链接添加额外的属性。

    markdown.sfc

    ',3),_e=e("li",null,[e("p",null,[l("类型: "),e("code",null,"SfcPluginOptions | false")])],-1),be=e("li",null,[e("p",null,"详情:"),e("p",null,[e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-sfc",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-sfc"),l(" 插件的配置项。")]),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),ve=e("p",null,"参考:",-1),De=s(`

    警告

    除非你了解它的用途,否则你不应该设置该配置项。

    markdown.slugify

    • 类型: (str: string) => string

    • 详情:

      默认使用的 slugify 函数。

    markdown.title

    • 类型: undefined | false

    • 详情:

      @mdit-vue/plugin-title 插件的配置项。

      设置为 false 可以禁用该插件。

    警告

    除非你了解它的用途,否则你不应该设置该配置项。

    markdown.toc

    • 类型: TocPluginOptions | false

    • 默认值:

    const defaultOptions = {
    +  level: [2, 3],
    +}
    `,9),we=e("li",null,[e("p",null,"详情:"),e("p",null,[e("a",{href:"https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-toc",target:"_blank",rel:"noopener noreferrer"},"@mdit-vue/plugin-toc"),l(" 插件的配置项。")]),e("p",null,[l("设置为 "),e("code",null,"false"),l(" 可以禁用该插件。")])],-1),ye=e("p",null,"参考:",-1),Ee=e("h4",{id:"markdown-vpre-block",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-vpre-block"},[e("span",null,"markdown.vPre.block")])],-1),xe=s("
  • 类型: boolean

  • 默认值: true

  • 详情:

    是否在代码块的 <pre> 标签上添加 v-pre 指令。

  • ",3),Ce=e("p",null,"参考:",-1),Pe=e("h4",{id:"markdown-vpre-inline",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#markdown-vpre-inline"},[e("span",null,"markdown.vPre.inline")])],-1),Be=s("
  • 类型: boolean

  • 默认值: true

  • 详情:

    是否在行内代码的 <code> 标签上添加 v-pre 指令。

  • ",3),Ae=e("p",null,"参考:",-1),ze=e("h2",{id:"插件配置",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#插件配置"},[e("span",null,"插件配置")])],-1),Fe=e("h3",{id:"plugins",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#plugins"},[e("span",null,"plugins")])],-1),Me=e("li",null,[e("p",null,[l("类型: "),e("code",null,"PluginConfig[]")])],-1),Te=e("li",null,[e("p",null,"详情:"),e("p",null,"要使用的插件。"),e("p",null,"该配置项接收一个数组,其中的每一个数组项是一个或一组插件。")],-1),Ve=e("p",null,"参考:",-1),je=e("h2",{id:"插件-api",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#插件-api"},[e("span",null,"插件 API")])],-1),Le=e("p",null,[l("用户配置文件同样可以作为一个 VuePress 插件,所以除了 "),e("code",null,"name"),l(" 和 "),e("code",null,"multiple"),l(" 配置项以外的所有插件 API 都可以在配置文件中使用。")],-1);function Oe(qe,Ie){const n=i("RouteLink");return r(),d("div",null,[c,e("ul",null,[u,e("li",null,[h,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/assets.html#base-helper"},{default:t(()=>[l("指南 > 静态资源 > Base Helper")]),_:1})]),e("li",null,[a(n,{to:"/zh/guide/deployment.html"},{default:t(()=>[l("指南 > 部署")]),_:1})])])])]),m,e("ul",null,[g,e("li",null,[k,e("ul",null,[f,e("li",null,[a(n,{to:"/zh/reference/frontmatter.html#description"},{default:t(()=>[l("Frontmatter > description")]),_:1})])])])]),_,e("ul",null,[e("li",null,[l("参考: "),e("ul",null,[b,e("li",null,[a(n,{to:"/zh/reference/frontmatter.html#head"},{default:t(()=>[l("Frontmatter > head")]),_:1})])])])]),v,e("ul",null,[D,e("li",null,[w,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/i18n.html"},{default:t(()=>[l("指南 > I18n")]),_:1})])])])]),y,E,e("ul",null,[x,C,e("li",null,[P,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/theme.html"},{default:t(()=>[l("指南 > 主题")]),_:1})]),B])])]),A,z,e("ul",null,[F,e("li",null,[M,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/bundler.html"},{default:t(()=>[l("指南 > 打包工具")]),_:1})]),e("li",null,[a(n,{to:"/zh/reference/bundler/vite.html"},{default:t(()=>[l("打包工具 > Vite")]),_:1})]),e("li",null,[a(n,{to:"/zh/reference/bundler/webpack.html"},{default:t(()=>[l("打包工具 > Webpack")]),_:1})])])])]),T,e("ul",null,[V,j,L,e("li",null,[O,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/assets.html#public-%E6%96%87%E4%BB%B6"},{default:t(()=>[l("指南 > 静态资源 > Public 文件")]),_:1})])])])]),q,e("ul",null,[I,e("li",null,[N,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/frontmatter.html#permalinkpattern"},{default:t(()=>[l("Frontmatter > permalinkPattern")]),_:1})])])])]),H,e("ul",null,[R,e("li",null,[S,e("ul",null,[$,e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E8%AF%AD%E6%B3%95%E6%89%A9%E5%B1%95"},{default:t(()=>[l("指南 > Markdown > 语法扩展")]),_:1})])])])]),U,e("ul",null,[Z,e("li",null,[W,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E6%A0%87%E9%A2%98%E9%94%9A%E7%82%B9"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > 标题锚点")]),_:1})])])])]),G,e("ul",null,[J,K,e("li",null,[Q,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#emoji"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > Emoji")]),_:1})])])])]),X,e("ul",null,[Y,ee,e("li",null,[le,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/page.html#frontmatter"},{default:t(()=>[l("指南 > 页面 > Frontmatter")]),_:1})]),e("li",null,[a(n,{to:"/zh/reference/node-api.html#frontmatter"},{default:t(()=>[l("Node API > Page 属性 > frontmatter")]),_:1})])])])]),ne,e("ul",null,[ae,e("li",null,[te,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/node-api.html#headers"},{default:t(()=>[l("Node API > Page 属性 > headers")]),_:1})])])])]),se,e("ul",null,[oe,ie,e("li",null,[re,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E5%AF%BC%E5%85%A5%E4%BB%A3%E7%A0%81%E5%9D%97"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > 导入代码块")]),_:1})])])])]),de,e("ul",null,[pe,e("li",null,[ce,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E9%93%BE%E6%8E%A5"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > 链接")]),_:1})])])])]),ue,e("ul",null,[he,me,e("li",null,[ge,ke,e("p",null,[l("默认情况下,该插件会把内部链接转换为 "),a(n,{to:"/zh/reference/components.html#routelink"},{default:t(()=>[l("RouteLink")]),_:1}),l(" 。")])])]),fe,e("ul",null,[_e,be,e("li",null,[ve,e("ul",null,[e("li",null,[a(n,{to:"/zh/advanced/cookbook/markdown-and-vue-sfc.html"},{default:t(()=>[l("Cookbook > Markdown 与 Vue SFC")]),_:1})]),e("li",null,[a(n,{to:"/zh/reference/node-api.html#sfcblocks"},{default:t(()=>[l("Node API > Page 属性 > sfcBlocks")]),_:1})])])])]),De,e("ul",null,[we,e("li",null,[ye,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E7%9B%AE%E5%BD%95"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > 目录")]),_:1})])])])]),Ee,e("ul",null,[xe,e("li",null,[Ce,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E6%B7%BB%E5%8A%A0-v-pre"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > 代码块 > 添加 v-pre")]),_:1})])])])]),Pe,e("ul",null,[Be,e("li",null,[Ae,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/markdown.html#%E6%B7%BB%E5%8A%A0-v-pre"},{default:t(()=>[l("指南 > Markdown > 语法扩展 > 代码块 > 添加 v-pre")]),_:1})])])])]),ze,Fe,e("ul",null,[Me,Te,e("li",null,[Ve,e("ul",null,[e("li",null,[a(n,{to:"/zh/guide/plugin.html"},{default:t(()=>[l("指南 > 插件")]),_:1})])])])]),je,Le,e("p",null,[l("前往 "),a(n,{to:"/zh/reference/plugin-api.html"},{default:t(()=>[l("插件 API 参考")]),_:1}),l(" 查看所有插件 API 。")])])}const He=o(p,[["render",Oe],["__file","config.html.vue"]]),Re=JSON.parse('{"path":"/zh/reference/config.html","title":"配置","lang":"zh-CN","frontmatter":{"description":"配置 站点配置 base 类型: string 默认值: / 详情: 部署站点的基础路径。 如果你想让你的网站部署到一个子路径下,你将需要设置它。它的值应当总是以斜杠开始,并以斜杠结束。举例来说,如果你想将你的网站部署到 https://foo.github.io/bar/,那么 base 应该被设置成 \\"/bar/\\"。 base 将会作为前缀自动地插...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/reference/config.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/reference/config.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"配置"}],["meta",{"property":"og:description","content":"配置 站点配置 base 类型: string 默认值: / 详情: 部署站点的基础路径。 如果你想让你的网站部署到一个子路径下,你将需要设置它。它的值应当总是以斜杠开始,并以斜杠结束。举例来说,如果你想将你的网站部署到 https://foo.github.io/bar/,那么 base 应该被设置成 \\"/bar/\\"。 base 将会作为前缀自动地插..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-14T14:29:58.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-14T14:29:58.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-14T14:29:58.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"站点配置","slug":"站点配置","link":"#站点配置","children":[{"level":3,"title":"base","slug":"base","link":"#base","children":[]},{"level":3,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":3,"title":"title","slug":"title","link":"#title","children":[]},{"level":3,"title":"description","slug":"description","link":"#description","children":[]},{"level":3,"title":"head","slug":"head","link":"#head","children":[]},{"level":3,"title":"locales","slug":"locales","link":"#locales","children":[]}]},{"level":2,"title":"主题配置","slug":"主题配置","link":"#主题配置","children":[{"level":3,"title":"theme","slug":"theme","link":"#theme","children":[]}]},{"level":2,"title":"打包工具配置","slug":"打包工具配置","link":"#打包工具配置","children":[{"level":3,"title":"bundler","slug":"bundler","link":"#bundler","children":[]}]},{"level":2,"title":"通用配置项","slug":"通用配置项","link":"#通用配置项","children":[{"level":3,"title":"dest","slug":"dest","link":"#dest","children":[]},{"level":3,"title":"temp","slug":"temp","link":"#temp","children":[]},{"level":3,"title":"cache","slug":"cache","link":"#cache","children":[]},{"level":3,"title":"public","slug":"public","link":"#public","children":[]},{"level":3,"title":"debug","slug":"debug","link":"#debug","children":[]},{"level":3,"title":"pagePatterns","slug":"pagepatterns","link":"#pagepatterns","children":[]},{"level":3,"title":"permalinkPattern","slug":"permalinkpattern","link":"#permalinkpattern","children":[]}]},{"level":2,"title":"Dev 配置项","slug":"dev-配置项","link":"#dev-配置项","children":[{"level":3,"title":"host","slug":"host","link":"#host","children":[]},{"level":3,"title":"port","slug":"port","link":"#port","children":[]},{"level":3,"title":"open","slug":"open","link":"#open","children":[]},{"level":3,"title":"templateDev","slug":"templatedev","link":"#templatedev","children":[]}]},{"level":2,"title":"Build 配置项","slug":"build-配置项","link":"#build-配置项","children":[{"level":3,"title":"shouldPreload","slug":"shouldpreload","link":"#shouldpreload","children":[]},{"level":3,"title":"shouldPrefetch","slug":"shouldprefetch","link":"#shouldprefetch","children":[]},{"level":3,"title":"templateBuild","slug":"templatebuild","link":"#templatebuild","children":[]},{"level":3,"title":"templateBuildRenderer","slug":"templatebuildrenderer","link":"#templatebuildrenderer","children":[]}]},{"level":2,"title":"Markdown 配置","slug":"markdown-配置","link":"#markdown-配置","children":[{"level":3,"title":"markdown","slug":"markdown","link":"#markdown","children":[]},{"level":3,"title":"markdown.anchor","slug":"markdown-anchor","link":"#markdown-anchor","children":[]},{"level":3,"title":"markdown.assets","slug":"markdown-assets","link":"#markdown-assets","children":[]},{"level":3,"title":"markdown.component","slug":"markdown-component","link":"#markdown-component","children":[]},{"level":3,"title":"markdown.emoji","slug":"markdown-emoji","link":"#markdown-emoji","children":[]},{"level":3,"title":"markdown.frontmatter","slug":"markdown-frontmatter","link":"#markdown-frontmatter","children":[]},{"level":3,"title":"markdown.headers","slug":"markdown-headers","link":"#markdown-headers","children":[]},{"level":3,"title":"markdown.importCode","slug":"markdown-importcode","link":"#markdown-importcode","children":[]},{"level":3,"title":"markdown.links","slug":"markdown-links","link":"#markdown-links","children":[]},{"level":3,"title":"markdown.sfc","slug":"markdown-sfc","link":"#markdown-sfc","children":[]},{"level":3,"title":"markdown.slugify","slug":"markdown-slugify","link":"#markdown-slugify","children":[]},{"level":3,"title":"markdown.title","slug":"markdown-title","link":"#markdown-title","children":[]},{"level":3,"title":"markdown.toc","slug":"markdown-toc","link":"#markdown-toc","children":[]}]},{"level":2,"title":"插件配置","slug":"插件配置","link":"#插件配置","children":[{"level":3,"title":"plugins","slug":"plugins","link":"#plugins","children":[]}]},{"level":2,"title":"插件 API","slug":"插件-api","link":"#插件-api","children":[]}],"git":{"updatedTime":1720967398000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2},{"name":"lebennington","email":"100212066+lebennington@users.noreply.github.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/reference/config.md"}');export{He as comp,Re as data}; diff --git a/assets/configuration.html-BMBa25JX.js b/assets/configuration.html-BMBa25JX.js new file mode 100644 index 000000000..5fa622021 --- /dev/null +++ b/assets/configuration.html-BMBa25JX.js @@ -0,0 +1,24 @@ +import{_ as a,r as t,o as c,c as r,a as s,b as e,d as l,w as i,e as o}from"./app-CqHoxGIc.js";const p={},d=o('

    Configuration

    Config File

    The essential file for configuring a VuePress site is .vuepress/config.js, while TypeScript config file is also supported. You can use .vuepress/config.ts instead to get better types hint for VuePress config.

    To be more specific, we have a convention for config file paths (in order of precedence):

    • In current working directory cwd:
      • vuepress.config.ts
      • vuepress.config.js
      • vuepress.config.mjs
    • In source directory sourceDir:
      • .vuepress/config.ts
      • .vuepress/config.js
      • .vuepress/config.mjs
    ',5),u=s("code",null,"--config",-1),f=o(`
    vuepress dev docs --config my-config.ts

    A basic config file looks like this:

    import { viteBundler } from '@vuepress/bundler-vite'
    +import { defaultTheme } from '@vuepress/theme-default'
    +import { defineUserConfig } from 'vuepress'
    +
    +export default defineUserConfig({
    +  bundler: viteBundler(),
    +  theme: defaultTheme(),
    +
    +  lang: 'en-US',
    +  title: 'Hello VuePress',
    +  description: 'Just playing around',
    +})
    `,3),g={class:"hint-container tip"},v=s("p",{class:"hint-container-title"},"Tips",-1),D=o(`

    Client Config File

    In most cases, the config file is sufficient to configure your VuePress site. However, sometimes users may want to add some client-side code directly. To help with this, VuePress also supports a client config file:

    ├─ docs
    +│  ├─ .vuepress
    +│  │  ├─ client.js   <--- client config file
    +│  │  └─ config.js   <--- config file
    +│  └─ README.md
    +├─ .gitignore
    +└─ package.json

    Similarly, we also have a convention for client config file paths (in order of precedence):

    • In current working directory cwd:
      • vuepress.client.ts
      • vuepress.client.js
      • vuepress.client.mjs
    • In source directory sourceDir:
      • .vuepress/client.ts
      • .vuepress/client.js
      • .vuepress/client.mjs

    A basic client config file looks like this:

    import { defineClientConfig } from 'vuepress/client'
    +
    +export default defineClientConfig({
    +  enhance({ app, router, siteData }) {},
    +  setup() {},
    +  rootComponents: [],
    +})
    `,7),m={class:"hint-container tip"},h=s("p",{class:"hint-container-title"},"Tips",-1),C=s("p",null,"Unlike config file, client config file could not be specified via CLI options.",-1);function y(b,E){const n=t("RouteLink");return c(),r("div",null,[d,s("p",null,[e("You can also specify the config file via "),u,e(" option of "),l(n,{to:"/reference/cli.html"},{default:i(()=>[e("CLI")]),_:1}),e(":")]),f,s("div",g,[v,s("p",null,[e("Check out the "),l(n,{to:"/reference/config.html"},{default:i(()=>[e("Config Reference")]),_:1}),e(" for a full list of VuePress config.")])]),D,s("div",m,[h,C,s("p",null,[e("To learn more about client config file, see "),l(n,{to:"/advanced/cookbook/usage-of-client-config.html"},{default:i(()=>[e("Advanced > Cookbook > Usage of Client Config")]),_:1})])])])}const k=a(p,[["render",y],["__file","configuration.html.vue"]]),A=JSON.parse('{"path":"/guide/configuration.html","title":"Configuration","lang":"en-US","frontmatter":{"description":"Configuration Config File The essential file for configuring a VuePress site is .vuepress/config.js, while TypeScript config file is also supported. You can use .vuepress/config...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/configuration.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/configuration.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Configuration"}],["meta",{"property":"og:description","content":"Configuration Config File The essential file for configuring a VuePress site is .vuepress/config.js, while TypeScript config file is also supported. You can use .vuepress/config..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-01-26T16:29:43.000Z"}],["meta",{"property":"article:modified_time","content":"2024-01-26T16:29:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Configuration\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-01-26T16:29:43.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Config File","slug":"config-file","link":"#config-file","children":[]},{"level":2,"title":"Client Config File","slug":"client-config-file","link":"#client-config-file","children":[]}],"git":{"updatedTime":1706286583000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":4}]},"autoDesc":true,"filePathRelative":"guide/configuration.md"}');export{k as comp,A as data}; diff --git a/assets/configuration.html-DNFceaxK.js b/assets/configuration.html-DNFceaxK.js new file mode 100644 index 000000000..b3523a101 --- /dev/null +++ b/assets/configuration.html-DNFceaxK.js @@ -0,0 +1,24 @@ +import{_ as i,r as t,o as p,c,a as e,b as s,d as l,w as a,e as o}from"./app-CqHoxGIc.js";const r={},d=o('

    配置

    配置文件

    VuePress 站点的基本配置文件是 .vuepress/config.js ,但也同样支持 TypeScript 配置文件。你可以使用 .vuepress/config.ts 来得到更好的类型提示。

    具体而言,我们对于配置文件的路径有着约定(按照优先顺序):

    • 当前工作目录 cwd 下:
      • vuepress.config.ts
      • vuepress.config.js
      • vuepress.config.mjs
    • 源文件目录 sourceDir 下:
      • .vuepress/config.ts
      • .vuepress/config.js
      • .vuepress/config.mjs
    ',5),u=e("code",null,"--config",-1),v=o(`
    vuepress dev docs --config my-config.ts

    一个基础的配置文件是这样的:

    import { viteBundler } from '@vuepress/bundler-vite'
    +import { defaultTheme } from '@vuepress/theme-default'
    +import { defineUserConfig } from 'vuepress'
    +
    +export default defineUserConfig({
    +  bundler: viteBundler(),
    +  theme: defaultTheme(),
    +
    +  lang: 'zh-CN',
    +  title: '你好, VuePress !',
    +  description: '这是我的第一个 VuePress 站点',
    +})
    `,3),D={class:"hint-container tip"},m=e("p",{class:"hint-container-title"},"提示",-1),h=o(`

    客户端配置文件

    在大多数情况下,配置文件已经足够帮助你配置好你的 VuePress 站点。不过,有些时候用户们可能希望直接添加一些客户端代码。 VuePress 通过客户端配置文件来支持这种需求:

    ├─ docs
    +│  ├─ .vuepress
    +│  │  ├─ client.js   <--- 客户端配置文件
    +│  │  └─ config.js   <--- 配置文件
    +│  └─ README.md
    +├─ .gitignore
    +└─ package.json

    同样的,我们也有关于客户端配置文件的路径约定(按照优先顺序):

    • 当前工作目录 cwd 下:
      • vuepress.client.ts
      • vuepress.client.js
      • vuepress.client.mjs
    • 源文件目录 sourceDir 下:
      • .vuepress/client.ts
      • .vuepress/client.js
      • .vuepress/client.mjs

    一个基础的客户端配置文件是这样的:

    import { defineClientConfig } from 'vuepress/client'
    +
    +export default defineClientConfig({
    +  enhance({ app, router, siteData }) {},
    +  setup() {},
    +  rootComponents: [],
    +})
    `,7),y={class:"hint-container tip"},C=e("p",{class:"hint-container-title"},"提示",-1),g=e("p",null,"和配置文件不同,客户端配置文件不能通过命令行接口的选项来指定。",-1);function f(b,E){const n=t("RouteLink");return p(),c("div",null,[d,e("p",null,[s("你也可以通过 "),l(n,{to:"/zh/reference/cli.html"},{default:a(()=>[s("命令行接口")]),_:1}),s(" 的 "),u,s(" 选项来指定配置文件:")]),v,e("div",D,[m,e("p",null,[s("前往 "),l(n,{to:"/zh/reference/config.html"},{default:a(()=>[s("配置参考")]),_:1}),s(" 查看所有 VuePress 配置。")])]),h,e("div",y,[C,g,e("p",null,[s("可以前往 "),l(n,{to:"/zh/advanced/cookbook/usage-of-client-config.html"},{default:a(()=>[s("深入 > Cookbook > 客户端配置的使用方法")]),_:1}),s(" 来了解更多信息。")])])])}const k=i(r,[["render",f],["__file","configuration.html.vue"]]),x=JSON.parse('{"path":"/zh/guide/configuration.html","title":"配置","lang":"zh-CN","frontmatter":{"description":"配置 配置文件 VuePress 站点的基本配置文件是 .vuepress/config.js ,但也同样支持 TypeScript 配置文件。你可以使用 .vuepress/config.ts 来得到更好的类型提示。 具体而言,我们对于配置文件的路径有着约定(按照优先顺序): 当前工作目录 cwd 下: vuepress.config.ts vuep...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/configuration.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/configuration.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"配置"}],["meta",{"property":"og:description","content":"配置 配置文件 VuePress 站点的基本配置文件是 .vuepress/config.js ,但也同样支持 TypeScript 配置文件。你可以使用 .vuepress/config.ts 来得到更好的类型提示。 具体而言,我们对于配置文件的路径有着约定(按照优先顺序): 当前工作目录 cwd 下: vuepress.config.ts vuep..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-01-26T16:29:43.000Z"}],["meta",{"property":"article:modified_time","content":"2024-01-26T16:29:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-01-26T16:29:43.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"配置文件","slug":"配置文件","link":"#配置文件","children":[]},{"level":2,"title":"客户端配置文件","slug":"客户端配置文件","link":"#客户端配置文件","children":[]}],"git":{"updatedTime":1706286583000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":4}]},"autoDesc":true,"filePathRelative":"zh/guide/configuration.md"}');export{k as comp,x as data}; diff --git a/assets/deployment.html-BqB6jREd.js b/assets/deployment.html-BqB6jREd.js new file mode 100644 index 000000000..e09b46bf8 --- /dev/null +++ b/assets/deployment.html-BqB6jREd.js @@ -0,0 +1,95 @@ +import{_ as i,r as p,o as t,c as r,a as s,b as e,d as l,w as o,e as n}from"./app-CqHoxGIc.js";const c={},d=n(`

    部署

    下述的指南基于以下条件:

    • Markdown 源文件放置在你项目的 docs 目录;
    • 使用的是默认的构建输出目录 (.vuepress/dist) ;
    • 使用 pnpm 作为包管理器,当然也支持使用 npm 或 yarn 。
    • VuePress 作为项目依赖安装,并在 package.json 中配置了如下脚本:
    {
    +  "scripts": {
    +    "docs:build": "vuepress build docs"
    +  }
    +}

    GitHub Pages

    `,5),u=n("

    如果你准备发布到 https://<USERNAME>.github.io/ ,你可以省略这一步,因为 base 默认就是 "/"

    如果你准备发布到 https://<USERNAME>.github.io/<REPO>/ ,也就是说你的仓库地址是 https://github.com/<USERNAME>/<REPO> ,则将 base 设置为 "/<REPO>/"

    ",2),D=s("li",null,[s("p",null,[e("选择你想要使用的 CI 工具。这里我们以 "),s("a",{href:"https://github.com/features/actions",target:"_blank",rel:"noopener noreferrer"},"GitHub Actions"),e(" 为例。")]),s("p",null,[e("创建 "),s("code",null,".github/workflows/docs.yml"),e(" 文件来配置工作流。")])],-1),v=n(`
    点击展开配置样例
    name: docs
    +
    +on:
    +  # 每当 push 到 main 分支时触发部署
    +  push:
    +    branches: [main]
    +  # 手动触发部署
    +  workflow_dispatch:
    +
    +jobs:
    +  docs:
    +    runs-on: ubuntu-latest
    +
    +    steps:
    +      - uses: actions/checkout@v4
    +        with:
    +          # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录
    +          fetch-depth: 0
    +
    +      - name: Setup pnpm
    +        uses: pnpm/action-setup@v2
    +        with:
    +          # 选择要使用的 pnpm 版本
    +          version: 8
    +          # 使用 pnpm 安装依赖
    +          run_install: true
    +
    +      - name: Setup Node.js
    +        uses: actions/setup-node@v4
    +        with:
    +          # 选择要使用的 node 版本
    +          node-version: 20
    +          # 缓存 pnpm 依赖
    +          cache: pnpm
    +
    +      # 运行构建脚本
    +      - name: Build VuePress site
    +        run: pnpm docs:build
    +
    +      # 查看 workflow 的文档来获取更多信息
    +      # @see https://github.com/crazy-max/ghaction-github-pages
    +      - name: Deploy to GitHub Pages
    +        uses: crazy-max/ghaction-github-pages@v4
    +        with:
    +          # 部署到 gh-pages 分支
    +          target_branch: gh-pages
    +          # 部署目录为 VuePress 的默认输出目录
    +          build_dir: docs/.vuepress/dist
    +        env:
    +          # @see https://docs.github.com/cn/actions/reference/authentication-in-a-workflow#about-the-github_token-secret
    +          GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}

    提示

    请参考 GitHub Pages 官方指南 来获取更多信息。

    GitLab Pages

    `,3),b=n("

    如果你准备发布到 https://<USERNAME>.gitlab.io/ ,你可以省略这一步,因此 base 默认就是 "/"

    如果你准备发布到 https://<USERNAME>.gitlab.io/<REPO>/ ,也就是说你的仓库地址是 https://gitlab.com/<USERNAME>/<REPO> ,则将 base 设置为 "/<REPO>/"

    ",2),h=s("li",null,[s("p",null,[e("创建 "),s("code",null,".gitlab-ci.yml"),e(" 文件来配置 "),s("a",{href:"https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/",target:"_blank",rel:"noopener noreferrer"},"GitLab CI"),e(" 工作流。")])],-1),m=n(`
    点击展开配置样例
    # 选择你要使用的 docker 镜像
    +image: node:18-buster
    +
    +pages:
    +  # 每当 push 到 main 分支时触发部署
    +  only:
    +    - main
    +
    +  # 缓存 node_modules
    +  cache:
    +    key:
    +      files:
    +        - pnpm-lock.yaml
    +    paths:
    +      - .pnpm-store
    +
    +  # 安装 pnpm
    +  before_script:
    +    - curl -fsSL https://get.pnpm.io/install.sh | sh -
    +    - pnpm config set store-dir .pnpm-store
    +
    +  # 安装依赖并运行构建脚本
    +  script:
    +    - pnpm install --frozen-lockfile
    +    - pnpm docs:build --dest public
    +
    +  artifacts:
    +    paths:
    +      - public

    提示

    请参考 GitLab Pages 官方指南 来获取更多信息。

    Google Firebase

    1. 请确保你已经安装了 firebase-tools

    2. 在你项目的根目录下创建 firebase.json.firebaserc,并包含以下内容:

    firebase.json:

    {
    +  "hosting": {
    +    "public": "./docs/.vuepress/dist",
    +    "ignore": []
    +  }
    +}

    .firebaserc:

    {
    +  "projects": {
    +    "default": "<YOUR_FIREBASE_ID>"
    +  }
    +}
    1. 在执行了 pnpm docs:build 后, 使用 firebase deploy 指令来部署。

    提示

    请参考 Firebase CLI 官方指南 来获取更多信息。

    Heroku

    1. 首先安装 Heroku CLI

    2. 在这里 注册一个 Heroku 账号;

    3. 运行 heroku login 并填写你的 Heroku 认证信息:

    heroku login
    1. 在你的项目根目录中,创建一个名为 static.json 的文件,并包含下述内容:

    static.json:

    {
    +  "root": "./docs/.vuepress/dist"
    +}

    这里是你项目的配置,请参考 heroku-buildpack-static 来获取更多信息。

    Kinsta

    请查看 Set Up VuePress on Kinsta

    Edgio

    请查看 Edgio Documentation > Framework Guides > VuePress

    Netlify

    1. 前往 Netlify ,从 GitHub 创建一个新项目,并进行如下配置:

      • Build Command: pnpm docs:build
      • Publish directory: docs/.vuepress/dist
    2. 设置 Environment variables 来选择 Node 版本:

      • NODE_VERSION: 18
    3. 点击 deploy 按钮。

    Vercel

    1. 前往 Vercel ,从 GitHub 创建一个新项目,并进行如下配置:

      • FRAMEWORK PRESET: Other
      • BUILD COMMAND: pnpm docs:build
      • OUTPUT DIRECTORY: docs/.vuepress/dist
    2. 点击 deploy 按钮。

    云开发 CloudBase

    云开发 CloudBase 是一个云原生一体化的 Serverless 云平台,支持静态网站、容器等多种托管能力,并提供简便的部署工具 CloudBase Framework 来一键部署应用。

    1. 全局安装 CloudBase CLI :
    pnpm install -g @cloudbase/cli
    1. 在项目根目录运行以下命令一键部署 VuePress 应用,在部署之前可以先 开通环境
    cloudbase init --without-template
    +cloudbase framework:deploy

    CloudBase CLI 首先会跳转到控制台进行登录授权,然后将会交互式进行确认。

    确认信息后会立即进行部署,部署完成后,可以获得一个自动 SSL,CDN 加速的网站应用,你也可以搭配使用 GitHub Action 来持续部署 GitHub 上的 VuePress 应用。

    也可以使用 cloudbase init --template vuepress 快速创建和部署一个新的 VuePress 应用。

    提示

    更多详细信息请查看 CloudBase Framework 的部署项目示例

    21 云盒子

    请查看 21 云盒子 - 部署一个 VuePress 静态网页

    `,37);function y(g,C){const a=p("RouteLink");return t(),r("div",null,[d,s("ol",null,[s("li",null,[s("p",null,[e("设置正确的 "),l(a,{to:"/zh/reference/config.html#base"},{default:o(()=>[e("base")]),_:1}),e(" 选项。")]),u]),D]),v,s("ol",null,[s("li",null,[s("p",null,[e("设置正确的 "),l(a,{to:"/zh/reference/config.html#base"},{default:o(()=>[e("base")]),_:1}),e(" 选项。")]),b]),h]),m])}const f=i(c,[["render",y],["__file","deployment.html.vue"]]),E=JSON.parse('{"path":"/zh/guide/deployment.html","title":"部署","lang":"zh-CN","frontmatter":{"description":"部署 下述的指南基于以下条件: Markdown 源文件放置在你项目的 docs 目录; 使用的是默认的构建输出目录 (.vuepress/dist) ; 使用 pnpm 作为包管理器,当然也支持使用 npm 或 yarn 。 VuePress 作为项目依赖安装,并在 package.json 中配置了如下脚本: GitHub Pages 设置正确的 ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/deployment.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/deployment.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"部署"}],["meta",{"property":"og:description","content":"部署 下述的指南基于以下条件: Markdown 源文件放置在你项目的 docs 目录; 使用的是默认的构建输出目录 (.vuepress/dist) ; 使用 pnpm 作为包管理器,当然也支持使用 npm 或 yarn 。 VuePress 作为项目依赖安装,并在 package.json 中配置了如下脚本: GitHub Pages 设置正确的 ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-01-26T13:03:35.000Z"}],["meta",{"property":"article:modified_time","content":"2024-01-26T13:03:35.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"部署\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-01-26T13:03:35.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"GitHub Pages","slug":"github-pages","link":"#github-pages","children":[]},{"level":2,"title":"GitLab Pages","slug":"gitlab-pages","link":"#gitlab-pages","children":[]},{"level":2,"title":"Google Firebase","slug":"google-firebase","link":"#google-firebase","children":[]},{"level":2,"title":"Heroku","slug":"heroku","link":"#heroku","children":[]},{"level":2,"title":"Kinsta","slug":"kinsta","link":"#kinsta","children":[]},{"level":2,"title":"Edgio","slug":"edgio","link":"#edgio","children":[]},{"level":2,"title":"Netlify","slug":"netlify","link":"#netlify","children":[]},{"level":2,"title":"Vercel","slug":"vercel","link":"#vercel","children":[]},{"level":2,"title":"云开发 CloudBase","slug":"云开发-cloudbase","link":"#云开发-cloudbase","children":[]},{"level":2,"title":"21 云盒子","slug":"_21-云盒子","link":"#_21-云盒子","children":[]}],"git":{"updatedTime":1706274215000,"contributors":[{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2},{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/guide/deployment.md"}');export{f as comp,E as data}; diff --git a/assets/deployment.html-DNlFV4-d.js b/assets/deployment.html-DNlFV4-d.js new file mode 100644 index 000000000..c4d00cbfd --- /dev/null +++ b/assets/deployment.html-DNlFV4-d.js @@ -0,0 +1,94 @@ +import{_ as i,r as t,o as p,c as r,a as s,b as e,d as l,w as o,e as n}from"./app-CqHoxGIc.js";const c={},d=n(`

    Deployment

    The following guides are based on some shared assumptions:

    • You are placing your Markdown source files inside the docs directory of your project;
    • You are using the default build output location (.vuepress/dist);
    • You are using pnpm as package manager, while npm and yarn are also supported;
    • VuePress is installed as a local dependency in your project, and you have setup the following script in package.json:
    {
    +  "scripts": {
    +    "docs:build": "vuepress build docs"
    +  }
    +}

    GitHub Pages

    `,5),u=n("

    If you are deploying to https://<USERNAME>.github.io/, you can omit this step as base defaults to "/".

    If you are deploying to https://<USERNAME>.github.io/<REPO>/, for example your repository is at https://github.com/<USERNAME>/<REPO>, then set base to "/<REPO>/".

    ",2),D=s("li",null,[s("p",null,[e("Choose your preferred CI tools. Here we take "),s("a",{href:"https://github.com/features/actions",target:"_blank",rel:"noopener noreferrer"},"GitHub Actions"),e(" as an example.")]),s("p",null,[e("Create "),s("code",null,".github/workflows/docs.yml"),e(" to set up the workflow.")])],-1),y=n(`
    Click to expand sample config
    name: docs
    +
    +on:
    +  # trigger deployment on every push to main branch
    +  push:
    +    branches: [main]
    +  # trigger deployment manually
    +  workflow_dispatch:
    +
    +jobs:
    +  docs:
    +    runs-on: ubuntu-latest
    +
    +    steps:
    +      - uses: actions/checkout@v4
    +        with:
    +          # fetch all commits to get last updated time or other git log info
    +          fetch-depth: 0
    +
    +      - name: Setup pnpm
    +        uses: pnpm/action-setup@v2
    +        with:
    +          # choose pnpm version to use
    +          version: 8
    +          # install deps with pnpm
    +          run_install: true
    +
    +      - name: Setup Node.js
    +        uses: actions/setup-node@v4
    +        with:
    +          # choose node.js version to use
    +          node-version: 20
    +          # cache deps for pnpm
    +          cache: pnpm
    +
    +      # run build script
    +      - name: Build VuePress site
    +        run: pnpm docs:build
    +
    +      # please check out the docs of the workflow for more details
    +      # @see https://github.com/crazy-max/ghaction-github-pages
    +      - name: Deploy to GitHub Pages
    +        uses: crazy-max/ghaction-github-pages@v4
    +        with:
    +          # deploy to gh-pages branch
    +          target_branch: gh-pages
    +          # deploy the default output dir of VuePress
    +          build_dir: docs/.vuepress/dist
    +        env:
    +          # @see https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret
    +          GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}

    Tips

    Please refer to GitHub Pages official guide for more details.

    GitLab Pages

    `,3),m=n("

    If you are deploying to https://<USERNAME>.gitlab.io/, you can omit base as it defaults to "/".

    If you are deploying to https://<USERNAME>.gitlab.io/<REPO>/, for example your repository is at https://gitlab.com/<USERNAME>/<REPO>, then set base to "/<REPO>/".

    ",2),v=s("li",null,[s("p",null,[e("Create "),s("code",null,".gitlab-ci.yml"),e(" to set up "),s("a",{href:"https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/",target:"_blank",rel:"noopener noreferrer"},"GitLab CI"),e(" workflow.")])],-1),h=n(`
    Click to expand sample config
    # choose a docker image to use
    +image: node:18-buster
    +
    +pages:
    +  # trigger deployment on every push to main branch
    +  only:
    +    - main
    +
    +  # cache node_modules
    +  cache:
    +    key:
    +      files:
    +        - pnpm-lock.yaml
    +    paths:
    +      - .pnpm-store
    +
    +  # Install pnpm
    +  before_script:
    +    - curl -fsSL https://get.pnpm.io/install.sh | sh -
    +    - pnpm config set store-dir .pnpm-store
    +
    +  # install dependencies and run build script
    +  script:
    +    - pnpm i --frozen-lockfile
    +    - pnpm docs:build --dest public
    +
    +  artifacts:
    +    paths:
    +      - public

    Tips

    Please refer to GitLab Pages official guide for more details.

    Google Firebase

    1. Make sure you have firebase-tools installed.

    2. Create firebase.json and .firebaserc at the root of your project with the following content:

    firebase.json:

    {
    +  "hosting": {
    +    "public": "./docs/.vuepress/dist",
    +    "ignore": []
    +  }
    +}

    .firebaserc:

    {
    +  "projects": {
    +    "default": "<YOUR_FIREBASE_ID>"
    +  }
    +}
    1. After running pnpm docs:build, deploy using the command firebase deploy.

    Tips

    Please refer to Firebase CLI official guide for more details.

    Heroku

    1. Install Heroku CLI.

    2. Create a Heroku account by signing up.

    3. Run heroku login and fill in your Heroku credentials:

    heroku login
    1. Create a file called static.json in the root of your project with the below content:

    static.json:

    {
    +  "root": "./docs/.vuepress/dist"
    +}

    This is the configuration of your site; read more at heroku-buildpack-static.

    Kinsta

    See Set Up VuePress on Kinsta.

    Edgio

    See Edgio Documentation > Framework Guides > VuePress.

    Netlify

    1. On Netlify, set up a new project from GitHub with the following settings:

      • Build Command: pnpm docs:build
      • Publish directory: docs/.vuepress/dist
    2. Set Environment variables to choose node version:

      • NODE_VERSION: 18
    3. Hit the deploy button.

    Vercel

    1. Go to Vercel, set up a new project from GitHub with the following settings:

      • FRAMEWORK PRESET: Other
      • BUILD COMMAND: pnpm docs:build
      • OUTPUT DIRECTORY: docs/.vuepress/dist
    2. Hit the deploy button.

    `,25);function b(g,f){const a=t("RouteLink");return p(),r("div",null,[d,s("ol",null,[s("li",null,[s("p",null,[e("Set the correct "),l(a,{to:"/reference/config.html#base"},{default:o(()=>[e("base")]),_:1}),e(" config.")]),u]),D]),y,s("ol",null,[s("li",null,[s("p",null,[e("Set the correct "),l(a,{to:"/reference/config.html#base"},{default:o(()=>[e("base")]),_:1}),e(" config.")]),m]),v]),h])}const k=i(c,[["render",b],["__file","deployment.html.vue"]]),E=JSON.parse('{"path":"/guide/deployment.html","title":"Deployment","lang":"en-US","frontmatter":{"description":"Deployment The following guides are based on some shared assumptions: You are placing your Markdown source files inside the docs directory of your project; You are using the def...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/deployment.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/deployment.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Deployment"}],["meta",{"property":"og:description","content":"Deployment The following guides are based on some shared assumptions: You are placing your Markdown source files inside the docs directory of your project; You are using the def..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-01-26T13:03:35.000Z"}],["meta",{"property":"article:modified_time","content":"2024-01-26T13:03:35.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Deployment\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-01-26T13:03:35.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"GitHub Pages","slug":"github-pages","link":"#github-pages","children":[]},{"level":2,"title":"GitLab Pages","slug":"gitlab-pages","link":"#gitlab-pages","children":[]},{"level":2,"title":"Google Firebase","slug":"google-firebase","link":"#google-firebase","children":[]},{"level":2,"title":"Heroku","slug":"heroku","link":"#heroku","children":[]},{"level":2,"title":"Kinsta","slug":"kinsta","link":"#kinsta","children":[]},{"level":2,"title":"Edgio","slug":"edgio","link":"#edgio","children":[]},{"level":2,"title":"Netlify","slug":"netlify","link":"#netlify","children":[]},{"level":2,"title":"Vercel","slug":"vercel","link":"#vercel","children":[]}],"git":{"updatedTime":1706274215000,"contributors":[{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2},{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":1}]},"autoDesc":true,"filePathRelative":"guide/deployment.md"}');export{k as comp,E as data}; diff --git a/assets/frontmatter.html-BCqH_rDa.js b/assets/frontmatter.html-BCqH_rDa.js new file mode 100644 index 000000000..5e8557dff --- /dev/null +++ b/assets/frontmatter.html-BCqH_rDa.js @@ -0,0 +1,24 @@ +import{_ as o,r as i,o as r,c as p,a as e,d as n,w as a,b as l,e as s}from"./app-CqHoxGIc.js";const d={},c=e("h1",{id:"frontmatter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frontmatter"},[e("span",null,"Frontmatter")])],-1),u=e("h2",{id:"date",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#date"},[e("span",null,"date")])],-1),h=e("li",null,[e("p",null,[l("Type: "),e("code",null,"string")])],-1),m=e("li",null,[e("p",null,"Details:"),e("p",null,"Created date for the page."),e("p",null,[l("You should specify the date in the form of "),e("code",null,"yyyy-MM-dd"),l(", or follow the "),e("a",{href:"https://yaml.org/type/timestamp.html",target:"_blank",rel:"noopener noreferrer"},"YAML Timestamp Type"),l(".")])],-1),y=e("p",null,"Also see:",-1),D=e("h2",{id:"description",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#description"},[e("span",null,"description")])],-1),f=e("li",null,[e("p",null,[l("Type: "),e("code",null,"string")])],-1),g=e("li",null,[e("p",null,"Details:"),e("p",null,"Description for the page."),e("p",null,[l("This will override the "),e("code",null,"description"),l(" option in your site config.")])],-1),v=e("p",null,"Also see:",-1),b=s(`
    • Type: HeadConfig[]

    • Details:

      Extra tags in <head> tag for the page.

    • Example:

    ---
    +head:
    +  - - meta
    +    - name: foo
    +      content: yaml array syntax
    +  - [meta, { name: bar, content: square brackets syntax }]
    +---

    Rendered as:

    <head>
    +  <meta name="foo" content="yaml array syntax" />
    +  <meta name="bar" content="square brackets syntax" />
    +</head>
    `,5),_=e("h2",{id:"lang",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#lang"},[e("span",null,"lang")])],-1),C=e("li",null,[e("p",null,[l("Type: "),e("code",null,"string")])],-1),k=e("li",null,[e("p",null,"Details:"),e("p",null,"Language for the page."),e("p",null,[l("This will override the "),e("code",null,"lang"),l(" option in your site config.")])],-1),E=e("p",null,"Also see:",-1),T=s(`

    layout

    • Type: string

    • Details:

      Layout for the page.

      Layouts are provided by theme. If you don't specify this frontmatter, the default layout will be used. You should refer to the theme's own documentation to find what layouts it provides.

      If the theme layouts cannot meet your needs, you can use a custom layout component.

    • Example:

    Register a layout component in .vuepress/client.ts file:

    import { defineClientConfig } from 'vuepress/client'
    +import CustomLayout from './CustomLayout.vue'
    +
    +export default defineClientConfig({
    +  layouts: {
    +    CustomLayout,
    +  },
    +})

    Set custom layout in frontmatter:

    ---
    +layout: CustomLayout
    +---
    `,7),x=e("li",null,[e("p",null,[l("Type: "),e("code",null,"string | null")])],-1),P=e("li",null,[e("p",null,"Details:"),e("p",null,"Permalink for the page."),e("p",null,"This will override the default route path that determined by the file path of the page."),e("p",null,[l("When it is set to "),e("code",null,"null"),l(", the permalink of the page will be disabled.")])],-1),M=e("p",null,"Also see:",-1),A=e("li",null,[e("a",{href:"#permalinkpattern"},"Frontmatter > permalinkPattern")],-1),w=s(`

    permalinkPattern

    • Type: string | null

    • Details:

      Pattern to generate permalink for the page.

      This will override the permalinkPattern option in your site config.

      This won't take effect if the permalink frontmatter has been set.

    • Usage:

      PatternDescription
      :yearYear part of created date
      :monthMonth part of created date
      :dayDay part of created date
      :slugSlug of page filename
      :rawRaw route path

      The :year, :month and :day patterns are resolved according to the following priority:

      • The date frontmatter.
      • The filename that matches the date pattern yyyy-MM-dd-foobar.md or yyyy-MM-foobar.md.
      • The dirname that matches the date pattern yyyy/MM/dd/foobar.md or yyyy/MM/foobar.md.
      • Fallback to 0000-00-00.
    • Example 1:

      The page filename is foo-bar.md.

      The page frontmatter is:

    ---
    +date: 2021-01-03
    +permalinkPattern: :year/:month/:day/:slug.html
    +---

    Then the permalink of the page would be 2021/01/03/foo-bar.html.

    • Example 2:

      The page filename is 2021-01-03-bar-baz.md.

      The page frontmatter is:

    ---
    +permalinkPattern: :year/:month/:day/:slug.html
    +---

    Then the permalink of the page would be 2021/01/03/bar-baz.html.

    `,7),F=e("li",null,[e("a",{href:"#date"},"Frontmatter > date")],-1),L=e("li",null,[e("a",{href:"#permalink"},"Frontmatter > permalink")],-1),N=e("h2",{id:"routemeta",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#routemeta"},[e("span",null,"routeMeta")])],-1),q=e("li",null,[e("p",null,[l("Type: "),e("code",null,"Record")])],-1),I=e("li",null,[e("p",null,"Details:"),e("p",null,"Custom data to be attached to the page route.")],-1),R=e("p",null,"Also see:",-1),Y=e("h2",{id:"title",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#title"},[e("span",null,"title")])],-1),S=e("li",null,[e("p",null,[l("Type: "),e("code",null,"string")])],-1),z=e("li",null,[e("p",null,"Details:"),e("p",null,"Title for the page."),e("p",null,[l("If you don't specify "),e("code",null,"title"),l(" in frontmatter, content of the first level-one header (i.e. "),e("code",null,"# title"),l(") will be used as the title.")])],-1),V=e("p",null,"Also see:",-1);function j(B,U){const t=i("RouteLink");return r(),p("div",null,[c,u,e("ul",null,[h,m,e("li",null,[y,e("ul",null,[e("li",null,[n(t,{to:"/reference/node-api.html#date"},{default:a(()=>[l("Node API > Page Properties > date")]),_:1})])])])]),D,e("ul",null,[f,g,e("li",null,[v,e("ul",null,[e("li",null,[n(t,{to:"/reference/config.html#description"},{default:a(()=>[l("Config > description")]),_:1})])])])]),b,e("ul",null,[e("li",null,[l("Also see: "),e("ul",null,[e("li",null,[n(t,{to:"/reference/config.html#head"},{default:a(()=>[l("Config > head")]),_:1})])])])]),_,e("ul",null,[C,k,e("li",null,[E,e("ul",null,[e("li",null,[n(t,{to:"/reference/config.html#lang"},{default:a(()=>[l("Config > lang")]),_:1})]),e("li",null,[n(t,{to:"/reference/node-api.html#lang"},{default:a(()=>[l("Node API > Page Properties > lang")]),_:1})])])])]),T,e("ul",null,[x,P,e("li",null,[M,e("ul",null,[A,e("li",null,[n(t,{to:"/guide/page.html#routing"},{default:a(()=>[l("Guide > Page > Routing")]),_:1})]),e("li",null,[n(t,{to:"/reference/node-api.html#permalink"},{default:a(()=>[l("Node API > Page Properties > permalink")]),_:1})])])])]),w,e("ul",null,[e("li",null,[l("Also see: "),e("ul",null,[e("li",null,[n(t,{to:"/reference/config.html#permalinkpattern"},{default:a(()=>[l("Config > permalinkPattern")]),_:1})]),F,L,e("li",null,[n(t,{to:"/reference/node-api.html#permalink"},{default:a(()=>[l("Node API > Page Properties > permalink")]),_:1})])])])]),N,e("ul",null,[q,I,e("li",null,[R,e("ul",null,[e("li",null,[n(t,{to:"/reference/node-api.html#routeMeta"},{default:a(()=>[l("Node API > Page Properties > routeMeta")]),_:1})])])])]),Y,e("ul",null,[S,z,e("li",null,[V,e("ul",null,[e("li",null,[n(t,{to:"/reference/node-api.html#title"},{default:a(()=>[l("Node API > Page Properties > title")]),_:1})])])])])])}const H=o(d,[["render",j],["__file","frontmatter.html.vue"]]),G=JSON.parse('{"path":"/reference/frontmatter.html","title":"Frontmatter","lang":"en-US","frontmatter":{"description":"Frontmatter date Type: string Details: Created date for the page. You should specify the date in the form of yyyy-MM-dd, or follow the YAML Timestamp Type. Also see: description...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/reference/frontmatter.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/reference/frontmatter.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Frontmatter"}],["meta",{"property":"og:description","content":"Frontmatter date Type: string Details: Created date for the page. You should specify the date in the form of yyyy-MM-dd, or follow the YAML Timestamp Type. Also see: description..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-16T12:45:44.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-16T12:45:44.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Frontmatter\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-16T12:45:44.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"date","slug":"date","link":"#date","children":[]},{"level":2,"title":"description","slug":"description","link":"#description","children":[]},{"level":2,"title":"head","slug":"head","link":"#head","children":[]},{"level":2,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":2,"title":"layout","slug":"layout","link":"#layout","children":[]},{"level":2,"title":"permalink","slug":"permalink","link":"#permalink","children":[]},{"level":2,"title":"permalinkPattern","slug":"permalinkpattern","link":"#permalinkpattern","children":[]},{"level":2,"title":"routeMeta","slug":"routemeta","link":"#routemeta","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]}],"git":{"updatedTime":1715863544000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1},{"name":"张怀文","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"reference/frontmatter.md"}');export{H as comp,G as data}; diff --git a/assets/frontmatter.html-BfmWvdQI.js b/assets/frontmatter.html-BfmWvdQI.js new file mode 100644 index 000000000..bcf4457ae --- /dev/null +++ b/assets/frontmatter.html-BfmWvdQI.js @@ -0,0 +1,24 @@ +import{_ as o,r,o as i,c as p,a as e,d as a,w as s,b as l,e as t}from"./app-CqHoxGIc.js";const d={},c=e("h1",{id:"frontmatter",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frontmatter"},[e("span",null,"Frontmatter")])],-1),u=e("h2",{id:"date",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#date"},[e("span",null,"date")])],-1),m=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),h=e("li",null,[e("p",null,"详情:"),e("p",null,"页面的创建日期。"),e("p",null,[l("应按照 "),e("code",null,"yyyy-MM-dd"),l(" 的格式来指定日期,或者遵循 "),e("a",{href:"https://yaml.org/type/timestamp.html",target:"_blank",rel:"noopener noreferrer"},"YAML Timestamp Type"),l(" 。")])],-1),y=e("p",null,"参考:",-1),D=e("h2",{id:"description",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#description"},[e("span",null,"description")])],-1),v=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),g=e("li",null,[e("p",null,"详情:"),e("p",null,"页面的描述。"),e("p",null,[l("它将会覆盖站点配置中的 "),e("code",null,"description"),l(" 配置项。")])],-1),_=e("p",null,"参考:",-1),b=t(`
    • 类型: HeadConfig[]

    • 详情:

      页面 <head> 标签内添加的额外标签。

    • 示例:

    ---
    +head:
    +  - - meta
    +    - name: foo
    +      content: yaml 数组语法
    +  - [meta, { name: bar, content: 方括号语法 }]
    +---

    渲染为:

    <head>
    +  <meta name="foo" content="yaml 数组语法" />
    +  <meta name="bar" content="方括号语法" />
    +</head>
    `,5),f=e("h2",{id:"lang",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#lang"},[e("span",null,"lang")])],-1),C=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),k=e("li",null,[e("p",null,"详情:"),e("p",null,"页面的语言。"),e("p",null,[l("它将会覆盖站点配置中的 "),e("code",null,"lang"),l(" 配置项")])],-1),E=e("p",null,"参考:",-1),x=t(`

    layout

    • 类型: string

    • 详情:

      页面的布局。

      布局是由主题提供的。如果你不指定该 Frontmatter ,则会使用默认布局。你应该参考主题自身的文档来了解其提供了哪些布局。

      如果主题布局无法满足你的需求,你可以使用自定义布局组件。

    • 示例:

    .vuepress/client.ts 文件中注册一个布局组件:

    import { defineClientConfig } from 'vuepress/client'
    +import CustomLayout from './CustomLayout.vue'
    +
    +export default defineClientConfig({
    +  layouts: {
    +    CustomLayout,
    +  },
    +})

    在 Frontmatter 中设置自定义布局:

    ---
    +layout: CustomLayout
    +---
    `,7),F=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string | null")])],-1),P=e("li",null,[e("p",null,"详情:"),e("p",null,"页面的永久链接。"),e("p",null,"它将会覆盖根据文件路径来决定的默认路由路径。"),e("p",null,[l("当被设置为 "),e("code",null,"null"),l(" 时,将会禁用页面的永久链接。")])],-1),M=e("p",null,"参考:",-1),z=e("li",null,[e("a",{href:"#permalinkpattern"},"Frontmatter > permalinkPattern")],-1),A=t(`

    permalinkPattern

    • 类型: string | null

    • 详情:

      为页面生成永久链接的 Pattern 。

      它将会覆盖站点配置中的 permalinkPattern 配置项。

      如果 Frontmatter 中设置了 permalink ,那么这个字段则不会生效。

    • 使用:

      Pattern描述
      :year创建日期的 年 部分
      :month创建日期的 月 部分
      :day创建日期的 日 部分
      :slug页面文件名的 Slug
      :raw原始路由路径

      :year, :month:day Pattern 根据如下优先级进行解析:

      • Frontmatter 中的 date 字段。
      • 符合 yyyy-MM-dd-foobar.mdyyyy-MM-foobar.md 日期格式的文件名。
      • 符合 yyyy/MM/dd/foobar.mdyyyy/MM/foobar.md 日期格式的目录名。
      • 默认值 0000-00-00
    • 示例 1 :

      页面文件名是 foo-bar.md

      页面 Frontmatter 是:

    ---
    +date: 2021-01-03
    +permalinkPattern: :year/:month/:day/:slug.html
    +---

    那么页面的永久链接将会是 2021/01/03/foo-bar.html

    • 示例 2 :

      页面文件名是 2021-01-03-bar-baz.md

      页面 Frontmatter 是:

    ---
    +permalinkPattern: :year/:month/:day/:slug.html
    +---

    那么页面的永久链接将会是 2021/01/03/bar-baz.html

    `,7),N=e("li",null,[e("a",{href:"#date"},"Frontmatter > date")],-1),T=e("li",null,[e("a",{href:"#permalink"},"Frontmatter > permalink")],-1),L=e("h2",{id:"routemeta",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#routemeta"},[e("span",null,"routeMeta")])],-1),q=e("li",null,[e("p",null,[l("类型: "),e("code",null,"Record")])],-1),I=e("li",null,[e("p",null,"详情:"),e("p",null,"附加到页面路由的自定义数据。")],-1),B=e("p",null,"参考:",-1),V=e("h2",{id:"title",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#title"},[e("span",null,"title")])],-1),w=e("li",null,[e("p",null,[l("类型: "),e("code",null,"string")])],-1),H=e("li",null,[e("p",null,"详情:"),e("p",null,"页面的标题。"),e("p",null,[l("如果你不在 Frontmatter 中设置 "),e("code",null,"title"),l(" ,那么页面中第一个一级标题(即 "),e("code",null,"# title"),l(")的内容会被当作标题使用。")])],-1),R=e("p",null,"参考:",-1);function S(j,Y){const n=r("RouteLink");return i(),p("div",null,[c,u,e("ul",null,[m,h,e("li",null,[y,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/node-api.html#date"},{default:s(()=>[l("Node API > Page 属性 > date")]),_:1})])])])]),D,e("ul",null,[v,g,e("li",null,[_,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/config.html#description"},{default:s(()=>[l("配置 > description")]),_:1})])])])]),b,e("ul",null,[e("li",null,[l("参考: "),e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/config.html#head"},{default:s(()=>[l("配置 > head")]),_:1})])])])]),f,e("ul",null,[C,k,e("li",null,[E,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/config.html#lang"},{default:s(()=>[l("配置 > lang")]),_:1})]),e("li",null,[a(n,{to:"/zh/reference/node-api.html#lang"},{default:s(()=>[l("Node API > Page 属性 > lang")]),_:1})])])])]),x,e("ul",null,[F,P,e("li",null,[M,e("ul",null,[z,e("li",null,[a(n,{to:"/zh/guide/page.html#%E8%B7%AF%E7%94%B1"},{default:s(()=>[l("指南 > 页面 > 路由")]),_:1})]),e("li",null,[a(n,{to:"/zh/reference/node-api.html#permalink"},{default:s(()=>[l("Node API > Page 属性 > permalink")]),_:1})])])])]),A,e("ul",null,[e("li",null,[l("参考: "),e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/config.html#permalinkpattern"},{default:s(()=>[l("配置 > permalinkPattern")]),_:1})]),N,T,e("li",null,[a(n,{to:"/zh/reference/node-api.html#permalink"},{default:s(()=>[l("Node API > Page 属性 > permalink")]),_:1})])])])]),L,e("ul",null,[q,I,e("li",null,[B,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/node-api.html#routeMeta"},{default:s(()=>[l("Node API > Page 属性 > routeMeta")]),_:1})])])])]),V,e("ul",null,[w,H,e("li",null,[R,e("ul",null,[e("li",null,[a(n,{to:"/zh/reference/node-api.html#title"},{default:s(()=>[l("Node API > Page 属性 > title")]),_:1})])])])])])}const J=o(d,[["render",S],["__file","frontmatter.html.vue"]]),O=JSON.parse('{"path":"/zh/reference/frontmatter.html","title":"Frontmatter","lang":"zh-CN","frontmatter":{"description":"Frontmatter date 类型: string 详情: 页面的创建日期。 应按照 yyyy-MM-dd 的格式来指定日期,或者遵循 YAML Timestamp Type 。 参考: description 类型: string 详情: 页面的描述。 它将会覆盖站点配置中的 description 配置项。 参考: head 类型: HeadC...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/reference/frontmatter.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/reference/frontmatter.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Frontmatter"}],["meta",{"property":"og:description","content":"Frontmatter date 类型: string 详情: 页面的创建日期。 应按照 yyyy-MM-dd 的格式来指定日期,或者遵循 YAML Timestamp Type 。 参考: description 类型: string 详情: 页面的描述。 它将会覆盖站点配置中的 description 配置项。 参考: head 类型: HeadC..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-16T12:45:44.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-16T12:45:44.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Frontmatter\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-16T12:45:44.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"date","slug":"date","link":"#date","children":[]},{"level":2,"title":"description","slug":"description","link":"#description","children":[]},{"level":2,"title":"head","slug":"head","link":"#head","children":[]},{"level":2,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":2,"title":"layout","slug":"layout","link":"#layout","children":[]},{"level":2,"title":"permalink","slug":"permalink","link":"#permalink","children":[]},{"level":2,"title":"permalinkPattern","slug":"permalinkpattern","link":"#permalinkpattern","children":[]},{"level":2,"title":"routeMeta","slug":"routemeta","link":"#routemeta","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]}],"git":{"updatedTime":1715863544000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1},{"name":"张怀文","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/reference/frontmatter.md"}');export{J as comp,O as data}; diff --git a/assets/getting-started.html-dBw9gEVC.js b/assets/getting-started.html-dBw9gEVC.js new file mode 100644 index 000000000..ad2b55185 --- /dev/null +++ b/assets/getting-started.html-dBw9gEVC.js @@ -0,0 +1,36 @@ +import{_ as c,r,o as d,c as p,d as a,w as l,a as e,b as s,e as i}from"./app-CqHoxGIc.js";const u={},h=i('

    快速上手

    注意

    VuePress v2 目前仍处于 RC (Release Candidate) 阶段。你已经可以用它来构建你的站点,但是它的配置和 API 还不够稳定,有可能会发生一些微小的 Breaking Changes 。因此,在每次更新 RC 版本之后,请一定要仔细阅读 更新日志

    在线试一试

    你可以通过 StackBlitz 在你的浏览器里直接使用 VuePress 。

    安装

    依赖环境

    提示

    • 使用 pnpm 时,你需要安装 vue 作为 peer-dependencies 。
    • 使用 yarn 2+ 时,你需要在 .yarnrc.yml 文件中设置 nodeLinker: 'node-modules'

    创建项目

    通过命令行创建

    你可以通过 create-vuepress 直接创建项目模板。

    ',11),v=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," create"),e("span",{style:{color:"#CE9178"}}," vuepress"),e("span",{style:{color:"#CE9178"}}," vuepress-starter")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),m=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," create"),e("span",{style:{color:"#CE9178"}}," vuepress"),e("span",{style:{color:"#CE9178"}}," vuepress-starter")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),b=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," init"),e("span",{style:{color:"#CE9178"}}," vuepress"),e("span",{style:{color:"#CE9178"}}," vuepress-starter")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),y=i(`

    手动创建

    这一章节会帮助你从头搭建一个简单的 VuePress 文档网站。

    • 创建并进入一个新目录
    mkdir vuepress-starter
    +cd vuepress-starter
    • 初始化项目
    `,5),D=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"git"),e("span",{style:{color:"#CE9178"}}," init")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," init")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),g=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"git"),e("span",{style:{color:"#CE9178"}}," init")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," init")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),C=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"git"),e("span",{style:{color:"#CE9178"}}," init")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," init")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),k=e("ul",null,[e("li",null,"安装 VuePress")],-1),E=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 vuepress 和 vue")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," vue")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装打包工具和主题")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/theme-default@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),_=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 vuepress")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装打包工具和主题")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/theme-default@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),f=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装 vuepress")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# 安装打包工具和主题")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/theme-default@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),A=i(`
    • 创建 docs 目录和 docs/.vuepress 目录
    mkdir docs
    +mkdir docs/.vuepress
    • 创建 VuePress 配置文件 docs/.vuepress/config.js
    import { viteBundler } from '@vuepress/bundler-vite'
    +import { defaultTheme } from '@vuepress/theme-default'
    +import { defineUserConfig } from 'vuepress'
    +
    +export default defineUserConfig({
    +  bundler: viteBundler(),
    +  theme: defaultTheme(),
    +})
    • 创建你的第一篇文档
    echo '# Hello VuePress' > docs/README.md

    目录结构

    创建完成后,你项目的目录结构应该是这样的:

    ├─ docs
    +│  ├─ .vuepress
    +│  │  └─ config.js
    +│  └─ README.md
    +└─ package.json

    docs 目录是你放置 Markdown 文件的地方,它同时也会作为 VuePress 的源文件目录。

    docs/.vuepress 目录,即源文件目录下的 .vuepress 目录,是放置所有和 VuePress 相关的文件的地方。当前这里只有一个配置文件。默认还会在该目录下生成临时文件、缓存文件和构建输出文件。建议你把它们添加到 .gitignore 文件中。

    示例 \`.gitignore\` 文件
    # VuePress 默认临时文件目录
    +.vuepress/.temp
    +# VuePress 默认缓存目录
    +.vuepress/.cache
    +# VuePress 默认构建生成的静态文件目录
    +.vuepress/dist

    开始使用 VuePress

    启动开发服务器

    你可以在 package.json 中添加一些 scripts

    {
    +  "scripts": {
    +    "docs:dev": "vuepress dev docs",
    +    "docs:build": "vuepress build docs"
    +  }
    +}

    运行 docs:dev 脚本可以启动开发服务器:

    `,17),x=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," docs:dev")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),P=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," docs:dev")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),V=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," run"),e("span",{style:{color:"#CE9178"}}," docs:dev")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),j=e("p",null,[s("VuePress 会在 "),e("a",{href:"http://localhost:8080",target:"_blank",rel:"noopener noreferrer"},"http://localhost:8080"),s(" 启动一个热重载的开发服务器。当你修改你的 Markdown 文件时,浏览器中的内容也会自动更新。")],-1),z=e("h3",{id:"构建你的网站",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#构建你的网站"},[e("span",null,"构建你的网站")])],-1),R=e("p",null,[s("运行 "),e("code",null,"docs:build"),s(" 脚本可以构建你的网站:")],-1),w=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," docs:build")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),B=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," docs:build")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),q=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," run"),e("span",{style:{color:"#CE9178"}}," docs:build")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),N=e("code",null,"docs/.vuepress/dist",-1),F=e("h2",{id:"进一步了解-vuepress",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#进一步了解-vuepress"},[e("span",null,"进一步了解 VuePress")])],-1),S=e("p",null,"现在,你应该已经有了一个简单可用的 VuePress 网站。但你可能仍需要阅读后续的指南来更加了解 VuePress 。",-1);function T(G,M){const n=r("CodeGroupItem"),t=r("CodeGroup"),o=r("RouteLink");return d(),p("div",null,[h,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[v]),_:1}),a(n,{title:"yarn"},{default:l(()=>[m]),_:1}),a(n,{title:"npm"},{default:l(()=>[b]),_:1})]),_:1}),y,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[D]),_:1}),a(n,{title:"yarn"},{default:l(()=>[g]),_:1}),a(n,{title:"npm"},{default:l(()=>[C]),_:1})]),_:1}),k,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[E]),_:1}),a(n,{title:"yarn"},{default:l(()=>[_]),_:1}),a(n,{title:"npm"},{default:l(()=>[f]),_:1})]),_:1}),A,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[x]),_:1}),a(n,{title:"yarn"},{default:l(()=>[P]),_:1}),a(n,{title:"npm"},{default:l(()=>[V]),_:1})]),_:1}),j,z,R,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[w]),_:1}),a(n,{title:"yarn"},{default:l(()=>[B]),_:1}),a(n,{title:"npm"},{default:l(()=>[q]),_:1})]),_:1}),e("p",null,[s("在 "),N,s(" 目录中可以找到构建生成的静态文件。你可以查看 "),a(o,{to:"/zh/guide/deployment.html"},{default:l(()=>[s("部署")]),_:1}),s(" 来了解如何部署你的网站。")]),F,S,e("p",null,[s("下一步,前往 "),a(o,{to:"/zh/guide/configuration.html"},{default:l(()=>[s("配置")]),_:1}),s(" 了解更多配置文件相关的内容。")])])}const L=c(u,[["render",T],["__file","getting-started.html.vue"]]),H=JSON.parse('{"path":"/zh/guide/getting-started.html","title":"快速上手","lang":"zh-CN","frontmatter":{"description":"快速上手 注意 VuePress v2 目前仍处于 RC (Release Candidate) 阶段。你已经可以用它来构建你的站点,但是它的配置和 API 还不够稳定,有可能会发生一些微小的 Breaking Changes 。因此,在每次更新 RC 版本之后,请一定要仔细阅读 更新日志。 在线试一试 你可以通过 StackBlitz 在你的浏览器里...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/getting-started.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/getting-started.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"快速上手"}],["meta",{"property":"og:description","content":"快速上手 注意 VuePress v2 目前仍处于 RC (Release Candidate) 阶段。你已经可以用它来构建你的站点,但是它的配置和 API 还不够稳定,有可能会发生一些微小的 Breaking Changes 。因此,在每次更新 RC 版本之后,请一定要仔细阅读 更新日志。 在线试一试 你可以通过 StackBlitz 在你的浏览器里..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-31T08:01:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T08:01:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"快速上手\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-31T08:01:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"在线试一试","slug":"在线试一试","link":"#在线试一试","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[{"level":3,"title":"依赖环境","slug":"依赖环境","link":"#依赖环境","children":[]},{"level":3,"title":"创建项目","slug":"创建项目","link":"#创建项目","children":[]}]},{"level":2,"title":"目录结构","slug":"目录结构","link":"#目录结构","children":[]},{"level":2,"title":"开始使用 VuePress","slug":"开始使用-vuepress","link":"#开始使用-vuepress","children":[{"level":3,"title":"启动开发服务器","slug":"启动开发服务器","link":"#启动开发服务器","children":[]},{"level":3,"title":"构建你的网站","slug":"构建你的网站","link":"#构建你的网站","children":[]}]},{"level":2,"title":"进一步了解 VuePress","slug":"进一步了解-vuepress","link":"#进一步了解-vuepress","children":[]}],"git":{"updatedTime":1725091279000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/guide/getting-started.md"}');export{L as comp,H as data}; diff --git a/assets/getting-started.html-jV6wexI-.js b/assets/getting-started.html-jV6wexI-.js new file mode 100644 index 000000000..8fd69963d --- /dev/null +++ b/assets/getting-started.html-jV6wexI-.js @@ -0,0 +1,36 @@ +import{_ as c,r,o as d,c as p,d as a,w as l,a as e,b as s,e as i}from"./app-CqHoxGIc.js";const u={},h=i('

    Getting Started

    Warning

    VuePress v2 is currently in RC (Release Candidate) stage. It's ready to be used for building your site, but the config and API are not stable enough, which is possibly to have minor breaking changes. So make sure to read the changelog carefully each time you upgrade a RC version.

    Try It Online

    You can try VuePress directly in your browser on StackBlitz.

    Installation

    Prerequisites

    Tips

    • When using pnpm, you need to install vue as peer-dependencies.
    • When using yarn 2+, you need to set nodeLinker: 'node-modules' in your .yarnrc.yml file.

    Project Setup

    Setup via CLI

    You can use create-vuepress to generate a template directly.

    ',11),m=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," create"),e("span",{style:{color:"#CE9178"}}," vuepress"),e("span",{style:{color:"#CE9178"}}," vuepress-starter")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),v=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," create"),e("span",{style:{color:"#CE9178"}}," vuepress"),e("span",{style:{color:"#CE9178"}}," vuepress-starter")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),b=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," init"),e("span",{style:{color:"#CE9178"}}," vuepress"),e("span",{style:{color:"#CE9178"}}," vuepress-starter")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),y=i(`

    Setup Manually

    This section will help you build a basic VuePress documentation site from ground up.

    • Create and change into a new directory
    mkdir vuepress-starter
    +cd vuepress-starter
    • Initialize your project
    `,5),g=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"git"),e("span",{style:{color:"#CE9178"}}," init")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," init")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),D=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"git"),e("span",{style:{color:"#CE9178"}}," init")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," init")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),C=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"git"),e("span",{style:{color:"#CE9178"}}," init")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," init")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),k=e("ul",null,[e("li",null,"Install VuePress")],-1),E=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install vuepress and vue")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next"),e("span",{style:{color:"#CE9178"}}," vue")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install bundler and theme")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/theme-default@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),f=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install vuepress")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install bundler and theme")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," add"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/theme-default@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),_=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install vuepress")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," vuepress@next")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#6A9955"}},"# install bundler and theme")]),s(` +`),e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," install"),e("span",{style:{color:"#569CD6"}}," -D"),e("span",{style:{color:"#CE9178"}}," @vuepress/bundler-vite@next"),e("span",{style:{color:"#CE9178"}}," @vuepress/theme-default@next")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),A=i(`
    • Create docs directory and docs/.vuepress directory
    mkdir docs
    +mkdir docs/.vuepress
    • Create the VuePress config file docs/.vuepress/config.js
    import { viteBundler } from '@vuepress/bundler-vite'
    +import { defaultTheme } from '@vuepress/theme-default'
    +import { defineUserConfig } from 'vuepress'
    +
    +export default defineUserConfig({
    +  bundler: viteBundler(),
    +  theme: defaultTheme(),
    +})
    • Create your first document
    echo '# Hello VuePress' > docs/README.md

    Directory Structure

    After the setup, the minimal structure of your project should look like this:

    ├─ docs
    +│  ├─ .vuepress
    +│  │  └─ config.js
    +│  └─ README.md
    +└─ package.json

    The docs directory is where you put your markdown files, and it will be used as the source directory of VuePress.

    The docs/.vuepress directory, i.e. the .vuepress directory in the source directory, is where all VuePress-specific files will be placed. Currently there is only one config file in it. By default, the temp, cache and output directory will also be generated inside this directory. It is suggested to add them to your .gitignore file.

    Example \`.gitignore\` file
    # VuePress default temp directory
    +.vuepress/.temp
    +# VuePress default cache directory
    +.vuepress/.cache
    +# VuePress default build output directory
    +.vuepress/dist

    Work with VuePress

    Start Dev Server

    You can add some scripts to package.json:

    {
    +  "scripts": {
    +    "docs:dev": "vuepress dev docs",
    +    "docs:build": "vuepress build docs"
    +  }
    +}

    Then, run docs:dev script to start the dev server:

    `,17),x=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," docs:dev")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),w=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," docs:dev")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),P=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," run"),e("span",{style:{color:"#CE9178"}}," docs:dev")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),S=e("p",null,[s("VuePress will start a hot-reloading development server at "),e("a",{href:"http://localhost:8080",target:"_blank",rel:"noopener noreferrer"},"http://localhost:8080"),s(". When you modify your markdown files, the content in the browser will be auto updated.")],-1),V=e("h3",{id:"build-your-site",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#build-your-site"},[e("span",null,"Build Your Site")])],-1),j=e("p",null,[s("To build your site, run "),e("code",null,"docs:build"),s(" script:")],-1),q=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"pnpm"),e("span",{style:{color:"#CE9178"}}," docs:build")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),I=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"yarn"),e("span",{style:{color:"#CE9178"}}," docs:build")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),T=e("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"background-color":"#1E1E1E",color:"#D4D4D4"}},[e("pre",{class:"shiki dark-plus vp-code"},[e("code",null,[e("span",{class:"line"},[e("span",{style:{color:"#DCDCAA"}},"npm"),e("span",{style:{color:"#CE9178"}}," run"),e("span",{style:{color:"#CE9178"}}," docs:build")])])]),e("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[e("div",{class:"line-number"})])],-1),G=e("code",null,"docs/.vuepress/dist",-1),R=e("h2",{id:"learn-more-about-vuepress",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#learn-more-about-vuepress"},[e("span",null,"Learn More about VuePress")])],-1),B=e("p",null,"By now, you should have a basic but functional VuePress site. But you may still need to read the subsequent guide to learn more about VuePress.",-1);function N(F,L){const n=r("CodeGroupItem"),t=r("CodeGroup"),o=r("RouteLink");return d(),p("div",null,[h,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[m]),_:1}),a(n,{title:"yarn"},{default:l(()=>[v]),_:1}),a(n,{title:"npm"},{default:l(()=>[b]),_:1})]),_:1}),y,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[g]),_:1}),a(n,{title:"yarn"},{default:l(()=>[D]),_:1}),a(n,{title:"npm"},{default:l(()=>[C]),_:1})]),_:1}),k,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[E]),_:1}),a(n,{title:"yarn"},{default:l(()=>[f]),_:1}),a(n,{title:"npm"},{default:l(()=>[_]),_:1})]),_:1}),A,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[x]),_:1}),a(n,{title:"yarn"},{default:l(()=>[w]),_:1}),a(n,{title:"npm"},{default:l(()=>[P]),_:1})]),_:1}),S,V,j,a(t,null,{default:l(()=>[a(n,{title:"pnpm",active:""},{default:l(()=>[q]),_:1}),a(n,{title:"yarn"},{default:l(()=>[I]),_:1}),a(n,{title:"npm"},{default:l(()=>[T]),_:1})]),_:1}),e("p",null,[s("You will see the generated static files in the "),G,s(" directory. You can check out "),a(o,{to:"/guide/deployment.html"},{default:l(()=>[s("deployment")]),_:1}),s(" for how to deploy them.")]),R,B,e("p",null,[s("Next step, learn more about the "),a(o,{to:"/guide/configuration.html"},{default:l(()=>[s("configuration")]),_:1}),s(".")])])}const M=c(u,[["render",N],["__file","getting-started.html.vue"]]),Y=JSON.parse(`{"path":"/guide/getting-started.html","title":"Getting Started","lang":"en-US","frontmatter":{"description":"Getting Started Warning VuePress v2 is currently in RC (Release Candidate) stage. It's ready to be used for building your site, but the config and API are not stable enough, whi...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/getting-started.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/getting-started.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Getting Started"}],["meta",{"property":"og:description","content":"Getting Started Warning VuePress v2 is currently in RC (Release Candidate) stage. It's ready to be used for building your site, but the config and API are not stable enough, whi..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-31T08:01:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T08:01:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Getting Started\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-31T08:01:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Try It Online","slug":"try-it-online","link":"#try-it-online","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[{"level":3,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":3,"title":"Project Setup","slug":"project-setup","link":"#project-setup","children":[]}]},{"level":2,"title":"Directory Structure","slug":"directory-structure","link":"#directory-structure","children":[]},{"level":2,"title":"Work with VuePress","slug":"work-with-vuepress","link":"#work-with-vuepress","children":[{"level":3,"title":"Start Dev Server","slug":"start-dev-server","link":"#start-dev-server","children":[]},{"level":3,"title":"Build Your Site","slug":"build-your-site","link":"#build-your-site","children":[]}]},{"level":2,"title":"Learn More about VuePress","slug":"learn-more-about-vuepress","link":"#learn-more-about-vuepress","children":[]}],"git":{"updatedTime":1725091279000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":5},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"guide/getting-started.md"}`);export{M as comp,Y as data}; diff --git a/assets/hero-BNkrhNQ6.js b/assets/hero-BNkrhNQ6.js new file mode 100644 index 000000000..d90d6d577 --- /dev/null +++ b/assets/hero-BNkrhNQ6.js @@ -0,0 +1 @@ +const o="/images/hero.png";export{o as _}; diff --git a/assets/i18n.html-9eIU_Fbw.js b/assets/i18n.html-9eIU_Fbw.js new file mode 100644 index 000000000..96880550b --- /dev/null +++ b/assets/i18n.html-9eIU_Fbw.js @@ -0,0 +1,39 @@ +import{_ as i,r as o,o as t,c,a as n,b as s,d as l,w as p,e}from"./app-CqHoxGIc.js";const r={},d=e(`

    多语言支持

    站点多语言配置

    要启用 VuePress 的多语言支持,首先需要使用如下的文件目录结构:

    docs
    +├─ README.md
    +├─ foo.md
    +├─ nested
    +│  └─ README.md
    +└─ zh
    +   ├─ README.md
    +   ├─ foo.md
    +   └─ nested
    +      └─ README.md
    `,4),D=n("code",null,"locales",-1),u=e(`
    export default {
    +  locales: {
    +    // 键名是该语言所属的子路径
    +    // 作为特例,默认语言可以使用 '/' 作为其路径。
    +    '/': {
    +      lang: 'en-US',
    +      title: 'VuePress',
    +      description: 'Vue-powered Static Site Generator',
    +    },
    +    '/zh/': {
    +      lang: 'zh-CN',
    +      title: 'VuePress',
    +      description: 'Vue 驱动的静态网站生成器',
    +    },
    +  },
    +}

    如果一个语言没有声明 lang, title, description 或者 head ,VuePress 将会尝试使用顶层配置的对应值。如果每个语言都声明了这些值,那么顶层配置中的对应值可以被省略。

    `,2),m={class:"hint-container tip"},v=n("p",{class:"hint-container-title"},"提示",-1),h=e(`

    主题多语言配置

    VuePress 没有限制主题如何提供多语言支持,因此每个主题可能会有不同的多语言配置方式,而且部分主题可能不会提供多语言支持。建议你查看主题本身的文档来获取更详细的指引。

    如果你使用的是默认主题,那么它提供多语言支持的方式和上述是一致的:

    import { defaultTheme } from '@vuepress/theme-default'
    +import { defineUserConfig } from 'vuepress'
    +
    +export default defineUserConfig({
    +  theme: defaultTheme({
    +    locales: {
    +      '/': {
    +        selectLanguageName: 'English',
    +      },
    +      '/zh/': {
    +        selectLanguageName: '简体中文',
    +      },
    +    },
    +  }),
    +})
    `,5);function y(C,b){const a=o("RouteLink");return t(),c("div",null,[d,n("p",null,[s("然后,在你的 "),l(a,{to:"/zh/guide/configuration.html#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6"},{default:p(()=>[s("配置文件")]),_:1}),s(" 中设置 "),D,s(" 选项:")]),u,n("div",m,[v,n("p",null,[s("配置参考: "),l(a,{to:"/zh/reference/config.html#locales"},{default:p(()=>[s("locales")]),_:1})])]),h])}const E=i(r,[["render",y],["__file","i18n.html.vue"]]),f=JSON.parse('{"path":"/zh/guide/i18n.html","title":"多语言支持","lang":"zh-CN","frontmatter":{"description":"多语言支持 站点多语言配置 要启用 VuePress 的多语言支持,首先需要使用如下的文件目录结构: 然后,在你的 中设置 locales 选项: 如果一个语言没有声明 lang, title, description 或者 head ,VuePress 将会尝试使用顶层配置的对应值。如果每个语言都声明了这些值,那么顶层配置中的对应值可以被省略。 提示...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/i18n.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/i18n.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"多语言支持"}],["meta",{"property":"og:description","content":"多语言支持 站点多语言配置 要启用 VuePress 的多语言支持,首先需要使用如下的文件目录结构: 然后,在你的 中设置 locales 选项: 如果一个语言没有声明 lang, title, description 或者 head ,VuePress 将会尝试使用顶层配置的对应值。如果每个语言都声明了这些值,那么顶层配置中的对应值可以被省略。 提示..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-02-01T10:07:08.000Z"}],["meta",{"property":"article:modified_time","content":"2024-02-01T10:07:08.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"多语言支持\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-02-01T10:07:08.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"站点多语言配置","slug":"站点多语言配置","link":"#站点多语言配置","children":[]},{"level":2,"title":"主题多语言配置","slug":"主题多语言配置","link":"#主题多语言配置","children":[]}],"git":{"updatedTime":1706782028000,"contributors":[{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2},{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2}]},"autoDesc":true,"filePathRelative":"zh/guide/i18n.md"}');export{E as comp,f as data}; diff --git a/assets/i18n.html-C-Ty_JEU.js b/assets/i18n.html-C-Ty_JEU.js new file mode 100644 index 000000000..d3727734f --- /dev/null +++ b/assets/i18n.html-C-Ty_JEU.js @@ -0,0 +1,39 @@ +import{_ as t,r as i,o as p,c,a as e,b as s,d as l,w as o,e as n}from"./app-CqHoxGIc.js";const r={},d=n(`

    I18n

    Site I18n Config

    To take advantage of multi-language support in VuePress, you first need to use the following file and directory structure:

    docs
    +├─ README.md
    +├─ foo.md
    +├─ nested
    +│  └─ README.md
    +└─ zh
    +   ├─ README.md
    +   ├─ foo.md
    +   └─ nested
    +      └─ README.md
    `,4),u=e("code",null,"locales",-1),m=n(`
    export default {
    +  locales: {
    +    // The key is the path for the locale to be nested under.
    +    // As a special case, the default locale can use '/' as its path.
    +    '/': {
    +      lang: 'en-US',
    +      title: 'VuePress',
    +      description: 'Vue-powered Static Site Generator',
    +    },
    +    '/zh/': {
    +      lang: 'zh-CN',
    +      title: 'VuePress',
    +      description: 'Vue 驱动的静态网站生成器',
    +    },
    +  },
    +}

    If a locale does not have a lang, title, description or head, VuePress will fallback to the root-level values. You can omit the root level config as long as they are provided in each locale.

    `,2),h={class:"hint-container tip"},v=e("p",{class:"hint-container-title"},"Tips",-1),D=n(`

    Theme I18n Config

    VuePress does not restrict how themes provide multi-language support, so each theme may have different way to handle i18n, and some themes may not provide multi-language support at all. You'd better refer to the theme documentation for detailed guide.

    If you are using default theme, the multi-language support is the same as above:

    import { defaultTheme } from '@vuepress/theme-default'
    +import { defineUserConfig } from 'vuepress'
    +
    +export default defineUserConfig({
    +  theme: defaultTheme({
    +    locales: {
    +      '/': {
    +        selectLanguageName: 'English',
    +      },
    +      '/zh/': {
    +        selectLanguageName: '简体中文',
    +      },
    +    },
    +  }),
    +})
    `,5);function y(g,f){const a=i("RouteLink");return p(),c("div",null,[d,e("p",null,[s("Then, specify the "),u,s(" option in your "),l(a,{to:"/guide/configuration.html#config-file"},{default:o(()=>[s("config file")]),_:1}),s(":")]),m,e("div",h,[v,e("p",null,[s("Config reference: "),l(a,{to:"/reference/config.html#locales"},{default:o(()=>[s("locales")]),_:1})])]),D])}const b=t(r,[["render",y],["__file","i18n.html.vue"]]),E=JSON.parse('{"path":"/guide/i18n.html","title":"I18n","lang":"en-US","frontmatter":{"description":"I18n Site I18n Config To take advantage of multi-language support in VuePress, you first need to use the following file and directory structure: Then, specify the locales option...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/i18n.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/i18n.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"I18n"}],["meta",{"property":"og:description","content":"I18n Site I18n Config To take advantage of multi-language support in VuePress, you first need to use the following file and directory structure: Then, specify the locales option..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-02-01T10:07:08.000Z"}],["meta",{"property":"article:modified_time","content":"2024-02-01T10:07:08.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"I18n\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-02-01T10:07:08.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Site I18n Config","slug":"site-i18n-config","link":"#site-i18n-config","children":[]},{"level":2,"title":"Theme I18n Config","slug":"theme-i18n-config","link":"#theme-i18n-config","children":[]}],"git":{"updatedTime":1706782028000,"contributors":[{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2},{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":2}]},"autoDesc":true,"filePathRelative":"guide/i18n.md"}');export{b as comp,E as data}; diff --git a/assets/index-DWGeGWcS.js b/assets/index-DWGeGWcS.js new file mode 100644 index 000000000..d7c66ac0d --- /dev/null +++ b/assets/index-DWGeGWcS.js @@ -0,0 +1,14 @@ +/*! @docsearch/js 3.6.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function on(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function N(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n3)for(n=[n],i=3;i0?Ue(d.type,d.props,d.key,null,d.__v):d)!=null){if(d.__=n,d.__b=n.__b+1,(y=g[a])===null||y&&d.key==y.key&&d.type===y.type)g[a]=void 0;else for(h=0;h<_;h++){if((y=g[h])&&d.key==y.key&&d.type===y.type){g[h]=void 0;break}y=null}Qt(t,d,y=y||Et,o,i,u,s,l,f),v=d.__e,(h=d.ref)&&y.ref!=h&&(m||(m=[]),y.ref&&m.push(y.ref,null,d),m.push(h,d.__c||v,d)),v!=null?(p==null&&(p=v),typeof d.type=="function"&&d.__k!=null&&d.__k===y.__k?d.__d=l=vr(d,l,t):l=dr(t,d,y,g,v,l),f||n.type!=="option"?typeof n.type=="function"&&(n.__d=l):t.value=""):l&&y.__e==l&&l.parentNode!=t&&(l=nt(y))}for(n.__e=p,a=_;a--;)g[a]!=null&&(typeof n.type=="function"&&g[a].__e!=null&&g[a].__e==n.__d&&(n.__d=nt(r,a+1)),gr(g[a],g[a]));if(m)for(a=0;a3)for(n=[n],i=3;i=n.__.length&&n.__.push({}),n.__[t]}function Gt(t){return Ce=1,br(Sr,t)}function br(t,e,n){var r=it(xe++,2);return r.t=t,r.__c||(r.__=[n?n(e):Sr(void 0,e),function(o){var i=r.t(r.__[0],o);r.__[0]!==i&&(r.__=[i,r.__[1]],r.__c.setState({}))}],r.__c=K),r.__}function Yt(t,e){var n=it(xe++,3);!j.__s&&Xt(n.__H,e)&&(n.__=t,n.__H=e,K.__H.__h.push(n))}function hn(t,e){var n=it(xe++,4);!j.__s&&Xt(n.__H,e)&&(n.__=t,n.__H=e,K.__h.push(n))}function Ct(t,e){var n=it(xe++,7);return Xt(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function eo(){Ft.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(bt),t.__H.__h.forEach(Bt),t.__H.__h=[]}catch(e){t.__H.__h=[],j.__e(e,t.__v)}}),Ft=[]}j.__b=function(t){K=null,fn&&fn(t)},j.__r=function(t){mn&&mn(t),xe=0;var e=(K=t.__c).__H;e&&(e.__h.forEach(bt),e.__h.forEach(Bt),e.__h=[])},j.diffed=function(t){pn&&pn(t);var e=t.__c;e&&e.__H&&e.__H.__h.length&&(Ft.push(e)!==1&&sn===j.requestAnimationFrame||((sn=j.requestAnimationFrame)||function(n){var r,o=function(){clearTimeout(i),yn&&cancelAnimationFrame(r),setTimeout(n)},i=setTimeout(o,100);yn&&(r=requestAnimationFrame(o))})(eo)),K=void 0},j.__c=function(t,e){e.some(function(n){try{n.__h.forEach(bt),n.__h=n.__h.filter(function(r){return!r.__||Bt(r)})}catch(r){e.some(function(o){o.__h&&(o.__h=[])}),e=[],j.__e(r,n.__v)}}),vn&&vn(t,e)},j.unmount=function(t){dn&&dn(t);var e=t.__c;if(e&&e.__H)try{e.__H.__.forEach(bt)}catch(n){j.__e(n,e.__v)}};var yn=typeof requestAnimationFrame=="function";function bt(t){var e=K;typeof t.__c=="function"&&t.__c(),K=e}function Bt(t){var e=K;t.__c=t.__(),K=e}function Xt(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function Sr(t,e){return typeof e=="function"?e(t):e}function Or(t,e){for(var n in e)t[n]=e[n];return t}function Vt(t,e){for(var n in t)if(n!=="__source"&&!(n in e))return!0;for(var r in e)if(r!=="__source"&&t[r]!==e[r])return!0;return!1}function Kt(t){this.props=t}(Kt.prototype=new te).isPureReactComponent=!0,Kt.prototype.shouldComponentUpdate=function(t,e){return Vt(this.props,t)||Vt(this.state,e)};var gn=j.__b;j.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),gn&&gn(t)};var to=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,_n=function(t,e){return t==null?null:ie(ie(t).map(e))},no={map:_n,forEach:_n,count:function(t){return t?ie(t).length:0},only:function(t){var e=ie(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:ie},ro=j.__e;function St(){this.__u=0,this.t=null,this.__b=null}function wr(t){var e=t.__.__c;return e&&e.__e&&e.__e(t)}function Le(){this.u=null,this.o=null}j.__e=function(t,e,n){if(t.then){for(var r,o=e;o=o.__;)if((r=o.__c)&&r.__c)return e.__e==null&&(e.__e=n.__e,e.__k=n.__k),r.__c(t,e)}ro(t,e,n)},(St.prototype=new te).__c=function(t,e){var n=e.__c,r=this;r.t==null&&(r.t=[]),r.t.push(n);var o=wr(r.__v),i=!1,u=function(){i||(i=!0,n.componentWillUnmount=n.__c,o?o(s):s())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){u(),n.__c&&n.__c()};var s=function(){if(!--r.__u){if(r.state.__e){var f=r.state.__e;r.__v.__k[0]=function h(y,d,v){return y&&(y.__v=null,y.__k=y.__k&&y.__k.map(function(p){return h(p,d,v)}),y.__c&&y.__c.__P===d&&(y.__e&&v.insertBefore(y.__e,y.__d),y.__c.__e=!0,y.__c.__P=v)),y}(f,f.__c.__P,f.__c.__O)}var a;for(r.setState({__e:r.__b=null});a=r.t.pop();)a.forceUpdate()}},l=e.__h===!0;r.__u++||l||r.setState({__e:r.__b=r.__v.__k[0]}),t.then(u,u)},St.prototype.componentWillUnmount=function(){this.t=[]},St.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function i(u,s,l){return u&&(u.__c&&u.__c.__H&&(u.__c.__H.__.forEach(function(f){typeof f.__c=="function"&&f.__c()}),u.__c.__H=null),(u=Or({},u)).__c!=null&&(u.__c.__P===l&&(u.__c.__P=s),u.__c=null),u.__k=u.__k&&u.__k.map(function(f){return i(f,s,l)})),u}(this.__b,n,r.__O=r.__P)}this.__b=null}var o=e.__e&&ee(pe,null,t.fallback);return o&&(o.__h=null),[ee(pe,null,e.__e?null:t.children),o]};var bn=function(t,e,n){if(++n[1]===n[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(n=t.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),e.i.removeChild(r)}}),rt(ee(oo,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function Er(t,e){return ee(io,{__v:t,i:e})}(Le.prototype=new te).__e=function(t){var e=this,n=wr(e.__v),r=e.o.get(t);return r[0]++,function(o){var i=function(){e.props.revealOrder?(r.push(o),bn(e,t,r)):o()};n?n(i):i()}},Le.prototype.render=function(t){this.u=null,this.o=new Map;var e=ie(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var n=e.length;n--;)this.o.set(e[n],this.u=[1,0,this.u]);return t.children},Le.prototype.componentDidUpdate=Le.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,n){bn(t,n,e)})};var jr=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,ao=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,co=function(t){return(typeof Symbol<"u"&&D(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};function Pr(t,e,n){return e.__k==null&&(e.textContent=""),rt(t,e),typeof n=="function"&&n(),t?t.__c:null}te.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(te.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var Sn=j.event;function uo(){}function lo(){return this.cancelBubble}function so(){return this.defaultPrevented}j.event=function(t){return Sn&&(t=Sn(t)),t.persist=uo,t.isPropagationStopped=lo,t.isDefaultPrevented=so,t.nativeEvent=t};var Ir,On={configurable:!0,get:function(){return this.class}},wn=j.vnode;j.vnode=function(t){var e=t.type,n=t.props,r=n;if(typeof e=="string"){for(var o in r={},n){var i=n[o];o==="value"&&"defaultValue"in n&&i==null||(o==="defaultValue"&&"value"in n&&n.value==null?o="value":o==="download"&&i===!0?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+e)&&!co(n.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():ao.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():i===null&&(i=void 0),r[o]=i)}e=="select"&&r.multiple&&Array.isArray(r.value)&&(r.value=ie(n.children).forEach(function(u){u.props.selected=r.value.indexOf(u.props.value)!=-1})),e=="select"&&r.defaultValue!=null&&(r.value=ie(n.children).forEach(function(u){u.props.selected=r.multiple?r.defaultValue.indexOf(u.props.value)!=-1:r.defaultValue==u.props.value})),t.props=r}e&&n.class!=n.className&&(On.enumerable="className"in n,n.className!=null&&(r.class=n.className),Object.defineProperty(r,"className",On)),t.$$typeof=jr,wn&&wn(t)};var En=j.__r;j.__r=function(t){En&&En(t),Ir=t.__c};var fo={ReactCurrentDispatcher:{current:{readContext:function(t){return Ir.__n[t.__c].props.value}}}};function jn(t){return!!t&&t.$$typeof===jr}(typeof performance>"u"?"undefined":D(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);var c={useState:Gt,useReducer:br,useEffect:Yt,useLayoutEffect:hn,useRef:function(t){return Ce=5,Ct(function(){return{current:t}},[])},useImperativeHandle:function(t,e,n){Ce=6,hn(function(){typeof t=="function"?t(e()):t&&(t.current=e())},n==null?n:n.concat(t))},useMemo:Ct,useCallback:function(t,e){return Ce=8,Ct(function(){return t},e)},useContext:function(t){var e=K.context[t.__c],n=it(xe++,9);return n.__c=t,e?(n.__==null&&(n.__=!0,e.sub(K)),e.props.value):t.__},useDebugValue:function(t,e){j.useDebugValue&&j.useDebugValue(e?e(t):t)},version:"16.8.0",Children:no,render:Pr,hydrate:function(t,e,n){return _r(t,e),typeof n=="function"&&n(),t?t.__c:null},unmountComponentAtNode:function(t){return!!t.__k&&(rt(null,t),!0)},createPortal:Er,createElement:ee,createContext:function(t,e){var n={__c:e="__cC"+sr++,__:t,Consumer:function(r,o){return r.children(o)},Provider:function(r){var o,i;return this.getChildContext||(o=[],(i={})[e]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(u){this.props.value!==u.value&&o.some(Ut)},this.sub=function(u){o.push(u);var s=u.componentWillUnmount;u.componentWillUnmount=function(){o.splice(o.indexOf(u),1),s&&s.call(u)}}),r.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(t){return ee.bind(null,t)},cloneElement:function(t){return jn(t)?Xr.apply(null,arguments):t},createRef:function(){return{current:null}},Fragment:pe,isValidElement:jn,findDOMNode:function(t){return t&&(t.base||t.nodeType===1&&t)||null},Component:te,PureComponent:Kt,memo:function(t,e){function n(o){var i=this.props.ref,u=i==o.ref;return!u&&i&&(i.call?i(null):i.current=null),e?!e(this.props,o)||!u:Vt(this.props,o)}function r(o){return this.shouldComponentUpdate=n,ee(t,o)}return r.displayName="Memo("+(t.displayName||t.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(t){function e(n,r){var o=Or({},n);return delete o.ref,t(o,(r=n.ref||r)&&(D(r)!="object"||"current"in r)?r:null)}return e.$$typeof=to,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e},unstable_batchedUpdates:function(t,e){return t(e)},StrictMode:pe,Suspense:St,SuspenseList:Le,lazy:function(t){var e,n,r;function o(i){if(e||(e=t()).then(function(u){n=u.default||u},function(u){r=u}),r)throw r;if(!n)throw e;return ee(n,i)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:fo},mo=["facetName","facetQuery"];function Pn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function Fe(t){for(var e=1;e=0||(a[l]=u[l]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function be(t,e){return function(n){if(Array.isArray(n))return n}(t)||function(n,r){var o=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(o!=null){var i,u,s=[],l=!0,f=!1;try{for(o=o.call(n);!(l=(i=o.next()).done)&&(s.push(i.value),!r||s.length!==r);l=!0);}catch(a){f=!0,u=a}finally{try{l||o.return==null||o.return()}finally{if(f)throw u}}return s}}(t,e)||Dr(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Dr(t,e){if(t){if(typeof t=="string")return Wt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Wt(t,e):void 0}}function Wt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(a[l]=u[l]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function An(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function Ae(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:20,n=[],r=0;rt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=3||y===2&&d>=4||y===1&&d>=10);function p(m,g,_){if(v&&_!==void 0){var b=_[0].__autocomplete_algoliaCredentials,S={"X-Algolia-Application-Id":b.appId,"X-Algolia-API-Key":b.apiKey};a.apply(void 0,[m].concat(st(g),[{headers:S}]))}else a.apply(void 0,[m].concat(st(g)))}return{init:function(m,g){a("init",{appId:m,apiKey:g})},setUserToken:function(m){a("setUserToken",m)},clickedObjectIDsAfterSearch:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&p("clickedObjectIDsAfterSearch",ft(g),g[0].items)},clickedObjectIDs:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&p("clickedObjectIDs",ft(g),g[0].items)},clickedFilters:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&a.apply(void 0,["clickedFilters"].concat(g))},convertedObjectIDsAfterSearch:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&p("convertedObjectIDsAfterSearch",ft(g),g[0].items)},convertedObjectIDs:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&p("convertedObjectIDs",ft(g),g[0].items)},convertedFilters:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&a.apply(void 0,["convertedFilters"].concat(g))},viewedObjectIDs:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&g.reduce(function(b,S){var O=S.items,E=xr(S,So);return[].concat(st(b),st(wo(Ae(Ae({},E),{},{objectIDs:(O==null?void 0:O.map(function(k){return k.objectID}))||E.objectIDs})).map(function(k){return{items:O,payload:k}})))},[]).forEach(function(b){var S=b.items;return p("viewedObjectIDs",[b.payload],S)})},viewedFilters:function(){for(var m=arguments.length,g=new Array(m),_=0;_0&&a.apply(void 0,["viewedFilters"].concat(g))}}}(u),l={current:[]},f=Cr(function(a){var h=a.state;if(h.isOpen){var y=h.collections.reduce(function(d,v){return[].concat(Oe(d),Oe(v.items))},[]).filter(xt);Ar(l.current.map(function(d){return d.objectID}),y.map(function(d){return d.objectID}))||(l.current=y,y.length>0&&Io({onItemsChange:r,items:y,insights:s,state:h}))}},0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(a){var h=a.setContext,y=a.onSelect,d=a.onActive;u("addAlgoliaAgent","insights-plugin"),h({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:s}}),y(function(v){var p=v.item,m=v.state,g=v.event;xt(p)&&o({state:m,event:g,insights:s,item:p,insightsEvents:[me({eventName:"Item Selected"},kn({item:p,items:l.current}))]})}),d(function(v){var p=v.item,m=v.state,g=v.event;xt(p)&&i({state:m,event:g,insights:s,item:p,insightsEvents:[me({eventName:"Item Active"},kn({item:p,items:l.current}))]})})},onStateChange:function(a){var h=a.state;f({state:h})},__autocomplete_pluginOptions:t}}function wt(t,e){var n=e;return{then:function(r,o){return wt(t.then(mt(r,n,t),mt(o,n,t)),n)},catch:function(r){return wt(t.catch(mt(r,n,t)),n)},finally:function(r){return r&&n.onCancelList.push(r),wt(t.finally(mt(r&&function(){return n.onCancelList=[],r()},n,t)),n)},cancel:function(){n.isCanceled=!0;var r=n.onCancelList;n.onCancelList=[],r.forEach(function(o){o()})},isCanceled:function(){return n.isCanceled===!0}}}function Nn(t){return wt(t,{isCanceled:!1,onCancelList:[]})}function mt(t,e,n){return t?function(r){return e.isCanceled?r:t(r)}:n}function Tn(t,e,n,r){if(!n)return null;if(t<0&&(e===null||r!==null&&e===0))return n+t;var o=(e===null?-1:e)+t;return o<=-1||o>=n?r===null?null:0:o}function Rn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function qn(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0||(M[w]=P[w]);return M}(_,b);if(Object.getOwnPropertySymbols){var k=Object.getOwnPropertySymbols(_);for(O=0;O=0||Object.prototype.propertyIsEnumerable.call(_,S)&&(E[S]=_[S])}return E}(t,qo);qe&&o.environment.clearTimeout(qe);var f=l.setCollections,a=l.setIsOpen,h=l.setQuery,y=l.setActiveItemId,d=l.setStatus;if(h(i),y(o.defaultActiveItemId),!i&&o.openOnFocus===!1){var v,p=s.getState().collections.map(function(_){return Re(Re({},_),{},{items:[]})});d("idle"),f(p),a((v=r.isOpen)!==null&&v!==void 0?v:o.shouldPanelOpen({state:s.getState()}));var m=Nn(Kn(p).then(function(){return Promise.resolve()}));return s.pendingRequests.add(m)}d("loading"),qe=o.environment.setTimeout(function(){d("stalled")},o.stallThreshold);var g=Nn(Kn(o.getSources(Re({query:i,refresh:u,state:s.getState()},l)).then(function(_){return Promise.all(_.map(function(b){return Promise.resolve(b.getItems(Re({query:i,refresh:u,state:s.getState()},l))).then(function(S){return function(O,E,k){if(I=O,!!(I!=null&&I.execute)){var P=O.requesterId==="algolia"?Object.assign.apply(Object,[{}].concat(Tr(Object.keys(k.context).map(function(w){var T;return(T=k.context[w])===null||T===void 0?void 0:T.__algoliaSearchParameters})))):{};return Ee(Ee({},O),{},{requests:O.queries.map(function(w){return{query:O.requesterId==="algolia"?Ee(Ee({},w),{},{params:Ee(Ee({},P),w.params)}):w,sourceId:E,transformResponse:O.transformResponse}})})}var I;return{items:O,sourceId:E}}(S,b.sourceId,s.getState())})})).then(Ro).then(function(b){return function(S,O,E){return O.map(function(k){var P,I=S.filter(function(C){return C.sourceId===k.sourceId}),w=I.map(function(C){return C.items}),T=I[0].transformResponse,M=T?T({results:P=w,hits:P.map(function(C){return C.hits}).filter(Boolean),facetHits:P.map(function(C){var z;return(z=C.facetHits)===null||z===void 0?void 0:z.map(function(ae){return{label:ae.value,count:ae.count,_highlightResult:{label:{value:ae.highlighted}}}})}).filter(Boolean)}):w;return k.onResolve({source:k,results:w,items:M,state:E.getState()}),M.every(Boolean),'The `getItems` function from source "'.concat(k.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),`. + +Did you forget to return items? + +See: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`),{source:k,items:M}})}(b,_,s)}).then(function(b){return function(S){var O=S.props,E=S.state,k=S.collections.reduce(function(I,w){return vt(vt({},I),{},Nr({},w.source.sourceId,vt(vt({},w.source),{},{getItems:function(){return ot(w.items)}})))},{}),P=O.plugins.reduce(function(I,w){return w.reshape?w.reshape(I):I},{sourcesBySourceId:k,state:E}).sourcesBySourceId;return ot(O.reshape({sourcesBySourceId:P,sources:Object.values(P),state:E})).filter(Boolean).map(function(I){return{source:I,items:I.getItems()}})}({collections:b,props:o,state:s.getState()})})}))).then(function(_){var b;d("idle"),f(_);var S=o.shouldPanelOpen({state:s.getState()});a((b=r.isOpen)!==null&&b!==void 0?b:o.openOnFocus&&!i&&S||S);var O=De(s.getState());if(s.getState().activeItemId!==null&&O){var E=O.item,k=O.itemInputValue,P=O.itemUrl,I=O.source;I.onActive(Re({event:e,item:E,itemInputValue:k,itemUrl:P,refresh:u,source:I,state:s.getState()},l))}}).finally(function(){d("idle"),qe&&o.environment.clearTimeout(qe)});return s.pendingRequests.add(g)}function Ge(t){return Ge=typeof Symbol=="function"&&D(Symbol.iterator)=="symbol"?function(e){return D(e)}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":D(e)},Ge(t)}var Mo=["event","props","refresh","store"];function Wn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function ye(t){for(var e=1;e=0||(a[l]=u[l]);return a}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}function Xe(t){return Xe=typeof Symbol=="function"&&D(Symbol.iterator)=="symbol"?function(e){return D(e)}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":D(e)},Xe(t)}function Jn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function $o(t){for(var e=1;e0},reshape:function(d){return d.sources}},l),{},{id:(a=l.id)!==null&&a!==void 0?a:"autocomplete-".concat(go++),plugins:y,initialState:we({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},l.initialState),onStateChange:function(d){var v;(v=l.onStateChange)===null||v===void 0||v.call(l,d),y.forEach(function(p){var m;return(m=p.onStateChange)===null||m===void 0?void 0:m.call(p,d)})},onSubmit:function(d){var v;(v=l.onSubmit)===null||v===void 0||v.call(l,d),y.forEach(function(p){var m;return(m=p.onSubmit)===null||m===void 0?void 0:m.call(p,d)})},onReset:function(d){var v;(v=l.onReset)===null||v===void 0||v.call(l,d),y.forEach(function(p){var m;return(m=p.onReset)===null||m===void 0?void 0:m.call(p,d)})},getSources:function(d){return Promise.all([].concat(function(v){return function(p){if(Array.isArray(p))return Tt(p)}(v)||function(p){if(typeof Symbol<"u"&&p[Symbol.iterator]!=null||p["@@iterator"]!=null)return Array.from(p)}(v)||function(p,m){if(p){if(typeof p=="string")return Tt(p,m);var g=Object.prototype.toString.call(p).slice(8,-1);return g==="Object"&&p.constructor&&(g=p.constructor.name),g==="Map"||g==="Set"?Array.from(p):g==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(g)?Tt(p,m):void 0}}(v)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}(y.map(function(v){return v.getSources})),[l.getSources]).filter(Boolean).map(function(v){return function(p,m){var g=[];return Promise.resolve(p(m)).then(function(_){return Promise.all(_.filter(function(b){return!!b}).map(function(b){if(b.sourceId,g.includes(b.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(b.sourceId)," is not unique."));g.push(b.sourceId);var S={getItemInputValue:function(E){return E.state.query},getItemUrl:function(){},onSelect:function(E){(0,E.setIsOpen)(!1)},onActive:Ot,onResolve:Ot};Object.keys(S).forEach(function(E){S[E].__default=!0});var O=qn(qn({},S),b);return Promise.resolve(O)}))})}(v,d)})).then(function(v){return ot(v)}).then(function(v){return v.map(function(p){return we(we({},p),{},{onSelect:function(m){p.onSelect(m),f.forEach(function(g){var _;return(_=g.onSelect)===null||_===void 0?void 0:_.call(g,m)})},onActive:function(m){p.onActive(m),f.forEach(function(g){var _;return(_=g.onActive)===null||_===void 0?void 0:_.call(g,m)})},onResolve:function(m){p.onResolve(m),f.forEach(function(g){var _;return(_=g.onResolve)===null||_===void 0?void 0:_.call(g,m)})}})})})},navigator:we({navigate:function(d){var v=d.itemUrl;h.location.assign(v)},navigateNewTab:function(d){var v=d.itemUrl,p=h.open(v,"_blank","noopener");p==null||p.focus()},navigateNewWindow:function(d){var v=d.itemUrl;h.open(v,"_blank","noopener")}},l.navigator)})}(t,e),r=function(l,f,a){var h,y=f.initialState;return{getState:function(){return y},dispatch:function(d,v){var p=function(m){for(var g=1;g=0||(ct[G]=Se[G]);return ct}(L,ne);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(L);for(V=0;V=0||Object.prototype.propertyIsEnumerable.call(L,$)&&(ce[$]=L[$])}return ce}(I,Mo);if(w.key==="ArrowUp"||w.key==="ArrowDown"){var ae=function(){var L=T.environment.document.getElementById("".concat(T.id,"-item-").concat(C.getState().activeItemId));L&&(L.scrollIntoViewIfNeeded?L.scrollIntoViewIfNeeded(!1):L.scrollIntoView(!1))},at=function(){var L=De(C.getState());if(C.getState().activeItemId!==null&&L){var ne=L.item,$=L.itemInputValue,V=L.itemUrl,ce=L.source;ce.onActive(ye({event:w,item:ne,itemInputValue:$,itemUrl:V,refresh:M,source:ce,state:C.getState()},z))}};w.preventDefault(),C.getState().isOpen===!1&&(T.openOnFocus||C.getState().query)?je(ye({event:w,props:T,query:C.getState().query,refresh:M,store:C},z)).then(function(){C.dispatch(w.key,{nextActiveItemId:T.defaultActiveItemId}),at(),setTimeout(ae,0)}):(C.dispatch(w.key,{}),at(),ae())}else if(w.key==="Escape")w.preventDefault(),C.dispatch(w.key,null),C.pendingRequests.cancelAll();else if(w.key==="Tab")C.dispatch("blur",null),C.pendingRequests.cancelAll();else if(w.key==="Enter"){if(C.getState().activeItemId===null||C.getState().collections.every(function(L){return L.items.length===0}))return void(T.debug||C.pendingRequests.cancelAll());w.preventDefault();var de=De(C.getState()),H=de.item,he=de.itemInputValue,J=de.itemUrl,Z=de.source;if(w.metaKey||w.ctrlKey)J!==void 0&&(Z.onSelect(ye({event:w,item:H,itemInputValue:he,itemUrl:J,refresh:M,source:Z,state:C.getState()},z)),T.navigator.navigateNewTab({itemUrl:J,item:H,state:C.getState()}));else if(w.shiftKey)J!==void 0&&(Z.onSelect(ye({event:w,item:H,itemInputValue:he,itemUrl:J,refresh:M,source:Z,state:C.getState()},z)),T.navigator.navigateNewWindow({itemUrl:J,item:H,state:C.getState()}));else if(!w.altKey){if(J!==void 0)return Z.onSelect(ye({event:w,item:H,itemInputValue:he,itemUrl:J,refresh:M,source:Z,state:C.getState()},z)),void T.navigator.navigate({itemUrl:J,item:H,state:C.getState()});je(ye({event:w,nextState:{isOpen:!1},props:T,query:he,refresh:M,store:C},z)).then(function(){Z.onSelect(ye({event:w,item:H,itemInputValue:he,itemUrl:J,refresh:M,source:Z,state:C.getState()},z))})}}})(F({event:P,props:f,refresh:a,store:h},y))},onFocus:m,onBlur:Ot,onClick:function(P){v.inputElement!==f.environment.document.activeElement||h.getState().isOpen||m(P)}},S)},getPanelProps:function(v){return F({onMouseDown:function(p){p.preventDefault()},onMouseLeave:function(){h.dispatch("mouseleave",null)}},v)},getListProps:function(v){var p=v||{},m=p.sourceIndex,g=ge(p,Wo);return F({role:"listbox","aria-labelledby":"".concat(d(f.id,m),"-label"),id:"".concat(d(f.id,m),"-list")},g)},getItemProps:function(v){var p=v.item,m=v.source,g=v.sourceIndex,_=ge(v,zo);return F({id:"".concat(d(f.id,g),"-item-").concat(p.__autocomplete_id),role:"option","aria-selected":h.getState().activeItemId===p.__autocomplete_id,onMouseMove:function(b){if(p.__autocomplete_id!==h.getState().activeItemId){h.dispatch("mousemove",p.__autocomplete_id);var S=De(h.getState());if(h.getState().activeItemId!==null&&S){var O=S.item,E=S.itemInputValue,k=S.itemUrl,P=S.source;P.onActive(F({event:b,item:O,itemInputValue:E,itemUrl:k,refresh:a,source:P,state:h.getState()},y))}}},onMouseDown:function(b){b.preventDefault()},onClick:function(b){var S=m.getItemInputValue({item:p,state:h.getState()}),O=m.getItemUrl({item:p,state:h.getState()});(O?Promise.resolve():je(F({event:b,nextState:{isOpen:!1},props:f,query:S,refresh:a,store:h},y))).then(function(){m.onSelect(F({event:b,item:p,itemInputValue:S,itemUrl:O,refresh:a,source:m,state:h.getState()},y))})}},_)}}}(_e({props:n,refresh:u,store:r,navigator:n.navigator},o));function u(){return je(_e({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,navigator:n.navigator,query:r.getState().query,refresh:u,store:r},o))}if(t.insights&&!n.plugins.some(function(l){return l.name==="aa.algoliaInsightsPlugin"})){var s=typeof t.insights=="boolean"?{}:t.insights;n.plugins.push(Do(s))}return n.plugins.forEach(function(l){var f;return(f=l.subscribe)===null||f===void 0?void 0:f.call(l,_e(_e({},o),{},{navigator:n.navigator,refresh:u,onSelect:function(a){e.push({onSelect:a})},onActive:function(a){e.push({onActive:a})},onResolve:function(a){e.push({onResolve:a})}}))}),function(l){var f,a,h=l.metadata,y=l.environment;if(!((f=y.navigator)===null||f===void 0||(a=f.userAgent)===null||a===void 0)&&a.includes("Algolia Crawler")){var d=y.document.createElement("meta"),v=y.document.querySelector("head");d.name="algolia:metadata",setTimeout(function(){d.content=JSON.stringify(h),v.appendChild(d)},0)}}({metadata:Zo({plugins:n.plugins,options:t}),environment:n.environment}),_e(_e({refresh:u,navigator:n.navigator},i),o)}function ei(t){var e=t.translations,n=(e===void 0?{}:e).searchByText,r=n===void 0?"Search by":n;return c.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},c.createElement("span",{className:"DocSearch-Label"},r),c.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2196.2 500"},c.createElement("defs",null,c.createElement("style",null,".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")),c.createElement("path",{className:"cls-2",d:"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),c.createElement("rect",{className:"cls-1",x:"1845.88",y:"104.73",width:"62.58",height:"277.9",rx:"5.9",ry:"5.9"}),c.createElement("path",{className:"cls-2",d:"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z"}),c.createElement("path",{className:"cls-2",d:"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z"}),c.createElement("path",{className:"cls-2",d:"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z"}),c.createElement("path",{className:"cls-2",d:"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),c.createElement("path",{className:"cls-2",d:"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z"}),c.createElement("path",{className:"cls-2",d:"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z"}),c.createElement("path",{className:"cls-1",d:"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z"})))}function yt(t){return c.createElement("svg",{width:"15",height:"15","aria-label":t.ariaLabel,role:"img"},c.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},t.children))}function ti(t){var e=t.translations,n=e===void 0?{}:e,r=n.selectText,o=r===void 0?"to select":r,i=n.selectKeyAriaLabel,u=i===void 0?"Enter key":i,s=n.navigateText,l=s===void 0?"to navigate":s,f=n.navigateUpKeyAriaLabel,a=f===void 0?"Arrow up":f,h=n.navigateDownKeyAriaLabel,y=h===void 0?"Arrow down":h,d=n.closeText,v=d===void 0?"to close":d,p=n.closeKeyAriaLabel,m=p===void 0?"Escape key":p,g=n.searchByText,_=g===void 0?"Search by":g;return c.createElement(c.Fragment,null,c.createElement("div",{className:"DocSearch-Logo"},c.createElement(ei,{translations:{searchByText:_}})),c.createElement("ul",{className:"DocSearch-Commands"},c.createElement("li",null,c.createElement("kbd",{className:"DocSearch-Commands-Key"},c.createElement(yt,{ariaLabel:u},c.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),c.createElement("span",{className:"DocSearch-Label"},o)),c.createElement("li",null,c.createElement("kbd",{className:"DocSearch-Commands-Key"},c.createElement(yt,{ariaLabel:y},c.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),c.createElement("kbd",{className:"DocSearch-Commands-Key"},c.createElement(yt,{ariaLabel:a},c.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),c.createElement("span",{className:"DocSearch-Label"},l)),c.createElement("li",null,c.createElement("kbd",{className:"DocSearch-Commands-Key"},c.createElement(yt,{ariaLabel:m},c.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),c.createElement("span",{className:"DocSearch-Label"},v))))}function ni(t){var e=t.hit,n=t.children;return c.createElement("a",{href:e.url},n)}function ri(){return c.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},c.createElement("g",{fill:"none",fillRule:"evenodd"},c.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},c.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),c.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},c.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}function oi(){return c.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},c.createElement("path",{d:"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0"}),c.createElement("path",{d:"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13"})))}function Jt(){return c.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("path",{d:"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function ii(){return c.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},c.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),c.createElement("path",{d:"M8 17l-6-6 6-6"})))}var ai=function(){return c.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function ci(t){switch(t.type){case"lvl1":return c.createElement(ai,null);case"content":return c.createElement(li,null);default:return c.createElement(ui,null)}}function ui(){return c.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function li(){return c.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Gn(){return c.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},c.createElement("path",{d:"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function si(){return c.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},c.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function fi(){return c.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},c.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}function mi(t){var e=t.translations,n=e===void 0?{}:e,r=n.titleText,o=r===void 0?"Unable to fetch results":r,i=n.helpText,u=i===void 0?"You might want to check your network connection.":i;return c.createElement("div",{className:"DocSearch-ErrorScreen"},c.createElement("div",{className:"DocSearch-Screen-Icon"},c.createElement(si,null)),c.createElement("p",{className:"DocSearch-Title"},o),c.createElement("p",{className:"DocSearch-Help"},u))}var pi=["translations"];function vi(t){var e=t.translations,n=e===void 0?{}:e,r=ve(t,pi),o=n.noResultsText,i=o===void 0?"No results for":o,u=n.suggestedQueryText,s=u===void 0?"Try searching for":u,l=n.reportMissingResultsText,f=l===void 0?"Believe this query should return results?":l,a=n.reportMissingResultsLinkText,h=a===void 0?"Let us know.":a,y=r.state.context.searchSuggestions;return c.createElement("div",{className:"DocSearch-NoResults"},c.createElement("div",{className:"DocSearch-Screen-Icon"},c.createElement(fi,null)),c.createElement("p",{className:"DocSearch-Title"},i,' "',c.createElement("strong",null,r.state.query),'"'),y&&y.length>0&&c.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},c.createElement("p",{className:"DocSearch-Help"},s,":"),c.createElement("ul",null,y.slice(0,3).reduce(function(d,v){return[].concat(function(p){return function(m){if(Array.isArray(m))return Wt(m)}(p)||function(m){if(typeof Symbol<"u"&&m[Symbol.iterator]!=null||m["@@iterator"]!=null)return Array.from(m)}(p)||Dr(p)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}(d),[c.createElement("li",{key:v},c.createElement("button",{className:"DocSearch-Prefill",key:v,type:"button",onClick:function(){r.setQuery(v.toLowerCase()+" "),r.refresh(),r.inputRef.current.focus()}},v))])},[]))),r.getMissingResultsUrl&&c.createElement("p",{className:"DocSearch-Help"},"".concat(f," "),c.createElement("a",{href:r.getMissingResultsUrl({query:r.state.query}),target:"_blank",rel:"noopener noreferrer"},h)))}var di=["hit","attribute","tagName"];function Yn(t,e){return e.split(".").reduce(function(n,r){return n!=null&&n[r]?n[r]:null},t)}function Pe(t){var e=t.hit,n=t.attribute,r=t.tagName;return ee(r===void 0?"span":r,Fe(Fe({},ve(t,di)),{},{dangerouslySetInnerHTML:{__html:Yn(e,"_snippetResult.".concat(n,".value"))||Yn(e,n)}}))}function $t(t){return t.collection&&t.collection.items.length!==0?c.createElement("section",{className:"DocSearch-Hits"},c.createElement("div",{className:"DocSearch-Hit-source"},t.title),c.createElement("ul",t.getListProps(),t.collection.items.map(function(e,n){return c.createElement(hi,B({key:[t.title,e.objectID].join(":"),item:e,index:n},t))}))):null}function hi(t){var e=t.item,n=t.index,r=t.renderIcon,o=t.renderAction,i=t.getItemProps,u=t.onItemClick,s=t.collection,l=t.hitComponent,f=be(c.useState(!1),2),a=f[0],h=f[1],y=be(c.useState(!1),2),d=y[0],v=y[1],p=c.useRef(null),m=l;return c.createElement("li",B({className:["DocSearch-Hit",e.__docsearch_parent&&"DocSearch-Hit--Child",a&&"DocSearch-Hit--deleting",d&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){p.current&&p.current()}},i({item:e,source:s.source,onClick:function(g){u(e,g)}})),c.createElement(m,{hit:e},c.createElement("div",{className:"DocSearch-Hit-Container"},r({item:e,index:n}),e.hierarchy[e.type]&&e.type==="lvl1"&&c.createElement("div",{className:"DocSearch-Hit-content-wrapper"},c.createElement(Pe,{className:"DocSearch-Hit-title",hit:e,attribute:"hierarchy.lvl1"}),e.content&&c.createElement(Pe,{className:"DocSearch-Hit-path",hit:e,attribute:"content"})),e.hierarchy[e.type]&&(e.type==="lvl2"||e.type==="lvl3"||e.type==="lvl4"||e.type==="lvl5"||e.type==="lvl6")&&c.createElement("div",{className:"DocSearch-Hit-content-wrapper"},c.createElement(Pe,{className:"DocSearch-Hit-title",hit:e,attribute:"hierarchy.".concat(e.type)}),c.createElement(Pe,{className:"DocSearch-Hit-path",hit:e,attribute:"hierarchy.lvl1"})),e.type==="content"&&c.createElement("div",{className:"DocSearch-Hit-content-wrapper"},c.createElement(Pe,{className:"DocSearch-Hit-title",hit:e,attribute:"content"}),c.createElement(Pe,{className:"DocSearch-Hit-path",hit:e,attribute:"hierarchy.lvl1"})),o({item:e,runDeleteTransition:function(g){h(!0),p.current=g},runFavoriteTransition:function(g){v(!0),p.current=g}}))))}function Xn(t,e,n){return t.reduce(function(r,o){var i=e(o);return r.hasOwnProperty(i)||(r[i]=[]),r[i].length<(n||5)&&r[i].push(o),r},{})}function er(t){return t}function gt(t){return t.button===1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}function yi(){}var qr=/(|<\/mark>)/g,gi=RegExp(qr.source);function Lr(t){var e,n,r=t;if(!r.__docsearch_parent&&!t._highlightResult)return t.hierarchy.lvl0;var o=((r.__docsearch_parent?(e=r.__docsearch_parent)===null||e===void 0||(e=e._highlightResult)===null||e===void 0||(e=e.hierarchy)===null||e===void 0?void 0:e.lvl0:(n=t._highlightResult)===null||n===void 0||(n=n.hierarchy)===null||n===void 0?void 0:n.lvl0)||{}).value;return o&&gi.test(o)?o.replace(qr,""):o}function _i(t){return c.createElement("div",{className:"DocSearch-Dropdown-Container"},t.state.collections.map(function(e){if(e.items.length===0)return null;var n=Lr(e.items[0]);return c.createElement($t,B({},t,{key:e.source.sourceId,title:n,collection:e,renderIcon:function(r){var o,i=r.item,u=r.index;return c.createElement(c.Fragment,null,i.__docsearch_parent&&c.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},c.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},i.__docsearch_parent!==((o=e.items[u+1])===null||o===void 0?void 0:o.__docsearch_parent)?c.createElement("path",{d:"M8 6v21M20 27H8.3"}):c.createElement("path",{d:"M8 6v42M20 27H8.3"}))),c.createElement("div",{className:"DocSearch-Hit-icon"},c.createElement(ci,{type:i.type})))},renderAction:function(){return c.createElement("div",{className:"DocSearch-Hit-action"},c.createElement(ii,null))}}))}),t.resultsFooterComponent&&c.createElement("section",{className:"DocSearch-HitsFooter"},c.createElement(t.resultsFooterComponent,{state:t.state})))}var bi=["translations"];function Si(t){var e=t.translations,n=e===void 0?{}:e,r=ve(t,bi),o=n.recentSearchesTitle,i=o===void 0?"Recent":o,u=n.noRecentSearchesText,s=u===void 0?"No recent searches":u,l=n.saveRecentSearchButtonTitle,f=l===void 0?"Save this search":l,a=n.removeRecentSearchButtonTitle,h=a===void 0?"Remove this search from history":a,y=n.favoriteSearchesTitle,d=y===void 0?"Favorite":y,v=n.removeFavoriteSearchButtonTitle,p=v===void 0?"Remove this search from favorites":v;return r.state.status==="idle"&&r.hasCollections===!1?r.disableUserPersonalization?null:c.createElement("div",{className:"DocSearch-StartScreen"},c.createElement("p",{className:"DocSearch-Help"},s)):r.hasCollections===!1?null:c.createElement("div",{className:"DocSearch-Dropdown-Container"},c.createElement($t,B({},r,{title:i,collection:r.state.collections[0],renderIcon:function(){return c.createElement("div",{className:"DocSearch-Hit-icon"},c.createElement(oi,null))},renderAction:function(m){var g=m.item,_=m.runFavoriteTransition,b=m.runDeleteTransition;return c.createElement(c.Fragment,null,c.createElement("div",{className:"DocSearch-Hit-action"},c.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(S){S.preventDefault(),S.stopPropagation(),_(function(){r.favoriteSearches.add(g),r.recentSearches.remove(g),r.refresh()})}},c.createElement(Gn,null))),c.createElement("div",{className:"DocSearch-Hit-action"},c.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(S){S.preventDefault(),S.stopPropagation(),b(function(){r.recentSearches.remove(g),r.refresh()})}},c.createElement(Jt,null))))}})),c.createElement($t,B({},r,{title:d,collection:r.state.collections[1],renderIcon:function(){return c.createElement("div",{className:"DocSearch-Hit-icon"},c.createElement(Gn,null))},renderAction:function(m){var g=m.item,_=m.runDeleteTransition;return c.createElement("div",{className:"DocSearch-Hit-action"},c.createElement("button",{className:"DocSearch-Hit-action-button",title:p,type:"submit",onClick:function(b){b.preventDefault(),b.stopPropagation(),_(function(){r.favoriteSearches.remove(g),r.refresh()})}},c.createElement(Jt,null)))}})))}var Oi=["translations"],wi=c.memo(function(t){var e=t.translations,n=e===void 0?{}:e,r=ve(t,Oi);if(r.state.status==="error")return c.createElement(mi,{translations:n==null?void 0:n.errorScreen});var o=r.state.collections.some(function(i){return i.items.length>0});return r.state.query?o===!1?c.createElement(vi,B({},r,{translations:n==null?void 0:n.noResultsScreen})):c.createElement(_i,r):c.createElement(Si,B({},r,{hasCollections:o,translations:n==null?void 0:n.startScreen}))},function(t,e){return e.state.status==="loading"||e.state.status==="stalled"}),Ei=["translations"];function ji(t){var e=t.translations,n=e===void 0?{}:e,r=ve(t,Ei),o=n.resetButtonTitle,i=o===void 0?"Clear the query":o,u=n.resetButtonAriaLabel,s=u===void 0?"Clear the query":u,l=n.cancelButtonText,f=l===void 0?"Cancel":l,a=n.cancelButtonAriaLabel,h=a===void 0?"Cancel":a,y=n.searchInputLabel,d=y===void 0?"Search":y,v=r.getFormProps({inputElement:r.inputRef.current}).onReset;return c.useEffect(function(){r.autoFocus&&r.inputRef.current&&r.inputRef.current.focus()},[r.autoFocus,r.inputRef]),c.useEffect(function(){r.isFromSelection&&r.inputRef.current&&r.inputRef.current.select()},[r.isFromSelection,r.inputRef]),c.createElement(c.Fragment,null,c.createElement("form",{className:"DocSearch-Form",onSubmit:function(p){p.preventDefault()},onReset:v},c.createElement("label",B({className:"DocSearch-MagnifierLabel"},r.getLabelProps()),c.createElement(kr,null),c.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},d)),c.createElement("div",{className:"DocSearch-LoadingIndicator"},c.createElement(ri,null)),c.createElement("input",B({className:"DocSearch-Input",ref:r.inputRef},r.getInputProps({inputElement:r.inputRef.current,autoFocus:r.autoFocus,maxLength:64}))),c.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":s,hidden:!r.state.query},c.createElement(Jt,null))),c.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":h,onClick:r.onClose},f))}var Pi=["_highlightResult","_snippetResult"];function tr(t){var e=t.key,n=t.limit,r=n===void 0?5:n,o=function(u){return function(){var s="__TEST_KEY__";try{return localStorage.setItem(s,""),localStorage.removeItem(s),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(s){return window.localStorage.setItem(u,JSON.stringify(s))},getItem:function(){var s=window.localStorage.getItem(u);return s?JSON.parse(s):[]}}}(e),i=o.getItem().slice(0,r);return{add:function(u){var s=u,l=(s._highlightResult,s._snippetResult,ve(s,Pi)),f=i.findIndex(function(a){return a.objectID===l.objectID});f>-1&&i.splice(f,1),i.unshift(l),i=i.slice(0,r),o.setItem(i)},remove:function(u){i=i.filter(function(s){return s.objectID!==u.objectID}),o.setItem(i)},getAll:function(){return i}}}function Ii(t){var e,n="algoliasearch-client-js-".concat(t.key),r=function(){return e===void 0&&(e=t.localStorage||window.localStorage),e},o=function(){return JSON.parse(r().getItem(n)||"{}")},i=function(u){r().setItem(n,JSON.stringify(u))};return{get:function(u,s){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){(function(){var a=t.timeToLive?1e3*t.timeToLive:null,h=o(),y=Object.fromEntries(Object.entries(h).filter(function(v){return Ie(v,2)[1].timestamp!==void 0}));if(i(y),a){var d=Object.fromEntries(Object.entries(y).filter(function(v){var p=Ie(v,2)[1],m=new Date().getTime();return!(p.timestamp+a2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return o().then(function(u){return Promise.all([u,i.miss(u)])}).then(function(u){return Ie(u,1)[0]})},set:function(r,o){return Promise.resolve(o)},delete:function(r){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(r,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(r,o,i).catch(function(){return Me({caches:e}).get(r,o,i)})},set:function(r,o){return n.set(r,o).catch(function(){return Me({caches:e}).set(r,o)})},delete:function(r){return n.delete(r).catch(function(){return Me({caches:e}).delete(r)})},clear:function(){return n.clear().catch(function(){return Me({caches:e}).clear()})}}}function Lt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},e={};return{get:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(n);if(i in e)return Promise.resolve(t.serializable?JSON.parse(e[i]):e[i]);var u=r(),s=o&&o.miss||function(){return Promise.resolve()};return u.then(function(l){return s(l)}).then(function(){return u})},set:function(n,r){return e[JSON.stringify(n)]=t.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(n){return delete e[JSON.stringify(n)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function Di(t){for(var e=t.length-1;e>0;e--){var n=Math.floor(Math.random()*(e+1)),r=t[e];t[e]=t[n],t[n]=r}return t}function Mr(t,e){return e&&Object.keys(e).forEach(function(n){t[n]=e[n](t)}),t}function Pt(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0?r:void 0,timeout:n.timeout||e,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}var ke={Read:1,Write:2,Any:3};function rr(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return N(N({},t),{},{status:e,lastUpdate:Date.now()})}function Hr(t){return typeof t=="string"?{protocol:"https",url:t,accept:ke.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||ke.Any}}var It="POST";function or(t,e,n,r){var o=[],i=function(y,d){if(y.method!=="GET"&&(y.data!==void 0||d.data!==void 0)){var v=Array.isArray(y.data)?y.data:N(N({},y.data),d.data);return JSON.stringify(v)}}(n,r),u=function(y,d){var v=N(N({},y.headers),d.headers),p={};return Object.keys(v).forEach(function(m){var g=v[m];p[m.toLowerCase()]=g}),p}(t,r),s=n.method,l=n.method!=="GET"?{}:N(N({},n.data),r.data),f=N(N(N({"x-algolia-agent":t.userAgent.value},t.queryParameters),l),r.queryParameters),a=0,h=function y(d,v){var p=d.pop();if(p===void 0)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:ir(o)};var m={data:i,headers:u,method:s,url:Ci(p,n.path,f),connectTimeout:v(a,t.timeouts.connect),responseTimeout:v(a,r.timeout)},g=function(b){var S={request:m,response:b,host:p,triesLeft:d.length};return o.push(S),S},_={onSuccess:function(b){return function(S){try{return JSON.parse(S.content)}catch(O){throw function(E,k){return{name:"DeserializationError",message:E,response:k}}(O.message,S)}}(b)},onRetry:function(b){var S=g(b);return b.isTimedOut&&a++,Promise.all([t.logger.info("Retryable failure",Fr(S)),t.hostsCache.set(p,rr(p,b.isTimedOut?3:2))]).then(function(){return y(d,v)})},onFail:function(b){throw g(b),function(S,O){var E=S.content,k=S.status,P=E;try{P=JSON.parse(E).message}catch{}return function(I,w,T){return{name:"ApiError",message:I,status:w,transporterStackTrace:T}}(P,k,O)}(b,ir(o))}};return t.requester.send(m).then(function(b){return function(S,O){return function(E){var k=E.status;return E.isTimedOut||function(P){var I=P.isTimedOut,w=P.status;return!I&&~~w==0}(E)||~~(k/100)!=2&&~~(k/100)!=4}(S)?O.onRetry(S):~~(S.status/100)==2?O.onSuccess(S):O.onFail(S)}(b,_)})};return function(y,d){return Promise.all(d.map(function(v){return y.get(v,function(){return Promise.resolve(rr(v))})})).then(function(v){var p=v.filter(function(_){return function(b){return b.status===1||Date.now()-b.lastUpdate>12e4}(_)}),m=v.filter(function(_){return function(b){return b.status===3&&Date.now()-b.lastUpdate<=12e4}(_)}),g=[].concat(_t(p),_t(m));return{getTimeout:function(_,b){return(m.length===0&&_===0?1:m.length+3+_)*b},statelessHosts:g.length>0?g.map(function(_){return Hr(_)}):d}})}(t.hostsCache,e).then(function(y){return h(_t(y.statelessHosts).reverse(),y.getTimeout)})}function ki(t){var e={value:"Algolia for JavaScript (".concat(t,")"),add:function(n){var r="; ".concat(n.segment).concat(n.version!==void 0?" (".concat(n.version,")"):"");return e.value.indexOf(r)===-1&&(e.value="".concat(e.value).concat(r)),e}};return e}function Ci(t,e,n){var r=Ur(n),o="".concat(t.protocol,"://").concat(t.url,"/").concat(e.charAt(0)==="/"?e.substr(1):e);return r.length&&(o+="?".concat(r)),o}function Ur(t){return Object.keys(t).map(function(e){return Pt("%s=%s",e,(n=t[e],Object.prototype.toString.call(n)==="[object Object]"||Object.prototype.toString.call(n)==="[object Array]"?JSON.stringify(t[e]):t[e]));var n}).join("&")}function ir(t){return t.map(function(e){return Fr(e)})}function Fr(t){var e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return N(N({},t),{},{request:N(N({},t.request),{},{headers:N(N({},t.request.headers),e)})})}var Ai=function(t){return function(e,n){return e.method==="GET"?t.transporter.read(e,n):t.transporter.write(e,n)}},Br=function(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Mr({transporter:t.transporter,appId:t.appId,indexName:e},n.methods)}},ar=function(t){return function(e,n){var r=e.map(function(o){return N(N({},o),{},{params:Ur(o.params||{})})});return t.transporter.read({method:It,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)}},cr=function(t){return function(e,n){return Promise.all(e.map(function(r){var o=r.params,i=o.facetName,u=o.facetQuery,s=function(l,f){if(l==null)return{};var a,h,y=function(v,p){if(v==null)return{};var m,g,_={},b=Object.keys(v);for(g=0;g=0||(_[m]=v[m]);return _}(l,f);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(l);for(h=0;h=0||Object.prototype.propertyIsEnumerable.call(l,a)&&(y[a]=l[a])}return y}(o,mo);return Br(t)(r.indexName,{methods:{searchForFacetValues:Vr}}).searchForFacetValues(i,u,N(N({},n),s))}))}},xi=function(t){return function(e,n,r){return t.transporter.read({method:It,path:Pt("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:n},cacheable:!0},r)}},Ni=function(t){return function(e,n){return t.transporter.read({method:It,path:Pt("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},n)}},Vr=function(t){return function(e,n,r){return t.transporter.read({method:It,path:Pt("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:n},cacheable:!0},r)}};function Kr(t,e,n){var r={appId:t,apiKey:e,timeouts:{connect:1,read:2,write:30},requester:{send:function(o){return new Promise(function(i){var u=new XMLHttpRequest;u.open(o.method,o.url,!0),Object.keys(o.headers).forEach(function(a){return u.setRequestHeader(a,o.headers[a])});var s,l=function(a,h){return setTimeout(function(){u.abort(),i({status:0,content:h,isTimedOut:!0})},1e3*a)},f=l(o.connectTimeout,"Connection timeout");u.onreadystatechange=function(){u.readyState>u.OPENED&&s===void 0&&(clearTimeout(f),s=l(o.responseTimeout,"Socket timeout"))},u.onerror=function(){u.status===0&&(clearTimeout(f),clearTimeout(s),i({content:u.responseText||"Network request failed",status:u.status,isTimedOut:!1}))},u.onload=function(){clearTimeout(f),clearTimeout(s),i({content:u.responseText,status:u.status,isTimedOut:!1})},u.send(o.data)})}},logger:{debug:function(o,i){return Promise.resolve()},info:function(o,i){return Promise.resolve()},error:function(o,i){return console.error(o,i),Promise.resolve()}},responsesCache:Lt(),requestsCache:Lt({serializable:!1}),hostsCache:Me({caches:[Ii({key:"4.19.1-".concat(t)}),Lt()]}),userAgent:ki("4.19.1").add({segment:"Browser",version:"lite"}),authMode:0};return function(o){var i=o.appId,u=function(f,a,h){var y={"x-algolia-api-key":h,"x-algolia-application-id":a};return{headers:function(){return f===1?y:{}},queryParameters:function(){return f===0?y:{}}}}(o.authMode!==void 0?o.authMode:1,i,o.apiKey),s=function(f){var a=f.hostsCache,h=f.logger,y=f.requester,d=f.requestsCache,v=f.responsesCache,p=f.timeouts,m=f.userAgent,g=f.hosts,_=f.queryParameters,b={hostsCache:a,logger:h,requester:y,requestsCache:d,responsesCache:v,timeouts:p,userAgent:m,headers:f.headers,queryParameters:_,hosts:g.map(function(S){return Hr(S)}),read:function(S,O){var E=nr(O,b.timeouts.read),k=function(){return or(b,b.hosts.filter(function(I){return(I.accept&ke.Read)!=0}),S,E)};if((E.cacheable!==void 0?E.cacheable:S.cacheable)!==!0)return k();var P={request:S,mappedRequestOptions:E,transporter:{queryParameters:b.queryParameters,headers:b.headers}};return b.responsesCache.get(P,function(){return b.requestsCache.get(P,function(){return b.requestsCache.set(P,k()).then(function(I){return Promise.all([b.requestsCache.delete(P),I])},function(I){return Promise.all([b.requestsCache.delete(P),Promise.reject(I)])}).then(function(I){var w=Ie(I,2);return w[0],w[1]})})},{miss:function(I){return b.responsesCache.set(P,I)}})},write:function(S,O){return or(b,b.hosts.filter(function(E){return(E.accept&ke.Write)!=0}),S,nr(O,b.timeouts.write))}};return b}(N(N({hosts:[{url:"".concat(i,"-dsn.algolia.net"),accept:ke.Read},{url:"".concat(i,".algolia.net"),accept:ke.Write}].concat(Di([{url:"".concat(i,"-1.algolianet.com")},{url:"".concat(i,"-2.algolianet.com")},{url:"".concat(i,"-3.algolianet.com")}]))},o),{},{headers:N(N({},u.headers()),{},{"content-type":"application/x-www-form-urlencoded"},o.headers),queryParameters:N(N({},u.queryParameters()),o.queryParameters)})),l={transporter:s,appId:i,addAlgoliaAgent:function(f,a){s.userAgent.add({segment:f,version:a})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then(function(){})}};return Mr(l,o.methods)}(N(N(N({},r),n),{},{methods:{search:ar,searchForFacetValues:cr,multipleQueries:ar,multipleSearchForFacetValues:cr,customRequest:Ai,initIndex:function(o){return function(i){return Br(o)(i,{methods:{search:Ni,searchForFacetValues:Vr,findAnswers:xi}})}}}}))}Kr.version="4.19.1";var Ti=["footer","searchBox"];function Ri(t){var e=t.appId,n=t.apiKey,r=t.indexName,o=t.placeholder,i=o===void 0?"Search docs":o,u=t.searchParameters,s=t.maxResultsPerGroup,l=t.onClose,f=l===void 0?yi:l,a=t.transformItems,h=a===void 0?er:a,y=t.hitComponent,d=y===void 0?ni:y,v=t.resultsFooterComponent,p=v===void 0?function(){return null}:v,m=t.navigator,g=t.initialScrollY,_=g===void 0?0:g,b=t.transformSearchClient,S=b===void 0?er:b,O=t.disableUserPersonalization,E=O!==void 0&&O,k=t.initialQuery,P=k===void 0?"":k,I=t.translations,w=I===void 0?{}:I,T=t.getMissingResultsUrl,M=t.insights,C=M!==void 0&&M,z=w.footer,ae=w.searchBox,at=ve(w,Ti),de=be(c.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),H=de[0],he=de[1],J=c.useRef(null),Z=c.useRef(null),L=c.useRef(null),ne=c.useRef(null),$=c.useRef(null),V=c.useRef(10),ce=c.useRef(typeof window<"u"?window.getSelection().toString().slice(0,64):"").current,Q=c.useRef(P||ce).current,Se=function(A,R,U){return c.useMemo(function(){var W=Kr(A,R);return W.addAlgoliaAgent("docsearch","3.6.1"),/docsearch.js \(.*\)/.test(W.transporter.userAgent.value)===!1&&W.addAlgoliaAgent("docsearch-react","3.6.1"),U(W)},[A,R,U])}(e,n,S),ue=c.useRef(tr({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(r),limit:10})).current,G=c.useRef(tr({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(r),limit:ue.getAll().length===0?7:4})).current,Y=c.useCallback(function(A){if(!E){var R=A.type==="content"?A.__docsearch_parent:A;R&&ue.getAll().findIndex(function(U){return U.objectID===R.objectID})===-1&&G.add(R)}},[ue,G,E]),ct=c.useCallback(function(A){if(H.context.algoliaInsightsPlugin&&A.__autocomplete_id){var R=A,U={eventName:"Item Selected",index:R.__autocomplete_indexName,items:[R],positions:[A.__autocomplete_id],queryID:R.__autocomplete_queryID};H.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(U)}},[H.context.algoliaInsightsPlugin]),le=c.useMemo(function(){return Xo({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:Q,context:{searchSuggestions:[]}},insights:C,navigator:m,onStateChange:function(A){he(A.state)},getSources:function(A){var R=A.query,U=A.state,W=A.setContext,se=A.setStatus;if(!R)return E?[]:[{sourceId:"recentSearches",onSelect:function(q){var X=q.item,Ne=q.event;Y(X),gt(Ne)||f()},getItemUrl:function(q){return q.item.url},getItems:function(){return G.getAll()}},{sourceId:"favoriteSearches",onSelect:function(q){var X=q.item,Ne=q.event;Y(X),gt(Ne)||f()},getItemUrl:function(q){return q.item.url},getItems:function(){return ue.getAll()}}];var fe=!!C;return Se.search([{query:R,indexName:r,params:Fe({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(V.current),"hierarchy.lvl2:".concat(V.current),"hierarchy.lvl3:".concat(V.current),"hierarchy.lvl4:".concat(V.current),"hierarchy.lvl5:".concat(V.current),"hierarchy.lvl6:".concat(V.current),"content:".concat(V.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:fe},u)}]).catch(function(q){throw q.name==="RetryError"&&se("error"),q}).then(function(q){var X=q.results[0],Ne=X.hits,Jr=X.nbHits,Dt=Xn(Ne,function(kt){return Lr(kt)},s);U.context.searchSuggestions.length0&&(en(),$.current&&$.current.focus())},[Q,en]),c.useEffect(function(){function A(){if(Z.current){var R=.01*window.innerHeight;Z.current.style.setProperty("--docsearch-vh","".concat(R,"px"))}}return A(),window.addEventListener("resize",A),function(){window.removeEventListener("resize",A)}},[]),c.createElement("div",B({ref:J},zr({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",H.status==="stalled"&&"DocSearch-Container--Stalled",H.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(A){A.target===A.currentTarget&&f()}}),c.createElement("div",{className:"DocSearch-Modal",ref:Z},c.createElement("header",{className:"DocSearch-SearchBar",ref:L},c.createElement(ji,B({},le,{state:H,autoFocus:Q.length===0,inputRef:$,isFromSelection:!!Q&&Q===ce,translations:ae,onClose:f}))),c.createElement("div",{className:"DocSearch-Dropdown",ref:ne},c.createElement(wi,B({},le,{indexName:r,state:H,hitComponent:d,resultsFooterComponent:p,disableUserPersonalization:E,recentSearches:G,favoriteSearches:ue,inputRef:$,translations:at,getMissingResultsUrl:T,onItemClick:function(A,R){ct(A),Y(A),gt(R)||f()}}))),c.createElement("footer",{className:"DocSearch-Footer"},c.createElement(ti,{translations:z}))))}function qi(t){var e,n,r=c.useRef(null),o=be(c.useState(!1),2),i=o[0],u=o[1],s=be(c.useState((t==null?void 0:t.initialQuery)||void 0),2),l=s[0],f=s[1],a=c.useCallback(function(){u(!0)},[u]),h=c.useCallback(function(){u(!1)},[u]);return function(y){var d=y.isOpen,v=y.onOpen,p=y.onClose,m=y.onInput,g=y.searchButtonRef;c.useEffect(function(){function _(b){var S;(b.keyCode===27&&d||((S=b.key)===null||S===void 0?void 0:S.toLowerCase())==="k"&&(b.metaKey||b.ctrlKey)||!function(O){var E=O.target,k=E.tagName;return E.isContentEditable||k==="INPUT"||k==="SELECT"||k==="TEXTAREA"}(b)&&b.key==="/"&&!d)&&(b.preventDefault(),d?p():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||v()),g&&g.current===document.activeElement&&m&&/[a-zA-Z0-9]/.test(String.fromCharCode(b.keyCode))&&m(b)}return window.addEventListener("keydown",_),function(){window.removeEventListener("keydown",_)}},[d,v,p,m,g])}({isOpen:i,onOpen:a,onClose:h,onInput:c.useCallback(function(y){u(!0),f(y.key)},[u,f]),searchButtonRef:r}),c.createElement(c.Fragment,null,c.createElement(yo,{ref:r,translations:t==null||(e=t.translations)===null||e===void 0?void 0:e.button,onClick:a}),i&&Er(c.createElement(Ri,B({},t,{initialScrollY:window.scrollY,initialQuery:l,translations:t==null||(n=t.translations)===null||n===void 0?void 0:n.modal,onClose:h})),document.body))}function Li(t){Pr(c.createElement(qi,Mt({},t,{transformSearchClient:function(e){return e.addAlgoliaAgent("docsearch.js","3.6.1"),t.transformSearchClient?t.transformSearchClient(e):e}})),function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:window;return typeof e=="string"?n.document.querySelector(e):e}(t.container,t.environment))}export{Li as default}; diff --git a/assets/index.html-BKJf41aw.js b/assets/index.html-BKJf41aw.js new file mode 100644 index 000000000..16d29f55e --- /dev/null +++ b/assets/index.html-BKJf41aw.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as o}from"./app-CqHoxGIc.js";const r={};function n(a,i){return t(),o("div")}const l=e(r,[["render",n],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/","title":"Home","lang":"en-US","frontmatter":{"home":true,"title":"Home","heroImage":"/images/hero.png","actions":[{"text":"Get Started","link":"/guide/getting-started.html","type":"primary"},{"text":"Introduction","link":"/guide/introduction.html","type":"secondary"}],"features":[{"title":"Simplicity First","details":"Minimal setup with markdown-centered project structure helps you focus on writing."},{"title":"Vue-Powered","details":"Enjoy the dev experience of Vue, use Vue components in markdown, and develop custom themes with Vue."},{"title":"Performant","details":"VuePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded."},{"title":"Themes","details":"Providing a default theme out of the box. You can also choose a community theme or create your own one."},{"title":"Plugins","details":"Flexible plugin API, allowing plugins to provide lots of plug-and-play features for your site."},{"title":"Bundlers","details":"Recommended bundler is Vite, while Webpack is also supported. Choose the one you like!"}],"footer":"MIT Licensed | Copyright © 2018-present VuePress Community","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Home"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-25T05:28:18.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-25T05:28:18.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Home\\"}"]]},"headers":[],"git":{"updatedTime":1721885298000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":3},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"filePathRelative":"README.md"}');export{l as comp,m as data}; diff --git a/assets/index.html-D279rePd.js b/assets/index.html-D279rePd.js new file mode 100644 index 000000000..71c11ee11 --- /dev/null +++ b/assets/index.html-D279rePd.js @@ -0,0 +1 @@ +import{_ as e,o,c as t,e as a}from"./app-CqHoxGIc.js";const r={},n=a('

    介绍

    Cookbook 的目的是什么?

    • 我们在 指南 中介绍了基本概念,但你可能不知道怎么才能了解得更深入。
    • 我们在 参考 中列出了 API ,但你可能不知道如何充分利用它们。

    于是就有了 Cookbook 。

    每个案例都会针对某个特定的方面,通过提供更详细的示例来向你展示 VuePress 的用法和其他可能性。

    ',5),c=[n];function s(i,p){return o(),t("div",null,c)}const d=e(r,[["render",s],["__file","index.html.vue"]]),k=JSON.parse('{"path":"/zh/advanced/cookbook/","title":"介绍","lang":"zh-CN","frontmatter":{"description":"介绍 Cookbook 的目的是什么? 我们在 指南 中介绍了基本概念,但你可能不知道怎么才能了解得更深入。 我们在 参考 中列出了 API ,但你可能不知道如何充分利用它们。 于是就有了 Cookbook 。 每个案例都会针对某个特定的方面,通过提供更详细的示例来向你展示 VuePress 的用法和其他可能性。","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/advanced/cookbook/"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/advanced/cookbook/"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"介绍"}],["meta",{"property":"og:description","content":"介绍 Cookbook 的目的是什么? 我们在 指南 中介绍了基本概念,但你可能不知道怎么才能了解得更深入。 我们在 参考 中列出了 API ,但你可能不知道如何充分利用它们。 于是就有了 Cookbook 。 每个案例都会针对某个特定的方面,通过提供更详细的示例来向你展示 VuePress 的用法和其他可能性。"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-12-03T14:44:37.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-03T14:44:37.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"介绍\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-03T14:44:37.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Cookbook 的目的是什么?","slug":"cookbook-的目的是什么","link":"#cookbook-的目的是什么","children":[]}],"git":{"updatedTime":1701614677000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/advanced/cookbook/README.md"}');export{d as comp,k as data}; diff --git a/assets/index.html-DLD3LnRf.js b/assets/index.html-DLD3LnRf.js new file mode 100644 index 000000000..eac22346e --- /dev/null +++ b/assets/index.html-DLD3LnRf.js @@ -0,0 +1 @@ +import{_ as e,o,c as t,e as n}from"./app-CqHoxGIc.js";const a={},r=n('

    Introduction

    What's the Cookbook for?

    • We are introducing essential concepts in the Guide, but you may not know how to dig deeper.
    • We are listing APIs in the Reference, but you may not know how to take full advantage of them.

    So here comes the Cookbook.

    Each recipe will focus on one specific aspect, providing more detailed examples to show you the usages and possibilities of VuePress.

    ',5),i=[r];function c(s,d){return o(),t("div",null,i)}const l=e(a,[["render",c],["__file","index.html.vue"]]),p=JSON.parse(`{"path":"/advanced/cookbook/","title":"Introduction","lang":"en-US","frontmatter":{"description":"Introduction What's the Cookbook for? We are introducing essential concepts in the Guide, but you may not know how to dig deeper. We are listing APIs in the Reference, but you m...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/advanced/cookbook/"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/advanced/cookbook/"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Introduction"}],["meta",{"property":"og:description","content":"Introduction What's the Cookbook for? We are introducing essential concepts in the Guide, but you may not know how to dig deeper. We are listing APIs in the Reference, but you m..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2023-12-03T14:44:37.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-03T14:44:37.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Introduction\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-03T14:44:37.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"What's the Cookbook for?","slug":"what-s-the-cookbook-for","link":"#what-s-the-cookbook-for","children":[]}],"git":{"updatedTime":1701614677000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":1}]},"autoDesc":true,"filePathRelative":"advanced/cookbook/README.md"}`);export{l as comp,p as data}; diff --git a/assets/index.html-Ks9ZeBY5.js b/assets/index.html-Ks9ZeBY5.js new file mode 100644 index 000000000..b65757da3 --- /dev/null +++ b/assets/index.html-Ks9ZeBY5.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as o}from"./app-CqHoxGIc.js";const r={};function a(i,n){return t(),o("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/zh/","title":"首页","lang":"zh-CN","frontmatter":{"home":true,"title":"首页","heroImage":"/images/hero.png","actions":[{"text":"快速上手","link":"/zh/guide/getting-started.html","type":"primary"},{"text":"项目简介","link":"/zh/guide/introduction.html","type":"secondary"}],"features":[{"title":"简洁至上","details":"以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。"},{"title":"Vue 驱动","details":"享受 Vue 的开发体验,可以在 Markdown 中使用 Vue 组件,又可以使用 Vue 来开发自定义主题。"},{"title":"高性能","details":"VuePress 会为每个页面预渲染生成静态的 HTML,同时,每个页面被加载的时候,将作为 SPA 运行。"},{"title":"主题","details":"提供了一个开箱即用的默认主题。你也可以挑选一个社区主题,或者创建一个你自己的主题。"},{"title":"插件","details":"灵活的插件API,使得插件可以为你的站点提供许多即插即用的功能。"},{"title":"打包工具","details":"推荐的打包工具是 Vite ,但也同样支持使用 Webpack 。选一个你喜欢的来使用吧!"}],"footer":"MIT 协议 | 版权所有 © 2018-至今 VuePress 社区","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"首页"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-25T05:28:18.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-25T05:28:18.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"首页\\"}"]]},"headers":[],"git":{"updatedTime":1721885298000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":3},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":2}]},"filePathRelative":"zh/README.md"}');export{l as comp,m as data}; diff --git a/assets/introduction.html-C9CY7bZ4.js b/assets/introduction.html-C9CY7bZ4.js new file mode 100644 index 000000000..32efdce87 --- /dev/null +++ b/assets/introduction.html-C9CY7bZ4.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as r,e as o}from"./app-CqHoxGIc.js";const a={},s=o('

    介绍

    VuePress 是一个以 Markdown 为中心的静态网站生成器。你可以使用 Markdown 来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。

    VuePress 诞生的初衷是为了支持 Vue.js 及其子项目的文档需求,但是现在它已经在帮助大量用户构建他们的文档、博客和其他静态网站。

    它是如何工作的?

    一个 VuePress 站点本质上是一个由 VueVue Router 驱动的单页面应用 (SPA)。

    路由会根据你的 Markdown 文件的相对路径来自动生成。每个 Markdown 文件都通过 markdown-it 编译为 HTML ,然后将其作为 Vue 组件的模板。因此,你可以在 Markdown 文件中直接使用 Vue 语法,便于你嵌入一些动态内容。

    在开发过程中,我们启动一个常规的开发服务器 (dev-server) ,并将 VuePress 站点作为一个常规的 SPA。如果你以前使用过 Vue 的话,你在使用时会感受到非常熟悉的开发体验。

    在构建过程中,我们会为 VuePress 站点创建一个服务端渲染 (SSR) 的版本,然后通过虚拟访问每一条路径来渲染对应的 HTML 。这种做法的灵感来源于 Nuxtnuxt generate 命令,以及其他的一些项目,比如 Gatsby

    为什么不是 ...?

    Nuxt

    Nuxt 是一套出色的 Vue SSR 框架, VuePress 能做的事情,Nuxt 实际上也同样能够胜任。但 Nuxt 是为构建应用程序而生的,而 VuePress 则更为轻量化并且专注在以内容为中心的静态网站上。

    VitePress

    VitePress 是 VuePress 的孪生兄弟,它同样由 Vue.js 团队创建和维护。 VitePress 甚至比 VuePress 要更轻更快,但它在灵活性和可配置性上作出了一些让步,比如它不支持插件系统。当然,如果你没有进阶的定制化需求, VitePress 已经足够支持你将你的内容部署到线上。

    这个比喻可能不是很恰当,但是你可以把 VuePress 和 VitePress 的关系看作 Laravel 和 Lumen 。

    Docsify / Docute

    这两个项目同样都是基于 Vue,然而它们都是完全的运行时驱动,因此对 SEO 不够友好。如果你并不关注 SEO,同时也不想安装大量依赖,它们仍然是非常好的选择!

    Hexo

    Hexo 一直驱动着 Vue 2.x 的文档。Hexo 最大的问题在于他的主题系统太过于静态以及过度地依赖纯字符串,而我们十分希望能够好好地利用 Vue 来处理我们的布局和交互。同时,Hexo 在配置 Markdown 渲染方面的灵活性也不是最佳的。

    GitBook

    过去我们的子项目文档一直都在使用 GitBook 。 GitBook 最大的问题在于当文件很多时,每次编辑后的重新加载时间长得令人无法忍受。它的默认主题导航结构也比较有限制性,并且,主题系统也不是 Vue 驱动的。GitBook 背后的团队如今也更专注于将其打造为一个商业产品而不是开源工具。

    ',20),n=[s];function i(l,p){return t(),r("div",null,n)}const h=e(a,[["render",i],["__file","introduction.html.vue"]]),u=JSON.parse('{"path":"/zh/guide/introduction.html","title":"介绍","lang":"zh-CN","frontmatter":{"description":"介绍 VuePress 是一个以 Markdown 为中心的静态网站生成器。你可以使用 Markdown 来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。 VuePress 诞生的初衷是为了支持 Vue.js 及其子项目的文档需求,但是现在它已经在帮助大量用户构建他们的文档、博客和其他静态网站。 它是如何工作的...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/guide/introduction.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/guide/introduction.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"介绍"}],["meta",{"property":"og:description","content":"介绍 VuePress 是一个以 Markdown 为中心的静态网站生成器。你可以使用 Markdown 来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。 VuePress 诞生的初衷是为了支持 Vue.js 及其子项目的文档需求,但是现在它已经在帮助大量用户构建他们的文档、博客和其他静态网站。 它是如何工作的..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-12-20T05:41:12.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-20T05:41:12.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"介绍\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-20T05:41:12.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"它是如何工作的?","slug":"它是如何工作的","link":"#它是如何工作的","children":[]},{"level":2,"title":"为什么不是 ...?","slug":"为什么不是","link":"#为什么不是","children":[{"level":3,"title":"Nuxt","slug":"nuxt","link":"#nuxt","children":[]},{"level":3,"title":"VitePress","slug":"vitepress","link":"#vitepress","children":[]},{"level":3,"title":"Docsify / Docute","slug":"docsify-docute","link":"#docsify-docute","children":[]},{"level":3,"title":"Hexo","slug":"hexo","link":"#hexo","children":[]},{"level":3,"title":"GitBook","slug":"gitbook","link":"#gitbook","children":[]}]}],"git":{"updatedTime":1703050872000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/guide/introduction.md"}');export{h as comp,u as data}; diff --git a/assets/introduction.html-CI-XG4vo.js b/assets/introduction.html-CI-XG4vo.js new file mode 100644 index 000000000..aefd1ca7f --- /dev/null +++ b/assets/introduction.html-CI-XG4vo.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as o,e as n}from"./app-CqHoxGIc.js";const r={},a=n('

    Introduction

    VuePress is a markdown-centered static site generator. You can write your content (documentations, blogs, etc.) in Markdown, then VuePress will help you to generate a static site to host them.

    The purpose of creating VuePress was to support the documentation of Vue.js and its sub-projects, but now it has been helping a large amount of users to build their documentation, blogs, and other static sites.

    How It Works

    A VuePress site is in fact a single-page application (SPA) powered by Vue and Vue Router.

    Routes are generated according to the relative path of your markdown files. Each Markdown file is compiled into HTML with markdown-it and then processed as the template of a Vue component. This allows you to directly use Vue inside your Markdown files and is great when you need to embed dynamic content.

    During development, we start a normal dev-server, and serve the VuePress site as a normal SPA. If you’ve used Vue before, you will notice the familiar development experience when you are writing and developing with VuePress.

    During build, we create a server-rendered version of the VuePress site and render the corresponding HTML by virtually visiting each route. This approach is inspired by Nuxt's nuxt generate command and other projects like Gatsby.

    Why Not ...?

    Nuxt

    Nuxt is an outstanding Vue SSR framework, and it is capable of doing what VuePress does. But Nuxt is designed for building applications, while VuePress is more lightweight and focused on content-centric static sites.

    VitePress

    VitePress is the little brother of VuePress. It's also created and maintained by our Vue.js team. It's even more lightweight and faster than VuePress. However, as a tradeoff, it's more opinionated and less configurable. For example, it does not support plugins. But VitePress is powerful enough to make your content online if you don't need advanced customizations.

    It might not be an appropriate comparison, but you can take VuePress and VitePress as Laravel and Lumen.

    Docsify / Docute

    Both are great projects and also Vue-powered. Except they are both fully runtime-driven and therefore not SEO-friendly. If you don’t care for SEO and don’t want to mess with installing dependencies, these are still great choices.

    Hexo

    Hexo has been serving the Vue 2.x docs well. The biggest problem is that its theming system is static and string-based - we want to take advantage of Vue for both the layout and the interactivity. Also, Hexo’s Markdown rendering isn’t the most flexible to configure.

    GitBook

    We’ve been using GitBook for most of our sub project docs. The primary problem with GitBook is that its development reload performance is intolerable with a large amount of files. The default theme also has a pretty limiting navigation structure, and the theming system is, again, not Vue based. The team behind GitBook is also more focused on turning it into a commercial product rather than an open-source tool.

    ',20),i=[a];function s(d,l){return t(),o("div",null,i)}const h=e(r,[["render",s],["__file","introduction.html.vue"]]),u=JSON.parse('{"path":"/guide/introduction.html","title":"Introduction","lang":"en-US","frontmatter":{"description":"Introduction VuePress is a markdown-centered static site generator. You can write your content (documentations, blogs, etc.) in Markdown, then VuePress will help you to generate...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/guide/introduction.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/guide/introduction.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Introduction"}],["meta",{"property":"og:description","content":"Introduction VuePress is a markdown-centered static site generator. You can write your content (documentations, blogs, etc.) in Markdown, then VuePress will help you to generate..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2023-12-20T05:41:12.000Z"}],["meta",{"property":"article:modified_time","content":"2023-12-20T05:41:12.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Introduction\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-12-20T05:41:12.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"How It Works","slug":"how-it-works","link":"#how-it-works","children":[]},{"level":2,"title":"Why Not ...?","slug":"why-not","link":"#why-not","children":[{"level":3,"title":"Nuxt","slug":"nuxt","link":"#nuxt","children":[]},{"level":3,"title":"VitePress","slug":"vitepress","link":"#vitepress","children":[]},{"level":3,"title":"Docsify / Docute","slug":"docsify-docute","link":"#docsify-docute","children":[]},{"level":3,"title":"Hexo","slug":"hexo","link":"#hexo","children":[]},{"level":3,"title":"GitBook","slug":"gitbook","link":"#gitbook","children":[]}]}],"git":{"updatedTime":1703050872000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":1}]},"autoDesc":true,"filePathRelative":"guide/introduction.md"}');export{h as comp,u as data}; diff --git a/assets/making-a-theme-extendable.html-BMVOJX9y.js b/assets/making-a-theme-extendable.html-BMVOJX9y.js new file mode 100644 index 000000000..9d88ddd5c --- /dev/null +++ b/assets/making-a-theme-extendable.html-BMVOJX9y.js @@ -0,0 +1,30 @@ +import{_ as e,r as l,o,c as p,a as s,b as n,d as t,w as r,e as c}from"./app-CqHoxGIc.js";const i={},d=s("h1",{id:"开发一个可继承的主题",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#开发一个可继承的主题"},[s("span",null,"开发一个可继承的主题")])],-1),y=s("p",null,"有时用户可能希望对一个主题进行一些小改动,但是又不想 Fork 并修改整个项目。",-1),D=c(`

    你肯定已经知道了如何 继承默认主题 。接下来我们将介绍如何让你的主题像默认主题一样被用户继承。

    布局插槽

    这种方式需要你来决定主题的哪些部分是可以被扩展的,它更适合用于一些常见的自定义需求,比如页眉或页脚。

    你只需要在你的布局文件中提供 slots ,并告诉用户如何使用它们即可:

    <template>
    +  <div class="my-theme-layout">
    +    <slot name="page-header" />
    +    <Content />
    +    <slot name="page-footer" />
    +  </div>
    +</template>

    组件别名

    这种方式需要你考虑清楚你的主题的哪些组件可以被替换,并且你需要将组件拆分到合适的粒度。

    首先,为你主题的可替换组件设置 alias 别名:

    import type { Theme } from 'vuepress/core'
    +import { getDirname, path } from 'vuepress/utils'
    +
    +const __dirname = getDirname(import.meta.url)
    +
    +export const fooTheme = (options): Theme => ({
    +  name: 'vuepress-theme-foo',
    +  alias: {
    +    // 为可替换的组件设置别名
    +    '@theme/Navbar.vue': path.resolve(__dirname, 'components/Navbar.vue'),
    +    '@theme/Sidebar.vue': path.resolve(__dirname, 'components/Sidebar.vue'),
    +  },
    +})

    然后,在你的主题中通过别名来使用这些组件:

    <script setup lang="ts">
    +import Navbar from '@theme/Navbar.vue'
    +import Sidebar from '@theme/Sidebar.vue'
    +</script>
    +
    +<template>
    +  <div class="my-theme-layout">
    +    <Navbar />
    +    <Sidebar />
    +    <Content />
    +  </div>
    +</template>

    这样,用户在继承或使用你的主题时,就可以通过覆盖 alias 来替换特定的组件了。

    `,12);function m(v,C){const a=l("RouteLink");return o(),p("div",null,[d,y,s("p",null,[n("借助于 "),t(a,{to:"/zh/reference/theme-api.html"},{default:r(()=>[n("主题 API")]),_:1}),n(" ,你可以让用户继承你的主题,允许用户对你的主题进行改动。")]),D])}const h=e(i,[["render",m],["__file","making-a-theme-extendable.html.vue"]]),b=JSON.parse('{"path":"/zh/advanced/cookbook/making-a-theme-extendable.html","title":"开发一个可继承的主题","lang":"zh-CN","frontmatter":{"description":"开发一个可继承的主题 有时用户可能希望对一个主题进行一些小改动,但是又不想 Fork 并修改整个项目。 借助于 ,你可以让用户继承你的主题,允许用户对你的主题进行改动。 你肯定已经知道了如何 继承默认主题 。接下来我们将介绍如何让你的主题像默认主题一样被用户继承。 布局插槽 这种方式需要你来决定主题的哪些部分是可以被扩展的,它更适合用于一些常见的自定义...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://v2.vuepress.vuejs.org/advanced/cookbook/making-a-theme-extendable.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/zh/advanced/cookbook/making-a-theme-extendable.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"开发一个可继承的主题"}],["meta",{"property":"og:description","content":"开发一个可继承的主题 有时用户可能希望对一个主题进行一些小改动,但是又不想 Fork 并修改整个项目。 借助于 ,你可以让用户继承你的主题,允许用户对你的主题进行改动。 你肯定已经知道了如何 继承默认主题 。接下来我们将介绍如何让你的主题像默认主题一样被用户继承。 布局插槽 这种方式需要你来决定主题的哪些部分是可以被扩展的,它更适合用于一些常见的自定义..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-31T07:59:53.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T07:59:53.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"开发一个可继承的主题\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-31T07:59:53.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"布局插槽","slug":"布局插槽","link":"#布局插槽","children":[]},{"level":2,"title":"组件别名","slug":"组件别名","link":"#组件别名","children":[]}],"git":{"updatedTime":1725091193000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":3},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"zh/advanced/cookbook/making-a-theme-extendable.md"}');export{h as comp,b as data}; diff --git a/assets/making-a-theme-extendable.html-eeBKSgE0.js b/assets/making-a-theme-extendable.html-eeBKSgE0.js new file mode 100644 index 000000000..7a8dd0b2f --- /dev/null +++ b/assets/making-a-theme-extendable.html-eeBKSgE0.js @@ -0,0 +1,30 @@ +import{_ as n,r as l,o,c as t,a as s,b as e,d as p,w as r,e as c}from"./app-CqHoxGIc.js";const i={},d=s("h1",{id:"making-a-theme-extendable",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#making-a-theme-extendable"},[s("span",null,"Making a Theme Extendable")])],-1),m=s("p",null,"Sometimes users might want make some minor changes to a theme, but they don't want to fork and modify the entire project.",-1),y=c(`

    You must have known that how to extend default theme. Here we'll introduce how to make your own theme extendable like default theme.

    Layout Slots

    This approach requires you to determine which parts of your theme could be extended. It is more suitable for those common customizations like page footer or header.

    You just need to provide slots in your layouts, and tell users how to make use of them:

    <template>
    +  <div class="my-theme-layout">
    +    <slot name="page-header" />
    +    <Content />
    +    <slot name="page-footer" />
    +  </div>
    +</template>

    Component Aliases

    This approach requires you to consider which components of your theme should be replaceable, and you also need to split components into a suitable granularity.

    First, set alias for replaceable components of you theme:

    import type { Theme } from 'vuepress/core'
    +import { getDirname } from 'vuepress/utils'
    +
    +const __dirname = getDirname(import.meta.url)
    +
    +export const fooTheme = (options): Theme => ({
    +  name: 'vuepress-theme-foo',
    +  alias: {
    +    // set alias for replaceable components
    +    '@theme/Navbar.vue': path.resolve(__dirname, 'components/Navbar.vue'),
    +    '@theme/Sidebar.vue': path.resolve(__dirname, 'components/Sidebar.vue'),
    +  },
    +})

    Next, use those components via aliases in your theme:

    <script setup lang="ts">
    +import Navbar from '@theme/Navbar.vue'
    +import Sidebar from '@theme/Sidebar.vue'
    +</script>
    +
    +<template>
    +  <div class="my-theme-layout">
    +    <Navbar />
    +    <Sidebar />
    +    <Content />
    +  </div>
    +</template>

    Then, users can replace specific components by overriding the alias when extending or using your theme.

    `,12);function u(h,D){const a=l("RouteLink");return o(),t("div",null,[d,m,s("p",null,[e("With the help of "),p(a,{to:"/reference/theme-api.html"},{default:r(()=>[e("Theme API")]),_:1}),e(", you can make your theme extendable, allowing users to make their own modifications easily.")]),y])}const C=n(i,[["render",u],["__file","making-a-theme-extendable.html.vue"]]),b=JSON.parse(`{"path":"/advanced/cookbook/making-a-theme-extendable.html","title":"Making a Theme Extendable","lang":"en-US","frontmatter":{"description":"Making a Theme Extendable Sometimes users might want make some minor changes to a theme, but they don't want to fork and modify the entire project. With the help of , you can ma...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://v2.vuepress.vuejs.org/zh/advanced/cookbook/making-a-theme-extendable.html"}],["meta",{"property":"og:url","content":"https://v2.vuepress.vuejs.org/advanced/cookbook/making-a-theme-extendable.html"}],["meta",{"property":"og:site_name","content":"VuePress"}],["meta",{"property":"og:title","content":"Making a Theme Extendable"}],["meta",{"property":"og:description","content":"Making a Theme Extendable Sometimes users might want make some minor changes to a theme, but they don't want to fork and modify the entire project. With the help of , you can ma..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-31T07:59:53.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-31T07:59:53.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Making a Theme Extendable\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-31T07:59:53.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Layout Slots","slug":"layout-slots","link":"#layout-slots","children":[]},{"level":2,"title":"Component Aliases","slug":"component-aliases","link":"#component-aliases","children":[]}],"git":{"updatedTime":1725091193000,"contributors":[{"name":"meteorlxy","email":"meteor.lxy@foxmail.com","commits":3},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"autoDesc":true,"filePathRelative":"advanced/cookbook/making-a-theme-extendable.md"}`);export{C as comp,b as data}; diff --git a/assets/markdown-and-vue-sfc.html-D1DBAwNE.js b/assets/markdown-and-vue-sfc.html-D1DBAwNE.js new file mode 100644 index 000000000..4befee6da --- /dev/null +++ b/assets/markdown-and-vue-sfc.html-D1DBAwNE.js @@ -0,0 +1,30 @@ +import{_ as d,g as t,o as D,c as u,a as n,t as p,d as y,w as m,h as c,e as v}from"./app-CqHoxGIc.js";const C="Vue in Markdown",h={__name:"markdown-and-vue-sfc.html",setup(r,{expose:e}){e();const l=(i,o)=>c("div",{class:"red-div"},o.slots.default()),s=t(0),a={RedDiv:l,msg:C,count:s,h:c,ref:t};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}},k=v(`

    Markdown and Vue SFC

    Each Markdown file is first compiled into HTML, and then converted to a Vue SFC. In other words, you can write a Markdown file like a Vue SFC:

    • Blocks <script> and <style> are treated as Vue SFC blocks as they are. In other words, they are hoisted from the <template> block to the top-level of SFC.
    • Everything outside <script> and <style> will be compiled into HTML, and be treated as Vue SFC <template> block.

    Warning

    As Vue SFC can contain only one <script> element, you should avoid using more than one <script> in VuePress markdown.

    Here comes an example:

    Input

    _Hello, {{ msg }}_
    +
    +<RedDiv>
    +
    +_Current count is: {{ count }}_
    +
    +</RedDiv>
    +
    +<button @click="count++">Click Me!</button>
    +
    +<script setup>
    +import { h, ref } from 'vue'
    +
    +const RedDiv = (_, ctx) =>
    +  h(
    +    'div',
    +    {
    +      class: 'red-div',
    +    },
    +    ctx.slots.default(),
    +  )
    +const msg = 'Vue in Markdown'
    +const count = ref(0)
    +</script>
    +
    +<style>
    +.red-div {
    +  color: red;
    +}
    +</style>

    Output

    `,8);function g(r,e,l,s,a,i){return D(),u("div",null,[k,n("p",null,[n("em",null,"Hello, "+p(s.msg))]),y(s.RedDiv,null,{default:m(()=>[n("p",null,[n("em",null,"Current count is: "+p(s.count),1)])]),_:1}),n("p",null,[n("button",{onClick:e[0]||(e[0]=o=>s.count++)},"Click Me!")])])}const f=d(h,[["render",g],["__file","markdown-and-vue-sfc.html.vue"]]),w=JSON.parse('{"path":"/advanced/cookbook/markdown-and-vue-sfc.html","title":"Markdown and Vue SFC","lang":"en-US","frontmatter":{"description":"Markdown and Vue SFC Each Markdown file is first compiled into HTML, and then converted to a Vue SFC. In other words, you can write a Markdown file like a Vue SFC: Blocks c("div",{class:"red-div"},o.slots.default()),s=t(0),e={RedDiv:l,msg:C,count:s,h:c,ref:t};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}},b=m(`

    Markdown 与 Vue SFC

    每一个 Markdown 文件,首先都会编译为 HTML ,然后转换为一个 Vue 单文件组件 (SFC) 。换句话说,你可以像写 Vue SFC 一样来写 Markdown 文件:

    • <script><style> 标签会直接被当作 Vue SFC 中的标签。换句话说,它们是从 <template> 标签中提升到了 SFC 的顶层。
    • 所有 <script><style> 标签的以外的内容,会先被编译为 HTML ,然后被当作 Vue SFC 的 <template> 标签。

    注意

    由于 Vue 单文件组件只能包含一个 <script> 标签,你应该避免在 VuePress Markdown 中使用多于一个 <script> 标签。

    我们来看一个例子:

    输入

    _你好, {{ msg }}_
    +
    +<RedDiv>
    +
    +_当前计数为: {{ count }}_
    +
    +</RedDiv>
    +
    +<button @click="count++">点我!</button>
    +
    +<script setup>
    +import { h, ref } from 'vue'
    +
    +const RedDiv = (_, ctx) =>
    +  h(
    +    'div',
    +    {
    +      class: 'red-div',
    +    },
    +    ctx.slots.default(),
    +  )
    +const msg = 'Markdown 中的 Vue'
    +const count = ref(0)
    +</script>
    +
    +<style>
    +.red-div {
    +  color: red;
    +}
    +</style>

    输出

    `,8);function k(r,a,l,s,e,i){return D(),u("div",null,[b,n("p",null,[n("em",null,"你好, "+p(s.msg))]),y(s.RedDiv,null,{default:v(()=>[n("p",null,[n("em",null,"当前计数为: "+p(s.count),1)])]),_:1}),n("p",null,[n("button",{onClick:a[0]||(a[0]=o=>s.count++)},"点我!")])])}const F=d(g,[["render",k],["__file","markdown-and-vue-sfc.html.vue"]]),f=JSON.parse('{"path":"/zh/advanced/cookbook/markdown-and-vue-sfc.html","title":"Markdown 与 Vue SFC","lang":"zh-CN","frontmatter":{"description":"Markdown 与 Vue SFC 每一个 Markdown 文件,首先都会编译为 HTML ,然后转换为一个 Vue 单文件组件 (SFC) 。换句话说,你可以像写 Vue SFC 一样来写 Markdown 文件: + Assets | VuePress + + + + + +
    + + + diff --git a/guide/bundler.html b/guide/bundler.html new file mode 100644 index 000000000..767c136c3 --- /dev/null +++ b/guide/bundler.html @@ -0,0 +1,58 @@ + + + + + + + + + Bundler | VuePress + + + + + +
    + + + diff --git a/guide/configuration.html b/guide/configuration.html new file mode 100644 index 000000000..3072a4755 --- /dev/null +++ b/guide/configuration.html @@ -0,0 +1,66 @@ + + + + + + + + + Configuration | VuePress + + + + + +
    + + + diff --git a/guide/deployment.html b/guide/deployment.html new file mode 100644 index 000000000..b49831864 --- /dev/null +++ b/guide/deployment.html @@ -0,0 +1,136 @@ + + + + + + + + + Deployment | VuePress + + + + + +
    + + + diff --git a/guide/getting-started.html b/guide/getting-started.html new file mode 100644 index 000000000..ae36bc232 --- /dev/null +++ b/guide/getting-started.html @@ -0,0 +1,78 @@ + + + + + + + + + Getting Started | VuePress + + + + + +
    + + + diff --git a/guide/i18n.html b/guide/i18n.html new file mode 100644 index 000000000..4bb976476 --- /dev/null +++ b/guide/i18n.html @@ -0,0 +1,81 @@ + + + + + + + + + I18n | VuePress + + + + + +
    + + + diff --git a/guide/introduction.html b/guide/introduction.html new file mode 100644 index 000000000..993740afc --- /dev/null +++ b/guide/introduction.html @@ -0,0 +1,43 @@ + + + + + + + + + Introduction | VuePress + + + + + +
    + + + diff --git a/guide/markdown.html b/guide/markdown.html new file mode 100644 index 000000000..fbb5d3d31 --- /dev/null +++ b/guide/markdown.html @@ -0,0 +1,171 @@ + + + + + + + + + Markdown | VuePress + + + + + +
    + + + diff --git a/guide/migration.html b/guide/migration.html new file mode 100644 index 000000000..a73b218b0 --- /dev/null +++ b/guide/migration.html @@ -0,0 +1,148 @@ + + + + + + + + + Migrating from v1 | VuePress + + + + + +
    + + + diff --git a/guide/page.html b/guide/page.html new file mode 100644 index 000000000..f0d44b6d9 --- /dev/null +++ b/guide/page.html @@ -0,0 +1,52 @@ + + + + + + + + + Page | VuePress + + + + + +
    + + + diff --git a/guide/plugin.html b/guide/plugin.html new file mode 100644 index 000000000..fdf7eca1d --- /dev/null +++ b/guide/plugin.html @@ -0,0 +1,55 @@ + + + + + + + + + Plugin | VuePress + + + + + +
    + + + diff --git a/guide/theme.html b/guide/theme.html new file mode 100644 index 000000000..357271739 --- /dev/null +++ b/guide/theme.html @@ -0,0 +1,56 @@ + + + + + + + + + Theme | VuePress + + + + + +
    + + + diff --git a/guide/troubleshooting.html b/guide/troubleshooting.html new file mode 100644 index 000000000..c13ef5a63 --- /dev/null +++ b/guide/troubleshooting.html @@ -0,0 +1,43 @@ + + + + + + + + + Troubleshooting | VuePress + + + + + +
    + + + diff --git a/images/cookbook/extending-a-theme-01.png b/images/cookbook/extending-a-theme-01.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba6d7e8129b49670cc946ea237163cfc0a431a2 GIT binary patch literal 13453 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 T8@2H(qeWd=>ve^qb@=}Sfyh#R literal 0 HcmV?d00001 diff --git a/images/guide/vuepress-architecture-overview.png b/images/guide/vuepress-architecture-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..572bf1a47e4fe2903d6732ed3738edb3a6a8eb41 GIT binary patch literal 51869 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 V=%&+_1EGLlG7<_OOT`TQ{~y~(nxFsx literal 0 HcmV?d00001 diff --git a/images/guide/vuepress-core-process.png b/images/guide/vuepress-core-process.png new file mode 100644 index 0000000000000000000000000000000000000000..acf17029cde4a3cb10810115c1da03028c44d49a GIT binary patch literal 56796 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 literal 0 HcmV?d00001 diff --git a/images/hero.png b/images/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6beaff060d4e383169f86b007e13ef7313d393 GIT binary patch literal 153793 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%0Aq;h1Y(#@xNill5DXwfr+?5g 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 N20Es&IxXkN{{t)V3w8hi literal 0 HcmV?d00001 diff --git a/images/icons/android-chrome-384x384.png b/images/icons/android-chrome-384x384.png new file mode 100644 index 0000000000000000000000000000000000000000..86e1fd58b3f6add80bcbd795214aa540b8023ba4 GIT binary patch literal 15528 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 literal 0 HcmV?d00001 diff --git a/images/icons/apple-touch-icon.png b/images/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..208915f1dea6694cf2b6cd9824f5036a4508a715 GIT binary patch literal 5373 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 L9hC|ttMLB;KPvf_ literal 0 HcmV?d00001 diff --git a/images/icons/favicon-16x16.png b/images/icons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5047e7b8f2d6abe0063329af60eec70a1ca4fa GIT binary patch literal 806 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 literal 0 HcmV?d00001 diff --git a/images/icons/safari-pinned-tab.svg b/images/icons/safari-pinned-tab.svg new file mode 100644 index 000000000..dc0b992c0 --- /dev/null +++ b/images/icons/safari-pinned-tab.svg @@ -0,0 +1,23 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..60e17006ad07cd313788585e2f5e528fbb7cf821 GIT binary patch literal 3451 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 000000000..926891f79 --- /dev/null +++ b/index.html @@ -0,0 +1,43 @@ + + + + + + + + + Home | VuePress + + + + + +

    + + + diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 000000000..d2e935f1a --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "VuePress", + "short_name": "VuePress", + "description": "Vue-powered Static Site Generator", + "start_url": "/index.html", + "display": "standalone", + "background_color": "#fff", + "theme_color": "#3eaf7c", + "icons": [ + { + "src": "/images/icons/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/icons/android-chrome-384x384.png", + "sizes": "384x384", + "type": "image/png" + } + ] +} diff --git a/new.html b/new.html new file mode 100644 index 000000000..b83ab7cb6 --- /dev/null +++ b/new.html @@ -0,0 +1,3 @@ + diff --git a/reference/bundler/vite.html b/reference/bundler/vite.html new file mode 100644 index 000000000..903d6d6a2 --- /dev/null +++ b/reference/bundler/vite.html @@ -0,0 +1,51 @@ + + + + + + + + + Vite | VuePress + + + + + +
    + + + diff --git a/reference/bundler/webpack.html b/reference/bundler/webpack.html new file mode 100644 index 000000000..d8334c069 --- /dev/null +++ b/reference/bundler/webpack.html @@ -0,0 +1,51 @@ + + + + + + + + + Webpack | VuePress + + + + + +
    + + + diff --git a/reference/cli.html b/reference/cli.html new file mode 100644 index 000000000..98c9b73d5 --- /dev/null +++ b/reference/cli.html @@ -0,0 +1,85 @@ + + + + + + + + + Command Line Interface | VuePress + + + + + +
    + + + diff --git a/reference/client-api.html b/reference/client-api.html new file mode 100644 index 000000000..9ca579c28 --- /dev/null +++ b/reference/client-api.html @@ -0,0 +1,67 @@ + + + + + + + + + Client API | VuePress + + + + + +
    + + + diff --git a/reference/components.html b/reference/components.html new file mode 100644 index 000000000..02bfeeed5 --- /dev/null +++ b/reference/components.html @@ -0,0 +1,98 @@ + + + + + + + + + Built-in Components | VuePress + + + + + +
    + + + diff --git a/reference/config.html b/reference/config.html new file mode 100644 index 000000000..a178c5cbf --- /dev/null +++ b/reference/config.html @@ -0,0 +1,57 @@ + + + + + + + + + Config | VuePress + + + + + +
    + + + diff --git a/reference/frontmatter.html b/reference/frontmatter.html new file mode 100644 index 000000000..a4da949e3 --- /dev/null +++ b/reference/frontmatter.html @@ -0,0 +1,66 @@ + + + + + + + + + Frontmatter | VuePress + + + + + +
    + + + diff --git a/reference/node-api.html b/reference/node-api.html new file mode 100644 index 000000000..9d005362d --- /dev/null +++ b/reference/node-api.html @@ -0,0 +1,126 @@ + + + + + + + + + Node API | VuePress + + + + + +
    + + + diff --git a/reference/plugin-api.html b/reference/plugin-api.html new file mode 100644 index 000000000..57b79a7a1 --- /dev/null +++ b/reference/plugin-api.html @@ -0,0 +1,121 @@ + + + + + + + + + Plugin API | VuePress + + + + + +
    + + + diff --git a/reference/theme-api.html b/reference/theme-api.html new file mode 100644 index 000000000..d898e777e --- /dev/null +++ b/reference/theme-api.html @@ -0,0 +1,51 @@ + + + + + + + + + Theme API | VuePress + + + + + +
    + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 000000000..b5be574b5 --- /dev/null +++ b/robots.txt @@ -0,0 +1,5 @@ + +User-agent:* +Disallow: + +Sitemap: https://v2.vuepress.vuejs.org/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000..9bd34fd0a --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,3 @@ + + +https://v2.vuepress.vuejs.org/2024-07-25T05:28:18.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/architecture.html2024-02-05T05:23:13.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/plugin.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/theme.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/guide/assets.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/guide/bundler.html2023-12-28T04:39:48.000Zdailyhttps://v2.vuepress.vuejs.org/guide/configuration.html2024-01-26T16:29:43.000Zdailyhttps://v2.vuepress.vuejs.org/guide/deployment.html2024-01-26T13:03:35.000Zdailyhttps://v2.vuepress.vuejs.org/guide/getting-started.html2024-08-31T08:01:19.000Zdailyhttps://v2.vuepress.vuejs.org/guide/i18n.html2024-02-01T10:07:08.000Zdailyhttps://v2.vuepress.vuejs.org/guide/introduction.html2023-12-20T05:41:12.000Zdailyhttps://v2.vuepress.vuejs.org/guide/markdown.html2024-07-25T05:28:18.000Zdailyhttps://v2.vuepress.vuejs.org/guide/migration.html2024-07-14T14:29:58.000Zdailyhttps://v2.vuepress.vuejs.org/guide/page.html2024-01-31T11:46:38.000Zdailyhttps://v2.vuepress.vuejs.org/guide/plugin.html2024-06-09T14:13:18.000Zdailyhttps://v2.vuepress.vuejs.org/guide/theme.html2024-01-31T11:46:38.000Zdailyhttps://v2.vuepress.vuejs.org/guide/troubleshooting.html2024-02-05T10:24:24.000Zdailyhttps://v2.vuepress.vuejs.org/reference/cli.html2024-02-06T15:46:43.000Zdailyhttps://v2.vuepress.vuejs.org/reference/client-api.html2024-05-24T08:18:58.000Zdailyhttps://v2.vuepress.vuejs.org/reference/components.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/reference/config.html2024-07-14T14:29:58.000Zdailyhttps://v2.vuepress.vuejs.org/reference/frontmatter.html2024-05-16T12:45:44.000Zdailyhttps://v2.vuepress.vuejs.org/reference/node-api.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/reference/plugin-api.html2024-02-06T15:46:43.000Zdailyhttps://v2.vuepress.vuejs.org/reference/theme-api.html2024-02-06T15:46:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/2024-07-25T05:28:18.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/2023-12-03T14:44:37.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/adding-extra-pages.html2023-12-28T05:20:14.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/making-a-theme-extendable.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/markdown-and-vue-sfc.html2024-01-03T06:15:51.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/passing-data-to-client-code.html2023-12-10T13:10:46.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/resolving-routes.html2024-05-24T08:18:58.000Zdailyhttps://v2.vuepress.vuejs.org/advanced/cookbook/usage-of-client-config.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/reference/bundler/vite.html2024-01-26T16:29:43.000Zdailyhttps://v2.vuepress.vuejs.org/reference/bundler/webpack.html2024-01-26T16:29:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/architecture.html2024-02-05T05:23:13.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/plugin.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/theme.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/assets.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/bundler.html2023-12-28T04:39:48.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/configuration.html2024-01-26T16:29:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/deployment.html2024-01-26T13:03:35.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/getting-started.html2024-08-31T08:01:19.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/i18n.html2024-02-01T10:07:08.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/introduction.html2023-12-20T05:41:12.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/markdown.html2024-07-25T05:28:18.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/migration.html2024-07-14T14:29:58.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/page.html2024-01-31T11:46:38.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/plugin.html2024-06-09T14:13:18.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/theme.html2024-01-31T11:46:38.000Zdailyhttps://v2.vuepress.vuejs.org/zh/guide/troubleshooting.html2024-02-05T10:24:24.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/cli.html2024-02-06T15:46:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/client-api.html2024-05-24T08:18:58.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/components.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/config.html2024-07-14T14:29:58.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/frontmatter.html2024-05-16T12:45:44.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/node-api.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/plugin-api.html2024-02-06T15:46:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/theme-api.html2024-02-06T15:46:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/2023-12-03T14:44:37.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/adding-extra-pages.html2023-12-28T05:20:14.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/making-a-theme-extendable.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/markdown-and-vue-sfc.html2024-01-03T06:15:51.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/passing-data-to-client-code.html2023-12-10T13:10:46.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/resolving-routes.html2024-05-24T08:18:58.000Zdailyhttps://v2.vuepress.vuejs.org/zh/advanced/cookbook/usage-of-client-config.html2024-08-31T07:59:53.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/bundler/vite.html2024-01-26T16:29:43.000Zdailyhttps://v2.vuepress.vuejs.org/zh/reference/bundler/webpack.html2024-01-26T16:29:43.000Zdaily \ No newline at end of file diff --git a/sitemap.xsl b/sitemap.xsl new file mode 100644 index 000000000..a76881a48 --- /dev/null +++ b/sitemap.xsl @@ -0,0 +1,207 @@ + + + + + + + XML Sitemap + + + + + +
    +

    Sitemap

    + + + + + + + + + + + + + + + + + + + + + +
    + + PriorityChange FrequencyLast Updated Time
    + + + + + + + + + + + + + 0.5 + + + + + + + + + - + + + + +
    +
    + + + +
    +
    diff --git a/zh/advanced/architecture.html b/zh/advanced/architecture.html new file mode 100644 index 000000000..94a3a2e51 --- /dev/null +++ b/zh/advanced/architecture.html @@ -0,0 +1,43 @@ + + + + + + + + + 架构 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/adding-extra-pages.html b/zh/advanced/cookbook/adding-extra-pages.html new file mode 100644 index 000000000..66328d864 --- /dev/null +++ b/zh/advanced/cookbook/adding-extra-pages.html @@ -0,0 +1,68 @@ + + + + + + + + + 添加额外页面 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/index.html b/zh/advanced/cookbook/index.html new file mode 100644 index 000000000..9ee9a42d3 --- /dev/null +++ b/zh/advanced/cookbook/index.html @@ -0,0 +1,43 @@ + + + + + + + + + 介绍 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/making-a-theme-extendable.html b/zh/advanced/cookbook/making-a-theme-extendable.html new file mode 100644 index 000000000..e9f2ea191 --- /dev/null +++ b/zh/advanced/cookbook/making-a-theme-extendable.html @@ -0,0 +1,72 @@ + + + + + + + + + 开发一个可继承的主题 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/markdown-and-vue-sfc.html b/zh/advanced/cookbook/markdown-and-vue-sfc.html new file mode 100644 index 000000000..64ef691f3 --- /dev/null +++ b/zh/advanced/cookbook/markdown-and-vue-sfc.html @@ -0,0 +1,72 @@ + + + + + + + + + Markdown 与 Vue SFC | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/passing-data-to-client-code.html b/zh/advanced/cookbook/passing-data-to-client-code.html new file mode 100644 index 000000000..d444cc678 --- /dev/null +++ b/zh/advanced/cookbook/passing-data-to-client-code.html @@ -0,0 +1,62 @@ + + + + + + + + + 向客户端代码传递数据 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/resolving-routes.html b/zh/advanced/cookbook/resolving-routes.html new file mode 100644 index 000000000..4317206f2 --- /dev/null +++ b/zh/advanced/cookbook/resolving-routes.html @@ -0,0 +1,60 @@ + + + + + + + + + 解析路由 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/cookbook/usage-of-client-config.html b/zh/advanced/cookbook/usage-of-client-config.html new file mode 100644 index 000000000..c602d699c --- /dev/null +++ b/zh/advanced/cookbook/usage-of-client-config.html @@ -0,0 +1,120 @@ + + + + + + + + + 客户端配置的使用方法 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/plugin.html b/zh/advanced/plugin.html new file mode 100644 index 000000000..1120faa57 --- /dev/null +++ b/zh/advanced/plugin.html @@ -0,0 +1,60 @@ + + + + + + + + + 开发插件 | VuePress + + + + + +
    + + + diff --git a/zh/advanced/theme.html b/zh/advanced/theme.html new file mode 100644 index 000000000..6f803023e --- /dev/null +++ b/zh/advanced/theme.html @@ -0,0 +1,92 @@ + + + + + + + + + 开发主题 | VuePress + + + + + +
    + + + diff --git a/zh/guide/assets.html b/zh/guide/assets.html new file mode 100644 index 000000000..4e1d7664a --- /dev/null +++ b/zh/guide/assets.html @@ -0,0 +1,68 @@ + + + + + + + + + 静态资源 | VuePress + + + + + +
    + + + diff --git a/zh/guide/bundler.html b/zh/guide/bundler.html new file mode 100644 index 000000000..e8526bb66 --- /dev/null +++ b/zh/guide/bundler.html @@ -0,0 +1,58 @@ + + + + + + + + + 打包工具 | VuePress + + + + + +
    + + + diff --git a/zh/guide/configuration.html b/zh/guide/configuration.html new file mode 100644 index 000000000..1c073a59b --- /dev/null +++ b/zh/guide/configuration.html @@ -0,0 +1,66 @@ + + + + + + + + + 配置 | VuePress + + + + + +
    + + + diff --git a/zh/guide/deployment.html b/zh/guide/deployment.html new file mode 100644 index 000000000..3f573860c --- /dev/null +++ b/zh/guide/deployment.html @@ -0,0 +1,137 @@ + + + + + + + + + 部署 | VuePress + + + + + +
    + + + diff --git a/zh/guide/getting-started.html b/zh/guide/getting-started.html new file mode 100644 index 000000000..4e2aefda4 --- /dev/null +++ b/zh/guide/getting-started.html @@ -0,0 +1,78 @@ + + + + + + + + + 快速上手 | VuePress + + + + + +
    + + + diff --git a/zh/guide/i18n.html b/zh/guide/i18n.html new file mode 100644 index 000000000..7fefa1939 --- /dev/null +++ b/zh/guide/i18n.html @@ -0,0 +1,81 @@ + + + + + + + + + 多语言支持 | VuePress + + + + + +
    + + + diff --git a/zh/guide/introduction.html b/zh/guide/introduction.html new file mode 100644 index 000000000..3d08f6e4a --- /dev/null +++ b/zh/guide/introduction.html @@ -0,0 +1,43 @@ + + + + + + + + + 介绍 | VuePress + + + + + +
    + + + diff --git a/zh/guide/markdown.html b/zh/guide/markdown.html new file mode 100644 index 000000000..62b7c8725 --- /dev/null +++ b/zh/guide/markdown.html @@ -0,0 +1,172 @@ + + + + + + + + + Markdown | VuePress + + + + + +
    + + + diff --git a/zh/guide/migration.html b/zh/guide/migration.html new file mode 100644 index 000000000..cf35c4b5b --- /dev/null +++ b/zh/guide/migration.html @@ -0,0 +1,148 @@ + + + + + + + + + 从 v1 迁移 | VuePress + + + + + +
    + + + diff --git a/zh/guide/page.html b/zh/guide/page.html new file mode 100644 index 000000000..5f715aba2 --- /dev/null +++ b/zh/guide/page.html @@ -0,0 +1,52 @@ + + + + + + + + + 页面 | VuePress + + + + + +
    + + + diff --git a/zh/guide/plugin.html b/zh/guide/plugin.html new file mode 100644 index 000000000..32a9948e9 --- /dev/null +++ b/zh/guide/plugin.html @@ -0,0 +1,55 @@ + + + + + + + + + 插件 | VuePress + + + + + +
    + + + diff --git a/zh/guide/theme.html b/zh/guide/theme.html new file mode 100644 index 000000000..782aa1030 --- /dev/null +++ b/zh/guide/theme.html @@ -0,0 +1,56 @@ + + + + + + + + + 主题 | VuePress + + + + + +
    + + + diff --git a/zh/guide/troubleshooting.html b/zh/guide/troubleshooting.html new file mode 100644 index 000000000..d2a76efa0 --- /dev/null +++ b/zh/guide/troubleshooting.html @@ -0,0 +1,43 @@ + + + + + + + + + 常见问题 | VuePress + + + + + +
    + + + diff --git a/zh/index.html b/zh/index.html new file mode 100644 index 000000000..d9b612367 --- /dev/null +++ b/zh/index.html @@ -0,0 +1,43 @@ + + + + + + + + + 首页 | VuePress + + + + + +
    + + + diff --git a/zh/reference/bundler/vite.html b/zh/reference/bundler/vite.html new file mode 100644 index 000000000..1067cb633 --- /dev/null +++ b/zh/reference/bundler/vite.html @@ -0,0 +1,51 @@ + + + + + + + + + Vite | VuePress + + + + + +
    + + + diff --git a/zh/reference/bundler/webpack.html b/zh/reference/bundler/webpack.html new file mode 100644 index 000000000..19a81af79 --- /dev/null +++ b/zh/reference/bundler/webpack.html @@ -0,0 +1,51 @@ + + + + + + + + + Webpack | VuePress + + + + + +
    + + + diff --git a/zh/reference/cli.html b/zh/reference/cli.html new file mode 100644 index 000000000..9d14ae29f --- /dev/null +++ b/zh/reference/cli.html @@ -0,0 +1,85 @@ + + + + + + + + + 命令行接口 | VuePress + + + + + +
    + + + diff --git a/zh/reference/client-api.html b/zh/reference/client-api.html new file mode 100644 index 000000000..361c07f76 --- /dev/null +++ b/zh/reference/client-api.html @@ -0,0 +1,67 @@ + + + + + + + + + 客户端 API | VuePress + + + + + +
    + + + diff --git a/zh/reference/components.html b/zh/reference/components.html new file mode 100644 index 000000000..32affaa96 --- /dev/null +++ b/zh/reference/components.html @@ -0,0 +1,98 @@ + + + + + + + + + 内置组件 | VuePress + + + + + +
    + + + diff --git a/zh/reference/config.html b/zh/reference/config.html new file mode 100644 index 000000000..1b1df6a02 --- /dev/null +++ b/zh/reference/config.html @@ -0,0 +1,57 @@ + + + + + + + + + 配置 | VuePress + + + + + +
    + + + diff --git a/zh/reference/frontmatter.html b/zh/reference/frontmatter.html new file mode 100644 index 000000000..095bd5810 --- /dev/null +++ b/zh/reference/frontmatter.html @@ -0,0 +1,66 @@ + + + + + + + + + Frontmatter | VuePress + + + + + +
    + + + diff --git a/zh/reference/node-api.html b/zh/reference/node-api.html new file mode 100644 index 000000000..d7e6e1544 --- /dev/null +++ b/zh/reference/node-api.html @@ -0,0 +1,126 @@ + + + + + + + + + Node API | VuePress + + + + + +
    + + + diff --git a/zh/reference/plugin-api.html b/zh/reference/plugin-api.html new file mode 100644 index 000000000..84f925629 --- /dev/null +++ b/zh/reference/plugin-api.html @@ -0,0 +1,121 @@ + + + + + + + + + 插件 API | VuePress + + + + + +
    + + + diff --git a/zh/reference/theme-api.html b/zh/reference/theme-api.html new file mode 100644 index 000000000..908157476 --- /dev/null +++ b/zh/reference/theme-api.html @@ -0,0 +1,51 @@ + + + + + + + + + 主题 API | VuePress + + + + + +
    + + +