diff --git a/.gitignore b/.gitignore
index 6ffd392..8785976 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
node_modules/
dist/
.DS_store
+lib/
+.temp/
diff --git a/docs-shared/tsconfig.release.tsbuildinfo b/docs-shared/tsconfig.release.tsbuildinfo
new file mode 100644
index 0000000..31b73cb
--- /dev/null
+++ b/docs-shared/tsconfig.release.tsbuildinfo
@@ -0,0 +1 @@
+{"program":{"fileNames":["../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.esnext.object.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.d.ts","../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/modules/index.d.ts","../node_modules/.pnpm/@babel+types@7.24.5/node_modules/@babel/types/lib/index.d.ts","../node_modules/.pnpm/@babel+parser@7.24.5/node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/.pnpm/@vue+shared@3.4.26/node_modules/@vue/shared/dist/shared.d.ts","../node_modules/.pnpm/@vue+compiler-core@3.4.26/node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../node_modules/.pnpm/@vue+compiler-dom@3.4.26/node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../node_modules/.pnpm/@vue+reactivity@3.4.26/node_modules/@vue/reactivity/dist/reactivity.d.ts","../node_modules/.pnpm/@vue+runtime-core@3.4.26/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../node_modules/.pnpm/@vue+runtime-dom@3.4.26/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../node_modules/.pnpm/vue@3.4.26_typescript@5.4.5/node_modules/vue/dist/vue.d.mts","../node_modules/.pnpm/@mdit-vue+types@2.1.0/node_modules/@mdit-vue/types/dist/index.d.mts","../node_modules/.pnpm/@vuepress+shared@2.0.0-rc.9/node_modules/@vuepress/shared/dist/index.d.ts","../node_modules/.pnpm/vue-router@4.3.2_vue@3.4.26_typescript@5.4.5_/node_modules/vue-router/dist/vue-router.d.ts","../node_modules/.pnpm/@vuepress+client@2.0.0-rc.9_typescript@5.4.5/node_modules/@vuepress/client/dist/createvueappfunction-onjtvjru.d.ts","../node_modules/.pnpm/@vuepress+client@2.0.0-rc.9_typescript@5.4.5/node_modules/@vuepress/client/dist/index.d.ts","../node_modules/.pnpm/vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types+node@20.12.8_jiti@1.21.0_sass@1._ub6tcxwdyofqkpa24tpo7l43fu/node_modules/vuepress/dist/client.d.ts","../packages/theme/lib/presets/transparentnavbar.d.ts","../node_modules/.pnpm/vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types+node@20.12.8_jiti@1.21.0_sass@1._ub6tcxwdyofqkpa24tpo7l43fu/node_modules/vuepress/dist/shared.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/shared/deepassign.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/shared/date.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/shared/helper.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/shared/link.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/composables/uselocaleconfig.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/composables/useroutepaths.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/composables/index.d.ts","../node_modules/.pnpm/fflate@0.8.2/node_modules/fflate/esm/browser.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/utils/data.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/utils/hasglobalcomponent.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/utils/resolveroute.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/utils/wait.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/utils/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/index.d.ts","./src/components/projectlink.ts","./src/components/sociallink.ts","./src/client.ts","../node_modules/.pnpm/@types+linkify-it@5.0.0/node_modules/@types/linkify-it/index.d.mts","../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/lib/decode.d.mts","../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/lib/encode.d.mts","../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/lib/parse.d.mts","../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/lib/format.d.mts","../node_modules/.pnpm/@types+mdurl@2.0.0/node_modules/@types/mdurl/index.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/common/utils.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/token.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/helpers/index.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/ruler.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/rules_block/state_block.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/parser_block.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/rules_core/state_core.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/parser_core.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/parser_inline.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/renderer.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/lib/index.d.mts","../node_modules/.pnpm/@types+markdown-it@14.1.1/node_modules/@types/markdown-it/index.d.mts","../node_modules/.pnpm/@mdit-vue+plugin-sfc@2.1.2/node_modules/@mdit-vue/plugin-sfc/dist/index.d.mts","../node_modules/.pnpm/gray-matter@4.0.3/node_modules/gray-matter/gray-matter.d.ts","../node_modules/.pnpm/@mdit-vue+plugin-frontmatter@2.1.2/node_modules/@mdit-vue/plugin-frontmatter/dist/index.d.mts","../node_modules/.pnpm/@mdit-vue+plugin-headers@2.1.2/node_modules/@mdit-vue/plugin-headers/dist/index.d.mts","../node_modules/.pnpm/@mdit-vue+plugin-toc@2.1.2/node_modules/@mdit-vue/plugin-toc/dist/index.d.mts","../node_modules/.pnpm/markdown-it-anchor@8.6.7_@types+markdown-it@14.1.1_markdown-it@14.1.0/node_modules/markdown-it-anchor/types/index.d.ts","../node_modules/.pnpm/@types+markdown-it-emoji@2.0.5/node_modules/@types/markdown-it-emoji/index.d.ts","../node_modules/.pnpm/@mdit-vue+plugin-component@2.1.2/node_modules/@mdit-vue/plugin-component/dist/index.d.mts","../node_modules/.pnpm/@mdit-vue+plugin-title@2.1.2/node_modules/@mdit-vue/plugin-title/dist/index.d.mts","../node_modules/.pnpm/@vuepress+markdown@2.0.0-rc.9/node_modules/@vuepress/markdown/dist/index.d.ts","../node_modules/.pnpm/@types+ms@0.7.34/node_modules/@types/ms/index.d.ts","../node_modules/.pnpm/@types+debug@4.1.12/node_modules/@types/debug/index.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/sea.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/globals.global.d.ts","../node_modules/.pnpm/@types+node@20.12.8/node_modules/@types/node/index.d.ts","../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/index.d.ts","../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/utils.d.ts","../node_modules/.pnpm/@types+fs-extra@11.0.4/node_modules/@types/fs-extra/index.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/types/index.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/settings.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/providers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.stat@2.0.5/node_modules/@nodelib/fs.stat/out/index.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/types/index.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/settings.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.scandir@2.1.5/node_modules/@nodelib/fs.scandir/out/index.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/types/index.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/settings.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/readers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/providers/async.d.ts","../node_modules/.pnpm/@nodelib+fs.walk@1.2.8/node_modules/@nodelib/fs.walk/out/index.d.ts","../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/types/index.d.ts","../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/settings.d.ts","../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/managers/tasks.d.ts","../node_modules/.pnpm/fast-glob@3.3.2/node_modules/fast-glob/out/index.d.ts","../node_modules/.pnpm/globby@14.0.1/node_modules/globby/index.d.ts","../node_modules/.pnpm/@types+hash-sum@1.0.2/node_modules/@types/hash-sum/index.d.ts","../node_modules/.pnpm/cli-spinners@2.9.2/node_modules/cli-spinners/index.d.ts","../node_modules/.pnpm/ora@8.0.1/node_modules/ora/index.d.ts","../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/types.ts","../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.d.ts","../node_modules/.pnpm/upath@2.0.1/node_modules/upath/upath.d.ts","../node_modules/.pnpm/@vuepress+utils@2.0.0-rc.9/node_modules/@vuepress/utils/dist/index.d.ts","../node_modules/.pnpm/@vuepress+core@2.0.0-rc.9_typescript@5.4.5/node_modules/@vuepress/core/dist/index.d.ts","../node_modules/.pnpm/vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types+node@20.12.8_jiti@1.21.0_sass@1._ub6tcxwdyofqkpa24tpo7l43fu/node_modules/vuepress/dist/core.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/addcustomelement.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/customizedevserver.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/getbundlername.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/vite/mergeviteconfig.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/vite/vitehelper.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/vite/index.d.ts","../node_modules/.pnpm/@types+estree@1.0.5/node_modules/@types/estree/index.d.ts","../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../node_modules/.pnpm/schema-utils@3.3.0/node_modules/schema-utils/declarations/validationerror.d.ts","../node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.d.ts","../node_modules/.pnpm/schema-utils@3.3.0/node_modules/schema-utils/declarations/validate.d.ts","../node_modules/.pnpm/schema-utils@3.3.0/node_modules/schema-utils/declarations/index.d.ts","../node_modules/.pnpm/tapable@2.2.1/node_modules/tapable/tapable.d.ts","../node_modules/.pnpm/webpack@5.91.0_esbuild@0.20.2/node_modules/webpack/types.d.ts","../node_modules/.pnpm/source-map-js@1.2.0/node_modules/source-map-js/source-map.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/previous-map.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/input.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/css-syntax-error.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/declaration.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/root.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/warning.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/lazy-result.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/no-work-result.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/processor.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/result.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/document.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/rule.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/node.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/comment.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/container.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/at-rule.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/list.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/postcss.d.ts","../node_modules/.pnpm/postcss@8.4.38/node_modules/postcss/lib/postcss.d.mts","../node_modules/.pnpm/magic-string@0.30.10/node_modules/magic-string/dist/magic-string.es.d.mts","../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/typescript.d.ts","../node_modules/.pnpm/@vue+compiler-sfc@3.4.26/node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts","../node_modules/.pnpm/vue@3.4.26_typescript@5.4.5/node_modules/vue/compiler-sfc/index.d.mts","../node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_typescript@5.4.5__webpack@5.91.0_esbuild@0.20.2_/node_modules/vue-loader/dist/plugin.d.ts","../node_modules/.pnpm/vue-loader@17.4.2_vue@3.4.26_typescript@5.4.5__webpack@5.91.0_esbuild@0.20.2_/node_modules/vue-loader/dist/index.d.ts","../node_modules/.pnpm/webpack-chain@6.5.1/node_modules/webpack-chain/types/index.d.ts","../node_modules/.pnpm/@types+mime@1.3.5/node_modules/@types/mime/index.d.ts","../node_modules/.pnpm/@types+send@0.17.4/node_modules/@types/send/index.d.ts","../node_modules/.pnpm/@types+qs@6.9.15/node_modules/@types/qs/index.d.ts","../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/index.d.ts","../node_modules/.pnpm/@types+express-serve-static-core@4.19.0/node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/.pnpm/@types+http-errors@2.0.4/node_modules/@types/http-errors/index.d.ts","../node_modules/.pnpm/@types+serve-static@1.15.7/node_modules/@types/serve-static/index.d.ts","../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../node_modules/.pnpm/@types+body-parser@1.19.5/node_modules/@types/body-parser/index.d.ts","../node_modules/.pnpm/@types+express@4.17.21/node_modules/@types/express/index.d.ts","../node_modules/.pnpm/schema-utils@4.2.0/node_modules/schema-utils/declarations/validationerror.d.ts","../node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/codegen/code.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/codegen/scope.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/codegen/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/rules.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/util.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/validate/subschema.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/errors.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/validate/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/validate/datatype.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/format/format.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/vocabularies/errors.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/types/json-schema.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/types/jtd-schema.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/runtime/validation_error.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/ref_error.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/core.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/resolve.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/compile/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/types/index.d.ts","../node_modules/.pnpm/ajv@8.13.0/node_modules/ajv/dist/ajv.d.ts","../node_modules/.pnpm/schema-utils@4.2.0/node_modules/schema-utils/declarations/validate.d.ts","../node_modules/.pnpm/webpack-dev-middleware@7.2.1_webpack@5.91.0_esbuild@0.20.2_/node_modules/webpack-dev-middleware/types/utils/getfilenamefromurl.d.ts","../node_modules/.pnpm/webpack-dev-middleware@7.2.1_webpack@5.91.0_esbuild@0.20.2_/node_modules/webpack-dev-middleware/types/index.d.ts","../node_modules/.pnpm/anymatch@3.1.3/node_modules/anymatch/index.d.ts","../node_modules/.pnpm/chokidar@3.6.0/node_modules/chokidar/types/index.d.ts","../node_modules/.pnpm/@types+connect-history-api-fallback@1.5.4/node_modules/@types/connect-history-api-fallback/index.d.ts","../node_modules/.pnpm/bonjour-service@1.2.1/node_modules/bonjour-service/dist/lib/keyvalue.d.ts","../node_modules/.pnpm/bonjour-service@1.2.1/node_modules/bonjour-service/dist/lib/service.d.ts","../node_modules/.pnpm/bonjour-service@1.2.1/node_modules/bonjour-service/dist/lib/browser.d.ts","../node_modules/.pnpm/bonjour-service@1.2.1/node_modules/bonjour-service/dist/index.d.ts","../node_modules/.pnpm/@types+http-proxy@1.17.14/node_modules/@types/http-proxy/index.d.ts","../node_modules/.pnpm/http-proxy-middleware@2.0.6_@types+express@4.17.21/node_modules/http-proxy-middleware/dist/types.d.ts","../node_modules/.pnpm/http-proxy-middleware@2.0.6_@types+express@4.17.21/node_modules/http-proxy-middleware/dist/handlers/response-interceptor.d.ts","../node_modules/.pnpm/http-proxy-middleware@2.0.6_@types+express@4.17.21/node_modules/http-proxy-middleware/dist/handlers/fix-request-body.d.ts","../node_modules/.pnpm/http-proxy-middleware@2.0.6_@types+express@4.17.21/node_modules/http-proxy-middleware/dist/handlers/public.d.ts","../node_modules/.pnpm/http-proxy-middleware@2.0.6_@types+express@4.17.21/node_modules/http-proxy-middleware/dist/handlers/index.d.ts","../node_modules/.pnpm/http-proxy-middleware@2.0.6_@types+express@4.17.21/node_modules/http-proxy-middleware/dist/index.d.ts","../node_modules/.pnpm/@types+serve-index@1.9.4/node_modules/@types/serve-index/index.d.ts","../node_modules/.pnpm/ipaddr.js@2.2.0/node_modules/ipaddr.js/lib/ipaddr.js.d.ts","../node_modules/.pnpm/open@10.1.0/node_modules/open/index.d.ts","../node_modules/.pnpm/@types+ws@8.5.10/node_modules/@types/ws/index.d.ts","../node_modules/.pnpm/@types+ws@8.5.10/node_modules/@types/ws/index.d.mts","../node_modules/.pnpm/@types+sockjs@0.3.36/node_modules/@types/sockjs/index.d.ts","../node_modules/.pnpm/webpack-dev-server@5.0.4_webpack@5.91.0_esbuild@0.20.2_/node_modules/webpack-dev-server/types/lib/server.d.ts","../node_modules/.pnpm/@vuepress+bundler-webpack@2.0.0-rc.9_esbuild@0.20.2_typescript@5.4.5/node_modules/@vuepress/bundler-webpack/dist/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/webpack.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/bundler/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/locales/config.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/locales/types.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/locales/helpers.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/locales/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/page/excerpt.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/page/text.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/page/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/utils/data.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/utils/getinstalledstatus.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/utils/getrealpath.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/utils/logger.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/utils/packagemanager.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/utils/index.d.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/node/index.d.ts","../node_modules/.pnpm/@shikijs+core@1.4.0/node_modules/@shikijs/core/dist/chunk-index.d.mts","../node_modules/.pnpm/@shikijs+core@1.4.0/node_modules/@shikijs/core/dist/chunk-tokens.d.mts","../node_modules/.pnpm/@shikijs+core@1.4.0/node_modules/@shikijs/core/dist/types.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/types/wasm-dynamic.d.mts","../node_modules/.pnpm/@shikijs+core@1.4.0/node_modules/@shikijs/core/dist/index.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/langs.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/themes.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/bundle-full.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/types.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/theme-css-variables.d.mts","../node_modules/.pnpm/shiki@1.4.0/node_modules/shiki/dist/index.d.mts","../node_modules/.pnpm/@vuepress+plugin-shiki@2.0.0-rc.25_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@typ_lll5h2weiv4l6orwb5yjiojwom/node_modules/@vuepress/plugin-shiki/lib/node/shikiplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-shiki@2.0.0-rc.25_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@typ_lll5h2weiv4l6orwb5yjiojwom/node_modules/@vuepress/plugin-shiki/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+cli@2.0.0-rc.9_typescript@5.4.5/node_modules/@vuepress/cli/dist/index.d.ts","../node_modules/.pnpm/vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types+node@20.12.8_jiti@1.21.0_sass@1._ub6tcxwdyofqkpa24tpo7l43fu/node_modules/vuepress/dist/cli.d.ts","../node_modules/.pnpm/vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types+node@20.12.8_jiti@1.21.0_sass@1._ub6tcxwdyofqkpa24tpo7l43fu/node_modules/vuepress/dist/utils.d.ts","./src/head.ts","./src/config-wrapper.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/gitplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/types.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/utils/checkgitrepo.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/utils/getcontributors.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/utils/getcreatedtime.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/utils/getupdatedtime.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/utils/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-git@2.0.0-rc.22_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types_gun5wtzr36ifus2wbd7pv7d5xq/node_modules/@vuepress/plugin-git/lib/node/index.d.ts","../packages/shared/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/shared/themedata.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/node/themedataplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/node/preparethemedata.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/node/index.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/subtitle.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/config.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/cssvar.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/quality.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/player.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/events.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/utils.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/icons.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/template.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/i18n.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/component.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/artplayer.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/setting.d.ts","../node_modules/.pnpm/artplayer@5.1.1/node_modules/artplayer/types/option.d.ts","../node_modules/.pnpm/vidstack@1.11.21/node_modules/vidstack/dom.d.ts","../node_modules/.pnpm/vidstack@1.11.21/node_modules/vidstack/google-cast.d.ts","../node_modules/.pnpm/vidstack@1.11.21/node_modules/vidstack/types/vidstack-r3tszzgs.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/text-cue.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/vtt-region.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/vtt-cue.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/vtt-header.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/parse/parse-error.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/parse/types.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/parse/parse-response.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/parse/parse-text.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/parse/errors.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/vtt-parser.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/tokenize-cue.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/render-cue.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/vtt/overlay/render-overlay.d.ts","../node_modules/.pnpm/media-captions@1.0.3/node_modules/media-captions/dist/types/index.d.ts","../node_modules/.pnpm/dashjs@4.7.4/node_modules/dashjs/index.d.ts","../node_modules/.pnpm/hls.js@1.5.8/node_modules/hls.js/dist/hls.js.d.ts","../node_modules/.pnpm/vidstack@1.11.21/node_modules/vidstack/types/vidstack-dh59_xgt.d.ts","../node_modules/.pnpm/vidstack@1.11.21/node_modules/vidstack/index.d.ts","../packages/components/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/node/blogplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/shared/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/shared/internal.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/shared/data.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/node/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/node/getreadingtime.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/node/readingtimeplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/node/usereadingtimeplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/typings/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/typings/helper.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/typings/ogp.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/typings/schema.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/typings/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/node/seoplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-seo@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@_3lxypb5miteyo3nx6n7ycytmfm/node_modules/@vuepress/plugin-seo/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-back-to-top@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_i7g5rtwx3hkuntqc7yelemwckq/node_modules/@vuepress/plugin-back-to-top/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-back-to-top@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_i7g5rtwx3hkuntqc7yelemwckq/node_modules/@vuepress/plugin-back-to-top/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-back-to-top@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_i7g5rtwx3hkuntqc7yelemwckq/node_modules/@vuepress/plugin-back-to-top/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-back-to-top@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_i7g5rtwx3hkuntqc7yelemwckq/node_modules/@vuepress/plugin-back-to-top/lib/node/backtotopplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-back-to-top@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_i7g5rtwx3hkuntqc7yelemwckq/node_modules/@vuepress/plugin-back-to-top/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-catalog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_ob4yt76pa6yrsjdqqemkxtukiy/node_modules/@vuepress/plugin-catalog/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-catalog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_ob4yt76pa6yrsjdqqemkxtukiy/node_modules/@vuepress/plugin-catalog/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-catalog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_ob4yt76pa6yrsjdqqemkxtukiy/node_modules/@vuepress/plugin-catalog/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-catalog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_ob4yt76pa6yrsjdqqemkxtukiy/node_modules/@vuepress/plugin-catalog/lib/node/catalogplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-catalog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_ob4yt76pa6yrsjdqqemkxtukiy/node_modules/@vuepress/plugin-catalog/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/base.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/artalk.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/disable.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/giscus.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/twikoo.d.ts","../node_modules/.pnpm/@waline+api@1.0.0-alpha.7/node_modules/@waline/api/dist/api.d.ts","../node_modules/.pnpm/@waline+client@3.1.3_typescript@5.4.5/node_modules/@waline/client/dist/slim.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/waline.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/options/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/node/commentplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/node/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/node/copycodeplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/node/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/node/copyrightplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/shared/data.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/shared/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/node/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/node/index.d.ts","../node_modules/.pnpm/@algolia+cache-common@4.23.3/node_modules/@algolia/cache-common/dist/cache-common.d.ts","../node_modules/.pnpm/@algolia+logger-common@4.23.3/node_modules/@algolia/logger-common/dist/logger-common.d.ts","../node_modules/.pnpm/@algolia+requester-common@4.23.3/node_modules/@algolia/requester-common/dist/requester-common.d.ts","../node_modules/.pnpm/@algolia+transporter@4.23.3/node_modules/@algolia/transporter/dist/transporter.d.ts","../node_modules/.pnpm/@algolia+client-common@4.23.3/node_modules/@algolia/client-common/dist/client-common.d.ts","../node_modules/.pnpm/@algolia+client-search@4.23.3/node_modules/@algolia/client-search/dist/client-search.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/maybepromise.d.ts","../node_modules/.pnpm/@algolia+recommend@4.23.3/node_modules/@algolia/recommend/dist/recommend.d.ts","../node_modules/.pnpm/@algolia+recommend@4.23.3/node_modules/@algolia/recommend/index.d.ts","../node_modules/.pnpm/algoliasearch@4.23.3/node_modules/algoliasearch/dist/algoliasearch-lite.d.ts","../node_modules/.pnpm/algoliasearch@4.23.3/node_modules/algoliasearch/lite.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/algoliasearch.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/useragent.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/createrequester.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompleteenvironment.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletereshape.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompleteplugin.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompleteoptions.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletesource.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletecollection.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletecontext.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletestate.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletenavigator.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletepropgetters.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompletesetters.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/autocompleteapi.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/core/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/createcancelablepromise.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/createcancelablepromiselist.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/createref.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/debounce.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/decycle.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/flatten.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/generateautocompleteid.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/getattributevaluebypath.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/getitemscount.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/invariant.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/isequal.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/noop.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/safelyrunonbrowser.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/useragents.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/version.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/warn.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompleteclassnames.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/highlighthitparams.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompletecomponents.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompleterenderer.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompletestate.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompletesource.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompletecollection.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompleteplugin.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompletepropgetters.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompleterender.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompletetranslations.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/autocompleteoptions.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/js/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-shared@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3/node_modules/@algolia/autocomplete-shared/dist/esm/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/createconcurrentsafepromise.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/getnextactiveitemid.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/getnormalizedsources.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/getactiveitem.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/isorcontainsnode.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/issamsung.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/maptoalgoliaresponse.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/types/autocompletestore.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/types/autocompletesubscribers.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/algoliainsightshit.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createsearchinsightsapi.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/autocompleteinsightsapi.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/eventparams.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/_algoliaagent.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/_getversion.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/_tokenutils.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/utils/extractadditionalparams.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/utils/featuredetection.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/utils/index.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/click.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/conversion.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/init.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/view.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/types.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/utils/request.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/_sendevent.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/insights.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/_getfunctionalinterface.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/_processqueue.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/utils/getrequesterfornode.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/dist/entry-node-cjs.d.ts","../node_modules/.pnpm/search-insights@2.13.0/node_modules/search-insights/index-node.cjs.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/insightsclient.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createalgoliainsightsplugin.d.ts","../node_modules/.pnpm/@algolia+autocomplete-plugin-algolia-insights@1.9.3_@algolia+client-search@4.23.3_algoliasear_cxlhr57w7czwbtlxr5l4atusvy/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/createautocomplete.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/getdefaultprops.d.ts","../node_modules/.pnpm/@algolia+autocomplete-core@1.9.3_@algolia+client-search@4.23.3_algoliasearch@4.23.3_search-insights@2.13.0/node_modules/@algolia/autocomplete-core/dist/esm/index.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/types/docsearchhit.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/types/docsearchstate.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/types/internaldocsearchhit.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/types/storeddocsearchhit.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/types/index.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/docsearch.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/docsearchbutton.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/footer.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/errorscreen.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/noresultsscreen.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/startscreen.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/stored-searches.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/screenstate.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/searchbox.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/docsearchmodal.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/usedocsearchkeyboardevents.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/version.d.ts","../node_modules/.pnpm/@docsearch+react@3.6.0_@algolia+client-search@4.23.3_search-insights@2.13.0/node_modules/@docsearch/react/dist/esm/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-docsearch@2.0.0-rc.26_@algolia+client-search@4.23.3_search-insights@2.13.0_t_muh4ed2lxtafga75q2httwynvm/node_modules/@vuepress/plugin-docsearch/lib/shared/types.d.ts","../node_modules/.pnpm/@vuepress+plugin-docsearch@2.0.0-rc.26_@algolia+client-search@4.23.3_search-insights@2.13.0_t_muh4ed2lxtafga75q2httwynvm/node_modules/@vuepress/plugin-docsearch/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-docsearch@2.0.0-rc.26_@algolia+client-search@4.23.3_search-insights@2.13.0_t_muh4ed2lxtafga75q2httwynvm/node_modules/@vuepress/plugin-docsearch/lib/node/docsearchplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-docsearch@2.0.0-rc.26_@algolia+client-search@4.23.3_search-insights@2.13.0_t_muh4ed2lxtafga75q2httwynvm/node_modules/@vuepress/plugin-docsearch/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/typings/feed.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/typings/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/typings/internal.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/typings/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/typings/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/node/feedplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-feed@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_4jwfsxkyi54j3puu2azwwyfkwa/node_modules/@vuepress/plugin-feed/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-links-check@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_ep5cunuyhyici5imtpdqdco6vq/node_modules/@vuepress/plugin-links-check/lib/node/checkmarkdownlink.d.ts","../node_modules/.pnpm/@vuepress+client@2.0.0-rc.9_typescript@5.4.5/node_modules/@vuepress/client/dist/app.d.ts","../node_modules/.pnpm/vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0.0-rc.9_@types+node@20.12.8_jiti@1.21.0_sass@1._ub6tcxwdyofqkpa24tpo7l43fu/node_modules/vuepress/dist/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-links-check@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_ep5cunuyhyici5imtpdqdco6vq/node_modules/@vuepress/plugin-links-check/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-links-check@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_ep5cunuyhyici5imtpdqdco6vq/node_modules/@vuepress/plugin-links-check/lib/node/linkscheckplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-links-check@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_ep5cunuyhyici5imtpdqdco6vq/node_modules/@vuepress/plugin-links-check/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/node/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/node/photoswipeplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/shared/manifest.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/node/locales.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/lib/copy-workbox-libraries.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/basic.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/typed-array.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/except.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/simplify.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/mutable.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/merge.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/merge-exclusive.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/require-at-least-one.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/require-exactly-one.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/partial-deep.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/readonly-deep.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/literal-union.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/promisable.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/opaque.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/set-optional.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/set-required.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/value-of.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/promise-value.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/async-return-type.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/conditional-keys.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/conditional-except.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/conditional-pick.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/union-to-intersection.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/stringified.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/fixed-length-array.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/iterable-element.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/entry.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/entries.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/set-return-type.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/asyncify.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/package-json.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/tsconfig-json.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/base.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/source/utilities.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/utilities.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/camel-case.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/delimiter-case.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/kebab-case.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/pascal-case.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/snake-case.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/get.d.ts","../node_modules/.pnpm/type-fest@0.21.3/node_modules/type-fest/ts41/index.d.ts","../node_modules/.pnpm/workbox-core@7.1.0/node_modules/workbox-core/_version.d.ts","../node_modules/.pnpm/workbox-core@7.1.0/node_modules/workbox-core/types.d.ts","../node_modules/.pnpm/workbox-broadcast-update@7.1.0/node_modules/workbox-broadcast-update/_version.d.ts","../node_modules/.pnpm/workbox-broadcast-update@7.1.0/node_modules/workbox-broadcast-update/broadcastcacheupdate.d.ts","../node_modules/.pnpm/workbox-google-analytics@7.1.0/node_modules/workbox-google-analytics/_version.d.ts","../node_modules/.pnpm/workbox-google-analytics@7.1.0/node_modules/workbox-google-analytics/initialize.d.ts","../node_modules/.pnpm/workbox-routing@7.1.0/node_modules/workbox-routing/_version.d.ts","../node_modules/.pnpm/workbox-routing@7.1.0/node_modules/workbox-routing/utils/constants.d.ts","../node_modules/.pnpm/workbox-background-sync@7.1.0/node_modules/workbox-background-sync/_version.d.ts","../node_modules/.pnpm/workbox-background-sync@7.1.0/node_modules/workbox-background-sync/queue.d.ts","../node_modules/.pnpm/workbox-cacheable-response@7.1.0/node_modules/workbox-cacheable-response/_version.d.ts","../node_modules/.pnpm/workbox-cacheable-response@7.1.0/node_modules/workbox-cacheable-response/cacheableresponse.d.ts","../node_modules/.pnpm/workbox-expiration@7.1.0/node_modules/workbox-expiration/_version.d.ts","../node_modules/.pnpm/workbox-expiration@7.1.0/node_modules/workbox-expiration/expirationplugin.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/types.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/lib/cdn-utils.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/generate-sw.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/get-manifest.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/inject-manifest.d.ts","../node_modules/.pnpm/workbox-build@7.1.0_@types+babel__core@7.20.5/node_modules/workbox-build/build/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/node/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/node/pwaplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-pwa@2.0.0-rc.26_@types+babel__core@7.20.5_typescript@5.4.5_vuepress@2.0.0-rc_2cvjhu2u7l5yjcwfrw4gaym3pa/node_modules/@vuepress/plugin-pwa/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/node/types/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/shared/localeconfig.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/shared/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/shared/normalizepath.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/node/types/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/node/types/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/node/redirectplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-search@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vi_hwiygrfzq3yhfbiz774xdn663a/node_modules/@vuepress/plugin-search/lib/shared/hotkey.d.ts","../node_modules/.pnpm/@vuepress+plugin-search@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vi_hwiygrfzq3yhfbiz774xdn663a/node_modules/@vuepress/plugin-search/lib/shared/searchindex.d.ts","../node_modules/.pnpm/@vuepress+plugin-search@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vi_hwiygrfzq3yhfbiz774xdn663a/node_modules/@vuepress/plugin-search/lib/shared/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-search@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vi_hwiygrfzq3yhfbiz774xdn663a/node_modules/@vuepress/plugin-search/lib/node/searchplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-search@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vi_hwiygrfzq3yhfbiz774xdn663a/node_modules/@vuepress/plugin-search/lib/node/preparesearchindex.d.ts","../node_modules/.pnpm/@vuepress+plugin-search@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vi_hwiygrfzq3yhfbiz774xdn663a/node_modules/@vuepress/plugin-search/lib/node/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-sitemap@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_gz4f45bgrtkvtnerdbn2kt75vq/node_modules/@vuepress/plugin-sitemap/lib/typings/sitemap.d.ts","../node_modules/.pnpm/@vuepress+plugin-sitemap@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_gz4f45bgrtkvtnerdbn2kt75vq/node_modules/@vuepress/plugin-sitemap/lib/typings/frontmatter.d.ts","../node_modules/.pnpm/@vuepress+plugin-sitemap@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_gz4f45bgrtkvtnerdbn2kt75vq/node_modules/@vuepress/plugin-sitemap/lib/typings/options.d.ts","../node_modules/.pnpm/@vuepress+plugin-sitemap@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_gz4f45bgrtkvtnerdbn2kt75vq/node_modules/@vuepress/plugin-sitemap/lib/typings/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-sitemap@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_gz4f45bgrtkvtnerdbn2kt75vq/node_modules/@vuepress/plugin-sitemap/lib/node/sitemapplugin.d.ts","../node_modules/.pnpm/@vuepress+plugin-sitemap@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_gz4f45bgrtkvtnerdbn2kt75vq/node_modules/@vuepress/plugin-sitemap/lib/node/index.d.ts","../node_modules/.pnpm/@mdit+plugin-plantuml@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-plantuml/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-include@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-include/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-stylize@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-stylize/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-attrs@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-attrs/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-figure@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-figure/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-img-mark@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-img-mark/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-tasklist@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-tasklist/lib/index.d.ts","../node_modules/.pnpm/@mdit+plugin-tex@0.10.1_markdown-it@14.1.0/node_modules/@mdit/plugin-tex/lib/index.d.ts","../node_modules/.pnpm/@types+katex@0.16.7/node_modules/@types/katex/index.d.ts","../node_modules/.pnpm/@mdit+plugin-katex-slim@0.10.1_katex@0.16.10_markdown-it@14.1.0/node_modules/@mdit/plugin-katex-slim/lib/index.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/tree/factory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/tree/nodefactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/tree/node.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/mmltree/attributes.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/mmltree/mmlfactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/options.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/domadaptor.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/mmltree/mmlnode.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/texerror.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/mathitem.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/prioritizedlist.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/functionlist.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/outputjax.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/linkedlist.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/mathlist.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/bitfield.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/mathdocument.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/inputjax.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/findmath.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/findtex.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/stackitem.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/stackitemfactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/tags.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/symbol.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/stack.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/texparser.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/types.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/symbolmap.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/maphandler.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/nodefactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/configuration.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/parseoptions.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/base/basemappings.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex/base/baseconfiguration.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/input/tex.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/styles.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/lite/text.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/lite/element.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/nodemixin.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/lite/document.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/lite/list.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/htmladaptor.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/lite/parser.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/lite/window.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/adaptors/liteadaptor.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/stylelist.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/common/fontdata.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/tree/wrapperfactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/core/tree/wrapper.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/common/wrapperfactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/util/bbox.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/common/wrapper.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/common/outputjax.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/chtml/usage.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/chtml/fontdata.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/chtml/wrapperfactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/chtml/wrapper.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/chtml.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/svg/fontdata.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/svg/wrapperfactory.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/svg/wrapper.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/svg/fontcache.d.ts","../node_modules/.pnpm/mathjax-full@3.2.2/node_modules/mathjax-full/js/output/svg.d.ts","../node_modules/.pnpm/@mdit+plugin-mathjax-slim@0.10.1_markdown-it@14.1.0_mathjax-full@3.2.2/node_modules/@mdit/plugin-mathjax-slim/lib/index.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/modules/fs.d.ts","../node_modules/.pnpm/strict-event-emitter@0.4.6/node_modules/strict-event-emitter/lib/emitter.d.ts","../node_modules/.pnpm/strict-event-emitter@0.4.6/node_modules/strict-event-emitter/lib/memoryleakerror.d.ts","../node_modules/.pnpm/strict-event-emitter@0.4.6/node_modules/strict-event-emitter/lib/index.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/modules/shell.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/modules/preview.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/messages.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/nodebox.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/runtime-protocol.types.d.ts","../node_modules/.pnpm/@codesandbox+nodebox@0.1.8/node_modules/@codesandbox/nodebox/build/index.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/clients/node/types.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/clients/runtime/types.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/types.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/clients/base.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/clients/index.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/utils.d.ts","../node_modules/.pnpm/@codesandbox+sandpack-client@2.13.8/node_modules/@codesandbox/sandpack-client/dist/index.d.ts","../node_modules/.pnpm/@lezer+common@1.2.1/node_modules/@lezer/common/dist/index.d.ts","../node_modules/.pnpm/@lezer+lr@1.4.0/node_modules/@lezer/lr/dist/index.d.ts","../node_modules/.pnpm/@codemirror+state@6.4.1/node_modules/@codemirror/state/dist/index.d.ts","../node_modules/.pnpm/style-mod@4.1.2/node_modules/style-mod/src/style-mod.d.ts","../node_modules/.pnpm/@codemirror+view@6.26.3/node_modules/@codemirror/view/dist/index.d.ts","../node_modules/.pnpm/@lezer+highlight@1.2.0/node_modules/@lezer/highlight/dist/index.d.ts","../node_modules/.pnpm/@codemirror+language@6.10.1/node_modules/@codemirror/language/dist/index.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/css.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/config.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/theme.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/util.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/css-util.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/styled-component.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/stitches.d.ts","../node_modules/.pnpm/@stitches+core@1.2.8/node_modules/@stitches/core/types/index.d.ts","../node_modules/.pnpm/sandpack-vue3@3.1.11_@lezer+common@1.2.1_vue@3.4.26_typescript@5.4.5_/node_modules/sandpack-vue3/dist/index.d.ts","../packages/md-enhance/lib/node/index.d.ts","../node_modules/.pnpm/slimsearch@2.1.1/node_modules/slimsearch/dist/index.d.ts","../packages/search-pro/lib/node/index.d.ts","../packages/theme/lib/node/index.d.ts","./src/theme-wrapper.ts","./src/index.ts","./src/shims-scss-module.d.ts","../packages/theme/lib/client/components/heroinfo.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/constants.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/interleavedbuffer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/interleavedbufferattribute.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/layers.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/bone.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/interpolant.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/interpolants/cubicinterpolant.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/interpolants/discreteinterpolant.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/interpolants/linearinterpolant.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/keyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/animationclip.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/line3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/sphere.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/plane.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/vector2.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/triangle.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/box3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/eventdispatcher.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/glbufferattribute.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/buffergeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/colormanagement.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/color.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/group.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/source.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/texture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/linebasicmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/linedashedmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshbasicmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshdepthmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshdistancematerial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshlambertmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshmatcapmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshnormalmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshphongmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshstandardmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshphysicalmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/meshtoonmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/pointsmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/uniform.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/uniformsgroup.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/shaders/uniformslib.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/shadermaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/rawshadermaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/shadowmaterial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/spritematerial.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/materials.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/sprite.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/frustum.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webglrendertarget.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/lightshadow.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/light.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/cubetexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/scenes/fog.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/scenes/scene.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/types.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/data3dtexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/dataarraytexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglcapabilities.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglextensions.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglproperties.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglstate.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webgltextures.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webgluniforms.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglprogram.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglinfo.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglrenderlists.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglobjects.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglshadowmap.d.ts","../node_modules/.pnpm/@types+webxr@0.5.16/node_modules/@types/webxr/index.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/cameras/perspectivecamera.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/cameras/arraycamera.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webxr/webxrcontroller.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webxr/webxrmanager.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webglrenderer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglattributes.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglbindingstates.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglclipping.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglcubemaps.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webgllights.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglprograms.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/materials/material.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/ray.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/raycaster.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/object3d.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/cameras/camera.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/cylindrical.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/spherical.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/vector3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/quaternion.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/euler.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/matrix4.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/matrix3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/bufferattribute.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/vector4.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/depthtexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/rendertarget.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/three.legacy.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/propertybinding.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/propertymixer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/tracks/booleankeyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/tracks/colorkeyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/tracks/numberkeyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/tracks/quaternionkeyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/tracks/stringkeyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/tracks/vectorkeyframetrack.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/animationutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/animationobjectgroup.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/animationmixer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/animation/animationaction.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/audio/audiocontext.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/audio/audiolistener.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/audio/audio.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/audio/audioanalyser.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/audio/positionalaudio.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webglcuberendertarget.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/cameras/cubecamera.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/cameras/orthographiccamera.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/cameras/stereocamera.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/clock.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/instancedbufferattribute.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/instancedbuffergeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/core/instancedinterleavedbuffer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/core/curve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/core/curvepath.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/core/interpolations.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/core/path.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/core/shape.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/core/shapepath.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/ellipsecurve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/arccurve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/catmullromcurve3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/cubicbeziercurve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/cubicbeziercurve3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/linecurve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/linecurve3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/quadraticbeziercurve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/quadraticbeziercurve3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/splinecurve.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/curves/curves.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/datautils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/imageutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/pmremgenerator.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/extras/shapeutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/boxgeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/capsulegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/circlegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/cylindergeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/conegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/polyhedrongeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/dodecahedrongeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/edgesgeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/extrudegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/icosahedrongeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/lathegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/octahedrongeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/planegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/ringgeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/shapegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/spheregeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/tetrahedrongeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/torusgeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/torusknotgeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/tubegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/wireframegeometry.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/geometries/geometries.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/line.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/mesh.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/arrowhelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/linesegments.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/axeshelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/box3helper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/boxhelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/camerahelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/directionallightshadow.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/directionallight.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/directionallighthelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/gridhelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/hemispherelight.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/hemispherelighthelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/planehelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/pointlightshadow.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/pointlight.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/pointlighthelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/polargridhelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/datatexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/skeleton.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/skinnedmesh.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/skeletonhelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/helpers/spotlighthelper.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/ambientlight.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/sphericalharmonics3.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/lightprobe.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/rectarealight.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/spotlightshadow.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/lights/spotlight.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/loadingmanager.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/loader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/animationloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/audioloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/buffergeometryloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/cache.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/compressedtexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/compressedtextureloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/cubetextureloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/datatextureloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/fileloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/imagebitmaploader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/imageloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/loaderutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/materialloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/objectloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/loaders/textureloader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/box2.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/interpolants/quaternionlinearinterpolant.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/math/mathutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/batchedmesh.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/instancedmesh.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/lineloop.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/lod.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/objects/points.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/shaders/shaderchunk.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/shaders/shaderlib.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/shaders/uniformsutils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglbufferrenderer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglcubeuvmaps.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglgeometries.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglindexedbufferrenderer.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webglshader.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl/webgluniformsgroups.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webgl3drendertarget.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/renderers/webglarrayrendertarget.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/scenes/fogexp2.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/canvastexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/compressedarraytexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/compressedcubetexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/framebuffertexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/textures/videotexture.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/utils.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/src/three.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/build/three.module.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/examples/jsm/controls/orbitcontrols.d.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/examples/jsm/loaders/stlloader.d.ts","../packages/theme/src/client/composables/usenavigate.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/client/composables/usereadingtimedata.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/client/composables/usereadingtimelocale.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/client/composables/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/client/utils/locales.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/client/utils/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-reading-time@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bund_gqw4r5ze7lx6s75itwqvt26mby/node_modules/@vuepress/plugin-reading-time/lib/client/index.d.ts","../packages/shared/lib/client/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/client/typings.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/client/composables/useblogcategory.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/client/composables/useblogtype.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/client/composables/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-blog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite_fsqhvce4gqakrdncnjo7uen37y/node_modules/@vuepress/plugin-blog/lib/client/index.d.ts","../packages/theme/src/shared/blog.ts","../packages/theme/src/shared/frontmatter/base.ts","../packages/theme/src/shared/frontmatter/home.ts","../packages/theme/src/shared/frontmatter/bloghome.ts","../packages/theme/src/shared/info.ts","../packages/theme/src/shared/utils.ts","../packages/theme/src/shared/frontmatter/normal.ts","../packages/theme/src/shared/frontmatter/portfoliohome.ts","../packages/theme/src/shared/frontmatter/projecthome.ts","../packages/theme/src/shared/frontmatter/index.ts","../packages/theme/src/shared/navbar.ts","../packages/theme/src/shared/options/appearance.ts","../packages/theme/src/shared/options/feature/blog.ts","../packages/theme/src/shared/options/feature/encrypt.ts","../packages/theme/src/shared/options/feature/options.ts","../packages/theme/src/shared/options/feature/index.ts","../packages/theme/src/shared/options/layout/footer.ts","../packages/theme/src/shared/options/layout/info.ts","../packages/theme/src/shared/options/layout/meta.ts","../packages/theme/src/shared/options/layout/navbar.ts","../packages/theme/src/shared/options/layout/route.ts","../packages/theme/src/shared/page.ts","../packages/theme/src/shared/sidebar.ts","../packages/theme/src/shared/options/layout/sidebar.ts","../packages/theme/src/shared/options/layout/options.ts","../packages/theme/src/shared/options/layout/index.ts","../packages/theme/src/shared/options/info.ts","../packages/theme/src/shared/options/helpers.ts","../packages/theme/src/shared/options/locales.ts","../packages/theme/src/shared/options/plugins/blog.ts","../packages/theme/src/shared/options/plugins/prism.ts","../packages/theme/src/shared/options/plugins/options.ts","../packages/theme/src/shared/options/plugins/index.ts","../packages/theme/src/shared/options/options.ts","../packages/theme/src/shared/options/index.ts","../packages/theme/src/shared/index.ts","../packages/theme/src/client/modules/blog/composables/setuptimeline.ts","../packages/theme/src/client/modules/blog/composables/usearticles.ts","../packages/theme/src/client/modules/blog/composables/usecategorymap.ts","../packages/theme/src/client/modules/blog/composables/usestars.ts","../packages/theme/src/client/modules/blog/composables/usetagmap.ts","../packages/theme/src/client/modules/blog/composables/setupblog.ts","../node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/noopcomponent.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/client/pageview/typings.d.ts","../node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/client/pageview/noop.d.ts","../packages/theme/src/client/modules/info/components/icons.ts","../packages/theme/src/client/modules/info/composables/usecontributors.ts","../packages/theme/src/client/modules/info/utils/resolveeditlink.ts","../packages/theme/src/client/modules/info/utils/typings.ts","../packages/theme/src/client/modules/info/utils/index.ts","../packages/theme/src/client/modules/info/composables/useeditlink.ts","../packages/theme/src/client/modules/info/composables/usemetalocale.ts","../packages/theme/src/client/modules/info/composables/useupdatetime.ts","../packages/theme/src/client/modules/info/composables/index.ts","../packages/theme/src/client/modules/info/components/authorinfo.ts","../packages/theme/src/client/modules/info/components/categoryinfo.ts","../packages/theme/src/client/modules/info/components/dateinfo.ts","../packages/theme/src/client/modules/info/components/originalinfo.ts","../node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.26_typescript@5.4.5_/node_modules/vue-demi/lib/index.d.ts","../node_modules/.pnpm/@vueuse+shared@10.9.0_vue@3.4.26_typescript@5.4.5_/node_modules/@vueuse/shared/index.d.mts","../node_modules/.pnpm/@vueuse+core@10.9.0_vue@3.4.26_typescript@5.4.5_/node_modules/@vueuse/core/index.d.mts","../packages/theme/src/client/modules/info/components/pageviewinfo.ts","../packages/theme/src/client/modules/info/components/readingtimeinfo.ts","../packages/theme/src/client/modules/info/components/taginfo.ts","../packages/theme/src/client/modules/info/components/wordinfo.ts","../packages/theme/src/client/modules/info/components/pageinfo.ts","../packages/theme/src/client/modules/blog/composables/useblogoptions.ts","../packages/theme/src/client/modules/blog/composables/usearticleinfo.ts","../packages/theme/src/client/modules/blog/composables/useauthorinfo.ts","../packages/theme/src/client/modules/blog/composables/index.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/client/composables/usethemedata.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/client/composables/usethemelocaledata.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/client/composables/index.d.ts","../node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/client/index.d.ts","../packages/theme/src/client/composables/usethemedata.ts","../packages/theme/src/client/composables/usepageinfo.ts","../packages/theme/src/client/composables/usepure.ts","../packages/theme/src/client/composables/usewindowsize.ts","../packages/theme/src/client/composables/index.ts","../packages/theme/src/client/modules/outlook/composables/usedarkmode.ts","../packages/theme/src/client/modules/outlook/composables/index.ts","./src/components/hopelogo.ts","./src/components/hopehero.ts","./src/components/hopenotfoundhint.ts","../node_modules/.pnpm/@types+three@0.164.0/node_modules/@types/three/index.d.ts","../node_modules/.pnpm/@types+eslint@8.56.10/node_modules/@types/eslint/helpers.d.ts","../node_modules/.pnpm/@types+eslint@8.56.10/node_modules/@types/eslint/index.d.ts","../node_modules/.pnpm/@types+eslint-scope@3.7.7/node_modules/@types/eslint-scope/index.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/subscription.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/subscriber.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operator.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/types.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/bufferwhen.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/catcherror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/combinelatestall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/combineall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/combinelatest.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/combinelatestwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/concatall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/concatmap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/concatmapto.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/concatwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/count.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/debouncetime.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/defaultifempty.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/delaywhen.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/distinctuntilchanged.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/distinctuntilkeychanged.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/elementat.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/endwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/every.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/exhaustall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/exhaustmap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/find.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/findindex.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/first.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/subject.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/groupby.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/ignoreelements.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/isempty.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/last.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/map.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/mapto.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/notification.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/max.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/mergeall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/mergemap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/flatmap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/mergemapto.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/mergescan.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/mergewith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/min.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/connectableobservable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/observeon.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/onerrorresumenextwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/publishbehavior.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/publishlast.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/publishreplay.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/race.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/racewith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/repeatwhen.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/retrywhen.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/refcount.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/sampletime.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/sequenceequal.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/share.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/sharereplay.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/single.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/skiplast.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/skipuntil.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/skipwhile.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/startwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/subscribeon.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/switchall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/switchmap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/switchmapto.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/switchscan.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/take.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/takelast.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/takeuntil.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/takewhile.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/throttletime.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/throwifempty.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/timeinterval.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/timeoutwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/toarray.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/window.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/windowcount.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/windowtime.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/windowtoggle.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/windowwhen.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/withlatestfrom.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/zipall.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/operators/zipwith.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/operators/index.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/action.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/testing/testmessage.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/testing/subscriptionlog.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/testing/subscriptionloggable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/testing/coldobservable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/testing/hotobservable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/asyncscheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/timerhandle.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/asyncaction.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/virtualtimescheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/testing/testscheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/testing/index.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/dom/animationframes.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/behaviorsubject.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/replaysubject.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/asyncsubject.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/asapscheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/queuescheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/animationframescheduler.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduler/animationframe.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/identity.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/noop.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/isobservable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/lastvaluefrom.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/firstvaluefrom.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/argumentoutofrangeerror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/emptyerror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/notfounderror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/objectunsubscribederror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/sequenceerror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/util/unsubscriptionerror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/bindcallback.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/bindnodecallback.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/anycatcher.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/combinelatest.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/forkjoin.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/from.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/fromevent.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/fromeventpattern.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/never.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/of.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/onerrorresumenext.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/race.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/range.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/throwerror.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/using.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/internal/config.d.ts","../node_modules/.pnpm/rxjs@7.8.1/node_modules/rxjs/dist/types/index.d.ts","../node_modules/.pnpm/@types+through@0.0.33/node_modules/@types/through/index.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/objects/choice.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/objects/separator.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/objects/choices.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/utils/screen-manager.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/base.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/utils/paginator.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/checkbox.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/confirm.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/editor.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/expand.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/input.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/list.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/number.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/password.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/prompts/rawlist.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/ui/baseui.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/ui/bottom-bar.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/ui/prompt.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/utils/events.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/lib/utils/readline.d.ts","../node_modules/.pnpm/@types+inquirer@9.0.7/node_modules/@types/inquirer/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","886e50ef125efb7878f744e86908884c0133e7a6d9d80013f421b0cd8fb2af94",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","31973b272be35eab5ecf20a38ea54bec84cdc0317117590cb813c72fe0ef75b3","55584873eae27c5607725f0a9b2123cdea9100fd47cd4bfd582b567a7c363877","8041cfce439ff29d339742389de04c136e3029d6b1817f07b2d7fcbfb7534990","f2649bdaeed458e8f87da8831ec7bcee585e2d98c5a8e6c6ae3e94afcccc657c","7a770eeb2c4f5afb21feccbf2f2ecbe2de157deeb2743ffc51c75f67a928c512","cf76e2f59b26aea7c923015783083b4820d6c0d85cda2fec3a0f232aabfc56c3","27b7462cd0c24df4b9a4714a6e7ea46b431a6304887fe8092a5aa112e37c4ebc",{"version":"6cc7204cc90bb752b93d42fd0fa4399df1b0497664a4ad7bc03ed60e2d66cf2b","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","b4a1d7cbbe64d05fe52381b15cf139626236d3910de2495911553d24e8f290be","c0191592be8eb7906f99ac4b8798d80a585b94001ea1a5f50d6ce5b0d13a5c62","968a99984cf6bcd89421e43240a6bbd156311c7f260a3de6b49d80e43951bf5c","81564130a4dfe58807a1d0104dd989e9864aa63828f229d12d409297ea13d4ee","ca3d410990c3f448a601edd75e81b3554f9f29a7ca4306f7ddd2371253f50ac5","f0dccc28081e38f53d892e2134b56f8263dd30b57a63533c51518592995c922a","ccdfd0e7b0456ba3596d30c5b61b1247269e4071c190b7ba46c7c783d14393fa","a96d706c9625fceaa32c21c9ca6ffce388c1934a816734fbade80492507590ee","6ad2f098df92a86a30fbe8142009a80af3fb95ae6522ba43e7727db774c8ee31","f2bcc94a878b7df6daca8ac7979a0d63929f229046d3dc0ffd61cf058259098a","2fa0454d5a202146fa0f55109d936825e4d846139e9376698cb243820bfe2966","954a36e6fb78a96855db7bf5d11169913cffa4379f5d3bdff1ec12d4c2727cac","ddd8b3bae3d7770a27e27cabc958a5403a0264a2fd9b1d8c664856dd10e1b50f","24709c15888b35675fa2e69afb985b35c7b945f431cad049ae92092925170959","d285e25378efe1ed0f482ad09b10b1967f4472d7d0cfcefa785ca7f50bea3172","b5ec9050ec9bf9768f5cf06321b5043f2f756081a9c4d30c0ac98d92f0dbb765","f5078aa5bddc5e6c7c112f9c31bddf124fd0c261edaeb466eec5837845faa4b5","2999ba51c002a5d10949db5cd8be48a3a29bc32fa88efea3cc326e8c68233d79","36aa150a4bbb75f884ae855ccba87d5f7ae4e3c266b555ae1616ef00c101f740","a409cb812a758508ca4f687af6e1403538e325566bba01fa3d2ed4a564b771ad","eb120e8d6db6780a844ddfa853803808e4a0c014074d6df6395be4207651c671","5b936ad4699b2659b790f42978db962177c7eab5a4d515d5c271b3fd9efaeb99","e4ab8b7ba7bd27ed3008a44112f05096a42d7d602b0e300bd1026c2a57c78fc0","cee36eb4c5df50e839803598e711b4d65f1360ba23b1f900f554f9beec51ef98","da4cbb795cad55ef143096122de3b00490bfae66a1fca5e3f216065c09a42e10","19486ca9951af4c5bf449379bafef9557133a81e0fd0d65b5f1d8aaa3070d6c1",{"version":"186b7fa1960fcff30e106f9a0444f2dc8a0d71a9adae28310ef2a08d71119da7","signature":"a527b8071457b91c412a56fbf1f97c740e7339e88b43d40b83860f4e180b4b01"},{"version":"704f70aafbee05837897b817c4a0c1664a5521dd6da504c44d37cd0776367a2b","signature":"ed7e88ebc9dcdba029f75fc782bafbbb5fa70fe7ee119d2a0f6ea55268ec9250"},{"version":"17029a34904d8b067349c2745629ebd8fab1431246237829810531f8b2c1416a","signature":"aa7723a007be803193e8de20d5ce8c1d35336625b98fd652935ab2e0af4a76ec"},"01f9bade4ea5db62464fed4f6bda2abc928862000baae48a0f54cfffc1af3cc6","f1ed4b327880fa467f6b7b8a8f0c0a182901213ec4bc732a1de32a24f959424a","1f527f5aa7667cf13cd61a83327ac127bd9be0fe705517bec56abd7f93a3267d","930371ee0f953df416ac187dc69f9d469e1808f05023410d8864ddbe4c877731","fe0150ce20bc36bcc4250e562b951073a27c3665bf58c5c19defcdcb4c124307","1287b82bfb7169da991900975e76543c3c21c42733bee7378e5429cb367e016a","14cb75ba862b72eb71e62062abb678eed961d0c3cb5c5509865929187d3bc22b","273570ff6139f4a05a8863a933c28a6b5033b6d4dba515d06ad71a3efa766685","3cede24c7dbb210a05b2199edb8d37a604fd2000087a92809c5f321b96b9060e","da11cdbc08e449430485cbfb6b13eb649fe580bb1406752d7649fc3e96ca13cb","eb5b855ca3d65fd100bbf97317def7be3ecb5aa27003e931712550dc9d83808f","bb7e70394dd1808fb08a28cf74bb5a59d5e8b2e3a79f601cfe4231b6f671a8a8","426c7929dba2c15eef2da827c7fea629df1789865eb7774ad4ffeef819944adc","a42d343866ab53f3f5f23b0617e7cfcd35bded730962d1392d2b782194ce1478","90c0c132340dbfd22e66dd4faa648bbdd0d1bea8c84d24850d75ae02dbc85f8e","2f7ae32421d8c12ee799ff5861b49fdd76d9120d152a54e6731cbfb45794c00d","da735780043c7b7382319b246c8e39a4fa23e5b053b445404cd377f2d8c3d427","d25f105bc9e09d3f491a6860b12cbbad343eb7155428d0e82406b48d4295deff","5994371065209ea5a9cb08e454a2cde716ea935269d6801ffd55505563e70590","201b08fbbb3e5a5ff55ce6abe225db0f552d0e4c2a832c34851fb66e1858052f","a95943b4629fee65ba5f488b11648860e04c2bf1c48b2080621255f8c5a6d088","84fa8470a1b177773756d9f4b2e9d80e3d88725aba949b7e9d94a92ca723fb0e","c43ae38f0f197a84b6a02dd4a553561d9ecef51ada452b111b4a0b26835b2d4c","a52c5f687d788d283ea1fa38bdc2fabe0eac863135a7dfe175ec52b309f61892","d5a34e19aecaa879c6be6d574ea34209fb1860bda3d8d62ab490d0e92d9f0dbb","205adaa0b78df3a8c1e1f1e2d5f4053fc4ed66c4fede7a8ad75974b1e93c3ac1","ba5a8e79ede28ad4d465d33fb48667846454b1438305e54c5f6825e854544f19","1f6626198051a5751c9f502c9187d0b73ebf5f6597bc343515997b64786241c3","55d7c052f949061d2467f3c9e4f55050fc55682ff60db7f1db15dbf8aa9a4f32","bc706d0006149585cbd859d2d6d015fcce2a97266b6ef00cd8bb8f986e53f5dd","db33c312f936f4236a2e16b177cd9b0d501c7741027eec089ce866e13227e26c","bce62ceb5f89391ef4ec86d41fd77fde16f25d5c45fe845f334c131f607ecb64","68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","d78c698fa755ef94e3af591883bfee3a330ffec36392e00aaacdff3541cf5382","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"6968359c8dbc693224fd1ea0b1f96b135f14d8eee3d6e23296d68c3a9da3ea00",{"version":"79d75a353f29d9f7fc63e879ccebe213baaaea26676fb3e47cc96cf221b27b4f","affectsGlobalScope":true},"dfdc7699360a0d512d7e31c69f75cb6a419cf415c98673e24499793170db5d6b","dcf46daa1e04481b1c2f360c7a77bf019885bd70353a92aa698b9c22b7fe3d6b",{"version":"033350619c2cfcbeab2a483f4b221e0866e17cc4ac514240d285d35c35eecf7c","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"b197fb2d5fa71cebc66e5d10e15c7d02f15fcd3194fbdaafeb964262582f2a82","affectsGlobalScope":true},"1a7f593d587f49ca97710c021c453ab1b95db5e39e58567f4af644f97a5fb0e0","dd4705d1d78af32c407e93e5df009962bed324599d6a5b2a9d661ba44dd99e43","3a02975d4a7034567425e529a0770f7f895ed605d2b576f7831668b7beea9fea","7525257b4aa35efc7a1bbc00f205a9a96c4e4ab791da90db41b77938c4e0c18e","cf87b355c4f531e98a9bba2b0e62d413b49b58b26bf8a9865e60a22d3af1fcd3",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"bf462fd3d934265627ac1f851a0afcc4c030a0d2c8872ce9e1ed55124d1d8cf4","affectsGlobalScope":true},"3bbc26148d18b4e619251ada313379c4831f4893de56d0497a3bb1bb016ea5c5","304f66274aa8119e8d65a49b1cff84cbf803def6afe1b2cc987386e9a9890e22","cbcb993f1fa22b7769074eb09c1307756e6380659a2990d6f50cfd8943bd8333","55a93997681797056da069cfac92878bff4d2a35e61c1c16280ee0cba38702f2","ea25afcaf96904668f7eebc1b834f89b5b5e5acafd430c29990028a1aaa0bcbe","df981b2ce32930887db27eeae29e48b9b841e4ba0bbba1162ebed04c778cd7e1",{"version":"ea455cc68871b049bcecd9f56d4cf27b852d6dafd5e3b54468ca87cc11604e4d","affectsGlobalScope":true},"3be96458790a77cb357856dab45d1cc8383ac63ba4e085f620b202fb62a6e1db","02d85d03fd4a4f63cba0b133f0e0192368dfeb4338bd33f87788a4f6302de873","bb3a0ce56babb71d7c208ed848b4aafe545e7a7e06304fc0c8cfe3ad328cab7a",{"version":"43bb766c0dc5f1150021f161aa6831eb2cc75dab278172408515cb6e47f697a9","affectsGlobalScope":true},{"version":"8bcf09ba67bd0ec12a9f1efc1e58e1ba2cb1ff78920ce6cf67ebfe6003c54b82","affectsGlobalScope":true},"13ce7518e39051544dd1e3124c185665adda05a5021676f2606c2c74ad2c964f","4ac5899be65d5e2cabe3aaf3dfc2cf7641e54dde23db198d9f683dfabe228145","124dacf89c97915479ed6ad81b09ba42fd40962d069c0642fed42e2d9719f2ba","139ad1dc93a503da85b7a0d5f615bddbae61ad796bc68fedd049150db67a1e26","ad06959073c066bb9543ef9c1dee37fc3140d2ecaae42b97bf4e27f2f03d6511","9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","41c800136d52bf8d9ea3a81094708100f339494572f47f4f351b0d798657300f","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","3c1f19c7abcda6b3a4cf9438a15c7307a080bd3b51dfd56b198d9f86baf19447","98e7b7220dad76c509d584c9b7b1ec4dcbd7df5e3a2d37d28c54f74461ec0975",{"version":"d693ae6d6c10ee679462b1f6ee4a807ea90ae3ad1f19daf8c32c46fad740c2e2","affectsGlobalScope":true},{"version":"d21966ba3284ade60cb94eb2c533ab5b2af7fd0b4b28462043f6ebcb8400bd21","affectsGlobalScope":true},"98e00f3613402504bc2a2c9a621800ab48e0a463d1eed062208a4ae98ad8f84c","b8e9e44ce8eba70af569523ff31d669cc239a93f548899a259f3224392a75e6c","005d1caa2a5d9bc096f75b598d0fd184bc848dd2665b050a17a17d5dc1ef652d","619735e4e221e1bf137ae3efa5330beee4a06039dccb876c822f9d8913a392da",{"version":"3560d0809b0677d77e39d0459ae6129c0e045cb3d43d1f345df06cf7ab7d6029","affectsGlobalScope":true},{"version":"5ab086d9457abbc69cca270e5475073f2e8eb35b2fb810c516400de7b7c7d575","affectsGlobalScope":true},"2a2fd53f2d963624b596fb720b390cbfe8d744e92cb55b48a8090a8fd42a302d","1f01c8fde66abc4ff6aed1db050a928b3bcb6f29bc89630a0d748a0649e14074","60223439b7ee9b26a08d527cacc8b34ea6c6741589ef4949f4669c9aeb97978e",{"version":"48fffe7824c2e8cf8c812f528c33d4c4f502767582083df35920a7f56fe794b3","affectsGlobalScope":true},"561bf7d1d3163db272980f9167b4b98f6a9ee8698c5955e9d9584e84088aad51",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"a42be67ed1ddaec743582f41fc219db96a1b69719fccac6d1464321178d610fc","211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","46324183533e34fad2461b51174132e8e0e4b3ac1ceb5032e4952992739d1eab","d3fa0530dfb1df408f0abd76486de39def69ca47683d4a3529b2d22fce27c693","d9be977c415df16e4defe4995caeca96e637eeef9d216d0d90cdba6fc617e97e","98e0c2b48d855a844099123e8ec20fe383ecd1c5877f3895b048656befe268d0","ff53802a97b7d11ab3c4395aa052baa14cd12d2b1ed236b520a833fdd2a15003","fce9262f840a74118112caf685b725e1cc86cd2b0927311511113d90d87cc61e","d7a7cac49af2a3bfc208fe68831fbfa569864f74a7f31cc3a607f641e6c583fd","9a80e3322d08274f0e41b77923c91fe67b2c8a5134a5278c2cb60a330441554e","2460af41191009298d931c592fb6d4151beea320f1f25b73605e2211e53e4e88","2f87ea988d84d1c617afdeba9d151435473ab24cd5fc456510c8db26d8bd1581","b7336c1c536e3deaedbda956739c6250ac2d0dd171730c42cb57b10368f38a14","6fb67d664aaab2f1d1ad4613b58548aecb4b4703b9e4c5dba6b865b31bd14722","4414644199b1a047b4234965e07d189781a92b578707c79c3933918d67cd9d85","04a4b38c6a1682059eac00e7d0948d99c46642b57003d61d0fe9ccc9df442887","f12ea658b060da1752c65ae4f1e4c248587f6cd4cb4acabbf79a110b6b02ff75","011b2857871a878d5eae463bedc4b3dd14755dc3a67d5d10f8fbb7823d119294","d406b797d7b2aff9f8bd6c023acfaa5a5fc415bfbf01975e23d415d3f54857af","7d71b2d1a537fe41760a16441cd95d98fcb59ddf9c714aba2fecba961ab253b6","a9bd8a2bbd03a72054cbdf0cd2a77fabea4e3ae591dd02b8f58bda0c34e50c1c","386cc88a3bdee8bc651ead59f8afc9dc5729fc933549bbd217409eabad05ba3e","af652818fd1fe159b15b3628c6dbcfecd54db4296854376cc28990eb781b356d","2abe33f53bacee2afd0d814fa870afd29c2d358e9926f6f3ea8daafc0b25ee35","b85d57f7dfd39ab2b001ecc3312dfa05259192683a81880749cbca3b28772e42","7ff8acba261fd7e773af1c73e8c75be2e21abb7a63fd134b6d4f49bf4468f75f","576d63ef3a0408e9044ab3855ea0877b5f0c674752d4a339d79b8ed6bb88b02a","8c5f0739f00f89f89b03a1fe6658c6d78000d7ebd7f556f0f8d6908fa679de35","40391fabf54c15c70c44c538a98ca9fe751a06adae84adc9a9c2da765452a538","21e7172c2d896f74f2da69332772cc5737f4a427d548417b37a2ce7cc028bb5c","e35935eeed1b58165818b7812a6b28a76b8662a46b1965b76bc193e8b76b5ff0","bcfd0730f94b0958a01ecbcee4f90a0aebb27ada8849eda515121af79a0722ee","dad732f9a3796532c1c455d35d8283fb373944bdbcf62802232495a9091bd301","063ff49d93382d0cfc5c34ea58b7b299b9ded5de01f467b069e2c7e4c23958d5","6ef1969de0b41a27c881cc9651a8d51abd34fb9369f9a95ba0d9551e113be3cb","ce8aef01412352762216354f68be62ad22e1f666275153d3f3c3c7fef3506d97","78429984a5641a4f7ac4e63fb40a2bc82b0395c97eeb6004ce43508a15f96a05","544b927ee40818ed7a9b4da4e26ba5d085ac291f613d8dd5e6d9337c02f5ba35","ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","1b831600aabe1c065830d303d087189e1ccfc93a0ef1882eb58a336ec1ce9f2f","75f191b59fe7ce72d1d7d11d0f329a193843f54af93182fc5a65c37d0a82c85a","cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","7bb1cf51c31858fab2ce1f78170659906c9e519ae3c3a33ee64bda5c9e3a0747","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","18c04c22baee54d13b505fa6e8bcd4223f8ba32beee80ec70e6cac972d1cc9a6","5e92a2e8ba5cbcdfd9e51428f94f7bd0ab6e45c9805b1c9552b64abaffad3ce3","44fe135be91bc8edc495350f79cd7a2e5a8b7a7108b10b2599a321b9248657dc","1d51250438f2071d2803053d9aec7973ef22dfffd80685a9ec5fb3fa082f4347","7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","c7a38c1ef8d6ae4bf252be67bd9a8b012b2cdea65bd6225a3d1a726c4f0d52b6","e773630f8772a06e82d97046fc92da59ada8414c61689894fff0155dd08f102c","edf7cf322a3f3e6ebca77217a96ed4480f5a7d8d0084f8b82f1c281c92780f3a","e97321edbef59b6f68839bcdfd5ae1949fe80d554d2546e35484a8d044a04444","96aed8ec4d342ec6ac69f0dcdfb064fd17b10cb13825580451c2cebbd556e965","106e607866d6c3e9a497a696ac949c3e2ec46b6e7dda35aabe76100bf740833b","28ffc4e76ad54f4b34933d78ff3f95b763accf074e8630a6d926f3fd5bbd8908","304af95fcace2300674c969700b39bc0ee05be536880daa844c64dc8f90ef482","3d65182eff7bbb16de1a69e17651c51083f740af11a1a92359be6dab939e8bcf","670ddaf1f1b881abaa1cc28236430d86b691affbeaefd66b3ee1db31fdfb8dba","77926a706478940016e826b162f95f8e4077b1ad3184b2592dc03bd8b33e0384","aa9556edc011a3cd32acf420a6b48860465af09c4c3b77e1e1e6672720ca9706","e4ba061c5bcfc75ef8a18eaf677e0ea007ca67931a12aab286cc4a851ce49263","3e32442a95370ea92ffeda01f44635a97f8cd94b44f6e50717f1c80bd6ded96b","3feec212c0aeb91e5a6e62caaf9f128954590210f8c302910ea377c088f6b61a","b73ecfdb0fb720da07f9ea66ec3a30b84ee6e8628d283dc4a9369acd7587859a","c36cb394c92d03ff42f15d47c78325524c178b0514cfb0dee04291ed1737500e","21d7bc014deea73cf4e1916536c7c5ea93d3b60ebe88621aff4736f615ae10e5","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","b78cd10245a90e27e62d0558564f5d9a16576294eee724a59ae21b91f9269e4a","17f0ae35f62a9586cade6c10e5a0d61362257b8e03e661c49ca417e4f3da857d","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"20cf86e0fe2aa418f19ee727190cdf1859ffe64f7a71abf7d8cf008e1efc072b","affectsGlobalScope":true},"b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","0e13570a7e86c6d83dd92e81758a930f63747483e2cd34ef36fcdb47d1f9726a","104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","5c45abf1e13e4463eacfd5dedda06855da8748a6a6cb3334f582b52e219acc04","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","6b6ed4aa017eb6867cef27257379cfe3e16caf628aceae3f0163dbafcaf891ff","25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","b83139ae818dd20f365118f9999335ca4cd84ae518348619adc5728e7e0372d5","c3d608cc3e97d22d1d9589262865d5d786c3ee7b0a2ae9716be08634b79b9a8c","62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","87a4f46dabe0e415e3d38633e4b2295e9a2673ae841886c90a1ff3e66defb367","41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","813012c29722611e2115e0caaf9901967ebe218069d67381a6931461bfda2099","095535ed081363177d12e80aaa9d8adf12b7460386fe0ee698b0d0f5b11924dd","28eb5ba7409695369b36b095f9b43a5f7b8bd64f3a7e36bdcf28b99484c80991","eac647a94fb1f09789e12dfecb52dcd678d05159a4796b4e415aa15892f3b103","0744807211f8cd16343fb1a796f53a8f7b7f95d4bd278c48febf657679bf28e6","689be50b735f145624c6f391042155ae2ff6b90a93bac11ca5712bc866f6010c","743c8570cd33d1f7ea68f15b2d08c00aff25ba50fddea536a035480bbdb1b737","5cfcf736d56d19e67ae6ad2b4ab2f1ff904eba5faf59ac8a1b395fe878f60075","3ba9058abdd46e6c713b291f280b5be58a93be3d6a441a86976da61c23588aae","2cf4aa5376dbf24f140844d01f6c43bd183e0e0df692b6bae5457d84171fd966","8b32d4ac53ebe9c98c51593282052b2d9ad589788b254d573ed357faec6c8b5a","43a4860173cec933ed8380e55f7a4473dd0df38b43e706b492f443cd8612bd87","f90d85d4cb38445499bdb7e7b013e4f64d99d157a6fa0843e998495ceb27b520","2e178a87e7bf03a067cfb1cf5573e7c4899fcbc9f462a0b0c67d238e39b794a4","901becb8779e1089442378fda5623e607ee4588762a32e7692436f1ea81cf848","8286d84d2567b713fd6a1fdfbb1a0abc8cfa668ee1e0e83d7dd4ade5761f2750","f28dffc6bf9bbd8b9dc156aadb74d11de7faabf547eb9f0aebb8cd03e8750a6c","ddef25f825320de051dcb0e62ffce621b41c67712b5b4105740c32fd83f4c449","4f64ce354176bc42b9f9647ea28cd2452a798296fca13f281c634c32f1473e52","93a98ba747d8637f2e65250461ff910355f755caf6a29744def94b1c0636843d","f7163a5d37d21f636f6a5cd1c064ce95fada21917859a64b6cc49a8b6fd5c1a8","a3b563e1c55f84097b8cb1f1f479f7a4a2a0330a0db15b9faebc8333d0022445","1b3dffaa4ca8e38ac434856843505af767a614d187fb3a5ef4fcebb023c355aa","ed4f432b7f22e24ae6d78ed1a04aa56e3c0ebb0f706fddc88c4f0bfd613147f5","3d9149a519323dca33775147c582ee89d9711a6ba86c1e0f48f27151a42378aa","54d61bd445a5d59ed5b245dba6a93b2c60e15e485fe9177d5b1c04e6f009e45a","563142f8e6a6e43af17dbb1f793a29c4bd2ce949fae1d07b2196952a1165c542","524adf856f4b174c216ea1a39d7c8e3605971b41c4d73545daa6d5c435cc15f7","262343f8dc8aece93a4f3d9e0c35ce62353b3eb9e5c70fea8875117b25ee7d74","f1b50f47e59f351e1961cc5da29a1f16952691644e534ab5ccb0e7304ea18f8d","428a0aea24cebcdca678d3d2d180cba82aa8a3de6401c18957ccf67a946ec0c7","9aac785e5bc340e5ee5926e842fe9ce8a3c36fb47fdce7f527d20df5939c849c","b9ffcd9703a541e75c47663a1fcc008c262fdd641e951f194c40243a22a05ba7","5b0a3e3355ac6fbda7d4716b314cbfd51e462acb124f254132767d4c35c35f72","45433f419debd73f67e921b88c3d19b68f57bf0fd19a5499328aff2624b4878b","7733e58333aaa48c83590d74885627daa80843db1fa6adf1765cfc28d4e2d090","0222fc77289180c4b5a7007ab763f35fccee59f3b3ffbacb674ef381b4c2d3fb","fb0b1d3557624d1662f4c8dbbf4f1a9ae73ad078e076c549266b9b79684403fd","74d156da7c0990e860289df51407cb1e89f34bfaee212315855475c16d7ec0ba","519fb0cb3490da710309a87f8b7a48037593710be3bae865b6a6bf342792c244","97988aff51a4a5f964b888d2e3186c89c9afcf3278aef2898d1a73c68c58f38a","0a08486feafc6aa6afab974ecbd6faadff4fe2861bc6b53411b9de552d0bea88","6be5a1f725beeeb4d0fe256276e7e9abf6336e61b1bc6071f04c50414b5ce795","1e6f23517b361d477613245b0bf0551bd51fc677782f9d475dd508a6b504aef1","4f04ce679385d4c4d57dc8b6cb96e57479a94f39c17b9dd6150461f5bc73259c","2302f9c5581535cb93c51cf7a679bfa92ec3506e11e13682d79697433c46850c","5553b61109414d9dd5f58062edd262f1129f7d775caadd0c7b1abd4f6eed7b42","1b1980df684e240d4a3555a10b29b6ec4f473ac46b86e39cc6a6d398bb2c3ab5","7157f9e6015d59598aa509b7aadc1c839abb5525879498fb985f7b8b6acc2027","73644ad9a8f54dfeb6a7ff41079f9ff31ce79e8708f26dbcaf4fbc5ca9c6ca15","366b326c56979116527bfa465f30d49b893b28823bb1cb61a2c4b4aa58b236dd","5f68f6f444d367b2f4dc03dfc3b9caa33322550ad164340ff15b1b2b90b3002c","6b85c4e1f913cbd26d7939aafd5118945718fd785da4171d3b3183f7be3209e0","d65665b4dc248a2db2d480d8a3621e2f8d3da91ecc04a9c13dd8194c213c855e","b995b3cc1533b0233289dbc4ea1ccb77700696010d2c9ac2827f30a6ec378eb3","6a72bbf94c729d5815989703cf6eb36377da66459067baac7b73e48961a1b0fc","b811f4177920be6e13c1b953276f5b22324f6637838098f756a31cb13f97e771",{"version":"bec0a32742139678b5d844dfce990c876eb8480f06fc66f2435ab77526784697","signature":"fc13eab58ce8fdea382686684ff61a01c19071d7fe72a4fab81d37d0339ce8db"},{"version":"b73eaeba350284950d2667bb69836fecbff59b335f1bfd00d739466a934ed8bd","signature":"12169dccde1fdf1d334674fa3765593253dc03da70d32df46d04d91df682f6ae"},"e8f42ed285a803fc1a7452cd2c830b4d929521441a31aa0b7c5838510ddce4ae","bfd89b974ce0ba797a2862d116ddf8e8639e65aa8e43ea8c942124a3f5b6891d","084672b24fe8c6e7359c994182b97327866ac85b3dd0ddb5ef7a8cd8746ca812","e6d2ef3521bd008c6a6e583dcc87cf07ba32e5703a487b8d5f0045a50637fbbb","bb3d41bd5c9a860b2cc28e8a8e99523499c264b9f90ea0427feed3f3dc2311d5","879df112b0f6594dc644a219179c177d7ca18bc66df31b642232c4a935301d70","a58630f5e106fa733ea6c27fd73d057fcc883ef5e82806534b84bbb9276f1ef6","dfafd1ab4024107ae931c04fe05e119801de6872f16a73cd21eda21994443c37","318cd999a67c7bbb579857391e5d6596005b26d94001a1453d098af0e88bc6fa","c87f1844deb38f806c5d5a3d648e9c9c0c4f8efc6eb4023b9c700f8b353ec3a7","497803e9f45f4205e2025a8f87e86eaf40ed4a82b54e69d883f547c420efe3a7","423eb5fd2e7a10e66cef5e2d1c5d66038c7fc832ff468f729bf6bb599b8d5cf7","355558bd278dbe7e48ff4e247ad9db8acedef837eb70c3e9990ddd632bf34459","99005ebf8d9bf69f6f502f4943ac859ec65ff80436f14a4e218c195116ed7933","76d899e4f72aeafedfd8f063f9dcbe2ada9e367d0bb2dc6a01b9929d3ebbd58f","3e2e3294802653fbab62f05d5d656411c657641d8f7a3ce64295eef44b37ef62","a83429be37936c98850975c1a3a6896bb8a113a270b8cbe3994967f1d41458a3","b07e6525dcadbbb6fcd7c5ccb5e24eca87d25b24b8a23b49891c032a479fe660","94dfcb837326954195cf38363ef8d8b909243549579c59fdde344cd8d8f1886f","fea9248ad36c9709b49ded0b1c19ec8f62a3d27ed75702577fed5481d3271381","570ef62a8524999af0ec1018cad7c0446703dae319ddbe15ee3f917a7240b2ed","a4d2fa1a85755cc40d0ac9d0dadb7bedae1872b3306ba434f0fd817c0b2ac3b6","a6065449803fc0adca1b39a2588c01c4d82e4b2e3be73bb66f601d579aa2a583","75a61026bbc08cf29498700d1ed73b115734d9284085ab1ea0769d3d1a3c3d8b","7a4ea13e3f6400918190d2f34992b7de96e6145b4ebdf2030976594d5673f50d","f12d2dc07ec8d4d92767b1e706b5f0559ec73a4e4e3e26be848ead09cd4b7cf4","fbf66bb3fd75e4d57052aafc41f752f8fca1c801ad502ff06ef11a6ab6b86200","a336ee6381415fa7141edc1a1967db12e353b1cfad3af6f390a3c47f146faa3a",{"version":"ba78f9ce29675d58602a776d40d8ebd1ab68f629f23531a02585c273c609a064","affectsGlobalScope":true},{"version":"af1035995d0eacf00de64a099c3a0e000dd6cc61278be4231fb2fdde1402ea4e","affectsGlobalScope":true},{"version":"06732f1a28de36d7170087e98cab466b6c215a865549fe621a61f0856e71f5e9","affectsGlobalScope":true},"d32bb5832dbe38545fb75182f828892c62615b541f00f0315bd9001a56ca9eea","0e92eb2b7b13aab8df24b0aa13429381e451fb615cf09339fee6811c15dc4b16","bb131427faf014ff5f79618ae26b37f9a882965df2a691527ca611932090c392","98008edca6b09e0b918cba457a53ec3a069738cf19a5fdcf07410b9ac11d9412","2e7edcbab276bdaf58e0f0fb41730fa0f2ff313bb49298f88f1a2ca14b2e0861","404f780b46c5b8ec2365fce9d02f08c87b4705894fd4139454044d18795f083f","349f8d3c16262ddc0c320423b7926fafd808d2afcab33040ce1c1898832e2061","e05529350b302ebe89be69d6dd6d8c7b0e2951b687dc76dc254270f7c16288ee","21de0be02b90461d822a0923f3bece763c133cb006a910dd5d82924cdcec58b5","e3661c3c666fc6fbe59be3eb2237e9db5e11f9e154cb4bb6617377a1ce2ab74b","183ab05144f44904351e48a1c830cfd3af0a0e5ed5daa3efae83cab8dbeca8ee","fd98670309b2b2a1a6368aaa9d9247acdf5228f3fbe056b54879f6c00f8b67db","60032d1272a81bb1c6223c7b73b25582f04afe35c0ea6a0bae97eba41f325db5","59afeb5953fb89261227eee5f1799672d2392d711f73acb78b6b3f24052951f5","702cc0c98bf4587edbdae3d2046581b23fb6258f4b20170b4c550c0badaf0735","92361bb81bc685fd927aa2c6131a0a5e5c5e4a4e3c22ea1c25ce0d18d81a0f03",{"version":"4325586920710d4144875c44863afb8188df68aebf085abb972d7642f8567481","affectsGlobalScope":true},"92a8842cdd6aeb28a9b76e87e76aef678a1b66851f0a033af20fedf0814d8ae3","38a44618f9e79b91904d8e494962485da81242a48a373ee4fc81a296fb3fefbc","ed21fc9aaa2b140e450c3bb396a2cdf4e44c68763e5b852bf0895a40bb52938e","f1a2d27b4066054f69d5735fdb3922f4caed2282d41a71cf28bf13c32d2fb7ff","1671b44d4d3682017910fae9a4cf5eeea92e3c6c9799845c5d7736f5087f6a6b","86c2eae791d31ae70a212101682611b2f9c2d7eaea319c5124e73538d0154aac","cd06b3a0582b2ce01807e99f8b0ac4489b29f802be2dca5d6fa90743f2029147","54452ce777b93c34339b5bc0f70a8daa71039d3a2eb0a4befc9dee35a92b3bbc","bb4c54ee2095464289ebc46fd10d1b8fab8fb2b0fb6f067700a1688926531534","972aebf555b143be4fb7fd7a4b6cd852e39d57cbc3b16f471b079647b8adc648","cae2eb67b331f068f4223309f0a36c32238a4b635b08317d536cbec4974be49c","8c8588308211bd2cd12e439b243b7def9e9c2495d5e44de529e7eda2a9fe87b1","4ce0cf12581aeb5905ec3b6eccaf8f91ce05182dabba2f02134f1f6997868e44","49d2cdc2ea6f5d2384963e094e2783be2d8cd4a41e3298fd433a1cccefbf996b","f39e1a34e307e787ecea0a6ad78f411b8f0efe37f58d205a36fdd392a813b259","ddf462a2bcbddd1f95a853240f5ef49ab67649610807d41f68aab77a56986bd2","c8ae9ca3e1c5b00bf4cd0364de309a7206b815dbeec85fc2d353e1718143a32f","b2bd76d9d82429c1c841033f30f03f88cf6555cc6e05598b9f638fef3bc158d7","5445c5c3721322bee3563c0d1553d9acefcff95e7766d238243ed645f52e9388","af7f7998e783bd4bc24bd8a2e7a13feb21629d6971990f88aff84713ad0d4394","7b29c3a4ac26d116333fcbacd7ffe5bc3f910839fd99a1e280e1fd98ff9dc177","e416b38de27ebdb7efe6e6bbe022d04eef27d551f6d99c0208eb3b21d9845110","3d3a28b3d4d294a91ac9c1ae8dca4465c6f955adca6ef47f31dd4190da431021","b8f88be4dc9053c2e76972ca09f803651dd07e8aa39f775b0a9dfc7ef591e11f","7cd228030dbd863b5d103ac940460b70fa9641f00864155375a816dc5fccc8d5","2340969a0c8759441e86e3d8152cecb2c3bfc14e985ed475bc30efae58f2f06d","cf737bd145c8db29963f6a058201953af2e49b939177274f9da01ef9b4e6370c","4c0ecb8ddc3b98ae09a4a7536ee99d85557df9a6d39d2d63f05664a4a53edda1","93be5dc405597b104049731a69015cd2106f0d7c33109c4c588248733a45661d","e497e5bbf1c87e0606fffe3b6a15dd3e6d81896810bc21f162ff32d3158633cd","c09d6228f565915ce7a29ddd6fe99f1dd4d0ce3e72e3e50f42a943a363c8738b","cf737bd145c8db29963f6a058201953af2e49b939177274f9da01ef9b4e6370c","3a2a94060cebd93d6d517d79b1878b37a86d1015ed9f098823775288083b6552","716a8150039cff89ff7c18bd1b8e1b449dbec0078d16137ffac682e29abbff26","4fb3bcbaea76ca5de0b540a7d08060689478bba12050a1079658d2a6dfb8cb55","eabfe1e500c6157fdaf61b523ca0b78f9ae065ddf3b1d724f1b33fb64ea0c37e","9a02bbb5496f282f566b0919d424d1900954a1336b48107ea1a9e83b1d72778d","d6ace9094a15298bfe3d41d5044dcc428cca7297cc00a51f68f90532eba93024","ab356aac2957f1bf8bea60c521b376bd4c8b6de773dd349dacf4edda4f72e293","39a35ab9e67e65bf2002bb1e5d87db9bebeae6bb53b1d29b4f9f8076fdba16b8","1ba9f8a3b280a55d88c6e1df49b074a5aa0e1693ec9dd28e47934735486058de","aa13abd0ef894868b126344c069cc89381a4190e35173c3d2e454aec42eeee40","798053f465afbd2e90f3937fa973f1e2c96e6433d13c7cc4ce014e69a1fd0bd4","c9eb3a46a739f4d271a0a94bc614dc8f2b1366b46e4b243ae854407b2bbf8ccb","579f122d78d8cea6ec87312d15444b7abfd041e455f5a9e2938c61f18c2001b0","a4a7cf2c4f4d88bd1deda724d35d1168b8f2e1c09082e2c70112c25162d497a0","3299646857235b12357e430912d9b1b0ede6d999e29b8ef362e28c275438d365","939ef9ab9b0c35e521b4c33b636a0586f5473781df6d40bfac0c332f00230901","3b68f938c47008d092c4580a9b9d91f8db9ee05871a33001365faa24554f30f7","8ffb5df3e52b4eadffea5525ba9c83f063c02cfdbd51212f2a1c1708db14c7cd","19184c4f05fef46ebda387a66d0c3ed7bc2cce2a4bbb83b544a548eb7772d129","5707c52321590e1a7e3de38e43fff46efcfd37fa799fd49cccbac1607354ca92","cf737bd145c8db29963f6a058201953af2e49b939177274f9da01ef9b4e6370c","03f78ebb0c6abe856452f1d70a1cbabb3864224437e19893916e4d64f7d7400e","f41da493234698d44f778c800c33c0c158f90dba51bac63d153c7961b118c442","51c8112f70d6900d161a68a865be7f1cfa75be1150123c3d0cda9089ff8518da","062051e74e8bd1eb21501d8e98bd27b5fb3b819cfa113f3f0632e99063138848","7ecbc567bbd9dddff00b307b8862ef0601b06cd5e9e011e8d0e9c9e87efdd8f5","bf14b90da44866a1acd0fccf91b676de9c01b307c9b43ca0d24e3b9d5f2ef838","59c57708691a503056142e60c3c28fe88096f465c83025e456910d1fbd147b64","1a0e44ce7d1d4676a0857139324efeeb91eae4923e59a1a60ec574c755678e62","1d2f73b8d26467f8e5a485e1d46738422169cd949203f606ab5ffa4ae494ddaa","d0843e2623d751b85c4bce4f6da653c2f8e6fdaba3a974907a7448d5f0081813","1f84c5bfb69f88d41657a8718a10f5b34ddadf800f5ecb50dedbd4153512d832","ff5103cac5e1d7ec6e5afa2df15e906304ac41de090c47c96759766ff7bc7d49","1c63d5b41e9d3fed9eb0410c75425d66392a397cc3bcb99311b9d770940b6c71","71a8f7be5e1124c9b7e9b627ee6427978d138a6e924b52df7baf098e2aa6c360","a62304125fdfb135b3bfe8285f9de0a1e7ad4eb4e7a1dee2193789ba10bd2aa9","d06a001cba9b383f004d6bb7092514fc1f9316ea5ffa692a47614df0a54917fd","b6f0cb20d23b726c3b30dbf7c30ce55755270efed7aa522b7cd49021cec2f1fb","76de10456713070bfdc5d4e7ccbf993e1b245e1dc4537b44ac4cfae7ed9e54af","3dbb82e6d1939fd00d094294131318197172ddcf73ba7f522566e53ef48cac1a","d864c9468e8095ad5108d87ad99417cdb640028c36637424a4e497f363617988","d18bf9bcf758d2829cc67507fab7f42f6e2c081a4b5ed4c0f1a544418d8ab86d","d154f7878deb66dc96020dd0d43c0fb13930bdd7b9e4388021aa3960e7b42ad4","75292cd2d7ce67ee3d24d31516ad58dc8403b51d2c7b58e7d3a78435d6b78f52","238f6c817bd1f649301ee4ca32d138179541126232cf0fb37dab4352bca70f0f","0ca29fde337113b172465f521f068014dd251fb0c9f02ffdd30a0732f4431ab1","8e42ef65474bb14d8d2be74a1361c1d316f1dbe9d6c7fc1016b3663708296dfc","c3c441d8456d1bc31fe0bb10e320bfea6817c72a970cd9e40b8e8fcda10cbd51","130597be9ee0b264de06d5dae8c771bcfb9e81c9eb4134eb1d8016951e69c870","f306facbcd46afbdfadad41794a42d1a09eab13c0810dee92a28b9886ed8758e","0122d5d49235cad953436e52a540407b9a187d2083dc81b255ab728cd8590cc5","af895c84f0d2d4ad830efdc29ca94a9c387bee5cf00cbc5f8b0e9faf2add3db3","2983b451c80bbabe54f042b9d6f34547d098e40e00b6865f9cb297cc2f058849","98874d4bc3e2af71a70696e4938d2c0b947bf3d8315e0ef23db184433c9934f3","6bbeb959bc6c6442d90ae14b19b903ae193c5481c9d83b4e743539d6a816675c","d769c515846066942e5a8b0218686fb095a1750f602dfdef4a417042d1a35d58","dab93386e46e6842672f7ec634d099e841c339a7899b7b70e2e02ae070aed8bb","c83df839216d7e3ef970934fcc331151b81abf2647cf5e6a3ad9642bad74d4f0","294bd17c185ad968753804a101ccc603844b59f30a795895313d200555e5debd","20e76a9367ae710ca103ff1f3cb951f2628c66c18ef4a7c48bc46eca7ff6b086","403f527dad17f9eded7043230a1a5a5ccfdf11fe928f9f3f5b1369f4ce882f60","be0337c6a6f8b56dffcbb4590c8c72cc0c7a8f6fa47f4fa62d57507518b9c817","abeaa9cbff1c48b5cbdf78b8ed5e33610febb7ccc16bc38c9e2a1a16fdac1971","aaa136ac0f40f4f0a6fc7d14a90dc900126ef9ffcc496d4518247be5d7d78360","bc7b0556d2f2f9f165b6da77ef8a75f138331efe892d422d5156a450f39d3f41","3874da82aeb3439bb276c5f3fe20be2a9894b49126377fcb66b3bd0802e1ecec","40b21c32d6093f70ddb6749d8d99327de738bfa8eaeb2a5057b8fc2740551de0","5f69fcb9616417e98623405db8f16c5f4172ef5d3715312f16cbfec301f12f3e","4132c088cd466d5895e66a689733121acacf10452d801417938beceb100c975a","6b09a6d9b795845c16a5bef92160442e61320ca55ceef9f852409ae27e1cf49a","c6debb6cef57d1d3020160759e3ff94df73ad12cfb63d2e95164f67510b130be","311f919487e8c40f67cba3784a9af8c2adfb79eb01bd8bc821cc07a565c0b148","2f0ad5ea2e7e530ff91ccc2414f67f843a68beb38fb21b020e0a1725df29c7c0","529cf338bc74beb95a0778f2f17178ad78409ef6523840f9ede2079de3ecdc2b","e3af9e325894a58b5908d3eea7aa3f9ebffae55672b5dfa8d29e61d0ff7e3981","3f81a9cdd412c1048d9c25535b9df0b463997d6cd88df0a0a91d4f42efd7af72","6211b2ad05f47d231a3e18235225d7894002dba541500dd1021033e919e14e84","d49b4ea7c220c8dab4b679dd099e643b83ddac9026cfa335802f21a3f82a7994","c5d9c29ff7302573a8ddd3a3923ef017c683a915d1e626ed39fe20c0f25858e9","b058355d326fa2c98f7340824a77bf5e9b61354609bd97fa62f6337a40e5443a","8abb5a1a747b3fafb0513c5f595ae41f7608203ec85c289af9a8499bee0cdd0d","b162314103b89e05cab5f0c65c1c6cc88cdf38b4618db69ff0736667e3e19a85","a92ac8af7861b950098ceb4d3b9b63656f012f5a96738af5ea0255c536083108","abe90b39bdb2f076232dfaeb9064eb659aaab4bd0f5f9c0712f4eadc1ddc312c","dd8df82fff2c1bedd09155629867c336d235f65e9f6c235aad38ec53d25dac30","f216a024fb59c9a9864deaa618eb49b19482f699de5f1ac2aa60435fdba30074","904904a41ea0779a7e6e6ba1acef006202355631fead0f63c20ea6a972c0ed5d","e466cd2ac6e5591231b5d7f1a46372dd5acc7f756a9010e4312d54ee7af13589","5be7e85256dbf685d4cc2a6c5a68b60b5209f794768f8d15d2e8dc8f7b4366b6","560443781166c706b7cad3ef5f025d346e76e67c81325e09c3b08acc32fa3255","09887fa64ef252278983c7215aafde9a83aace65e129b5ca98fe1e1cb1427a4e","98bab473d4dac9cc8661d27766f3b434448502525c39b87d765ededea19b0b54","46c51930e69ccd9c3a069e6afe22ad8f057e4052ad9dbcea8554a13e25f3a8f0","53b48efb03c058deb8fff1231547afac2cab5eac75512bd2b88029258520044e","4cbc005058899e5feed65b3d2d6957b4e909bc6ffec2a8f3918e023d285affdf","74a97040d1ee1aee275b556af4220b58cdf991bd2d51f762951a4226964632b9","a3dd95a75c8b346cc7ca2fc749732f775f80c5ea1a430f4d7d847dd2eb5b5c16","34fbb93a17e20b6bdd513dea5647db39ba82e18ed595a1dfa3d3dd1859b9e252","776fc60a39a707fab820ade179a919f182704e6f39050deaf2e36d53f0e97179","39b7522fdc2159d684b0e23b5b1b2ad6b8eb9a6cce1226bda21c2c29bebd2515","cfc3340169107891b727617c2f3ed8ec456b57f5a13cff6a940933e302d9b781","0e7844a232d74f7e4983f87c86de57166d513b717d6139cfcd3ca08846e53ae7","3ef11f42a2940a69a61150444e3a66e278c062aa6e2c64e2a6b3dd318c12d028","36e7b8c4d43415dd1dd2b350fdd47ba36fa971a533cb6fd436e6c8235d0770fc","31eccb65118f01bf9f759b1715d73f4c5c0bc1aa8d22ef6c1e4b49f3e82e2445","6119092db2a7cc44918001597c41b671389299ecdbdb05c12cc964a83141ac88","9e36291790310e2125629c73298312aefea412af94f6fe4ec22b83cf62dfe238","4bea1b58743d0cb0bedbc4c1964951a6024afe67a6e03949560fe144386fcf12","59674302c8915a926a4f1f1ff32616d82e642deb6909dd38f7a1b80352878a40","bfb0dfa8b4681f9a1b53de893af90fbdf371cc5c51a0eef83c310e699f5276f6","aead19a3f04d8386bbeb8402f6f24a9796820c761281b1efc5360ab0b99eac61","c98a415ceaee6c54e061cf66af07955d55fc4def905e55bd5d2bc7fdd5b60227","b3834898415581402b23948defac11c38d393384a19a6dccae8a67a2e72a7871","a886ad70115082bdd29c7fe9e96ca7c6c57a452950ce545158ba8c1e039d7d92","33ddf204407fc7277af33daa016271829fe95f89ddac0eb87a075efa5c01e238","ea9174994da101aac11c1a2ee68b04d3512ec4a44cebdde5bf6559552fc4d04f","5c6065e5e6f79bc7b10427ea0b82445742f1d33823d458b416fb01c05e854ee1",{"version":"d38847e436b486528d83ca602a5fe6a995c0b691b29c6046ef87567f5fff38e4","affectsGlobalScope":true},"03bd1e2788b01eac84e0ded9a9c858183f8fc5a65ceb7e16bb52a52ddcc6d578","2b58d91c9c65ac81c4c77c91c54a5885769e50ac84d3e997c64209113e3c400f","29f813cad34fb4813e868314e537e55b0c6ccd1056ec3e27aca47aa311a67941","6aef1604aa60b075a19519b33dd41b7100286c789acb0953875b815dfe1a441d","8b92b41602012df284edb950d98c01acb80baaa92606fb83cf7ce4b9c8c610ac","9a9061bffadccbed4c58361cb5f3ad41313102b85955b673f86a853d0f3e1cb0","74135589d8b3f5f738353e2f49b726eb32f6837ec4d4adb4b6dbf881d5c2448e","0e071e95ddab1f5097e49cf3a0ff6e43f4e00814c0b0822b3bef85e35d5cd616","694940bbed3e6128b2117c87f0579fac2aab8069c86a875cf046719ce1843eb5","f0745ae71ec80cb75e5d2722c8e597ba569685c3d9b511b3f423e6dd671313c6","ea7fe47073f4d3f850f20df8b68ccafe1094cf69889105f7473f6aac71c6bd28","436e26b5eb594a43624302863e715d04997bdcc672ba69cf201be7a8fba1be48","e80b73b8cdd9ee251a5e001487d4b569193683fd3c490ebf57a031ac52f332a0","7b21765030cb5e5f915364f63a8ab3f3f1ce505bffcfa935cbe49d007db0faae","646739bca51187effbeaddf9261247b0587f13253edf37c206f32a370e81cbe6","e18457efd2248e7d609a5ca7dd91e7c40bb91198bea28d1fe89b56a4f8d1b1b5","fd3e2f9052009e908d9d3c44cf1aad368075ed93fa0c5bf7c4608a2f104ad9dd","66f7cbd6c0a29ede7f24471b9ef34fe3d10199f7042d962f1c20bdc18ecdd341","6e73ac843f234f2adf1a59291560610535826ed9530c16f12950736f8aad7767","73ff6a32f41c83ed84df5131b6167d2e50652ff48bbe25fb52223d584ddc0b2d","b59b9dbf8eba83e356c479153f18703652a6d90a7d74889c8ee1f406b94173a5","2b5227c821547fdfafc575f227b278ef6910acea7f40d86d74c12ef68ab8154d","96f0a07e4a005dae6f8bf08337032a07214c8271217068d58ea2c1c5bbdb50f6","e99f26d57e28b850df086d4ad50408289cad0372cd3b31701ad438e61556fd18","fe30199f6fc1d4b364f7686003c9328a3d0a82e100f3d481560fae17e9b14daf","54fad2cfd8de1c1cd306a62041c605507ba8762f3f3e49900474ef209185758e","342e1b7e66ea7c3b8f6e7b65a75f23a2c0c69f84956f36a147c62ecf89d284c9","1143fcdf4b90472af96ad482c9e2e41d69fc01886383f081bef2acec9dbfb291","ae61b683791b48fc4e635ab09d05afec1e0f5e1e20614d171107bddaf35a2a3f","24f062db4deef3295cd8b6a6da2a846ba318d9455347ce78edb4c913956bc29b","9a12e058c2a6d0e064a571a5eb8d3acd429df4f0fcd01dab67993202370c8c1d","c0cffc8ae61be20f082d38d69aff3607b8ddaf4104087b628507a00d7b17fd7a","e9b7713e6b98b868101a342a9e61bae68cba5f20b8bb214a3e5ef1b015cadb22","65d2df8ca8fd0293d6213aa4e080acf961bd575e8fb2b7d6a8623d94cd4969c2","33bd2a8b108e4c131adb3f68ea445516243d88f38ae342f8c7dc326bd57532de","23a6901170251c2cc3dc8c42efdcc837f1ab846b9cdff2e31d24c65119c29335","3c46346007d351490a8f4704a008cc42fcd56f5a288e4ce9c2c5114ca0b651e7","8fa2128d57696f24f42130df309956b29b692294aeac256a65ebacb7207d16b3","adf9904a1a106f2db8b02aa530cb2c7ac4e917c5d1f3f691919d63ab2c05b220","30c517bde91eb25328217b0979533b4261425d69cb5936ba33864e7f144a7a79","57e5c367eab9676938a3bbf5127cd6423e9f419f027d41931c6f0f3a42b0af43","2dff156901eccea59a3457ed3161def52f31e37a32775a5149cbd4b093d630a6","f76d9a3a6f8a0025654c64f5d2133eb0d52695472ea8db7a50f1fbbd627baaf5","9422a8541597b05b10909033c7128e6433d8b3199a280835b9965bb95f184df5","73ba282ffbc6a6d93c58d58b160fa05f986938c7c1e190f57d7c92d6a45f02ee","9d759b30144a4e1f6166112d7d3821ec79f75c22caccd5f6ea514b6ac6fbf0ae","36e23915636f4e017ab4a17a47ebaba96a0ab42c52a93dda0ae49151b85bccfd","ca0bb8a9800f4e21c7c5b5a6a9576b6e6b17fcd2a6c911317c734c0155db7268","d363cdbc3944ec845859347e598a6db83dc70649c13404627dac5bc5a1f69781","cf737bd145c8db29963f6a058201953af2e49b939177274f9da01ef9b4e6370c","2e6a01747ab5da2e567e466e9cb986343ad1994632e0ac006ec28ef46a5d2d62","cf5fac039bdf80a2bf6bd5afbddf8a87f646c7db814b053db7c450e309a42137","aa8bad9ee06720b95ca00670dca9aef1e07d26b0ff45877a07959bf2c14b9654","602cfcd5899f664a5dc7728128a55eeec2ebdb5884892cdc7697422c4b345b51","d3d0bda227d72a40e4609d4d59d997866abc77f77ec2479efa588375bc710eaf","a6bcda087088be2b0587a2ab09ebbf0ab53314c0559c5c85d32f5b716de4326d","a4dca2dfd992fc9acdff146c9abc70acdd9ec4f11f5c02967dde3b3f8bed6105","c1b6f6f40f5be1843778d391d1113bb5375e3d7d38714757bd7b1f4d61752c89","cd21651ff2dc71a2d2386cecd16eca9eed55064b792564c2ff09e9465f974521",{"version":"9bd8219f88db1339a2203f7fa18cf01aeeb60bca80aeda842a9fd9599d84d2eb","affectsGlobalScope":true},"234ada61fbdcac5d8303c5aef3c937251a7a860a72e2fbfd376af71b1f28485d","c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","941f4fd3e572742e7b3cf81fd8bef220a7ff70ea3a1a61a460405a4378923427","9945033867c3240435d1c1dd5eeba80c54c3a6be1063c71fc87b66ee32968f43","d41055c9b49f6a0bbc2ea53ccdea2514d41a3d2cd0317c4d0df664114cc103ec","d33782b82eea0ee17b99ca563bd19b38259a3aaf096d306ceaf59cd4422629be","55a84db1ca921c86709117fabae152ab802511dd395c26d6049e6d4fb1e78112","2d14198b25428b7b8010a895085add8edfaae476ab863c0c15fe2867fc214fe4","61046f12c3cfafd353d2d03febc96b441c1a0e3bb82a5a88de78cc1be9e10520","f4e7f5824ac7b35539efc3bef36b3e6be89603b88224cb5c0ad3526a454fc895","b29ef0a32e75e0d2a08762d6af502c0ffcd7a83fec07ed7a153e95329b89d761","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","d4220a16027ddf0cc7d105d80cbb01f5070ca7ddd8b2d007cfb024b27e22b912","cba6e0e0a6740738cf4911ef772456a988467ca11a168e803b294756c2dd5d18","55407b9eec75e0c87095afb0c7ec58a06463bb37075088e518565fe598b3b8c1","69630ad0e50189fb7a6b8f138c5492450394cb45424a903c8b53b2d5dd1dbce2","c585e44fdf120eba5f6b12c874966f152792af727115570b21cb23574f465ce1","8e067d3c170e56dfe3502fc8ebd092ae76a5235baad6f825726f3bbcc8a3836a","ae7f57067310d6c4acbc4862b91b5799e88831f4ab77f865443a9bc5057b540a","955d0c60502897e9735fcd08d2c1ad484b6166786328b89386074aebcd735776","2fa69d202a513f2a6553f263d473cba85d598ce250261715d78e8aab42df6b93","55480aa69f3984607fa60b3862b5cd24c2ee7bdd4edaed1eef6a8b46554e947f","3c19e77a05c092cab5f4fd57f6864aa2657f3ad524882f917a05fdb025905199","708350608d7483a4c585233b95d2dc86d992d36e7da312d5802e9a8837b5829d","41ceb13974711a87f182145196a641ad804125baf1fca181595f1be8cb0a2cc1","94588f9466081454cf518bd769f57f0f1db1356db2c4f6db924a7793b862bc96","4d2f7644abb97ec0d681d89b455170cf2bd0e72ee2a3e52d396074d0def264c4","671da85fc40086ce6f7309c428511bd77aebc0405b88700a26590a75cf37ff10","6e95aab5b3ba30cdbc9d4ad350ae7cbeb519a1eda30a214d2b1ec1f53eecdf9c","e11ff96a6e720e91e52ac54c53ee5bea99929bf096ae6b34bca2276e2b277ef8","08ce78e8c4c047bb08ccadc6587f6b45f025d85829854199db891cf1de7b209e","9984b42ce92e450fd7d9f016c65597f7da7c6f48a6e71784a232b4e1a3cb45d3","679a500b60fdb879af3ff20dab0bc5937098dd1ea5b75f786c672fde09faaeef","035c74cad659923dd64bf6d84038675b352adca39eb1db2c5fb2aaad706ddb06","1dac9649d09ffda3912dae3d77a2c94211da01c9b6ee203c4acef0bfaff94083","9b83354a819146569dfe74a2468b7c11e287286d58b5654555ed1fec10688649","e90e58ad52b0d25a238f6a794be594bf647280a6e8478b2337ff729dce62a63c","ea1393c82a0cd229de6915d3682db9571c9b65803b971a04f6042bd3b3826b60","d4978c3f743921aefd2609c001cf4a6baf74dd5e67337b5088bb29cb6d832ebb","830ac81811b6e1729d758e59c82d41ac1793d74928458d7a245d8493df5eb337","2d1ee16a0a8d47965719fb5bfe0ca19fdbce45adb0ca386c0cac9fbc238c301b","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","f0ae1ac99c66a4827469b8942101642ae65971e36db438afe67d4985caa31222","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","46b907ed13bd5023adeb5446ad96e9680b1a40d4e4288344d0d0e31d9034d20a","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","ea689c41691ac977c4cf2cfe7fc7de5136851730c9d4dbc97d76eb65df8ee461","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","8d0f0aa989374cc6c7bc141649a9ca7d76b221a39375c8b98b844c3ad8c9b090","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","72c62b406af19eca8080ea63f90f4c907ee5b8348152b75ba106395cd7514f54","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","be3d53a4a6cc2e67e4b4b09c46bffce6282585fe504f77839863c53cb378a47f","e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","3199d552cbbbac5a3c6e1499c09acf672ae8c8c8687cf2a3dbfa7c8902cc7054","febcf51f3045d4350c53aa87cbf2b601127ed2ae70793d43e73ab76782e82e02","e3bf0a5aa199a4fc9f478808c7ffc2aa01411944594c2b305a43ede96e4a521d","3b0951ca295694b8d7b8139c1d69c1e6c2085e65fd86c8968eae8224f3bf5bfe","f2393e9e894511d174544b3319d5ed107753cc76548e590454024ccf2dedc881","83af0534774218e8d8205fb55df878c77e2471708a9d1435778aa69dabc24839","0013a72eaf0d971739705e72d2334e90973516c348f3b42a070ea5ec5563f502","693f55e31e67c159df5e1eefe64308eb8b6b08f3a770aab3f5097700f0e0cf2d","9b499d8e40ddf132ae12dfbfb68684a693d0c633adea339946cc007d657c5e8d","e249a919530337802526d46a4f68a32a498efd64e3a46a86d14e4478af74f5e5","bffa337ded0de1c65d9222c1a351bcb057465ab509e58f6c789bf580fbe03d7c","2c2be857131c4a66abf4167d59e0084b5e40203c29455f7404f9dc234f83c5da","5e109a37e7ec281874110f77f78d5f59d61edfac31d3665d6b28e3b95225ffb7","2fc27dd186dce60e53b4c9c34ed75f048ee8855158d7757be9770256280a960a","78cc77674d5dfaaaec8fc7617a4f24ef69619b42d9bd8fcf9f0a4887225ad703","ae70cb9f1a27714846353c4de69beb35a79e9129f9e17510e36602043db4d407","7e3fbad90e741e2740fd3687dc373257ddd8ea094cc23a7373a5d5615d310915","9d1139cd662ec58b8029552f17d63ce446d8ddee2cf86e8aaea4ec02b25f92e5","17becb74c541cdee4f2942b557568719df94f6d212ceb4712a0064b02d67a79b","17bcd65e848157bce69f299a0c2e53991b365e4a0f28068bd49e4a70dac26ea6","088d1030d1d8c887cefb78ea6a497f6ad0aad9c4995cfff1cd35a025901598e5","923cd7bdef4ef7e2661e4cb41a971d502c7e56eda41a05b27a81ea87850f8230","7eaffc6945eec91a243b3fe7f45a338fba2f2cab1b7b30e6ad08845bbb5cfb9a","c1683af86d9d1f7c801d91790a748e334fee6d27990ce93215996d1cdc079792","291f0b001093ea8cba2c497d7d90a1a8cdff101eccb11a3bcd1dc3fed6ecce4d","1949b43fcfe4b3729e627bd245679529b829dc0076680c9844b657225074f92e","2ae75dd53dc72cba1a321e56bf3a53fe4c36ca02b14b7fb2575fd7b8378e5db6","9ddaa95c87341f7a7cb04f17a2e31bf675109ecdcf5231da76c4fed0b99ef964","92157646948dea4d4fee97e323f35cd6e86a840d5ebdb5b4febe9c3e506dc656","e2a5d0773d8ddd4949ad80ff0f52e80756adbdf6e0b0b0112807a6d7ed082308","7146e26b4931116c7308a5140a5ef1781428f6f17eb6f1628e5e4817a335dd22","9b353684a9df9ac122dd1e93e18cfc151e81a14a49468bbbca8e482dabc9a9fb","1aadd680c5db345faf52c1eca3fbcb0026637d1f5c5fce782eec0019b20aa68e","810bed2964a42744d488e77dcf84bd7400f32280dd75fbee4ca8ebb8675aecb8","6f506d7ad65056ef654189f59cb0222250a26fa0cf249a1482f87a7fdad9850b","fbcab61314e8c46debd3ed5c0d79a23b2f911baf4a44951a314a8ea00bc66605","018a4b7341f128138e433e19d2dceb6b16c5b74dd62853d9b73547cda8e71768","c0322ce93cfeea77a4055e63ce36f8c2030a45c03151b947104c824baabe0c16","86c1eee5cb8de0c10766face649ae4c30736060e4693ff0fc4fc75de43ef4ee3","8cbbb12bfb321de8bd58ba74329f683d82e4e0abb56d998c7f1eef2e764a74c8","5b873d055671579ce0f978dcad6b62befd6bef99eb6181409e35ff49039e5b32","0553fe55dea25bca5c65dd32b8ddd3be252dac19deedf5351068b14e3802292c","e128206c4e79a401f4d56c6d0eccb0e0024206069064eda35352810bce71a13d","07f3e5242785465bb7dfdac011638f60f36f1bdc107d7aed88c6dd5028a05fc8","dd41cffa61aeb7f1f45988fdb6554b3cd6c119d2489d1b060485beb17a24f84b","5bd39ec249095c24afd1250438ba99828f45ef8fa528ecbfcad2b784f2626b85","7ee96c33ffa8089198e0caa413a0ded9a7d6bda9c428d721500200f561fa5912","fb66f815ffad21aa39d287143df839080043df9143319f4c0df0ee7ce981d685","a692f79e1c4698b451ac84063159052dd6c5cffd9c1ddcd500371e616f33f49a","2efd37a6626889d88e7881b1a3228a24944f7b4a02e4a72081b684bf28477f93","591c3090cba30fe63313a4cd6e0870e48f664626d06296155053d60e67576bbb","602ee2c4c4b144883e6469ce187d73d07053f7fa1832e38bde7b338d93309b4f","8599238bbe9b0576d88ba9c905e9cdd2f62b4de11724995e634cc44efe8d468f","d8a3e7a3fd488135d24f3dd2b1c355a5c0ef9bf1169356168c015521f9213881","8ad33af0c5e997c5fb2687b563ef15be184dfda0284d6ccefa1a63309ea6d3c5","adbe638d4ebb0a68e18fd257cc0be63e4dbf96efb311d6f7a0f502f746bae4d2","a8128e02f6c067da2f13224157b3b0024b1c5aa9d2a15946438d35d447a06b32","c37aecf4c7828e00392c784013513fff8256d700edb45c6aaf07b6f8156ca36f","d708d5cda41ab5cdb7238c75cab0650a1d8216cf0bd803b166a0b4e3371b2ead","d1e4734feadf722b761d72b601f52aff639497e01f30210c2498b236c88f6d1f","b7b3112ed4a8c225f37b6c3b33147b291d76973ab3ad291b49a18df4cb3dfe10","3f8d9d32bba66703ef3cbd3db94ab1092a2ca0f32415947e8eddbfab897fbc11","8a480dd48b83a683049509d51b4c008efafd17fc31ffb13c956ea0eaccbd9f36","310837536fb604daac566843519d1aa381312933c070bb250a34e2f8ccd8df09","a6b6d531ffc0e07459b9ee80664e938f998944d36807003dac316dc927aaffcf","b2e20e48ee8ca889fb3196cdc4a15ebc0f7f840dcacc05d0669a400f3753d5bd","a4dfc191cc9469a444e39351b9b2ad2eaf6eb9a3f977827c3f08b7bfb9d6cddd","92361785eb6735bbd0e4e04f2b353b4d1502b0dd452a307d1d8514ba4ab062cb","f3a5f83f1f11602ef9f1f1859c391996a375b7581041aaace936387a8caac650","806fe0c46d860f0e256964de1aa5a4fbafb7fdaa152bc3be20edd7890444a8ae","219efb4c63c52fbb2df716391a8c3b71176cd9861d29300d247bfed566d0c6e0","bc264ae77c91f490c177e2353c44eb1d0dff40367d958159789f1e51c4f8fb79","ed3ff1f2a9d6f6111efe3a848966be05da8123a8f5da106d0c451bf0a100afb5","8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","2d355bca3bcd3583b8c8b5820c4ead05917d24f2ca08d402a2ec1c112e17b087","48def278284b6070983dc9b8eb1a5d91946eb70eabf9b9a0d3daa4d1e31cb4ee","3ffb73d98590f61b003647a41911a51e82fce04b7dd8e1eca0390c240540e551","3a4c2ef4f5e42d7ce0c7cbc40cc857569229975245b9001ea95786e85448a8ee","07d50b8d4af250d0474b606e2ea7f37f4d05872fcdd92793669de2710393a081","b27ec1d4f4db934e07f25d2bbf433f7e7cef340539b91ac905c5fa8f45abaae2","51a525fa1c81f51aeb533bb46b2a21f5b508ad969d42729d57ab9b5b5fe0188b","1787433cd1d12a6158028878047bbd43c8d608d01246e56dd64ad6d2ac8385a5","519600d61d8d36c442090c31dc44a1dc4adf8a6b1c629621a680f872d8da8a67","de19ba7c0f6aaa0a40167ecc8ef024863f9992600b8090fb51b780fb1f392bd9","da8bfbfa6ac1346c62d8c5af9a1a7221814769c9c9701b244a6868eef96acb79","34f261d99db576f5b93207c5f9d63ae2e34224a7cb2d155b22cca0f7a6eeb58c","98682515f91248382be2c583a819e8e0bef160ad5ec0c49346100098755b4b80","69b50a12f5fe856d5d4d486e068938f364f4e04eee6b2ed323139b7c85edf849","ecfb422f8cf7cd66fa315e5501ca3d613cdde85aafeab0c22594d9ea3b2783df","f54a16d715fb229425b99ce208848b9528b4a0eefb2ab1052e30ab97f215a5dd","765b9f5a1b16c41688e883bd3bb9f0e33d4f5e26cc88b2ba80dca534ecea2cd1","12fcef9ef0bba67853c41e49cd57da352cc5d6b940a4ec7b5d9f46075b48bdf7","b133a567fe7e2ddd69391d546fcc8f29dd3983aee8e9b5e1a0af967c9624ed9f","62a013c189f3ac31c869642c0d6765e41519ba86ee7816de50d0df432693ff00","be64a037808aa0b9dfc8c7055f675b037d7d2354d09381ada0cc3d02f0d15a37","369a313dbd6ec107654489ec627319c50e0bb02e5f3e2217b25cadc2483ea453","b37a27ef499669c30158ba4274492d2955fe7cdf1737db6885a09c5b97150aa2","df75b1c05a7c62bf2b86284d3798e2912bea21896bfde1b5fe1d49b43cb49fff","a6c7c7847853efc6b108933b204617765c40b83c77a21ce35cff9854d6e87156","c3a3447cb7017f3a5eb7b470a334aefb74dd224405e58068932cb65749d8d061","b8a378744063b0b7ee790af5a78cd95205b2771c241fb8e9c55ae680808ff4f1","957c5762108603b68295e99e3494bfc46a00b4e242df45658711c88f34642b8d","35c5cc3541c3a2b390d1d0dd9812900d221f29809a9d13330748fc689d3d483c","b05f26073edea981f01826fd2963d27c596a7086386ff8168edbc865729fe984","90026020301252d4ede9281b47c70682f7c9f0423c25bfc85eac8ebe905fa81e","1f54654bb0fbeee8b3761c5bf3fc322611c10aa7434e8408c7c8f6fcbac28e1f","5fe650fda2766f84d30d1b07e242e20b30a1272bf8a016a14dd60fb5472a9828","963d426d1f69ca3df2e27b69da4d37741a392d75719077aaa87b04225024d86d","66ba44cc54562d7c76ec4b197505503725460b6d880dbb0bcc9a2fd82f7487d0","c890f052e0e83182d3e8e76d03b1d319c40782daba44c22b5793f44365e88f70","9cc8eb37c9c13e0dca401a45445270dc8ec8514d5891da32aa0917655baf48c5","e5e6b76624356546f613ce528452050f75739fa9f1a985e5b74575d41e0c5627","4c70bf28047a7b77e909d67654d68410873a0fff5b0228697c4735ed68a438e8","2367e82e1f0a826f0b95fe28e1db6b16bb7980a938860aea7f734c7fbaafd7e7","b7181f4a3e8e27b5c90f3caf7b03f148605902e7f49272291cc5c4670e8aed13","225300fee5206fde81cb85efd38f4af780ab07b45b0afbcad00bf0abca8d6599","a289c3f335b27146426a3a4221b8fa2d32951558787f938a1ac9ffe4061f9fd6","0df32db6fd29eafacf9ea6fae87274ac4fce3948c6fce1f4d99b73e1b84b90a9","93124714c85d1b197ec84dd82571a7a966006f1adbc87811100e648efa913cb8","fa28dbcb06d604ddc10ce73eeb402f73a86c3f7667667f77397ecc0d73e2dfc4","28672b078a3fe904dd845b53641154d8d9eb69ba785f03ea04ea3f9b341bb28e","d44234d80253878c1adff23c36b8a692a7945a80dbdbb5101730d7b2e76b7dcd","b7568d221108717cee204ad1e8b0e25044fbff3bdeb09de8ca579c869a13da5f","7d470d5054929cb61ab1f1bd67cb6fab6561e6b16f33fd608138889f90d7a5ab","ee77aa598a528f724562dba2a766d58dc0dd8003bc7ebae9c4432862cba96454","fe9dd679e568dc2a0e5e6959f77b53f8bc1f126d46b0d17631347ba57470b808","c472104d0e98c461a60939841dbb34dc7e7d80e353d29c95c8902777adc92fe0","96ddf97c45e2fb96a9ebf5fa0da082621875d4245fdc0bf06ed6f1de1ef97e51","770d7280b35b74fdd88f28356e4e1b8524c924fd21f64d5709226b9dedab84d8","8f9a319f93ce06388b940e762d802377718d3f007ed83edd9cd6c37af41ae75b","6b4ad9a61383ca142968cf3f284c17205b8bd3a859cbc95f5399028928c73cb1","d2b2a6bc21251a9b6f6847b2d6a36e520d692fbb9b245c1de1341d5e7508caae","edd72c4611b7c71ae3b92ab1380b9e1f686af822c06eee3a4ffb0bf3a48656f7","a82e2f7ab72526a0242befe95a9bda4884b43af94679a0d3032765e6daeef32b","bb197a514bad919f2ca8f91e08c89f57877b9cdba90d6d0da49bf20ae16a1469","373363ccf63922027316fc659f0b030411f00b5d7d4d2b46576d784b75185289","003b07922990908c9c9259063c3bfceed471d7d1854e50bbac742b2ca737a2cf","9ea75a07d04831fce15da5289211d0209ac14639ec417bfde593bf4691f8242f","7579e04617a30310c531ed8e58b9727a611796d9310d4f1c1a9f22b3344f8c41","efc3cd3ab9fbc6d4e357f5c744ac3b2d37b94071d7e449dec01373d417ff17c3","a7f092711c747ff3c1db4239f21a668b29bd86fc2a969c8235628d5a4b39b1af","9dda074f62ef73f339a99c993bdee14ce8e7efe3a3425f4039268c0b369d5ff9",{"version":"fe59bdcc023e78a07549e5a86139c89db66016f2553da14ea28896ff4a0b685b","signature":"228b8bb8fbe18486a604d8d4a275e233cff1ba725eb33bac9d14909f6a2d1d94"},{"version":"ffcbad5a2768ce2396cccefdfbd704e038a9abce39564905380632097e276fcc","signature":"15bd163127fc5c2f24e19157ec6d87ccc1ef0f5bd5c02f90db785aff94ebaea5"},"9e82fe3aceb1a147e639ed25ac75e828c988b232a1b281a5d7fb56cef9af9dc4","745aeff448819c709a3f8ba3bdf92eaf425eb1dfc1cf78988a86d6094bb6887d","d09a6bec22c1522df9ca1e65c5c9aa2cd2b3eb17e624b9593f544ed7c57269db","214edcd05cc5892f07016eca85a4bf68182f5df1160baee43a4facbe00554d7b","c116a66e62901c51b51e33f1039fafd5e53fcc646f8bf5700484bbdf27968c18","ae046314c0651da4a01e9e48ddf370ce9d22ad21f48962f25a12c1c09de9b01a","20ca05d62223bf6f117925ef8f9b9781e894cb146d30ac491e0763d34e53a5d0","4ba733d1a5ff0a0779b714468b13c9089f0d877e6fbd0147fac7c3af54c89fe0","697203f3f5a1fea90e40fe660360325090ab36e630dc9422a1909dd4faa2cacc","ad1226eba93a65cdccdb1b4f115d67c5469e12705dbe80139c2988d6b296d04d","4ea2c94c3a1c87029d10f11c209674d4c6a0c675a97503dc9668d2815ff6ea11","b1d1db4b30d6630b4655868be3be638521f55065ac51e421de7fe851f9946e7f","c97365f5b352477657d332cc7fc1cc67607bfd4f90f1a76a7fdef6d594ec8ddb","23af35a045f9117250e060abdb2789bd34519eb5a6308463f299975a205b2d8c","9eaaedc489e28c9f7ff513bc094fe82da02cf2c4a3b2b35fe025699fcc08be78","73c4f628937d4e4a94d5af1c04bf57008a9d2c5f94a8fe6d9da8d51783069e15","723fdf2b16e85b9dc8ba8fc6456ec2d45d07d74e8456340f350ee288e8fe2055","24f2e4c8e5896cfd05c2cd8f51766f75f84b62eed6e03c5da857422cc747bed6","4cd02f2d4d7feae05b035dc1c451070f7536601f4f060d0e944959f1036b3b18","89c0b39cc1e9dee0c0233f656fc0aa64d1e8ce9ee0774c4b84286bb626c735d6","6e16ba58508a87f231264a5e01b0859669229a40d6edea4485ac2032ddf8a7c6","a62bd06c547746b47556feae52be0fe917e41376c3dc98c8e96b9158a872a1c3","e1d2ee5fc858e7388d96489d7ce4c1d7625357dc73dc815d597b81d4a2098293","86ab12fec3147de7aba7d3c2d802935cd6496f0afedee8758d837a66b00e8459","bc7fa5ac468d3757f401039f89ab5e13967557b78dc0bdcd3383bab1e195263e","542438ec05044399f412cee3326563c1a6f83173db5627c9b0d5f65a0efcef23","bce4a1aea046bb15dc04bbca0831efbeb534aeab870d96b64fbefe4590ad39e3","9f404e614b2c4cff62c24a47df9e91c72bf3ff160624deac897bb35552b43842","715a0154ce1359c3387d467981bc331da06822a9b999bbdf5c483696e28a4ceb","38c9d54cbcd3022f7b8bac65e76b05fc15c318f53a114a5bcc2d69c33a182adb","86c183d6201f35c841e31d97ede84989e4c02b690786f7c11efe025ec2f15c05","f0258631e56de39d236a0a34aed46b28859d376949ba040204513e61fb2dfb97","6b5db77219e73ae487db6ad94fb2048b0bb051b4fdce283600a763cf63b14e8e","de5d4a4fe9ab759003078db5588ff1d6b4727e164b6ad570859cfdf06a9bd47e","86ea856c59eb2c4d2090f22510d63631393af4793c98f0ad100f4545f0c9088e","5ef5bf461006cf3fe5bf50c5aed8d4fd5ba4aed06105428d4df3733136c9d9d7","6a074d0008571a6d1396fb1d86e54bf22bfb38fcd8a4df1e61cf4ca309817fac","bfedd3882083dc1f013092f079f76c17b6ea95594fba33a3e56c222ca984f263","7d89a609d9e50597111dde64263b0708343a68db2d53aee0bc2d3bcab7e745c3","0b840392f948eeb18059b0478c2073ac222a467829df29ef0eb1f15f55a3c77a","c91b058ab74323c57dda1cbda7eb8cee56272002249a642deebbbd977c4a0baa","cb7f489960477f1f432a3389f691dc243ca075e87f20032a2866321dab05bae2","1aff989e39a6551ed760c2135285d0a2ce9b7518ca57fb9f2955280cc6b6be8e","8489ab275af84fc48f7374b227cf0fc646d0797d7d5980ae1491bc08fb7cfc5d","a4e67e8eb5df4e6630588b1ce5c114d1fa5a533eb1f45c2ee4ecb4f48dab7788","3f8e1b42b7e6aa4756e00b26c972a64eac1b747600b2540120f95a92cb1684e4","93d5f2949aafca2e199761d2ded0b4870446685897b4d2214d0a9d9d581e0538","7c7a960997d3470573faaaa089e6effd21cd6233d97ba7245974b4adf46597fd","2bb814f26a57746ff80ff0dee91e834d00a5f40d60ee908c9c69265944c3a8b5","86e035d87d8f9827b055483b7dfdb86ecbb7d2ca74e9dce8adeaf6972756ac03","017907864b01ae728f5be6be99ea7632e68b2a35c2d7c9606bde20f85f10f838","1400a044e75830f69ec3881f198f23792df05dfdcd0cfda1241a1bc9d30b66b9","55b22a8993ee960f986b544928d44c78f22bc2647cc2631b98e668b9b0165ae7","8e67c31beb3a87366e5eaa2f0399078be858b5b05b6b8209e594be97b69b020e","d1578472ab1c6ee01572c58324adc59cd159a3f81b744d509c5c3d2f68067083","408d0e5b00c780fae62bd5a6f3013680778965b62d3683eb9990aeab780ee798","f5f69e449b4dc8e31cd0315860c59fde6358408f19747b76d98c90773ca62b19","6f623e7a3b9de6f69a0b2f81413d4dc357017ebbda86f12153346a52f1e2a739","baeb432529867ce3bbd77962ec07edaf9b77e1c2f9018ac1f684061ab75b9b74","bf76280034333a5b25cea406a584f165a9535cef59460271549447eb2349117c","b011f71b5d21579da9f868e56acf3887051fc4027cc7cde7317facb232ed3e95","281eb8e4ddd65b6733cf1f175dd1af1bb2595bbcea7c12324f028079ba78fdf9","81e2b5cdeccd368e2eaaf33003fea50bd39740f8a8a71a1a487458435b7695dc","919b86dd53cd38daf8207cac48b67824ad2b8c9daffe559e1b0ec75f39d21ba8","aa7a83f4acf2686925511ecc32d148062c02984068d563c44f00835fee5b164f","d4632bbd2d2afbb1b75163dc7cabab5cc218c2fa933cb8f7d5b7089255faa6fd","0cf4827f19c749c5befed9585862c6196a4a5b3d889d20e0f5f4bdb6f734dcc7","14d3c7499d1759af5c78eec4f26a6f5b85bdd5b0e41ef3f5e6e813f1ae88c06a","0082935dc2cb31cd632eaa6bbdec17f1a9142652e38ede025c0ffab00c50bac4","0df7497ada3a4f6459420803ecf7e555f1ad1e7bd43c1e17bdafbc34e19d7162","5cccc8d1dd17c789bb6baba06a035e98e378a80d133da3071045c9901bee0094",{"version":"8f84515eaa9ea894141f0108fa60a66ba7c1c6615ff4ad815b40f2000be07297","affectsGlobalScope":true},"fba5fc117442e21b44f4fba23a9307ee8ce57368074588c253c54c46931f8438","1e4bccd328de23aafb5a566317b3fa580aa2caa1a9146cc0b9effa792ba48ea9","6d056661e4b636cc04e36c36b24a4eb692499b21fe0b18cb81f8bb655d7a3930","c0b87d1de01300eb444690a65b034b7b8b060369349134c0c2172ef801c37f08","b3ee3a893ea3f11ce9a1adab45f9daf95995811c58402bb0d422a88fb5a49a42","1f957c8657bb868e8cb92e46eac8c8b1877a96708e962015a1ed47fd42c697f6","217800577a2c9a7232e5a9d1abd1c1836acbb004e7522a5261299aa867713f96","60981ae7c2a8926f7855d8068c42e05a3b1959f0bb795a8bb9773c912a9a6f16","4a6de5821d23f5e1781c567ab6550e5357b2c2ae3e8813a277062512f73d4a28","618b5aa1f8b9791938f8033f1855238774b555f9dd35f0b8a5443cc066721605","603b2dcb90bab23c4c224861cc4bc2c9327e539c61949eb318b388f49d6b0752","79d9b3a1ab1d49e7b6181bd8ad6df52b5977c67bd906c9a3f7943275694bf535","8d4a70e05b1f8450f5fb8997e5bfc336dd0baec3f2c8117f6f260d4eb68de0ac","6ad9b51ae0bec9bed7c07bda091c21472436ed419e80685b09466482f5ba1db4","8adfac022e0ba9393764691565a146cf8b2194c102c643fe8118e92093cdf24e","a189ede87046071ae9cd84e90d09327b3ab44b5e73947d38eaa56c2e839b0fc7","6e5aa91099e2fe5d1d05f6f3100a90e5a5d9b8aea7b0ea6f4d05a0f192899a64","bd85cba544b37cd32e8d02b138c3a2a4075930d01146b3f5e33d713b39dafe77","04a7116aece3802e7ee128fed47d31cd18e5660825a62b42a62929f9508b936e","9ead54020d440bb11c6de04fccd00f04f07128d970dcd5217713df7e8f893631","f9db72cff49baa3cc99ca77d982ea5754f516bd21800f819a8187abe7b6254d7","7401b44b038c53ed08048e6707910f1f003e3b60ce11445fb7afbdbeff96acd3","17f5cd3645adee762b7a19c179e884bae57d9bd1fb033631800c5ca1eb58c595","507844c78a879218b81ba5048539b9ccd8a07409fd4247be474cf9c268684c79","ac124655c49c836c2b37199afeae16712f7fd7e2ca7c3c5852eb17377691bc3a","73ac47e45d90fb23336a6a01512ae421275cb1c818b7a5068ec84f58e94a5999","b5c081fa1ad246f75cd10b822eebdf35c3e1c510e9ad3a89570fbe4c575e0cb1","26e8e64bbad8cec5562ca764330c89d2cbe72a10fd7d9f320f16cc25bfe4a1e5","bfac6d6a4817bf56d574b1f32b174f655e05ce45c5ddf6d17c9b592660f10935","4c136da3b1dce49c12eac152699c6b4bc64fa93d6c7224a43c816f7e51b00930","1093df5dbb38c416c10e41b3379033e952cb26cfa2a667bdf182f55dcca0d7e9","4d42746407b6732df92275e20f311f9717b57f1e3a90cf71730620077a7daf5d","72635b405f1d979eee2110b7d2921470748e13b19adbf42887c2680964af6f30","3a719c9c30a20a413b97a458f411679bbe56a4de8ddb2f3ae7cf2639e86d0e0f","bee6c7bb6292f4308dfb2dc4c286e1fdfce457f799edce96223da78c4f8652a1","6c61ff540eda59f07484aa863b753d7d6a8de0ac907e0e912ce2835f2e86e167","7929ba87158726cf1436b6adf5bb182f5b18e86b2bc6a4742c1231af7cde403e","0e6b3c7f300f6e2587c62783ebf78c74e61e7e85d37591e1e1ecf82cc15adc01","f78f6212fdebbc513a6656389ecf3c4bd9e77f79c0d2da2250de961b386a67a5","5de56154de88f7bbad618a1aac7dcfbf8234785cb8821b00c6902208587409f9","b90f14bca14cdbdd60dc83c451aca97e8df63c8eb8a158a9ed84de4bfb4cad76","bcdfa0b735dff249e6cafe7096d17d338c3942704c20b0cacf78c1d78a5a427f","64e63d7db36b9a658ed3101e0847c2aad6e5f03e0a37c6996d879dbd8b5a7623","98ba4768c426848773fb4a39203aac92e6baa545d93510665cdf207454d0811c","f65116ea54fd65813a0d9695249ceaa716487c932247e4aede3e2e3ad3d07316","99484c7a277c488a16c49ac1affe465e4fbb5e4d57b8c2190092c5d7b4fe6fca","c29f7f5c851ec3a781a17d7afb9280da6adfc9748535481b381daf5a67f439d0","d1fe87efdb4628a5d5fe97b6450c70396141f5eaad51da26a6cd13f200f5df05","06e727ca4d41b4f549f875d7999d940a392058b1b579846441351ff011a63a31","6c7f1a4f3d43a47624bdf26e93be7be9fe29cda02de5b53b83f5c7559ae07745","d94acd15b4a3517523756dfeabcb7b4fb8ee853bba680d892ccfd3df4c81edc1","0f65f9b61383ffcfa1a409da90c35741cd81ece1a2dc6f2ebd094d81599bc5f6","9abd03a84d5473e66b038270dbeae266129ab97261d348a5fbd32ec876161a85","014e62bcaff5a844c55ad17faf5a0a131248ccb79e4019a541728de8da742bf3","00f2e2757fa779f9643eb4aad179817dbf78baf80e12a498d0df8c055431d994","60df751adb905f66dc8373a77da1410f52c1d467208f00c3223d116d9d8f4ffc","4f3dc54c210bef5da796fe50334b7ff7b6bf8e35385d987293d4004d8b44360b","484923934670c360130280390cd481fdb38620cc11df5790bb78f7f224b2b099","b6024c6222886b95cb29ab236155a98f8e5dc41151233781815e81a83debf67b","94dab3752006a2cd2726462342f1775ef18ff4986404d016d317fe79a9d0a14c","727b3a462015bbed74b520861445761ebaecf94e09d95bbf59dfcf22afaccae9","2c0300921d8d04b21353c94a8f50a2b6c902feccd1303b6f136bedbb2cec5ed1","d496217c7f38f218fc162e8f3e6ed611343aa65615f730f82c494dee6c892bc0","282ed4ab5b5c4759d5c917c51a5b2f03ca1df4072275b6bccb936cf60078e973","2c96813e14e7edcd8e846f009b24fb1bd842b90e2dcd85481136e52588de7982","aa70da8072bb8b6e8fae35c7d394d543be8e5c946dad666225a3475010fd2bf0","d2c35cb9836cae1899ae9e7e114410dc128bcff4a79cc26318db285699e0223a","f89fbb50fd3736e09b418a2e66b98ff9a04820259856afe54bc67977e1acd05b","4c76aceec7002f299d9a57ec8e6623f3573bea208b1ea51cc5ea03bf140adad4","a0f217b01453d43058cea514325ac8bd3ac3a184265314429eec8059c62824b6","4a71560ab2a642402c9d2c8714f7b189a1bb86f6d29b0e99327ac207b33bf14d","364a6daccf2cc1e8e7225a15b499974f9c16616daf6b89cd955380f680312d64","caa4ee2fefd75dd8bf98a9421e3f99f6c7e70c30b21e78384ed23903a04579e5","7fdfe7876d7c32130fef2c5b4fb85ce7d9efd876278f534c001ff7a2f54835bc","979e969f86456425e505f6054f5d299f848223d70770a5283fa7c405020b47e1","7235f928c14f752f6ea3d6d034693c5d46154cce8757a053d9cd6856be2ab344","acd7f9268858029bcec5eba752515b9351d4435b21f1956461242c706dcc0cf9","53e2856f8644978742fae88b3c7f570ab509dc4d13288b3912a4446993fa3bc7","ea2b6112bfd326f1075896bf76c9108dfd08ccbae2482ba31f68ca43f0b59ca5","3f9368aa15d0cc227a3af7af3e3df431dadf0f7cd9897fcc54507f7eb68761cc","0f2d4be859066fc3ea8d04b583cd0774e1f9dce7f60b9890bcc0a10efb9fac33","ac09b9131c553c189311d9e94d3853b7942d0097925304fe043220a893701ce9","f1b34ea3d64f73fc79ce1f312589134db27aa78ef9e156a8f14f89f768e800ac","873da6c837a1ee62b5f9b286845be06dc887290a75c553bed7f431107d25a3b6","b2abee3c001c024d4e552c4a3319bf3fcc94a1f48bb0d21f5d300d9b4920bde9","f9740d044306830442cac761b593538117f46c5ea57a8dc6d61f0bee12e971b6","7cf786964e26f0e2c3a904f93f6e31609e2636723df8c1ce248d39b55055c89f","41c6aff52e4289763ea30f0849b712437aaeb420c8448aeb8047ee2eca4549f4","f5db101f7d90f614627bcab5f8d06d9ccd144a1735b475637940c54097786b67","8c575a8e1b6032e576577f28d74066f73aefa7a35d741d0015be36956bbc30aa","1989cb4fb2174c56b15f8b10d18ecb0c053e7b39f94582581d69767d7bfb9b32","cdac1d3e70d332d213295dc438bf78242c29b14534adf3ef404c3e255c66e642","47921880701610e8d8a5930d0c9ea03ee9c13773e6665f4ffc8378d5f8c8c168","41cbf6c58f2f4e1e5ee95a829b3f193f83952385fa303062f648040a314f939b","bb11cd0d046d21d4ae4a28fc4b0eb5d9336a728f9bd489807a6a313142903bc1","a96d6463ab2a5a4cf31b01946f1b0929dc3f8be9f28c7c43da29a9e6b7649db1","ec43d6b21fd1ed5a1afeb779ceba99e80fe010458bb0a67d9ef301426b1929e5","840892f8c09b8bee864a97b1ec00c255efd97fd465a48e304860d18244564e68","105bb5317c5212d56f82fd9730322b87f4ad8aea2927ef7684341afad050f49b","79ffce57ab318282b29bceb505812c490957124a3a96c7d280a342488b0859bf","06fd0e1204b7daf4164533fff32ab4e2c1723763c98794f51df417c21e0767f3","c4b46086b44bb8816d4a995654c00f64b3601eb50a163f2bba4dfe48ae6c6b91","32e670209322bd3692e8fc884c63002f6bd565e83f62f1fd23c46729aa335d1b","97717d35deb9f6a6127f3abff60c9af080ab0ccba60aa06a5a3486a374747573","4d70c89489fdef067b0819f22eec5fd0323a8b488d93075cb7953bbfc636e03e","233dc7f3ea55d2375b32c5c19034babec8e1496dc73784f9b091629a5287f2fe","e3fbf3f3e99083f8fc21bbde7677c3b1cad0c730fe231599a69911aa66487d01","59110c7d72a09bacde4a80f4ba95d9990b352911f0e4ea09bf766804f8d3e44b","3d827d1dd689311e57a98e476b3451445d39e573f4855ac265b7ec1747075c4f","e0669b0e7c953962035bb39e7fdfd5cc8fc3d9a666a8b167b78417355609be01","8495eef8be427c71a2d574e3ead06c537a9a6d437dd669e6786dab3df009f125","15741df16deef60b197560d3cfe45e6c1eff69fa7b85a861e3d8aa8a26683b83","802fd034cf22379b22a681e021d7ecc9073c01fccff1eb737f54ee2c6fe4395c","bb77b52bead9b75d7173bec685e5e2136f6c3f226cedae736db63a44f69db679","b3f7783d4977af919bdb8db798fe185908083c6f4bd3b07460967c8e093f7312","2022dfa3df40a1f11d5f354bd729d0a2bb69d0d12b62767d3b237a29e6c62d4a","43b663c7de605c02431b0f365aa62f652a915355085cc157cc15954c88326b7e","4be2e91a906c7e49c75ac6d46d77480c40ab6a85bbeedbe33727f8cf612b9d2f","c9d03e6b230acfabb058a0b0391312dfb0e7001bb5955836333a14c7f9347f3e","e6295124f95b686a16233c1031d04cd971f9685e3416631f463bde75a5c86ce7","00c38bd1fe89fed8d4e8502db4f896aef7415b097ac061c2d65f2b539b6df6a7","94a2d7c15538d8e83415299f17fd00ab88c594b6a0a40be1e26c99febbab45f6","20bbd68ac2d2e7cdf9f60816ba9b378e13c07f0fdafccf9ae5833c876c6f51bc","df109d2490b693bd75105efaae08738ab84102bfdb2eee2372e9e3f369ec5fc2","0fabc5da6eb8454effc526d74f28b0abbe726eab0ed1296aa618b611da7d9462","d411ba0bcd6a51485be855a01cb95f79649fa90039b4f235ba8481dc68edae3e","b1991f24f264ab5e0d4de1a95b8483830ba659016dfe4b9e58b4076974c1966a","b8ba23b2e323342f2710619f6c1abf6731da764092cdca12f09b983ebf236d8a","6e688e8aeba98c268b195f80355a8d163d87ac135ad03c708ceda608e6e269b2","802a6978c1b38822934ce43a3505e13b555584848c50bc5db9deb2e896c0940e","f502c7d829f5774109007ec2262c23efc941dd1ce42acc140f293a7c5ccfd25b","57f2d9377264cf90b169ba4bbbcee8135d1350d8523d60a41d5523cf8456f226","191216c04735f363cd76d8f5e5e374e4ecab7fb861bf91148f157bea398d6344","53102281f8a153bb051e0223a8dc51ff9c4cf92da127d91e3f60e74b4e8f41ca","e402e111fadcd36fa26ea1ad74f3defd6ef478f6d278a69c547e664b57770392","bf8f4b3b372e92a4e4942ce7f872b2b1e1bd1d3f8698af21627db2dee0dda813","ab8b67c1f76b6586467a8bf7a2e855e8c2eb4e386f1d264dec1d8d877de7210c","d6325d809c8396ecc90202ebfd2427e052a77d98cfd4e308f656346baf84106b","dad5c38d723d08fc0134279b90fac87441ee99b71b0d30814b86954e0111d504","fe605c9e09b87c3032c78e3728f1b06f3402c3377dadde55aa2a31b325c5a977","68c4306bed9a4289e1fce188f9845c6ec0f361bf69443d588d42d5232b64e207","bb544ec93eab70a6c769cd69c0912742da7c2a8bed7d570e79b8af046a9ca556","532bd533a1921eedb9b39fa3559594ab783233867021a7a911db00be5d42fe7a","965bfde0433a808a389b80a8e45b717cd2d5a3a0cdf418707cfda3046e33fa5e","ad48586787d5e217f4fcc229e3c3d8de8aa12979fdf1f186134e3684d56577ac","229d6bca5145c86846793cb3166c83abb256cfdb5c425f25ada8eee49c993e54","b99b0cf4975e39d0a96fcb843b9ed3a76d87dc6a3aaff736cd0c4a042ae33121","c9dd5f9b6989f8a0c9bfae06f18981f699dcf079649fd6657d44f38a2933eb65","b8562e5aefa86c069ec1c61dff56ef0492e9fbd731cbcdd4d7fce28a8644e9f6","09e6f539149aa1c2375e5b0abc11731da82ddb3b1543535fa6f3a36a73e333cc","6ac81d359777d1f4bc696775fe9c0a3bd3253b847cc92abee89eff438c218af9","82d76af0a89cd5eb4338771a2a5b27f3cbc689b22be0b840de75be4cfc61f864","636a43fac933b37d16773794806985888e9e48069e111accf431214fd4f005ee","fe4cedbc6cf0aadf8f0829f38318e28a71185c3238ca6ddb0f039c6af0b51fb6","39e8edcbd5ac35c6cfdf2b1a794a9693a461a54efb2a475ab7fc08ab13504e26","12012b6c28d09a6f1d86b2a30213a92a9e92ad9ee573f94c92a8b237b6422bb7","8ee28204ddb2be7d6dfb68891493f654cbf10f5e1667bd33bd62920d9eb9e164","b09669391dd3312b8a52242af7823a3c44b50c7dcdc216db8da88b679af46574","b71e7f69e72d51d44ad171e6e93aedc2c33c339dab5fa2656e7b1ee5ba19b2ad","44afe06d3b740acd222bd9892d6c812b769fae6540a55abe939064ea22f0a22a","440c9aba92c41b63d718656bd3758f8f98619dbe827448e47601faa51e7a42fa","d9cf429fa9667112f53e9bb67bb7b32eeb3697f524d01b9781b65247f1733da4","ebce2a457b8b704183044c305345f06ef49187c0f1bf9a7c129c7bce6504c45d","9b10d76e4436eb4ac33c0a5540a02ec881a2fbcfcccfbb9883ebadff7f1d35ad","15ba76e87263e8f049ea5fe04300565361d1a39d0c6dced797aadf5aed9afbef","7a891af63bf06f2be51ed3a67fa974a324d7b917f7b1d10f323ed508a6662354","a5842505ab46f58a509f272541e5a9d42afd0af68452d532edf436892b0c6399","ae6114539394eed7b6305a6d788cb6d2fd94e256d7582f5111a1972ee5a1c455","3511a82a6b64f052dc3ed0719cc7c0f2049b2f90ba680b29862b01631c8234de","da8a7b15bde56cc52f288fd1a65ef815a3595bbe36ba181a0d1cbc377800d31c","a715a2786c285a9e27ea2bbaa2ed249d3017e7139782f5ebb8eeedb777b26926","64a5984f6db00ce2c83f7d0b220d7cb4a166b223bed89e1d5d82e3d7863ba983","ba9c2da4437d5ae72aab4f50f751fa012fc4750d356296078419fce0bf89ae5a","c60b79b5bdcad2dd43f7e0c0a9ced710f870277b49a1f29f995d243355d9754b","99a8fb70e71cfdfc63b148aedfdc8f451762442e8bc3e29656b1e99488e9ac72","224557fa67f3fc92842810662cf791a919a40a5ca35bf57af38b352523fccafc","ded9ee1fa135610d59261232317d5ab01b513926cee1ae0871a8865df22dbf72","701fdfe6bda70ce1514943a30c4a024185d926309de97ea4f24dbd9431bf568f","cf737bd145c8db29963f6a058201953af2e49b939177274f9da01ef9b4e6370c","28ae7e7785417c68a6deccc5f6e86d0b0c8a643228da6630f0e4671b5aaaed10","18d6ef431c3bd63ecbe8c477bcc15a048b0ccb5bc1ddeb0275cd725487781bf5","9d953e22d7ebcb1d0d89688c6d6893a479100e476ff7579b50a3d04ec3ac7a73","7c8306f3c11f2e212775f6561cfc2e01a802c579569df37c3e22213dbc680402","7d687c0febb0baa709a60de2736a32e11345a1a70014af7e7ea4ed8b5b6210ae","c51d9d25889ffa7f8ec914419599f75ddf61777b9d4a7477b6eb561906f3c029","a0cd97a027b33951419f079d0d0535e5c9c5b7eb95b2f5a00c03676b65c1c8ff","9cd02a67fa12dc69ac41ac11482b7f26fa3c3b6bd643fe7e2d8a5b4c049e0fa2","17702dc0a1465352a99a893ea6aec967ab0aaf16895820b1cc51d467695e7d7c","ee1e1d290c30774af20f2f688cb687de04eca505e2ae247f93972808ad87a40b","53fc753b2e930474e600b039fa150fedff85b97be39f3de23b4619d39e8777f4","0014504f10cef446cab0650f71816afb0eb0abf880011c490d598ea868f10732","b01b0cfdf9d1bd087388af656be1ad56242bb598a9733101052d8bdd22f508d9","f7889fe97a372d0a0bc8ca9ab3fbbae674a970029a2d2f382b001f83920f9cc8","c23062bedf84c9d1f470211dee64b35cdf8303a6a8007ef37ec5881a966a962f","1cf9f712d1ed8ff3601608c50e534db5a81db39bcfffc98ec151a539244f5f28","2222b0e257c7b53f4ff0e78674d05f1e5d1128b77d46894b2fe0c600f5548f89","35876df9c8108fbd37446a6d73a2e5b887ec51f416e89a324f0b93c001b5035b","572f6e8e582e64a30ba02ba1df53b3d71227ad9abf5de9699fc414e97f85f262","97149d834327b1e72e0b58ccee8316a9a5f55acd5276ca5f7f1d267d5a4d1b66","f774d217d2d8142780df67acfa9935567d70ecd479cd03af34e98ce2cbc203ac","66b89771e76d3d20e2f4e6118e198f757e889ca6fd6bcb7c7873929388665d13","a10da315daf2d4bce3c79bfcb6a3bf313a062e48f7fb5ece3c85fb628c6888d5","3c22c55def3a668d9b60cd1cd11150fd3328ae9ef357f15e20cee760332c08e5","e31306b2368b3af21dcf097af4dc3056a16b0e811d777a58fc2173c898b4c972","cfbef99ba8af405df8313b49dc9f81b6d6cd7c1394e93ade64334fc5586bbbd5","4a49871118fcb2213534cac7ed27669259cd94b2bf4ecba4b62837aeab632309","c57372d05a8525d55addc9402c60b66e4880958f05f8fad799b1480d67a32fab","7ff1b3ed8d4d27bc09d068bde17646a6b695466f6aa7a37d82841aaa8abac017","1ee9d6f021baf67225ff8ed5c3a5b3f4cfa329f3165fb9117d7c0d4c910a4ec7","40db7330c771a797b8d0796bfaacb3333186ba04182ccc533a78fa75772118e3","a84487863ef638bd00bbf59506f669dbbdf130484a5f43525ca1c58ff87b2e49","41448cef6efe321bf3820ee5a33f11c7f818b5c7426d54f51b1e8e90bf1949bf","6bab41ec36b3ca6cb8eff62bb241dac8549b4ac093d1bf0da2d14696c6698113","b12cef73781e809c3212b1fcf062903cf65ab3c1ebc38aacc74485196e6d65c0","abcaf888945f8e0393c7b67318aed5f018fb647a2bb2e253378413b29cbbcfd7","3c9e8ea438388e4f0dd1b5b31858dc1a2c4089282300ed8f080734b41c0de6c1","e8851eded15560d23bd44fbedae63aa3da1c9f36ad5d424f7b0f85542c7a0709","32c5979882e10b8650ae77c60526be836f1d39bc4f5917fd80aaf5014370d0db","c0f989695634c3fd7908aea2c5ca8d51d40a0492aeadf6408851a83fb3bbb8d8","67607e292db8d8cff71a0f31d7b9f11dbbaecfb1f2da950842a0230791ae5143","5f768ba98d092b32b05377bc74ac9a20a95de8a405ff8b8a2c4e685cbaca7d22","37833a890c4573e4d290b01f4559c1ca5fe5cfe7db22f33d54637d95c0ad7f26","20004b0e8ab3b977f2655729b4d3580ff638596ab8bd41699827b6215085da76","75994c344aa54217b75e9db65f388e0dfccbf4660b8951d55914f9e69684bd62","33c89c2a1b6c04c0ccfa29dbb8ceaabf8db6e729f414907d81225fb150a35627","93c1575d2d6f6fe7494dd3a48b8a96aadc95686ed02309c7eccc3bf47765b55f","eaa83f499e5d26ef513c454be8b95db747e64bc5e42094346f4c507e84d4ccb6","c100a62394095b14dac7695cd043d98b886bf8818fc3bc4c7092bf2804949052","116398ce86fe3e51c6d1f30eb55ec44afb78834b5f76cfcbd9b10a3defcb2f03","57c909aa196434a67531b8ac36127f61ed769c4f0fd3d6347637b08c0ce089ee","8a56dec82a093577b4baf6671bed4c188d9c91245c58b555d9413afdae0f5ef4","2a82044c01e33abcff178c40d92147b09d00100941792e73616e0dff34e24be1","c18d6a4ef65188be1402419f3897c81ebcf8734b75e18cd88339f5e87a898e78","98b11d7c38cd16564752daad6f765e57badec84327aa2a9c4afd6e57df7bc323","6ff59beb4df1962264f05ab423925952d2438e34850331def2021a47e14c2a87","c5f7dd417839557bc9aec649bf5e8d6b1310ae80c74abe51d4252e055a056f5d","6c641a178584c76aadd7118e38c71a1e2043fab5d71bbd42305e6a16e8f60baa","1c4a7fdc1046446f54e7987feded2e2174441e2c4c7cd81590e54670bc077011","31abe033085d50d29a7fce4a35578da0cd53d0d28e694d985eee196c0f4550ac","f77d2f04fc8bad5e84526f4c1700e505bca30920fa5bf2340a43c72853fe6ba6","4421a330b69553afb329b51fe3ffdba73a613e42dd384c3b2cb791dd3ce93e77","5ba89cd572a1a38ae51a65b97d6130bb4dabe3aeea000fb3827517e0812ae6ce","cd0bb0d27e61f1b86dfa2cb202ccc5c315be4da71fbef57833d409d5af82464d","a2bdbef49ba43ee5c10b21d6fc74dcb93916492ed45f46eba749ea25022fe5fd","52f5c39e78a90c1d8ed7db18f39d890b2e8464a3f44d4233617893f6648e317d","89de0ce672e590570d8f1e78fde422ef06e8206055b911698b9a29861c72d72b","963c25e067df2c5fbc0dd329ae8d90bec2d7a85ebd70e8011e142f4d014d23f5","4cd25335cb77d04f6ebe250cca8ce93ecf42960af708cffb6c3ce062025f1315","d7096cf9028c829f5f320261b47598e01b14382d0bcee06b51f10da4ab9a0521","164a952dd8f717cedd8d04d6a80268e79e0f0379c5aeb7edc95277e668ec0cb8","8043e11367d6dfa83d1582b3d265aa4da667a00e33d1f761c40a545474e77f82","788a5076d9555cf362db1f4cdcc5b541a92f17b3c87f4f2b649def8d0ca58f85","ffb0548ecf815de968e92a11dacf179f0bbc0511f2cee8562c173a6eefdf648a","61c4b9a73cb959f560b34cb41ff26b8f43c66e13c67d101c9d5ff42602648faf","22398fea7b2ce60906633a38dfd53571e9c7d42e0e21ac6613c791f4f61dce54","7657e38f0d9fc0989f7a3e79115cb8f224cd7f3e970bef697a09579d548d52b0","d295adde1b763f68e389d40087b339d5c59a82b5a87d33ac30aad1ec44b9730a","755b77b7d6cf1fbdddc2ffe10d0a65aae7bbb7effb471b7b599098e1e796a6ec","c0ecb206c8959117b8b0f446bb46e1a3a0d45e595e9a41f4612aadf20184a0e6","af2d23bee93a2de84735914838ff9761d63eac1728fe788f2fee7ea50c1bf2ec","bd10c7f420d3128efa468f1c8cd704b00002cb80aca409793bb7d0baede3ffb5","01268f0a8d9261d226d9193261a7e4c5dba757573e5cf0edda0f4e829ed38298","9d1bf686e0868f2d48d69b632843e89e516dc43d0ebde493ba02adea912ab85f","9f3aa52b42a18c89c4cc7a816c9412acaa0661d88a20583d4952a2f3a3d944c3","cf86a4bbf5b49451cde1bf5458883420af9ce10cae7aa6d1162188e24ef77dcb","85cd4986fd4f6f7cbb25831ae7ca518cc12c82c20940da88926861d8dd7066dd","2abee8edc8abb3bcf3963cefbae20717981648cd5f95403b98d2ac8f5e9299a9",{"version":"436d0c6d261d36a487a39f235112828158890a59fe16f8cf714032e8188ba5c6","signature":"4a525250c01bedc95009b78838c2a2ac7f61062b62077c12c7c063cd2a09f982"},{"version":"c8d896cdd324939cb5c31fe816b7addd93cd45dbe5226c43cf4ecb034d132178","signature":"e1f3eede60cbecea09fd4e483748b4790b4e480a4d15656f8f8122ca3b0752a9"},{"version":"40118deb1d768339e77c3de81da7f42882a2d9bbb8d9295ef0f3c115aa878a83","signature":"093c38c5d6e62473d2b2fd5fcadc88afee8dc634eaf8dea8ddc4f93fc5ceb678"},"420845f2661ac73433cbdc45f36d1f7ca7ea4eca60c3cbd077adf3355387cb63",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","ecf5cb089ea438f2545e04b6c52828c68d0b0f4bfaa661986faf36da273e9892","95444fb6292d5e2f7050d7021383b719c0252bf5f88854973977db9e3e3d8006","241bd4add06f06f0699dcd58f3b334718d85e3045d9e9d4fa556f11f4d1569c1","06540a9f3f2f88375ada0b89712de1c4310f7398d821c4c10ab5c6477dafb4bc",{"version":"de2d3120ed0989dbc776de71e6c0e8a6b4bf1935760cf468ff9d0e9986ef4c09","affectsGlobalScope":true},"b8bff8a60af0173430b18d9c3e5c443eaa3c515617210c0c7b3d2e1743c19ecb","97bdf234f5db52085d99c6842db560bca133f8a0413ff76bf830f5f38f088ce3","a76ebdf2579e68e4cfe618269c47e5a12a4e045c2805ed7f7ab37af8daa6b091","b493ff8a5175cbbb4e6e8bcfa9506c08f5a7318b2278365cfca3b397c9710ebc","e59d36b7b6e8ba2dd36d032a5f5c279d2460968c8b4e691ca384f118fb09b52a","e96885c0684c9042ec72a9a43ef977f6b4b4a2728f4b9e737edcbaa0c74e5bf6","303ee143a869e8f605e7b1d12be6c7269d4cab90d230caba792495be595d4f56","89e061244da3fc21b7330f4bd32f47c1813dd4d7f1dc3d0883d88943f035b993","e46558c2e04d06207b080138678020448e7fc201f3d69c2601b0d1456105f29a","71549375db52b1163411dba383b5f4618bdf35dc57fa327a1c7d135cf9bf67d1","7e6b2d61d6215a4e82ea75bc31a80ebb8ad0c2b37a60c10c70dd671e8d9d6d5d","78bea05df2896083cca28ed75784dde46d4b194984e8fc559123b56873580a23","5dd04ced37b7ea09f29d277db11f160df7fd73ba8b9dba86cb25552e0653a637","f74b81712e06605677ae1f061600201c425430151f95b5ef4d04387ad7617e6a","9a72847fcf4ac937e352d40810f7b7aec7422d9178451148296cf1aa19467620","3ae18f60e0b96fa1e025059b7d25b3247ba4dcb5f4372f6d6e67ce2adac74eac","2b9260f44a2e071450ae82c110f5dc8f330c9e5c3e85567ed97248330f2bf639","4f196e13684186bda6f5115fc4677a87cf84a0c9c4fc17b8f51e0984f3697b6d","61419f2c5822b28c1ea483258437c1faab87d00c6f84481aa22afb3380d8e9a4","64479aee03812264e421c0bf5104a953ca7b02740ba80090aead1330d0effe91","a5eb4835ab561c140ffc4634bb039387d5d0cceebb86918f1696c7ac156d26fd","c5570e504be103e255d80c60b56c367bf45d502ca52ee35c55dec882f6563b5c","4252b852dd791305da39f6e1242694c2e560d5e46f9bb26e2aca77252057c026","0520b5093712c10c6ef23b5fea2f833bf5481771977112500045e5ea7e8e2b69","5c3cf26654cf762ac4d7fd7b83f09acfe08eef88d2d6983b9a5a423cb4004ca3","e60fa19cf7911c1623b891155d7eb6b7e844e9afdf5738e3b46f3b687730a2bd","b1fd72ff2bb0ba91bb588f3e5329f8fc884eb859794f1c4657a2bfa122ae54d0","6cf42a4f3cfec648545925d43afaa8bb364ac10a839ffed88249da109361b275","ba13c7d46a560f3d4df8ffb1110e2bbec5801449af3b1240a718514b5576156e","6df52b70d7f7702202f672541a5f4a424d478ee5be51a9d37b8ccbe1dbf3c0f2","0ca7f997e9a4d8985e842b7c882e521b6f63233c4086e9fe79dd7a9dc4742b5e","91046b5c6b55d3b194c81fd4df52f687736fad3095e9d103ead92bb64dc160ee","db5704fdad56c74dfc5941283c1182ed471bd17598209d3ac4a49faa72e43cfc","758e8e89559b02b81bc0f8fd395b17ad5aff75490c862cbe369bb1a3d1577c40","2ee64342c077b1868f1834c063f575063051edd6e2964257d34aad032d6b657c","6f6b4b3d670b6a5f0e24ea001c1b3d36453c539195e875687950a178f1730fa7","05c4e2a992bb83066a3a648bad1c310cecd4d0628d7e19545bb107ac9596103a","b48b83a86dd9cfe36f8776b3ff52fcd45b0e043c0538dc4a4b149ba45fe367b9","792de5c062444bd2ee0413fb766e57e03cce7cdaebbfc52fc0c7c8e95069c96b","a79e3e81094c7a04a885bad9b049c519aace53300fb8a0fe4f26727cb5a746ce","dd6c3362aaaec60be028b4ba292806da8e7020eef7255c7414ce4a5c3a7138ef","8a4e89564d8ea66ad87ee3762e07540f9f0656a62043c910d819b4746fc429c5","b9011d99942889a0f95e120d06b698c628b0b6fdc3e6b7ecb459b97ed7d5bcc6","4d639cbbcc2f8f9ce6d55d5d503830d6c2556251df332dc5255d75af53c8a0e7","cdb48277f600ab5f429ecf1c5ea046683bc6b9f73f3deab9a100adac4b34969c","75be84956a29040a1afbe864c0a7a369dfdb739380072484eff153905ef867ee","b06b4adc2ae03331a92abd1b19af8eb91ec2bf8541747ee355887a167d53145e","3114b315cd0687aad8b57cff36f9c8c51f5b1bc6254f1b1e8446ae583d8e2474","0d417c15c5c635384d5f1819cc253a540fe786cc3fda32f6a2ae266671506a21","af733cb878419f3012f0d4df36f918a69ba38d73f3232ba1ab46ef9ede6cb29c","cb59317243a11379a101eb2f27b9df1022674c3df1df0727360a0a3f963f523b","0a01b0b5a9e87d04737084731212106add30f63ec640169f1462ba2e44b6b3a8","06b8a7d46195b6b3980e523ef59746702fd210b71681a83a5cf73799623621f9","860e4405959f646c101b8005a191298b2381af8f33716dc5f42097e4620608f8","f7e32adf714b8f25d3c1783473abec3f2e82d5724538d8dcf6f51baaaff1ca7a","e07d62a8a9a3bb65433a62e9bbf400c6bfd2df4de60652af4d738303ee3670a1","bfbf80f9cd4558af2d7b2006065340aaaced15947d590045253ded50aabb9bc5","851e8d57d6dd17c71e9fa0319abd20ab2feb3fb674d0801611a09b7a25fd281c","c3bd2b94e4298f81743d92945b80e9b56c1cdfb2bef43c149b7106a2491b1fc9","a246cce57f558f9ebaffd55c1e5673da44ea603b4da3b2b47eb88915d30a9181","d993eacc103c5a065227153c9aae8acea3a4322fe1a169ee7c70b77015bf0bb2","fc2b03d0c042aa1627406e753a26a1eaad01b3c496510a78016822ef8d456bb6","063c7ebbe756f0155a8b453f410ca6b76ffa1bbc1048735bcaf9c7c81a1ce35f","748e79252a7f476f8f28923612d7696b214e270cc909bc685afefaac8f052af0","9669075ac38ce36b638b290ba468233980d9f38bdc62f0519213b2fd3e2552ec","4d123de012c24e2f373925100be73d50517ac490f9ed3578ac82d0168bfbd303","656c9af789629aa36b39092bee3757034009620439d9a39912f587538033ce28","3ac3f4bdb8c0905d4c3035d6f7fb20118c21e8a17bee46d3735195b0c2a9f39f","1f453e6798ed29c86f703e9b41662640d4f2e61337007f27ac1c616f20093f69","af43b7871ff21c62bf1a54ec5c488e31a8d3408d5b51ff2e9f8581b6c55f2fc7","70550511d25cbb0b6a64dcac7fffc3c1397fd4cbeb6b23ccc7f9b794ab8a6954","af0fbf08386603a62f2a78c42d998c90353b1f1d22e05a384545f7accf881e0a","c3f32a185cd27ac232d3428a8d9b362c3f7b4892a58adaaa022828a7dcd13eed","3139c3e5e09251feec7a87f457084bee383717f3626a7f1459d053db2f34eb76","4888fd2bcfee9a0ce89d0df860d233e0cee8ee9c479b6bd5a5d5f9aae98342fe","3be870c8e17ec14f1c18fc248f5d2c4669e576404744ff5c63e6dafcf05b97ea","56654d2c5923598384e71cb808fac2818ca3f07dd23bb018988a39d5e64f268b","8b6719d3b9e65863da5390cb26994602c10a315aa16e7d70778a63fee6c4c079","6ab380571d87bd1d6f644fb6ab7837239d54b59f07dc84347b1341f866194214","547d3c406a21b30e2b78629ecc0b2ddaf652d9e0bdb2d59ceebce5612906df33","b3a4f9385279443c3a5568ec914a9492b59a723386161fd5ef0619d9f8982f97","3fe66aba4fbe0c3ba196a4f9ed2a776fe99dc4d1567a558fb11693e9fcc4e6ed","140eef237c7db06fc5adcb5df434ee21e81ee3a6fd57e1a75b8b3750aa2df2d8","0944ec553e4744efae790c68807a461720cff9f3977d4911ac0d918a17c9dd99","7c9ed7ffdc6f843ab69e5b2a3e7f667b050dd8d24d0052db81e35480f6d4e15d","7c7d9e116fe51100ff766703e6b5e4424f51ad8977fe474ddd8d0959aa6de257","af70a2567e586be0083df3938b6a6792e6821363d8ef559ad8d721a33a5bcdaf","006cff3a8bcb92d77953f49a94cd7d5272fef4ab488b9052ef82b6a1260d870b","7d44bfdc8ee5e9af70738ff652c622ae3ad81815e63ab49bdc593d34cb3a68e5","339814517abd4dbc7b5f013dfd3b5e37ef0ea914a8bbe65413ecffd668792bc6","34d5bc0a6958967ec237c99f980155b5145b76e6eb927c9ffc57d8680326b5d8","9eae79b70c9d8288032cbe1b21d0941f6bd4f315e14786b2c1d10bccc634e897","18ce015ed308ea469b13b17f99ce53bbb97975855b2a09b86c052eefa4aa013a","5a931bc4106194e474be141e0bc1046629510dc95b9a0e4b02a3783847222965","5e5f371bf23d5ced2212a5ff56675aefbd0c9b3f4d4fdda1b6123ac6e28f058c","907c17ad5a05eecb29b42b36cc8fec6437be27cc4986bb3a218e4f74f606911c","3656f0584d5a7ee0d0f2cc2b9cffbb43af92e80186b2ce160ebd4421d1506655","a726ad2d0a98bfffbe8bc1cd2d90b6d831638c0adc750ce73103a471eb9a891c","f44c0c8ce58d3dacac016607a1a90e5342d830ea84c48d2e571408087ae55894","75a315a098e630e734d9bc932d9841b64b30f7a349a20cf4717bf93044eff113","9131d95e32b3d4611d4046a613e022637348f6cebfe68230d4e81b691e4761a1","b03aa292cfdcd4edc3af00a7dbd71136dd067ec70a7536b655b82f4dd444e857","90f690a1c5fcb4c2d19c80fea05c8ab590d8f6534c4c296d70af6293ede67366","be95e987818530082c43909be722a838315a0fc5deb6043de0a76f5221cbad24","9ed5b799c50467b0c9f81ddf544b6bcda3e34d92076d6cab183c84511e45c39f","b4fa87cc1833839e51c49f20de71230e259c15b2c9c3e89e4814acc1d1ef10de","e90ac9e4ac0326faa1bc39f37af38ace0f9d4a655cd6d147713c653139cf4928","ea27110249d12e072956473a86fd1965df8e1be985f3b686b4e277afefdde584","1f6058d60eaa8825f59d4b76bbf6cc0e6ad9770948be58de68587b0931da00cc","5666075052877fe2fdddd5b16de03168076cf0f03fbca5c1d4a3b8f43cba570c","50100b1a91f61d81ca3329a98e64b7f05cddc5e3cb26b3411adc137c9c631aca","11aceaee5663b4ed597544567d6e6a5a94b66857d7ebd62a9875ea061018cd2c","6e30d0b5a1441d831d19fe02300ab3d83726abd5141cbcc0e2993fa0efd33db4","423f28126b2fc8d8d6fa558035309000a1297ed24473c595b7dec52e5c7ebae5","fb30734f82083d4790775dae393cd004924ebcbfde49849d9430bf0f0229dd16","2c92b04a7a4a1cd9501e1be338bf435738964130fb2ad5bd6c339ee41224ac4c","c5c5f0157b41833180419dacfbd2bcce78fb1a51c136bd4bcba5249864d8b9b5","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","4bb6035e906946163ecfaec982389d0247ceeac6bdee7f1d07c03d9c224db3aa","8a44b424edee7bb17dc35a558cc15f92555f14a0441205613e0e50452ab3a602","24a00d0f98b799e6f628373249ece352b328089c3383b5606214357e9107e7d5","33637e3bc64edd2075d4071c55d60b32bdb0d243652977c66c964021b6fc8066","0f0ad9f14dedfdca37260931fac1edf0f6b951c629e84027255512f06a6ebc4c","16ad86c48bf950f5a480dc812b64225ca4a071827d3d18ffc5ec1ae176399e36","8cbf55a11ff59fd2b8e39a4aa08e25c5ddce46e3af0ed71fb51610607a13c505","d5bc4544938741f5daf8f3a339bfbf0d880da9e89e79f44a6383aaf056fe0159","c82857a876075e665bbcc78213abfe9e9b0206d502379576d7abd481ade3a569","4f71d883ed6f398ba8fe11fcd003b44bb5f220f840b3eac3c395ad91304e4620","5229c3934f58413f34f1b26c01323c93a5a65a2d9f2a565f216590dfbed1fe32","9fd7466b77020847dbc9d2165829796bf7ea00895b2520ff3752ffdcff53564b","fbfc12d54a4488c2eb166ed63bab0fb34413e97069af273210cf39da5280c8d6","85a84240002b7cf577cec637167f0383409d086e3c4443852ca248fc6e16711e","4c754b03f36ff35fc539f9ebb5f024adbb73ec2d3e4bfb35b385a05abb36a50e","59507446213e73654d6979f3b82dadc4efb0ed177425ae052d96a3f5a5be0d35","a914be97ca7a5be670d1545fc0691ac3fbabd023d7d084b338f6934349798a1f","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","62c3621d34fb2567c17a2c4b89914ebefbfbd1b1b875b070391a7d4f722e55dc","c05ac811542e0b59cb9c2e8f60e983461f0b0e39cea93e320fad447ff8e474f3","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","132351cbd8437a463757d3510258d0fa98fd3ebef336f56d6f359cf3e177a3ce","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","33d1888c3c27d3180b7fd20bac84e97ecad94b49830d5dd306f9e770213027d1","ee942c58036a0de88505ffd7c129f86125b783888288c2389330168677d6347f","a3f317d500c30ea56d41501632cdcc376dae6d24770563a5e59c039e1c2a08ec","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","0c1651a159995dfa784c57b4ea9944f16bdf8d924ed2d8b3db5c25d25749a343","aaa13958e03409d72e179b5d7f6ec5c6cc666b7be14773ae7b6b5ee4921e52db","0a86e049843ad02977a94bb9cdfec287a6c5a0a4b6b5391a6648b1a122072c5a","87437ca9dabab3a41d483441696ff9220a19e713f58e0b6a99f1731af10776d7","26c5dfa9aa4e6428f4bb7d14cbf72917ace69f738fa92480b9749eebce933370","8e94328e7ca1a7a517d1aa3c569eac0f6a44f67473f6e22c2c4aff5f9f4a9b38","d604d413aff031f4bfbdae1560e54ebf503d374464d76d50a2c6ded4df525712","299f0af797897d77685d606502be72846b3d1f0dc6a2d8c964e9ea3ccbacf5bc","12bfd290936824373edda13f48a4094adee93239b9a73432db603127881a300d","340ceb3ea308f8e98264988a663640e567c553b8d6dc7d5e43a8f3b64f780374","c5a769564e530fba3ec696d0a5cff1709b9095a0bdf5b0826d940d2fc9786413","7124ef724c3fc833a17896f2d994c368230a8d4b235baed39aa8037db31de54f","5de1c0759a76e7710f76899dcae601386424eab11fb2efaf190f2b0f09c3d3d3","9c5ee8f7e581f045b6be979f062a61bf076d362bf89c7f966b993a23424e8b0d","1a11df987948a86aa1ec4867907c59bdf431f13ed2270444bf47f788a5c7f92d","3c97b5ea66276cf463525a6aa9d5bb086bf5e05beac70a0597cda2575503b57b","b756781cd40d465da57d1fc6a442c34ae61fe8c802d752aace24f6a43fedacee","0fe76167c87289ea094e01616dcbab795c11b56bad23e1ef8aba9aa37e93432a","3a45029dba46b1f091e8dc4d784e7be970e209cd7d4ff02bd15270a98a9ba24b","032c1581f921f8874cf42966f27fd04afcabbb7878fa708a8251cac5415a2a06","69c68ed9652842ce4b8e495d63d2cd425862104c9fb7661f72e7aa8a9ef836f8","a31383256374723b47d8b5497a9558bbbcf95bcecfb586a36caf7bfd3693eb0e","06f62a14599a68bcde148d1efd60c2e52e8fa540cc7dcfa4477af132bb3de271","64aa66c7458cbfd0f48f88070b08c2f66ae94aba099dac981f17c2322d147c06","11f19ce32d21222419cecab448fa335017ebebf4f9e5457c4fa9df42fa2dcca7","2e8ee2cbb5e9159764e2189cf5547aebd0e6b0d9a64d479397bb051cd1991744","1b0471d75f5adb7f545c1a97c02a0f825851b95fe6e069ac6ecaa461b8bb321d","1d157c31a02b1e5cca9bc495b3d8d39f4b42b409da79f863fb953fbe3c7d4884","07baaceaec03d88a4b78cb0651b25f1ae0322ac1aa0b555ae3749a79a41cba86","619a132f634b4ebe5b4b4179ea5870f62f2cb09916a25957bff17b408de8b56d","f60fa446a397eb1aead9c4e568faf2df8068b4d0306ebc075fb4be16ed26b741","f3cb784be4d9e91f966a0b5052a098d9b53b0af0d341f690585b0cc05c6ca412","350f63439f8fe2e06c97368ddc7fb6d6c676d54f59520966f7dbbe6a4586014e","eba613b9b357ac8c50a925fa31dc7e65ff3b95a07efbaa684b624f143d8d34ba","9814545517193cf51127d7fbdc3b7335688206ec04ee3a46bba2ee036bd0dcac","0f6199602df09bdb12b95b5434f5d7474b1490d2cd8cc036364ab3ba6fd24263","c8ca7fd9ec7a3ec82185bfc8213e4a7f63ae748fd6fced931741d23ef4ea3c0f","5c6a8a3c2a8d059f0592d4eab59b062210a1c871117968b10797dee36d991ef7","ad77fd25ece8e09247040826a777dc181f974d28257c9cd5acb4921b51967bd8","08323a8971cb5b2632b532cba1636ad4ca0d76f9f7d0b8d1a0c706fdf5c77b45","06fc6fbc8eb2135401cf5adce87655790891ca22ad4f97dfccd73c8cf8d8e6b5","1cce0c01dd7e255961851cdb9aa3d5164ec5f0e7f0fefc61e28f29afedda374f","7778598dfac1b1f51b383105034e14a0e95bc7b2538e0c562d5d315e7d576b76","b14409570c33921eb797282bb7f9c614ccc6008bf3800ba184e950cdfc54ab5c","2f0357257a651cc1b14e77b57a63c7b9e4e10ec2bb57e5fdccf83be0efb35280","866e63a72a9e85ed1ec74eaebf977be1483f44aa941bcae2ba9b9e3b39ca4395","6865d0d503a5ad6775339f6b5dcfa021d72d2567027943b52679222411ad2501","dc2be4768bcf96e5d5540ed06fdfbddb2ee210227556ea7b8114ad09d06d35a5","e86813f0b7a1ada681045a56323df84077c577ef6351461d4fff4c4afdf79302","b3ace759b8242cc742efb6e54460ed9b8ceb9e56ce6a9f9d5f7debe73ed4e416","1c4d715c5b7545acecd99744477faa8265ca3772b82c3fa5d77bfc8a27549c7e","8f92dbdd3bbc8620e798d221cb7c954f8e24e2eed31749dfdb5654379b031c26","f30bfef33d69e4d0837e9e0bbf5ea14ca148d73086dc95a207337894fde45c6b","82230238479c48046653e40a6916e3c820b947cb9e28b58384bc4e4cea6a9e92","3a6941ff3ea7b78017f9a593d0fd416feb45defa577825751c01004620b507d3","481c38439b932ef9e87e68139f6d03b0712bc6fc2880e909886374452a4169b5","64054d6374f7b8734304272e837aa0edcf4cfa2949fa5810971f747a0f0d9e9e","267498893325497596ff0d99bfdb5030ab4217c43801221d2f2b5eb5734e8244","d2ec89fb0934a47f277d5c836b47c1f692767511e3f2c38d00213c8ec4723437","475e411f48f74c14b1f6e50cc244387a5cc8ce52340dddfae897c96e03f86527","c1022a2b86fadc3f994589c09331bdb3461966fb87ebb3e28c778159a300044e"],"root":[[105,107],417,418,[873,875],[1214,1216]],"options":{"allowJs":false,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"checkJs":false,"composite":true,"declaration":true,"downlevelIteration":false,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"importHelpers":true,"inlineSourceMap":false,"inlineSources":false,"module":99,"newLine":1,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":false,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./lib","removeComments":false,"rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":8},"fileIdsList":[[70,86,87,105,106],[70,80,876,1212,1214],[70,80,1117,1118,1119,1211,1212,1213],[70,80,1211,1212],[70,80,104,1212],[70,80,86,1212],[70,400,413,415,416,417],[70,88],[70,400,417,418,872,873],[70,262,872],[626],[626,627,628],[596,626],[558,597,598,625],[596],[588],[550,626],[559,560,589,590,591,592,593,594,595],[537],[588,623],[623],[623,624],[599,600],[588,601,623],[599,601,602,622],[621],[554,555,556],[550,557],[553,557],[538,546,547,548,550,553,554,557],[547,549,550,557],[550,553,557],[551,553,557],[537,538,543,545,549,553,557],[551,552,557],[546,547,548,549,550,551,552,553,555,556,557],[538,544,561,562,563,564,565,566,567,568,569,570,571,572,573,574,587],[558,580],[576],[538,558,575,577,578,579,580,582,583,584,585],[548,558,586],[558,579],[558,577,578,579],[558,581],[575,576,577,578,579,580,581,582,583,584,585,586],[537,542],[543,544],[532],[535],[535,536],[534,535,536,537,540],[539],[532,533,534],[71],[853,854,855,856,857,858],[855,856],[836,842,843,844],[836,840,841],[229,842],[842],[839,842],[848,852],[848,849],[845,852],[852],[848,850,851],[846,847],[848],[537,542,629,634,647],[635,637,642,643],[635,636,644,645,646],[634,642],[629,634,635,638,639,640,641],[629,634],[634],[629],[630,631,632,633],[630],[853],[129],[129,769,770],[129,769,779,780,806,809,816,829,834],[127,129],[123,126,129],[81,129,130,131,133,138],[81,129,130,132,133,138],[81,129,132,133,138],[81,129,130,132,133],[81,123,129,130,132,133,138],[237,238],[238,239,240,241],[229,238,240],[237,239],[192,229],[192,229,233],[233,234,235,236],[233,235],[234],[210,229,242,243,244,247],[243,244,246],[191,229,242,243,244,245],[244],[242,243],[229,242],[401],[401,402,403],[401,402],[864,866],[860,861,862,863],[861,864,865,866],[862,863,864,865],[863],[194,229,311],[221,229,308],[194,229],[140],[269,1219],[269,270,1218],[191,194,229,305,306,307],[306,308,310,312],[192,229,230,231],[191,194,196,199,210,221,229],[206,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430],[1431],[1411,1412,1431],[206,1409,1414,1431],[206,1415,1416,1431],[206,1415,1431],[206,1409,1415,1431],[206,1421,1431],[206,1431],[206,1409],[1414],[206],[192,221,229],[128],[113],[115,118,119],[117],[108,114,116,120,123,125,126,127],[116,121,122,128],[121,124],[116,117,121,128],[116,128],[109,110,111,112],[111],[142],[178],[179,184,213],[180,191,192,199,210,221],[180,181,191,199],[182,222],[183,184,192,200],[184,210,218],[185,187,191,199],[178,186],[187,188],[191],[189,191],[178,191],[191,192,193,210,221],[191,192,193,206,210,213],[176,179,226],[187,191,194,199,210,221],[191,192,194,195,199,210,218,221],[194,196,210,218,221],[142,143,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228],[191,197],[198,221,226],[187,191,199,210],[200],[201],[178,202],[199,200,203,220,226],[204],[205],[191,206,207],[206,208,222,224],[179,191,210,211,212,213],[179,210,212],[210,211],[213],[214],[178,210],[191,216,217],[216,217],[184,199,210,218],[219],[199,220],[179,194,205,221],[184,222],[210,223],[198,224],[225],[179,184,191,193,202,210,221,224,226],[210,227],[192,210,229,304],[192,313],[194,229,305,309],[1116],[1117],[877,887,961,985],[877,881,886,965],[877,887,894,961,984,986],[887],[877,882,883,884,885],[886],[877,886],[961,987,988],[989],[961,987],[988,989],[947],[877,880,961,965,968,971],[877,951,961,992],[962],[891,962],[947,962],[877,968,969],[879,889,891,893,894,895,965,966,968,970],[970],[896],[878,970],[877,879,970],[878,968,969,970],[880,887,894,896,899,930,951,958,960,962,965,966,967,968,969],[880,891,949,959,961,962,965],[877,894,901,971,972],[877,894,915],[891,965],[891,965,1000],[891,1001],[891,1003],[891,898,1003,1004],[1006],[965,1000],[891,1000],[1006,1007,1008,1009,1010,1011,1012,1013,1014,1015],[877,901],[901,925,928,930,951],[1024],[1026],[891,896,965,1000,1004],[1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041],[891,896],[896,1004],[896,965,1000],[898,961,965,1043,1044],[898,1046],[893,898,1046],[896,898,902,961,1046],[898,962,968,1046],[898,961,968,1043,1052],[896,898,902,1046],[898,904,961,968,1055],[890,1046],[898,961,968,1059],[881,961,968,1046,1064],[898,927,961,968,1046],[898,927],[898,927,961,965,1051],[926,994],[898,927,965],[898,926,961],[927,1068],[891,924,925,927,962,968,971],[898,927,1058],[926,927,947],[898,901,927,961,965,1071],[926,947],[887,1073,1074],[1073,1074],[896,998,1073,1074],[1073,1074,1079],[928,1073,1074],[1062,1073,1074],[1073],[1074],[901,958,1073,1074],[887,896,900,901,958,961,998,1073,1074],[901,1073,1074],[898,901,958],[902],[877,890,894,896,898,899,930,951,957,961,962],[902,903,904,905,906,907,908,909,910,911,912,913,914,918,919,920,921,958],[877,898,901,958,967],[877,901,958],[901,958,965],[877,891,898,901,958,967],[877,891,898,901,958],[877,891,901,958],[891,898,901,911],[918],[877,916,917,958],[898,958],[891],[889,890,892,961,965,968,970],[877,879,897,965,969,970],[877,898],[965],[965,966,968],[877,889,890,893,923,961,965,968],[882],[965,968],[966],[891,965,968],[877,965,966,967,969],[888,889,893,965,968,969],[879,965,967,968,970],[889,890,893,965,968],[890,893,965,968],[879,890,891,893,965,970,971],[969,970],[879,898,962,963,964,966,967,968,969,970],[966,968,970],[889,893,896,958,962,968,1044],[961],[889,893,896,898,958,961,968,997,1044,1062],[896,958,961],[896,958,961,1043],[961,962],[896,958,961,965],[879,895,896,958,961,970],[881,968,1062],[877,889,893,896,958,961,965,968,1044,1063],[891,896,922,961],[917],[891,898,969],[916,917],[879,895,970],[896,941,952,958,961,970],[935,942],[877],[890,936,958,962],[951],[901,951],[896,942,952,961,970],[941],[935],[940,951],[877,917,927,930,934,935,941,951,953,954,955,956,958,961],[896,899,930,936,941,958,961,962],[877,927,930,934,944,951,962],[877,925,958,971],[934,935,936,937,938,942],[939,941],[916,934,937,941,942],[877,935],[925,932,973],[925,933,973],[901,925,928,951,973],[877,890,891,893,896,898,901,925,930,932,933,934,935,936,937,941,942,943,945,950,958,961,962,965,971],[901,973],[899,961,965],[894,946,947,948,949,951,971],[898],[898,929],[898,901,928,929,958,961,967],[877,1079],[877,901,931],[877,891,894,900,969],[877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,915,916,917,922,923,924,925,926,927,928,929,930,932,933,934,935,936,937,938,939,940,941,942,943,944,945,947,948,949,950,951,954,956,957,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1016,1017,1018,1019,1020,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115],[901,925,973],[210,229],[380],[191,194,196,210,218,221,227,229],[71,72,73],[74],[71,72,74,296,297,298],[73],[73,76,77,79],[76,77,78,83],[261,276,302,303,383],[261,364],[80,83,84,1212],[80,83,1212],[80,82,83,84,1212],[82,139,260],[95,96],[80,88,94,1212],[80,1212],[94,97,103],[98],[99,100,101,102],[86],[262],[194,229,262],[263,264,265,268,385],[266,267],[262,384],[94,386,390,393,399],[88,94,262,388],[388,389],[387],[391,392],[394,395,396,397,398],[88],[89,90,91,92,93],[81,82,129,130,132,133,134,135,136,137,138],[262,494],[493,494,495],[88,493],[492],[94],[1129,1130],[80,1128,1212],[473,1128,1131],[262,469],[469,470,473],[262,400],[471,472],[262,499],[498,499,500],[88,498],[497],[400],[1176],[262,514],[513,514,515,516],[513],[88,513],[502,512],[503],[504,505,506,507,510,511],[504,505,506,507,510],[400,503,509],[262,520],[519,520,521,522],[519],[88,519],[518],[262,400,525],[525,526,529,530],[529],[88,262,524],[524,527,528],[262,649],[649,650],[648],[88,647],[262,656],[656,657],[262,652],[652,653,654,655],[262,652,653],[419,420,425],[420],[421,422,423,424],[659,662,663],[661,662],[666,667,668,669],[666],[88,666],[262,668],[665],[673,674,738,739],[673],[88,673,737],[262,738],[671,672],[1121,1122],[80,477,1212],[477,1123,1125],[1124],[477],[477,478,479,480,481,482],[88,477],[262,480],[475,476],[747,748],[262,747],[741,746],[262,745],[742,743,744],[752,753,754],[262,753],[88,262,752],[750,751],[488,489,490],[262,488],[262,489],[262,426,484],[484,485,486,487],[412],[262,411],[759,760],[262,759],[262,756],[756,757,758],[262,426,759],[1203,1204],[80,429,1212],[80,86,429,1212],[429,1205],[429,430,431],[262,429],[428],[81,130,132,133,138],[82,141,232,253,254,256,258,259],[1191,1192],[1191],[508],[318,319,323,350,351,353,354,355,357,358],[316,317],[316],[318,358],[318,319,355,356,358],[358],[315,358,359],[318,319,357,358],[318,319,321,322,357,358],[318,319,320,357,358],[318,319,323,350,351,352,353,354,357,358],[315,318,319,323,355,357],[323,358],[325,326,327,328,329,330,331,332,333,334,358],[348,358],[324,335,343,344,345,346,347,349],[328,358],[336,337,338,339,340,341,342,358],[535,536,537,540],[541],[433,434,437,438,439,440,441,442,443,445,446],[444],[437],[433,435,436,440,442,443,444,445],[435,436,446],[367,368],[191,229,366,367],[191,229,366],[191,192,229,363],[229,249,250,251],[249,250],[249],[229,248],[252],[374],[372,373],[371,375],[194,199,221,229,313,370],[777,778],[809],[777,807,808],[808,809,811,813,816],[809,811,812,814],[777,778,808,809,810,811,814,815],[777],[777,781],[776,777,778,779,781,783,788],[776,777,778,779,781,782,784,786,787,789],[777,779,788,789],[781,785],[774],[773,779],[774,775,776,778],[777,778,781,783,788],[773],[772,774],[774,819],[772,774,820],[776,777,779,780,781,788,789,791,802,803,805],[794,797,802,804],[777,782,783,792,794,800,806],[777,781,790],[798,799],[776,779,803],[777,779,793,794,797,800,801,802],[779,792,793],[772,779,793],[772,792,803],[798],[795,798],[777,779,781,792,803],[777,779,792,793,794,796,798,800,803],[792,795,797],[777,779,781,788,817,823,824,825,826,827,828],[817,818,825,828],[777,823,826,827,829],[821,823,826,828,829],[777,817],[777,779,781,784,788,807,817,818,821,823],[774,778,779,781,807,817,818,820,821,822,824],[779,818,819,823,824],[777,779,781,788,817,824,830,831,832,833],[834],[818],[777,823,830,831,834],[821,823,830,832,834],[782],[450,451,452,453,454,455,456,457,459,460,461,462],[454],[455],[451,452,453,454],[451,452],[452,460],[452],[450,451],[451,452,454,455,458],[180],[255],[257],[70],[292],[290,292],[281,289,290,291,293],[279],[282,287,292,295],[278,295],[282,283,286,287,288,295],[282,283,284,286,287,295],[279,280,281,282,283,287,288,289,291,292,293,295],[295],[277,279,280,281,282,283,284,286,287,288,289,290,291,292,293,294],[277,295],[282,284,285,287,288,295],[286,295],[287,288,292,295],[280,290],[1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1237,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1290,1291,1292,1293,1294,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1340,1341,1342,1344,1353,1355,1356,1357,1358,1359,1360,1362,1363,1365,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408],[1266],[1222,1225],[1224],[1224,1225],[1221,1222,1223,1225],[1222,1224,1225,1382],[1225],[1221,1224,1266],[1224,1225,1382],[1224,1390],[1222,1224,1225],[1234],[1257],[1278],[1224,1225,1266],[1225,1273],[1224,1225,1266,1284],[1224,1225,1284],[1225,1325],[1225,1266],[1221,1225,1343],[1221,1225,1344],[1366],[1350,1352],[1361],[1350],[1221,1225,1343,1350,1351],[1343,1344,1352],[1364],[1221,1225,1350,1351,1352],[1223,1224,1225],[1221,1225],[1222,1224,1344,1345,1346,1347],[1266,1344,1345,1346,1347],[1344,1346],[1224,1345,1346,1348,1349,1353],[1221,1224],[1225,1368],[1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1267,1268,1269,1270,1271,1272,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341],[1354],[80,852,855,857,859,867,1212],[273],[270,271,272],[270,273],[270,314,359],[270,360],[616],[613,616],[613,614,616],[608,616],[608,613,616],[613,616,617,618,619],[603,604,605,609,610,611,612,614,615],[603,604,605,609,610,611,612,615],[613],[614],[606,607],[620],[403,404,405,406,407],[403,404,405,406,407,408,409,410],[405],[403,405,406,407],[403],[277],[837,838],[837],[69],[676,677,678,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707],[693],[693,704],[678,695],[695],[702],[676],[678,679],[687],[678],[709,710],[709],[708,711,712,713,714,715,716],[712],[711],[153,157,221],[153,210,221],[148],[150,153,218,221],[199,218],[229],[148,229],[150,153,199,221],[145,146,149,152,179,191,210,221],[145,151],[149,153,179,213,221,229],[179,229],[169,179,229],[147,148,229],[153],[147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,170,171,172,173,174,175],[153,160,161],[151,153,161,162],[152],[145,148,153],[153,157,161,162],[157],[151,153,156,221],[145,150,151,153,157,160],[179,210],[148,153,169,179,226,229],[447,448,449,463,464,465,466],[449,463,464,465],[276,300,301],[276],[77,80,1212],[299],[75,79],[414],[85],[261],[82,85,139,260,261,414,660],[82],[260],[196,275,276],[192,194,229,276,360,361],[192,194,229,362],[194,196,199,200,201,229,276,308,310,313,360,362,364,365,369,376,377,378,379,381,382],[179,194,199,218,221,224,269,271,273,274,275],[719],[732],[675,732,733,734,735,736],[717,719,721,723,725,727,729,731],[88,262,400,446,467],[88,129,262,298,400,762,763,764,765,766,767,768,771,835,868],[262,400,870],[80,86,88,1212],[88,262,426],[88,262,426,427,432,468,474,483,491,496,501,517,523,531,651,658,664,670,740,749,755,761,869,871],[70,1120,1207,1208,1209,1210],[70,86,104],[70,80,86,104,426,1126,1127,1168,1182,1198,1202,1207,1212],[70,80,1207,1212],[70,1168,1206],[70,80,875,1193,1212],[70,1169,1170,1171,1172,1173,1174,1199,1200,1201],[70,1169,1170,1171,1172,1173],[70,80,104,1132,1168,1212],[70,80,104,1126,1127,1168,1171,1173,1182,1198,1199,1211,1212],[70,80,1132,1168,1212],[70,80,1127,1211,1212],[70,80,1168,1211,1212],[70,80,1127,1178,1186,1212],[70,80,1127,1178,1182,1186,1211,1212],[70,80,86,1178,1186,1212],[70,80,1127,1212],[70,80,1186,1212],[70,80,1126,1127,1168,1175,1177,1182,1187,1188,1189,1190,1194,1195,1196,1197,1211,1212],[70,80,86,104,1177,1178,1186,1193,1212],[70,80,1126,1178,1186,1212],[70,1179,1183,1184,1185],[70,80,86,426,1168,1211,1212],[70,80,86,1168,1182,1211,1212],[70,80,86,1168,1211,1212],[70,1180,1181],[70,104,1127],[70,1212],[70,80,1168,1193,1211,1212],[70,427,483],[70,427],[70,1135],[70,1134],[70,1134,1135,1136,1139,1140,1141],[70,1134,1137,1138],[70,1133,1137,1138,1142,1143,1154,1155,1167],[70,1138],[70,468],[70,1137],[70,1145,1146,1147],[70,1145,1146],[70,1144,1148,1158,1159,1161,1165,1166],[70,1149,1150,1151,1152,1153,1156,1157],[70,1143],[70,1137,1149,1150,1151,1152,1153,1156],[70,1142,1154,1155],[70,88,427,1144,1148,1158,1160],[70,432,1144,1148,1158,1159,1161,1165],[70,474],[70,1162,1163,1164],[70,426,468,483,491,496,501,517,523,531,651,658,664,670,740,749,755,761,869,871,1162,1163],[70,426,474,483,491],[415],[400,417,418,872,873],[262,872]],"referencedMap":[[107,1],[1215,2],[1214,3],[1216,4],[105,5],[106,6],[418,7],[417,8],[874,9],[873,10],[627,11],[628,11],[629,12],[597,13],[598,11],[626,14],[560,15],[589,16],[592,17],[591,11],[596,18],[595,19],[624,20],[600,21],[625,22],[601,23],[602,24],[623,25],[622,26],[557,27],[551,28],[554,29],[549,30],[548,31],[555,28],[547,32],[556,33],[550,34],[553,35],[558,36],[588,37],[581,38],[577,39],[586,40],[582,41],[583,42],[584,43],[580,43],[579,44],[587,45],[543,46],[545,47],[532,48],[536,49],[537,50],[539,51],[540,52],[535,53],[72,54],[859,55],[857,56],[845,57],[842,58],[836,59],[841,60],[840,61],[843,58],[849,62],[850,63],[846,64],[847,65],[852,66],[848,67],[851,68],[635,69],[644,70],[647,71],[639,72],[642,73],[643,74],[640,72],[641,75],[631,76],[634,77],[632,78],[633,78],[858,79],[854,79],[765,80],[766,80],[767,80],[763,80],[771,81],[835,82],[762,83],[764,80],[768,80],[769,80],[137,84],[132,85],[133,86],[130,87],[138,88],[134,89],[239,90],[242,91],[241,92],[240,93],[238,94],[234,95],[237,96],[236,97],[235,98],[233,94],[248,99],[247,100],[246,101],[245,102],[244,103],[243,104],[402,105],[405,106],[403,107],[861,108],[864,109],[867,110],[866,111],[865,112],[312,113],[365,114],[311,115],[141,116],[1220,117],[1219,118],[308,119],[313,120],[232,121],[370,122],[1431,123],[1411,124],[1413,125],[1412,124],[1415,126],[1417,127],[1418,128],[1419,129],[1420,127],[1421,128],[1422,127],[1423,130],[1424,128],[1425,127],[1426,131],[1427,124],[1428,124],[1429,132],[1416,133],[1430,134],[1414,134],[230,135],[136,80],[129,136],[114,137],[120,138],[118,139],[128,140],[123,141],[125,142],[126,143],[127,144],[122,144],[124,144],[117,144],[113,145],[112,146],[142,147],[143,147],[178,148],[179,149],[180,150],[181,151],[182,152],[183,153],[184,154],[185,155],[186,156],[187,157],[188,157],[190,158],[189,159],[191,160],[192,161],[193,162],[177,163],[194,164],[195,165],[196,166],[229,167],[197,168],[198,169],[199,170],[200,171],[201,172],[202,173],[203,174],[204,175],[205,176],[206,177],[207,177],[208,178],[210,179],[212,180],[211,181],[213,182],[214,183],[215,184],[216,185],[217,186],[218,187],[219,188],[220,189],[221,190],[222,191],[223,192],[224,193],[225,194],[226,195],[227,196],[305,197],[377,198],[310,199],[382,115],[1117,200],[1118,201],[1119,201],[1217,200],[986,202],[887,203],[985,204],[983,205],[886,206],[977,207],[978,208],[979,208],[980,208],[981,208],[982,208],[989,209],[990,210],[988,211],[991,212],[948,213],[962,214],[993,215],[994,216],[947,217],[995,218],[970,219],[896,220],[997,221],[998,222],[999,223],[878,224],[879,225],[961,226],[960,227],[973,228],[916,229],[1000,230],[1001,231],[1003,232],[1004,233],[1005,234],[1007,235],[1008,236],[1009,237],[1010,236],[1016,238],[1006,237],[1011,237],[1012,236],[1013,237],[1014,236],[1015,237],[1018,239],[1019,240],[1021,222],[1022,222],[1023,222],[1025,241],[1024,222],[1027,242],[1028,222],[1029,243],[1042,244],[1030,242],[1031,245],[1032,242],[1033,222],[1026,222],[1034,222],[1035,246],[1036,222],[1037,242],[1038,222],[1039,222],[1040,247],[1041,222],[1045,248],[1047,249],[1048,250],[1049,251],[1050,252],[1053,253],[1054,254],[1056,255],[1057,256],[1060,257],[1061,249],[1065,258],[1066,259],[1067,260],[1052,261],[1051,262],[1055,263],[927,264],[1069,265],[926,266],[1059,267],[1058,268],[1070,260],[1072,269],[1071,270],[1075,271],[1076,272],[1077,273],[1080,274],[1081,275],[1082,276],[1083,272],[1084,272],[1085,272],[1074,277],[1073,278],[1087,279],[1088,280],[1089,281],[902,282],[903,283],[958,284],[922,285],[904,286],[905,287],[906,288],[907,289],[908,290],[909,291],[910,289],[912,292],[911,289],[913,290],[914,282],[919,293],[918,294],[920,295],[921,282],[1090,296],[893,297],[898,298],[897,299],[963,300],[967,301],[924,302],[883,303],[884,303],[885,303],[1091,303],[888,304],[1092,305],[969,306],[968,307],[890,308],[966,309],[959,310],[889,311],[964,300],[1068,300],[892,312],[891,313],[965,314],[971,315],[1093,316],[881,317],[899,317],[1094,318],[1043,319],[1095,320],[1046,320],[1096,321],[1044,322],[1097,323],[1063,324],[1064,325],[923,326],[1099,327],[917,328],[1100,329],[952,330],[953,331],[1101,332],[934,333],[954,334],[955,335],[1102,336],[1103,337],[942,338],[956,339],[941,340],[957,341],[943,342],[945,343],[937,344],[939,345],[940,346],[1106,347],[938,348],[1107,349],[1108,350],[992,351],[951,352],[925,353],[949,354],[950,355],[929,356],[1109,357],[930,358],[1110,239],[1111,359],[1112,359],[1079,239],[928,239],[932,360],[933,360],[1062,360],[972,239],[1113,239],[901,361],[1114,239],[1116,362],[974,363],[1410,364],[381,365],[380,366],[74,367],[75,368],[299,369],[76,370],[77,371],[79,372],[384,373],[414,374],[660,375],[84,376],[85,377],[261,378],[97,379],[95,380],[96,381],[104,382],[1175,381],[99,383],[100,381],[103,384],[101,385],[263,386],[264,387],[265,386],[386,388],[268,389],[267,386],[385,390],[400,391],[389,392],[390,393],[388,394],[391,386],[393,395],[392,386],[394,383],[399,396],[91,397],[94,398],[93,397],[92,397],[139,399],[495,400],[496,401],[494,402],[493,403],[492,404],[1131,405],[1129,406],[1130,406],[1132,407],[470,408],[474,409],[469,410],[471,397],[473,411],[500,412],[501,413],[499,414],[498,415],[497,416],[1177,417],[515,418],[517,419],[516,420],[514,421],[502,397],[513,422],[504,423],[505,423],[506,423],[512,424],[511,425],[507,423],[510,426],[521,427],[523,428],[522,429],[520,430],[519,431],[518,404],[526,432],[531,433],[530,434],[525,435],[529,436],[524,416],[650,437],[651,438],[649,439],[648,440],[657,441],[658,442],[653,443],[656,444],[655,445],[419,386],[426,446],[422,447],[425,448],[659,386],[664,449],[663,450],[670,451],[667,452],[668,453],[669,454],[666,455],[665,416],[740,456],[674,457],[738,458],[739,459],[673,460],[671,416],[1123,461],[1121,462],[1122,462],[1126,463],[1125,464],[1124,465],[479,465],[483,466],[478,465],[480,467],[481,468],[482,468],[477,469],[476,404],[749,470],[748,471],[747,472],[746,473],[745,474],[743,404],[755,475],[754,476],[753,477],[752,478],[751,397],[491,479],[489,480],[490,481],[484,386],[485,482],[488,483],[413,484],[412,485],[761,486],[760,487],[757,488],[759,489],[758,490],[1205,491],[1203,492],[1204,493],[1206,494],[432,495],[431,496],[430,496],[429,497],[428,397],[82,498],[260,499],[1193,500],[1192,501],[509,502],[359,503],[318,504],[317,505],[322,506],[357,507],[354,508],[356,509],[319,508],[320,510],[324,510],[323,511],[321,512],[355,513],[353,508],[358,514],[325,515],[330,508],[332,508],[327,508],[328,515],[334,508],[335,516],[326,508],[331,508],[333,508],[329,508],[349,517],[348,508],[350,518],[344,508],[346,508],[345,508],[341,508],[347,519],[342,508],[343,520],[336,508],[337,508],[338,508],[339,508],[340,508],[541,521],[542,522],[444,523],[443,524],[438,525],[446,526],[437,527],[445,524],[369,528],[368,529],[367,530],[364,531],[252,532],[251,533],[250,534],[249,535],[253,536],[373,115],[375,537],[374,538],[372,115],[376,539],[371,540],[135,80],[813,541],[811,542],[809,543],[812,542],[814,544],[808,542],[815,545],[816,546],[810,541],[778,547],[790,548],[789,549],[788,550],[781,551],[786,552],[775,553],[776,554],[779,555],[784,556],[774,557],[773,558],[820,559],[819,560],[806,561],[805,562],[802,563],[791,564],[800,565],[801,566],[803,567],[796,568],[792,569],[793,570],[795,571],[799,572],[794,573],[797,574],[798,575],[829,576],[826,577],[828,578],[827,579],[818,580],[824,581],[823,582],[821,583],[834,584],[833,585],[830,586],[832,587],[831,588],[783,589],[463,590],[458,591],[456,592],[457,592],[455,593],[462,594],[461,595],[460,596],[452,597],[459,598],[379,599],[256,600],[258,601],[257,602],[293,603],[291,604],[292,605],[280,606],[281,604],[288,607],[279,608],[284,609],[285,610],[290,611],[296,612],[295,613],[278,614],[286,615],[287,616],[282,617],[289,603],[283,618],[1409,619],[1360,620],[1358,620],[1408,621],[1373,622],[1372,622],[1273,623],[1224,624],[1380,623],[1381,623],[1383,625],[1384,623],[1385,626],[1284,627],[1386,623],[1357,623],[1387,623],[1388,628],[1389,623],[1390,622],[1391,629],[1392,623],[1393,623],[1394,623],[1395,623],[1396,622],[1397,623],[1398,623],[1399,623],[1400,623],[1401,630],[1402,623],[1403,623],[1404,623],[1405,623],[1406,623],[1223,621],[1226,626],[1227,626],[1228,626],[1229,626],[1230,626],[1231,626],[1232,626],[1233,623],[1235,631],[1236,626],[1234,626],[1237,626],[1238,626],[1239,626],[1240,626],[1241,626],[1242,626],[1243,623],[1244,626],[1245,626],[1246,626],[1247,626],[1248,626],[1249,623],[1250,626],[1251,626],[1252,626],[1253,626],[1254,626],[1255,626],[1256,623],[1258,632],[1257,626],[1259,626],[1260,626],[1261,626],[1262,626],[1263,630],[1264,623],[1265,623],[1279,633],[1267,634],[1268,626],[1269,626],[1270,623],[1271,626],[1272,626],[1274,635],[1275,626],[1276,626],[1277,626],[1278,626],[1280,626],[1281,626],[1282,626],[1283,626],[1285,636],[1286,626],[1287,626],[1288,626],[1289,623],[1290,626],[1291,637],[1292,637],[1293,637],[1294,623],[1295,626],[1296,626],[1297,626],[1302,626],[1298,626],[1299,623],[1300,626],[1301,623],[1303,626],[1304,626],[1305,626],[1306,626],[1307,626],[1308,626],[1309,623],[1310,626],[1311,626],[1312,626],[1313,626],[1314,626],[1315,626],[1316,626],[1317,626],[1318,626],[1319,626],[1320,626],[1321,626],[1322,626],[1323,626],[1324,626],[1325,626],[1326,638],[1327,626],[1328,626],[1329,626],[1330,626],[1331,626],[1332,626],[1333,623],[1334,623],[1335,623],[1336,623],[1337,623],[1338,626],[1339,626],[1340,626],[1341,626],[1359,639],[1407,623],[1344,640],[1343,641],[1367,642],[1366,643],[1362,644],[1361,643],[1363,645],[1352,646],[1350,647],[1365,648],[1364,645],[1353,649],[1266,650],[1222,651],[1221,626],[1348,652],[1349,653],[1347,654],[1345,626],[1354,655],[1225,656],[1371,622],[1369,657],[1342,658],[1355,659],[868,660],[274,661],[273,662],[271,663],[360,664],[314,665],[603,666],[617,667],[604,666],[618,666],[615,668],[605,666],[609,669],[610,670],[620,671],[611,666],[616,672],[613,673],[606,674],[619,675],[608,676],[612,669],[621,677],[408,678],[411,679],[406,680],[410,680],[407,680],[409,681],[404,682],[277,683],[839,684],[838,685],[70,686],[708,687],[694,688],[705,689],[696,690],[697,691],[703,692],[687,693],[681,694],[680,694],[706,695],[685,693],[686,693],[683,696],[690,694],[691,694],[711,697],[712,698],[716,697],[717,699],[713,700],[714,701],[715,700],[160,702],[167,703],[159,702],[174,704],[151,705],[150,706],[173,707],[168,708],[171,709],[153,710],[152,711],[148,712],[147,713],[170,714],[149,715],[154,716],[158,716],[176,717],[175,716],[162,718],[163,719],[165,720],[161,721],[164,722],[169,707],[156,723],[157,724],[166,725],[146,726],[172,727],[467,728],[466,729],[1191,381],[302,730],[301,731],[83,732],[300,733],[80,734],[415,735],[86,736],[262,737],[661,738],[88,739],[416,740],[303,741],[362,742],[361,743],[383,744],[276,745],[721,746],[734,747],[735,747],[737,748],[736,747],[733,747],[732,749],[731,746],[468,750],[869,751],[871,752],[1127,753],[427,754],[876,381],[872,755],[1211,756],[1120,757],[1208,758],[1209,759],[1207,760],[1210,761],[1202,762],[1174,763],[1169,764],[1200,765],[1170,766],[1201,767],[1199,768],[1171,766],[1172,766],[1173,766],[1187,769],[1188,770],[1189,771],[1178,772],[1190,773],[1198,774],[1194,775],[1195,776],[1196,770],[1197,776],[1186,777],[1179,778],[1183,779],[1184,768],[1185,780],[1182,781],[1180,782],[1181,602],[1213,783],[1212,784],[1133,785],[1134,786],[1136,787],[1135,788],[1142,789],[1139,790],[1140,602],[1141,787],[1168,791],[1137,602],[1143,792],[1144,793],[1145,794],[1146,602],[1148,795],[1147,796],[1160,602],[1167,797],[1159,786],[1149,602],[1158,798],[1150,602],[1151,602],[1152,799],[1157,800],[1153,602],[1156,801],[1161,802],[1166,803],[1162,804],[1165,805],[1164,806],[1163,602],[1154,807],[1155,792],[1138,602]],"exportedModulesMap":[[107,385],[1215,381],[1214,381],[1216,381],[105,381],[106,381],[418,808],[417,397],[874,809],[873,810],[627,11],[628,11],[629,12],[597,13],[598,11],[626,14],[560,15],[589,16],[592,17],[591,11],[596,18],[595,19],[624,20],[600,21],[625,22],[601,23],[602,24],[623,25],[622,26],[557,27],[551,28],[554,29],[549,30],[548,31],[555,28],[547,32],[556,33],[550,34],[553,35],[558,36],[588,37],[581,38],[577,39],[586,40],[582,41],[583,42],[584,43],[580,43],[579,44],[587,45],[543,46],[545,47],[532,48],[536,49],[537,50],[539,51],[540,52],[535,53],[72,54],[859,55],[857,56],[845,57],[842,58],[836,59],[841,60],[840,61],[843,58],[849,62],[850,63],[846,64],[847,65],[852,66],[848,67],[851,68],[635,69],[644,70],[647,71],[639,72],[642,73],[643,74],[640,72],[641,75],[631,76],[634,77],[632,78],[633,78],[858,79],[854,79],[765,80],[766,80],[767,80],[763,80],[771,81],[835,82],[762,83],[764,80],[768,80],[769,80],[137,84],[132,85],[133,86],[130,87],[138,88],[134,89],[239,90],[242,91],[241,92],[240,93],[238,94],[234,95],[237,96],[236,97],[235,98],[233,94],[248,99],[247,100],[246,101],[245,102],[244,103],[243,104],[402,105],[405,106],[403,107],[861,108],[864,109],[867,110],[866,111],[865,112],[312,113],[365,114],[311,115],[141,116],[1220,117],[1219,118],[308,119],[313,120],[232,121],[370,122],[1431,123],[1411,124],[1413,125],[1412,124],[1415,126],[1417,127],[1418,128],[1419,129],[1420,127],[1421,128],[1422,127],[1423,130],[1424,128],[1425,127],[1426,131],[1427,124],[1428,124],[1429,132],[1416,133],[1430,134],[1414,134],[230,135],[136,80],[129,136],[114,137],[120,138],[118,139],[128,140],[123,141],[125,142],[126,143],[127,144],[122,144],[124,144],[117,144],[113,145],[112,146],[142,147],[143,147],[178,148],[179,149],[180,150],[181,151],[182,152],[183,153],[184,154],[185,155],[186,156],[187,157],[188,157],[190,158],[189,159],[191,160],[192,161],[193,162],[177,163],[194,164],[195,165],[196,166],[229,167],[197,168],[198,169],[199,170],[200,171],[201,172],[202,173],[203,174],[204,175],[205,176],[206,177],[207,177],[208,178],[210,179],[212,180],[211,181],[213,182],[214,183],[215,184],[216,185],[217,186],[218,187],[219,188],[220,189],[221,190],[222,191],[223,192],[224,193],[225,194],[226,195],[227,196],[305,197],[377,198],[310,199],[382,115],[1117,200],[1118,201],[1119,201],[1217,200],[986,202],[887,203],[985,204],[983,205],[886,206],[977,207],[978,208],[979,208],[980,208],[981,208],[982,208],[989,209],[990,210],[988,211],[991,212],[948,213],[962,214],[993,215],[994,216],[947,217],[995,218],[970,219],[896,220],[997,221],[998,222],[999,223],[878,224],[879,225],[961,226],[960,227],[973,228],[916,229],[1000,230],[1001,231],[1003,232],[1004,233],[1005,234],[1007,235],[1008,236],[1009,237],[1010,236],[1016,238],[1006,237],[1011,237],[1012,236],[1013,237],[1014,236],[1015,237],[1018,239],[1019,240],[1021,222],[1022,222],[1023,222],[1025,241],[1024,222],[1027,242],[1028,222],[1029,243],[1042,244],[1030,242],[1031,245],[1032,242],[1033,222],[1026,222],[1034,222],[1035,246],[1036,222],[1037,242],[1038,222],[1039,222],[1040,247],[1041,222],[1045,248],[1047,249],[1048,250],[1049,251],[1050,252],[1053,253],[1054,254],[1056,255],[1057,256],[1060,257],[1061,249],[1065,258],[1066,259],[1067,260],[1052,261],[1051,262],[1055,263],[927,264],[1069,265],[926,266],[1059,267],[1058,268],[1070,260],[1072,269],[1071,270],[1075,271],[1076,272],[1077,273],[1080,274],[1081,275],[1082,276],[1083,272],[1084,272],[1085,272],[1074,277],[1073,278],[1087,279],[1088,280],[1089,281],[902,282],[903,283],[958,284],[922,285],[904,286],[905,287],[906,288],[907,289],[908,290],[909,291],[910,289],[912,292],[911,289],[913,290],[914,282],[919,293],[918,294],[920,295],[921,282],[1090,296],[893,297],[898,298],[897,299],[963,300],[967,301],[924,302],[883,303],[884,303],[885,303],[1091,303],[888,304],[1092,305],[969,306],[968,307],[890,308],[966,309],[959,310],[889,311],[964,300],[1068,300],[892,312],[891,313],[965,314],[971,315],[1093,316],[881,317],[899,317],[1094,318],[1043,319],[1095,320],[1046,320],[1096,321],[1044,322],[1097,323],[1063,324],[1064,325],[923,326],[1099,327],[917,328],[1100,329],[952,330],[953,331],[1101,332],[934,333],[954,334],[955,335],[1102,336],[1103,337],[942,338],[956,339],[941,340],[957,341],[943,342],[945,343],[937,344],[939,345],[940,346],[1106,347],[938,348],[1107,349],[1108,350],[992,351],[951,352],[925,353],[949,354],[950,355],[929,356],[1109,357],[930,358],[1110,239],[1111,359],[1112,359],[1079,239],[928,239],[932,360],[933,360],[1062,360],[972,239],[1113,239],[901,361],[1114,239],[1116,362],[974,363],[1410,364],[381,365],[380,366],[74,367],[75,368],[299,369],[76,370],[77,371],[79,372],[384,373],[414,374],[660,375],[84,376],[85,377],[261,378],[97,379],[95,380],[96,381],[104,382],[1175,381],[99,383],[100,381],[103,384],[101,385],[263,386],[264,387],[265,386],[386,388],[268,389],[267,386],[385,390],[400,391],[389,392],[390,393],[388,394],[391,386],[393,395],[392,386],[394,383],[399,396],[91,397],[94,398],[93,397],[92,397],[139,399],[495,400],[496,401],[494,402],[493,403],[492,404],[1131,405],[1129,406],[1130,406],[1132,407],[470,408],[474,409],[469,410],[471,397],[473,411],[500,412],[501,413],[499,414],[498,415],[497,416],[1177,417],[515,418],[517,419],[516,420],[514,421],[502,397],[513,422],[504,423],[505,423],[506,423],[512,424],[511,425],[507,423],[510,426],[521,427],[523,428],[522,429],[520,430],[519,431],[518,404],[526,432],[531,433],[530,434],[525,435],[529,436],[524,416],[650,437],[651,438],[649,439],[648,440],[657,441],[658,442],[653,443],[656,444],[655,445],[419,386],[426,446],[422,447],[425,448],[659,386],[664,449],[663,450],[670,451],[667,452],[668,453],[669,454],[666,455],[665,416],[740,456],[674,457],[738,458],[739,459],[673,460],[671,416],[1123,461],[1121,462],[1122,462],[1126,463],[1125,464],[1124,465],[479,465],[483,466],[478,465],[480,467],[481,468],[482,468],[477,469],[476,404],[749,470],[748,471],[747,472],[746,473],[745,474],[743,404],[755,475],[754,476],[753,477],[752,478],[751,397],[491,479],[489,480],[490,481],[484,386],[485,482],[488,483],[413,484],[412,485],[761,486],[760,487],[757,488],[759,489],[758,490],[1205,491],[1203,492],[1204,493],[1206,494],[432,495],[431,496],[430,496],[429,497],[428,397],[82,498],[260,499],[1193,500],[1192,501],[509,502],[359,503],[318,504],[317,505],[322,506],[357,507],[354,508],[356,509],[319,508],[320,510],[324,510],[323,511],[321,512],[355,513],[353,508],[358,514],[325,515],[330,508],[332,508],[327,508],[328,515],[334,508],[335,516],[326,508],[331,508],[333,508],[329,508],[349,517],[348,508],[350,518],[344,508],[346,508],[345,508],[341,508],[347,519],[342,508],[343,520],[336,508],[337,508],[338,508],[339,508],[340,508],[541,521],[542,522],[444,523],[443,524],[438,525],[446,526],[437,527],[445,524],[369,528],[368,529],[367,530],[364,531],[252,532],[251,533],[250,534],[249,535],[253,536],[373,115],[375,537],[374,538],[372,115],[376,539],[371,540],[135,80],[813,541],[811,542],[809,543],[812,542],[814,544],[808,542],[815,545],[816,546],[810,541],[778,547],[790,548],[789,549],[788,550],[781,551],[786,552],[775,553],[776,554],[779,555],[784,556],[774,557],[773,558],[820,559],[819,560],[806,561],[805,562],[802,563],[791,564],[800,565],[801,566],[803,567],[796,568],[792,569],[793,570],[795,571],[799,572],[794,573],[797,574],[798,575],[829,576],[826,577],[828,578],[827,579],[818,580],[824,581],[823,582],[821,583],[834,584],[833,585],[830,586],[832,587],[831,588],[783,589],[463,590],[458,591],[456,592],[457,592],[455,593],[462,594],[461,595],[460,596],[452,597],[459,598],[379,599],[256,600],[258,601],[257,602],[293,603],[291,604],[292,605],[280,606],[281,604],[288,607],[279,608],[284,609],[285,610],[290,611],[296,612],[295,613],[278,614],[286,615],[287,616],[282,617],[289,603],[283,618],[1409,619],[1360,620],[1358,620],[1408,621],[1373,622],[1372,622],[1273,623],[1224,624],[1380,623],[1381,623],[1383,625],[1384,623],[1385,626],[1284,627],[1386,623],[1357,623],[1387,623],[1388,628],[1389,623],[1390,622],[1391,629],[1392,623],[1393,623],[1394,623],[1395,623],[1396,622],[1397,623],[1398,623],[1399,623],[1400,623],[1401,630],[1402,623],[1403,623],[1404,623],[1405,623],[1406,623],[1223,621],[1226,626],[1227,626],[1228,626],[1229,626],[1230,626],[1231,626],[1232,626],[1233,623],[1235,631],[1236,626],[1234,626],[1237,626],[1238,626],[1239,626],[1240,626],[1241,626],[1242,626],[1243,623],[1244,626],[1245,626],[1246,626],[1247,626],[1248,626],[1249,623],[1250,626],[1251,626],[1252,626],[1253,626],[1254,626],[1255,626],[1256,623],[1258,632],[1257,626],[1259,626],[1260,626],[1261,626],[1262,626],[1263,630],[1264,623],[1265,623],[1279,633],[1267,634],[1268,626],[1269,626],[1270,623],[1271,626],[1272,626],[1274,635],[1275,626],[1276,626],[1277,626],[1278,626],[1280,626],[1281,626],[1282,626],[1283,626],[1285,636],[1286,626],[1287,626],[1288,626],[1289,623],[1290,626],[1291,637],[1292,637],[1293,637],[1294,623],[1295,626],[1296,626],[1297,626],[1302,626],[1298,626],[1299,623],[1300,626],[1301,623],[1303,626],[1304,626],[1305,626],[1306,626],[1307,626],[1308,626],[1309,623],[1310,626],[1311,626],[1312,626],[1313,626],[1314,626],[1315,626],[1316,626],[1317,626],[1318,626],[1319,626],[1320,626],[1321,626],[1322,626],[1323,626],[1324,626],[1325,626],[1326,638],[1327,626],[1328,626],[1329,626],[1330,626],[1331,626],[1332,626],[1333,623],[1334,623],[1335,623],[1336,623],[1337,623],[1338,626],[1339,626],[1340,626],[1341,626],[1359,639],[1407,623],[1344,640],[1343,641],[1367,642],[1366,643],[1362,644],[1361,643],[1363,645],[1352,646],[1350,647],[1365,648],[1364,645],[1353,649],[1266,650],[1222,651],[1221,626],[1348,652],[1349,653],[1347,654],[1345,626],[1354,655],[1225,656],[1371,622],[1369,657],[1342,658],[1355,659],[868,660],[274,661],[273,662],[271,663],[360,664],[314,665],[603,666],[617,667],[604,666],[618,666],[615,668],[605,666],[609,669],[610,670],[620,671],[611,666],[616,672],[613,673],[606,674],[619,675],[608,676],[612,669],[621,677],[408,678],[411,679],[406,680],[410,680],[407,680],[409,681],[404,682],[277,683],[839,684],[838,685],[70,686],[708,687],[694,688],[705,689],[696,690],[697,691],[703,692],[687,693],[681,694],[680,694],[706,695],[685,693],[686,693],[683,696],[690,694],[691,694],[711,697],[712,698],[716,697],[717,699],[713,700],[714,701],[715,700],[160,702],[167,703],[159,702],[174,704],[151,705],[150,706],[173,707],[168,708],[171,709],[153,710],[152,711],[148,712],[147,713],[170,714],[149,715],[154,716],[158,716],[176,717],[175,716],[162,718],[163,719],[165,720],[161,721],[164,722],[169,707],[156,723],[157,724],[166,725],[146,726],[172,727],[467,728],[466,729],[1191,381],[302,730],[301,731],[83,732],[300,733],[80,734],[415,735],[86,736],[262,737],[661,738],[88,739],[416,740],[303,741],[362,742],[361,743],[383,744],[276,745],[721,746],[734,747],[735,747],[737,748],[736,747],[733,747],[732,749],[731,746],[468,750],[869,751],[871,752],[1127,753],[427,754],[876,381],[872,755],[1211,756],[1120,757],[1208,758],[1209,759],[1207,760],[1210,761],[1202,762],[1174,763],[1169,764],[1200,765],[1170,766],[1201,767],[1199,768],[1171,766],[1172,766],[1173,766],[1187,769],[1188,770],[1189,771],[1178,772],[1190,773],[1198,774],[1194,775],[1195,776],[1196,770],[1197,776],[1186,777],[1179,778],[1183,779],[1184,768],[1185,780],[1182,781],[1180,782],[1181,602],[1213,783],[1212,784],[1133,785],[1134,786],[1136,787],[1135,788],[1142,789],[1139,790],[1140,602],[1141,787],[1168,791],[1137,602],[1143,792],[1144,793],[1145,794],[1146,602],[1148,795],[1147,796],[1160,602],[1167,797],[1159,786],[1149,602],[1158,798],[1150,602],[1151,602],[1152,799],[1157,800],[1153,602],[1156,801],[1161,802],[1166,803],[1162,804],[1165,805],[1164,806],[1163,602],[1154,807],[1155,792],[1138,602]],"semanticDiagnosticsPerFile":[107,1215,1214,1216,105,106,418,417,874,875,873,627,628,629,597,598,626,559,560,589,592,590,591,596,593,594,595,624,600,625,599,601,602,623,622,557,551,552,546,554,549,548,555,547,556,550,553,558,561,562,563,564,565,566,567,588,568,569,575,581,577,586,582,583,584,578,580,579,585,576,587,538,570,543,545,571,544,572,573,574,532,536,537,533,539,540,534,535,72,71,859,855,857,845,842,836,841,840,843,844,849,850,846,847,852,848,851,635,636,644,638,637,647,639,642,643,640,641,630,631,634,632,633,645,646,853,858,854,765,766,767,763,771,835,762,764,768,769,137,132,133,130,138,134,81,239,242,241,240,238,234,237,236,235,233,248,247,246,245,244,243,401,402,405,403,861,864,860,867,866,865,862,863,312,365,311,141,1220,1218,1219,269,308,313,232,254,309,370,1431,1411,1413,1412,1415,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1416,1430,1414,270,230,231,770,108,136,129,114,120,115,118,119,128,123,125,126,127,121,122,124,117,116,113,109,110,112,111,304,140,142,143,178,179,180,181,182,183,184,185,186,187,188,190,189,191,192,193,177,228,194,195,196,229,197,198,199,200,201,202,203,204,205,206,207,208,209,210,212,211,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,306,307,305,377,310,382,1117,1118,1119,1217,986,887,985,984,983,886,975,976,977,978,979,980,981,982,989,990,987,988,991,948,962,993,994,947,995,877,970,896,996,894,895,997,998,999,878,879,880,961,960,973,915,916,1000,1001,1002,1003,1004,1005,1007,1008,1009,1010,1016,1006,1011,1012,1013,1014,1015,1017,1018,1019,1020,1021,1022,1023,1025,1024,1027,1028,1029,1042,1030,1031,1032,1033,1026,1034,1035,1036,1037,1038,1039,1040,1041,1045,1047,1048,1049,1050,1053,1054,1056,1057,1060,1061,1065,1066,1067,1052,1051,1055,927,1069,926,1059,1058,1070,1072,1071,1075,1076,1077,1078,1080,1081,1082,1083,1084,1085,1074,1086,1073,1087,1088,1089,902,903,958,922,904,905,906,907,908,909,910,912,911,913,914,919,918,920,921,1090,893,898,897,963,967,924,882,883,884,885,1091,888,1092,969,968,890,966,959,889,964,1068,892,891,965,971,1093,881,899,1094,1043,1095,1046,1096,1044,1097,1063,1064,923,1098,1099,917,1100,952,953,1101,934,954,955,1102,935,1103,1104,942,956,944,941,957,936,943,1105,945,937,939,940,1106,938,1107,1108,992,951,925,949,950,929,1109,930,1110,1111,1112,1079,928,932,933,1062,972,1113,900,901,931,1114,1116,974,1115,1410,946,381,380,74,75,299,76,77,79,73,384,414,660,84,85,261,97,95,96,104,1175,99,100,103,101,102,263,264,265,386,268,266,267,385,400,387,389,390,388,391,393,392,394,395,396,399,397,398,90,89,91,94,93,92,139,495,496,494,493,492,1131,1129,1130,1132,1128,470,474,469,471,473,472,500,501,499,498,497,1177,1176,515,517,516,514,502,513,504,503,505,506,512,511,507,510,521,523,522,520,519,518,526,531,530,525,527,528,529,524,650,651,649,648,657,658,652,653,656,654,655,419,426,420,421,422,423,424,425,659,664,663,662,670,667,668,669,666,665,740,674,738,739,673,671,672,1123,1121,1122,1126,1125,1124,479,483,478,480,481,482,475,477,476,749,748,741,747,746,745,742,743,744,755,754,753,750,752,751,491,489,490,484,485,488,486,487,413,412,761,760,757,759,758,756,1205,1203,1204,1206,432,431,430,429,428,82,260,1193,1192,508,509,272,359,316,318,317,322,357,354,356,319,320,324,323,321,355,353,358,351,352,325,330,332,327,328,334,335,326,331,333,329,349,348,350,344,346,345,341,347,342,343,336,337,338,339,340,541,542,363,444,443,434,435,438,442,440,446,437,436,445,433,441,439,369,368,366,367,144,364,255,78,464,252,251,250,249,98,253,131,465,373,375,374,372,376,371,378,297,135,813,811,809,812,814,808,815,816,810,778,790,789,788,781,786,775,776,779,784,772,774,773,820,819,806,805,804,802,791,800,801,803,796,792,793,795,799,794,780,797,798,829,826,825,828,827,818,824,823,821,834,833,830,832,831,822,787,783,785,777,782,817,807,463,458,454,456,457,455,462,461,450,460,452,453,459,451,379,256,258,257,293,291,292,280,281,288,279,284,294,285,290,296,295,278,286,287,282,289,283,1409,1382,1360,1358,1408,1373,1372,1273,1224,1380,1381,1383,1384,1385,1284,1386,1357,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1223,1226,1227,1228,1229,1230,1231,1232,1233,1235,1236,1234,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1258,1257,1259,1260,1261,1262,1263,1264,1265,1279,1267,1268,1269,1270,1271,1272,1274,1275,1276,1277,1278,1280,1281,1282,1283,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1302,1298,1299,1300,1301,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1359,1407,1344,1343,1367,1366,1362,1361,1363,1352,1350,1365,1364,1351,1353,1266,1222,1221,1356,1348,1349,1346,1347,1345,1354,1225,1374,1375,1368,1371,1370,1376,1377,1369,1378,1379,1342,1355,868,274,273,271,360,314,603,617,604,618,615,605,609,610,620,611,616,613,606,607,619,608,614,612,621,408,411,406,410,407,409,404,870,277,837,839,838,856,275,70,69,708,694,705,676,696,695,697,703,702,678,700,701,687,682,681,680,689,706,685,688,693,686,683,684,690,691,704,679,699,707,677,698,709,692,711,712,716,717,713,714,715,710,67,68,12,14,13,2,15,16,17,18,19,20,21,22,3,23,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,58,56,57,59,60,10,1,61,11,65,63,62,66,64,298,160,167,159,174,151,150,173,168,171,153,152,148,147,170,149,154,155,158,145,176,175,162,163,165,161,164,169,156,157,166,146,172,259,315,447,448,467,466,449,1191,302,301,83,300,80,415,86,262,661,88,416,303,362,361,383,276,726,727,720,721,734,735,737,736,733,675,732,728,729,718,719,730,731,722,723,724,725,468,869,871,1127,427,876,872,87,1211,1120,1208,1209,1207,1210,1202,1174,1169,1200,1170,1201,1199,1171,1172,1173,1187,1188,1189,1178,1190,1198,1194,1195,1196,1197,1186,1179,1183,1184,1185,1182,1180,1181,1213,1212,1133,1134,1136,1135,1142,1139,1140,1141,1168,1137,1143,1144,1145,1146,1148,1147,1160,1167,1159,1149,1158,1150,1151,1152,1157,1153,1156,1161,1166,1162,1165,1164,1163,1154,1155,1138],"latestChangedDtsFile":"./lib/components/HopeNotFoundHint.d.ts"},"version":"5.4.5"}
\ No newline at end of file
diff --git a/docs/theme/src/zh/guide/README.md b/docs/README.md
similarity index 100%
rename from docs/theme/src/zh/guide/README.md
rename to docs/README.md
diff --git a/docs/theme/newmd.tgz b/docs/theme/newmd.tgz
new file mode 100644
index 0000000..81c4f44
Binary files /dev/null and b/docs/theme/newmd.tgz differ
diff --git a/docs/theme/src/.vuepress/.temp/blog/category.js b/docs/theme/src/.vuepress/.temp/blog/category.js
deleted file mode 100644
index a1311b9..0000000
--- a/docs/theme/src/.vuepress/.temp/blog/category.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export const categoriesMap = {"category":{"/":{"path":"/category/","map":{"FAQ":{"path":"/category/faq/","indexes":[0,1,2,3,4,5,6]},"Config":{"path":"/category/config/","indexes":[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},"Demo":{"path":"/category/demo/","indexes":[32,33]},"Cookbook":{"path":"/category/cookbook/","indexes":[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59]},"Tutorial":{"path":"/category/tutorial/","indexes":[34,35,36,37,38,39,40,41]},"Get Started":{"path":"/category/get-started/","indexes":[34,35,36,37,38,39,40,41,60,61,62]},"Intro":{"path":"/category/intro/","indexes":[63]},"Markdown":{"path":"/category/markdown/","indexes":[42,43,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98]},"VuePress":{"path":"/category/vuepress/","indexes":[44,45,46,47,48,49,50]},"Advanced":{"path":"/category/advanced/","indexes":[99,100,101,102,103,104,105,106]},"Blog":{"path":"/category/blog/","indexes":[107,108,109,110,111,112,113]},"Component":{"path":"/category/component/","indexes":[114,115,116,117,118]},"Customize":{"path":"/category/customize/","indexes":[119,51,52,53,54,120,121]},"Feature":{"path":"/category/feature/","indexes":[122,123,124,125,126,127,128,129,130]},"Interface":{"path":"/category/interface/","indexes":[131,132,133,134,135,136,137,138]},"Layout":{"path":"/category/layout/","indexes":[139,140,141,142,143,144,145]}}},"/zh/":{"path":"/zh/category/","map":{"FAQ":{"path":"/zh/category/faq/","indexes":[146,147,148,149,150,151,152]},"配置":{"path":"/zh/category/%E9%85%8D%E7%BD%AE/","indexes":[153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177]},"案例":{"path":"/zh/category/%E6%A1%88%E4%BE%8B/","indexes":[178,179,180]},"醬料":{"path":"/zh/category/%E9%86%AC%E6%96%99/","indexes":[181]},"快速上手":{"path":"/zh/category/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/","indexes":[182,183,184,185,186,187,188,189,190,191,192]},"基础知识":{"path":"/zh/category/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/","indexes":[182,183,184,185,186,187,188,192]},"教程":{"path":"/zh/category/%E6%95%99%E7%A8%8B/","indexes":[182,183,184,185,186,187,188,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,192]},"介紹":{"path":"/zh/category/%E4%BB%8B%E7%B4%B9/","indexes":[213]},"Markdown":{"path":"/zh/category/markdown/","indexes":[193,194,214,215,216,208,209,210,211,212,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247]},"VuePress":{"path":"/zh/category/vuepress/","indexes":[195,196,197,198,199,200,201]},"高級":{"path":"/zh/category/%E9%AB%98%E7%B4%9A/","indexes":[248]},"高级":{"path":"/zh/category/%E9%AB%98%E7%BA%A7/","indexes":[249,250,251,252,253,254,255]},"博客":{"path":"/zh/category/%E5%8D%9A%E5%AE%A2/","indexes":[256,257,258,259,260,261,262]},"元件":{"path":"/zh/category/%E5%85%83%E4%BB%B6/","indexes":[263]},"组件":{"path":"/zh/category/%E7%BB%84%E4%BB%B6/","indexes":[264,265,266,267]},"自定義":{"path":"/zh/category/%E8%87%AA%E5%AE%9A%E7%BE%A9/","indexes":[202]},"自定义":{"path":"/zh/category/%E8%87%AA%E5%AE%9A%E4%B9%89/","indexes":[203,204,205,206,207,268]},"功能":{"path":"/zh/category/%E5%8A%9F%E8%83%BD/","indexes":[269,270,271,272,273,274,275,276,277]},"界面":{"path":"/zh/category/%E7%95%8C%E9%9D%A2/","indexes":[278,279,280,281,282,283,284,285]},"布局":{"path":"/zh/category/%E5%B8%83%E5%B1%80/","indexes":[286,287,288,289,290,291,292]}}}},"tag":{"/":{"path":"/tag/","map":{"Config":{"path":"/tag/config/","indexes":[7,11,45]},"I18N":{"path":"/tag/i18n/","indexes":[8]},"Intro":{"path":"/tag/intro/","indexes":[9,63,21,42,44,111,61,65]},"Theme Config":{"path":"/tag/theme-config/","indexes":[10,17,18,19,20,21,22,23,24,25,26,29,30,31]},"Style":{"path":"/tag/style/","indexes":[10]},"encryption":{"path":"/tag/encryption/","indexes":[32]},"Project Command":{"path":"/tag/project-command/","indexes":[35]},"Project Config":{"path":"/tag/project-config/","indexes":[36]},"Project Content":{"path":"/tag/project-content/","indexes":[37]},"Template":{"path":"/tag/template/","indexes":[38]},"Project Deployment":{"path":"/tag/project-deployment/","indexes":[39]},"Runtime":{"path":"/tag/runtime/","indexes":[40]},"Project Structure":{"path":"/tag/project-structure/","indexes":[41]},"Frontmatter":{"path":"/tag/frontmatter/","indexes":[11,12,13,14,15,16]},"Blog Home":{"path":"/tag/blog-home/","indexes":[12]},"Home":{"path":"/tag/home/","indexes":[13,110,141]},"Info":{"path":"/tag/info/","indexes":[14]},"Layout":{"path":"/tag/layout/","indexes":[15,16,31,110,120,139,140,141,142,143,144,145]},"Blog":{"path":"/tag/blog/","indexes":[17,107,108,109,110,111,112,113]},"Plugin Config":{"path":"/tag/plugin-config/","indexes":[17,18,19,20,21,22,23,24]},"Comment":{"path":"/tag/comment/","indexes":[18,123]},"Copyright":{"path":"/tag/copyright/","indexes":[19,125]},"Feed":{"path":"/tag/feed/","indexes":[20,102]},"Markdown":{"path":"/tag/markdown/","indexes":[22,42,43,47,115,117,62,55,56,57,58,59,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98]},"Search":{"path":"/tag/search/","indexes":[24,130]},"Appearance":{"path":"/tag/appearance/","indexes":[26]},"Basic":{"path":"/tag/basic/","indexes":[27]},"ThemeConfig":{"path":"/tag/themeconfig/","indexes":[27]},"Behavior Options":{"path":"/tag/behavior-options/","indexes":[28]},"Feature":{"path":"/tag/feature/","indexes":[29,122,123,124,125,126,127,128,129,130]},"I18n":{"path":"/tag/i18n/","indexes":[30]},"Demo":{"path":"/tag/demo/","indexes":[43]},"VuePress":{"path":"/tag/vuepress/","indexes":[44,45,46,47,48,49,50]},"File Structure":{"path":"/tag/file-structure/","indexes":[46]},"Page":{"path":"/tag/page/","indexes":[48,143]},"Plugin":{"path":"/tag/plugin/","indexes":[49]},"Theme":{"path":"/tag/theme/","indexes":[50]},"Advanced":{"path":"/tag/advanced/","indexes":[99,100,101,102,103,104,105,106]},"Client Config":{"path":"/tag/client-config/","indexes":[100]},"Customize":{"path":"/tag/customize/","indexes":[101,104,119,51,52,53,54,120,121]},"PWA":{"path":"/tag/pwa/","indexes":[103]},"SEO":{"path":"/tag/seo/","indexes":[105]},"Sitemap":{"path":"/tag/sitemap/","indexes":[106]},"Article":{"path":"/tag/article/","indexes":[107]},"Encrypt":{"path":"/tag/encrypt/","indexes":[107,126]},"Slide":{"path":"/tag/slide/","indexes":[107]},"Star":{"path":"/tag/star/","indexes":[107]},"Blogger":{"path":"/tag/blogger/","indexes":[108]},"Category":{"path":"/tag/category/","indexes":[109]},"Tag":{"path":"/tag/tag/","indexes":[109]},"Path":{"path":"/tag/path/","indexes":[112]},"Timeline":{"path":"/tag/timeline/","indexes":[113]},"Component":{"path":"/tag/component/","indexes":[114,115,116,117,118]},"SFC":{"path":"/tag/sfc/","indexes":[118]},"Preset":{"path":"/tag/preset/","indexes":[121]},"Catalog":{"path":"/tag/catalog/","indexes":[122]},"Copy Code":{"path":"/tag/copy-code/","indexes":[124]},"Meta":{"path":"/tag/meta/","indexes":[127]},"Page Info":{"path":"/tag/page-info/","indexes":[128]},"Image Preview":{"path":"/tag/image-preview/","indexes":[129]},"A11y":{"path":"/tag/a11y/","indexes":[131]},"Interface":{"path":"/tag/interface/","indexes":[131,132,133,134,135,136,137,138]},"Code Themes":{"path":"/tag/code-themes/","indexes":[132]},"Darkmode":{"path":"/tag/darkmode/","indexes":[133]},"Icon":{"path":"/tag/icon/","indexes":[134]},"Responsive layout":{"path":"/tag/responsive-layout/","indexes":[137]},"Theme Color":{"path":"/tag/theme-color/","indexes":[138]},"Get Started":{"path":"/tag/get-started/","indexes":[60,61,62]},"Install":{"path":"/tag/install/","indexes":[60]},"Usage":{"path":"/tag/usage/","indexes":[60]},"Breadcrumb":{"path":"/tag/breadcrumb/","indexes":[139]},"Footer":{"path":"/tag/footer/","indexes":[140]},"Navbar":{"path":"/tag/navbar/","indexes":[142]},"Sidebar":{"path":"/tag/sidebar/","indexes":[144]},"Slides":{"path":"/tag/slides/","indexes":[145,97]},"Emoji":{"path":"/tag/emoji/","indexes":[55,56,57,58,59]},"Chart":{"path":"/tag/chart/","indexes":[67,68]},"ECharts":{"path":"/tag/echarts/","indexes":[69]},"Flowchart":{"path":"/tag/flowchart/","indexes":[70]},"Diagram":{"path":"/tag/diagram/","indexes":[71,72,73]},"Grammar":{"path":"/tag/grammar/","indexes":[74]},"Image":{"path":"/tag/image/","indexes":[75]},"Superscript":{"path":"/tag/superscript/","indexes":[76]},"Subscript":{"path":"/tag/subscript/","indexes":[76]},"Task List":{"path":"/tag/task-list/","indexes":[77]},"TEX":{"path":"/tag/tex/","indexes":[78]},"Stylize":{"path":"/tag/stylize/","indexes":[79,86]},"alert":{"path":"/tag/alert/","indexes":[80]},"Align":{"path":"/tag/align/","indexes":[81]},"Attributes":{"path":"/tag/attributes/","indexes":[82]},"hintbox":{"path":"/tag/hintbox/","indexes":[83]},"Mark":{"path":"/tag/mark/","indexes":[84]},"Markup":{"path":"/tag/markup/","indexes":[85]},"Code":{"path":"/tag/code/","indexes":[87]},"Code Tabs":{"path":"/tag/code-tabs/","indexes":[88]},"Code Demo":{"path":"/tag/code-demo/","indexes":[89,96]},"Playground":{"path":"/tag/playground/","indexes":[90,91,92,93]},"Content":{"path":"/tag/content/","indexes":[94]},"Footnote":{"path":"/tag/footnote/","indexes":[95]},"Include Files":{"path":"/tag/include-files/","indexes":[96]},"Tabs":{"path":"/tag/tabs/","indexes":[98]}}},"/zh/":{"path":"/zh/tag/","map":{"配置":{"path":"/zh/tag/%E9%85%8D%E7%BD%AE/","indexes":[153,157,196]},"多语言":{"path":"/zh/tag/%E5%A4%9A%E8%AF%AD%E8%A8%80/","indexes":[154]},"介绍":{"path":"/zh/tag/%E4%BB%8B%E7%BB%8D/","indexes":[155,167,260,190,215]},"主题配置":{"path":"/zh/tag/%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE/","indexes":[156,163,164,165,166,167,168,169,170]},"样式":{"path":"/zh/tag/%E6%A0%B7%E5%BC%8F/","indexes":[156]},"加密":{"path":"/zh/tag/%E5%8A%A0%E5%AF%86/","indexes":[179,256,273]},"醬料":{"path":"/zh/tag/%E9%86%AC%E6%96%99/","indexes":[192]},"项目命令":{"path":"/zh/tag/%E9%A1%B9%E7%9B%AE%E5%91%BD%E4%BB%A4/","indexes":[183]},"配置项目":{"path":"/zh/tag/%E9%85%8D%E7%BD%AE%E9%A1%B9%E7%9B%AE/","indexes":[184,188]},"项目内容":{"path":"/zh/tag/%E9%A1%B9%E7%9B%AE%E5%86%85%E5%AE%B9/","indexes":[185]},"模板":{"path":"/zh/tag/%E6%A8%A1%E6%9D%BF/","indexes":[186]},"部署项目":{"path":"/zh/tag/%E9%83%A8%E7%BD%B2%E9%A1%B9%E7%9B%AE/","indexes":[187]},"介紹":{"path":"/zh/tag/%E4%BB%8B%E7%B4%B9/","indexes":[213,193,195]},"Frontmatter":{"path":"/zh/tag/frontmatter/","indexes":[157,158,159,160,161,162]},"博客主页":{"path":"/zh/tag/%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A1%B5/","indexes":[158]},"主页":{"path":"/zh/tag/%E4%B8%BB%E9%A1%B5/","indexes":[159,259,288]},"信息":{"path":"/zh/tag/%E4%BF%A1%E6%81%AF/","indexes":[160]},"布局":{"path":"/zh/tag/%E5%B8%83%E5%B1%80/","indexes":[161,162,177,259,207,286,287,288,289,290,291,292]},"插件配置":{"path":"/zh/tag/%E6%8F%92%E4%BB%B6%E9%85%8D%E7%BD%AE/","indexes":[163,164,165,166,167,168]},"博客":{"path":"/zh/tag/%E5%8D%9A%E5%AE%A2/","indexes":[163,256,257,258,259,260,261,262]},"评论":{"path":"/zh/tag/%E8%AF%84%E8%AE%BA/","indexes":[164,270]},"版权信息":{"path":"/zh/tag/%E7%89%88%E6%9D%83%E4%BF%A1%E6%81%AF/","indexes":[165,272]},"Feed":{"path":"/zh/tag/feed/","indexes":[166,251]},"Markdown":{"path":"/zh/tag/markdown/","indexes":[168,193,194,198,264,266,191,214,215,216,208,209,210,211,212,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,293,246,247]},"插件选项":{"path":"/zh/tag/%E6%8F%92%E4%BB%B6%E9%80%89%E9%A1%B9/","indexes":[169,170]},"搜索":{"path":"/zh/tag/%E6%90%9C%E7%B4%A2/","indexes":[170,277]},"主題配置":{"path":"/zh/tag/%E4%B8%BB%E9%A1%8C%E9%85%8D%E7%BD%AE/","indexes":[171,172,173,175,176,177]},"外觀":{"path":"/zh/tag/%E5%A4%96%E8%A7%80/","indexes":[172]},"基礎":{"path":"/zh/tag/%E5%9F%BA%E7%A4%8E/","indexes":[173]},"行為選項":{"path":"/zh/tag/%E8%A1%8C%E7%82%BA%E9%81%B8%E9%A0%85/","indexes":[174]},"功能":{"path":"/zh/tag/%E5%8A%9F%E8%83%BD/","indexes":[175,269,270,271,272,273,274,275,276,277]},"多語言":{"path":"/zh/tag/%E5%A4%9A%E8%AA%9E%E8%A8%80/","indexes":[176]},"示例":{"path":"/zh/tag/%E7%A4%BA%E4%BE%8B/","indexes":[194]},"VuePress":{"path":"/zh/tag/vuepress/","indexes":[195,196,197,198,199,200,201]},"文件结构":{"path":"/zh/tag/%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84/","indexes":[197]},"页面":{"path":"/zh/tag/%E9%A1%B5%E9%9D%A2/","indexes":[199,290]},"插件":{"path":"/zh/tag/%E6%8F%92%E4%BB%B6/","indexes":[200]},"主题":{"path":"/zh/tag/%E4%B8%BB%E9%A2%98/","indexes":[201]},"高級":{"path":"/zh/tag/%E9%AB%98%E7%B4%9A/","indexes":[248]},"高级":{"path":"/zh/tag/%E9%AB%98%E7%BA%A7/","indexes":[249,250,251,252,253,254,255]},"客户端配置":{"path":"/zh/tag/%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE/","indexes":[249]},"自定义":{"path":"/zh/tag/%E8%87%AA%E5%AE%9A%E4%B9%89/","indexes":[250,253,203,204,205,206,207,268]},"PWA":{"path":"/zh/tag/pwa/","indexes":[252]},"SEO":{"path":"/zh/tag/seo/","indexes":[254]},"Sitemap":{"path":"/zh/tag/sitemap/","indexes":[255]},"文章":{"path":"/zh/tag/%E6%96%87%E7%AB%A0/","indexes":[256]},"幻灯片":{"path":"/zh/tag/%E5%B9%BB%E7%81%AF%E7%89%87/","indexes":[256,292,246]},"星标":{"path":"/zh/tag/%E6%98%9F%E6%A0%87/","indexes":[256]},"博主信息":{"path":"/zh/tag/%E5%8D%9A%E4%B8%BB%E4%BF%A1%E6%81%AF/","indexes":[257]},"分类":{"path":"/zh/tag/%E5%88%86%E7%B1%BB/","indexes":[258]},"标签":{"path":"/zh/tag/%E6%A0%87%E7%AD%BE/","indexes":[258]},"路径":{"path":"/zh/tag/%E8%B7%AF%E5%BE%84/","indexes":[261]},"时间线":{"path":"/zh/tag/%E6%97%B6%E9%97%B4%E7%BA%BF/","indexes":[262]},"元件":{"path":"/zh/tag/%E5%85%83%E4%BB%B6/","indexes":[263]},"组件":{"path":"/zh/tag/%E7%BB%84%E4%BB%B6/","indexes":[264,265,266,267]},"SFC":{"path":"/zh/tag/sfc/","indexes":[267]},"自定義":{"path":"/zh/tag/%E8%87%AA%E5%AE%9A%E7%BE%A9/","indexes":[202]},"预设":{"path":"/zh/tag/%E9%A2%84%E8%AE%BE/","indexes":[268]},"目录":{"path":"/zh/tag/%E7%9B%AE%E5%BD%95/","indexes":[269]},"代码复制":{"path":"/zh/tag/%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%88%B6/","indexes":[271]},"元数据":{"path":"/zh/tag/%E5%85%83%E6%95%B0%E6%8D%AE/","indexes":[274]},"页面信息":{"path":"/zh/tag/%E9%A1%B5%E9%9D%A2%E4%BF%A1%E6%81%AF/","indexes":[275]},"图片浏览":{"path":"/zh/tag/%E5%9B%BE%E7%89%87%E6%B5%8F%E8%A7%88/","indexes":[276]},"界面":{"path":"/zh/tag/%E7%95%8C%E9%9D%A2/","indexes":[278,279,280,281,282,283,284,285]},"无障碍":{"path":"/zh/tag/%E6%97%A0%E9%9A%9C%E7%A2%8D/","indexes":[278]},"代码主题":{"path":"/zh/tag/%E4%BB%A3%E7%A0%81%E4%B8%BB%E9%A2%98/","indexes":[279]},"深色模式":{"path":"/zh/tag/%E6%B7%B1%E8%89%B2%E6%A8%A1%E5%BC%8F/","indexes":[280]},"图标":{"path":"/zh/tag/%E5%9B%BE%E6%A0%87/","indexes":[281]},"响应式布局":{"path":"/zh/tag/%E5%93%8D%E5%BA%94%E5%BC%8F%E5%B8%83%E5%B1%80/","indexes":[284]},"主题色":{"path":"/zh/tag/%E4%B8%BB%E9%A2%98%E8%89%B2/","indexes":[285]},"快速上手":{"path":"/zh/tag/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/","indexes":[189,190,191]},"安装":{"path":"/zh/tag/%E5%AE%89%E8%A3%85/","indexes":[189]},"使用":{"path":"/zh/tag/%E4%BD%BF%E7%94%A8/","indexes":[189]},"路径导航":{"path":"/zh/tag/%E8%B7%AF%E5%BE%84%E5%AF%BC%E8%88%AA/","indexes":[286]},"页脚":{"path":"/zh/tag/%E9%A1%B5%E8%84%9A/","indexes":[287]},"导航栏":{"path":"/zh/tag/%E5%AF%BC%E8%88%AA%E6%A0%8F/","indexes":[289]},"侧边栏":{"path":"/zh/tag/%E4%BE%A7%E8%BE%B9%E6%A0%8F/","indexes":[291]},"Emoji":{"path":"/zh/tag/emoji/","indexes":[208,209,210,211,212]},"圖表":{"path":"/zh/tag/%E5%9C%96%E8%A1%A8/","indexes":[217]},"图表":{"path":"/zh/tag/%E5%9B%BE%E8%A1%A8/","indexes":[218,221,222,223]},"ECharts":{"path":"/zh/tag/echarts/","indexes":[219]},"流程图":{"path":"/zh/tag/%E6%B5%81%E7%A8%8B%E5%9B%BE/","indexes":[220]},"語法":{"path":"/zh/tag/%E8%AA%9E%E6%B3%95/","indexes":[224]},"图片":{"path":"/zh/tag/%E5%9B%BE%E7%89%87/","indexes":[225]},"上下角标":{"path":"/zh/tag/%E4%B8%8A%E4%B8%8B%E8%A7%92%E6%A0%87/","indexes":[226]},"任务列表":{"path":"/zh/tag/%E4%BB%BB%E5%8A%A1%E5%88%97%E8%A1%A8/","indexes":[227]},"TEX":{"path":"/zh/tag/tex/","indexes":[228]},"樣式化":{"path":"/zh/tag/%E6%A8%A3%E5%BC%8F%E5%8C%96/","indexes":[229]},"警告":{"path":"/zh/tag/%E8%AD%A6%E5%91%8A/","indexes":[230]},"对齐":{"path":"/zh/tag/%E5%AF%B9%E9%BD%90/","indexes":[231]},"属性":{"path":"/zh/tag/%E5%B1%9E%E6%80%A7/","indexes":[232]},"提示容器":{"path":"/zh/tag/%E6%8F%90%E7%A4%BA%E5%AE%B9%E5%99%A8/","indexes":[233]},"标记":{"path":"/zh/tag/%E6%A0%87%E8%AE%B0/","indexes":[234]},"剧透":{"path":"/zh/tag/%E5%89%A7%E9%80%8F/","indexes":[235]},"样式化":{"path":"/zh/tag/%E6%A0%B7%E5%BC%8F%E5%8C%96/","indexes":[236]},"程式碼":{"path":"/zh/tag/%E7%A8%8B%E5%BC%8F%E7%A2%BC/","indexes":[237]},"代码组":{"path":"/zh/tag/%E4%BB%A3%E7%A0%81%E7%BB%84/","indexes":[238]},"代码演示":{"path":"/zh/tag/%E4%BB%A3%E7%A0%81%E6%BC%94%E7%A4%BA/","indexes":[239]},"交互演示":{"path":"/zh/tag/%E4%BA%A4%E4%BA%92%E6%BC%94%E7%A4%BA/","indexes":[240,241,243]},"Playground":{"path":"/zh/tag/playground/","indexes":[242]},"内容":{"path":"/zh/tag/%E5%86%85%E5%AE%B9/","indexes":[244]},"脚注":{"path":"/zh/tag/%E8%84%9A%E6%B3%A8/","indexes":[245]},"导入文件":{"path":"/zh/tag/%E5%AF%BC%E5%85%A5%E6%96%87%E4%BB%B6/","indexes":[293]},"选项卡":{"path":"/zh/tag/%E9%80%89%E9%A1%B9%E5%8D%A1/","indexes":[247]}}}}};
-
diff --git a/docs/theme/src/.vuepress/.temp/blog/store.js b/docs/theme/src/.vuepress/.temp/blog/store.js
deleted file mode 100644
index fd69d84..0000000
--- a/docs/theme/src/.vuepress/.temp/blog/store.js
+++ /dev/null
@@ -1 +0,0 @@
-export const store = ["/contribution.html","/faq/","/faq/common-error.html","/faq/common-question.html","/faq/safari.html","/faq/troubleshooting.html","/faq/vite.html","/config/","/config/i18n.html","/config/intro.html","/config/style.html","/config/frontmatter/","/config/frontmatter/blog-home.html","/config/frontmatter/home.html","/config/frontmatter/info.html","/config/frontmatter/layout.html","/config/frontmatter/plugins.html","/config/plugins/blog.html","/config/plugins/comment.html","/config/plugins/copyright.html","/config/plugins/feed.html","/config/plugins/intro.html","/config/plugins/md-enhance.html","/config/plugins/others.html","/config/plugins/search.html","/config/theme/","/config/theme/appearance.html","/config/theme/basic.html","/config/theme/behavior.html","/config/theme/feature.html","/config/theme/i18n.html","/config/theme/layout.html","/demo/encrypt.html","/demo/projects.html","/get-started/","/get-started/command.html","/get-started/config.html","/get-started/content.html","/get-started/create.html","/get-started/deploy.html","/get-started/env.html","/get-started/structure.html","/cookbook/markdown/","/cookbook/markdown/demo.html","/cookbook/vuepress/","/cookbook/vuepress/config.html","/cookbook/vuepress/file.html","/cookbook/vuepress/markdown.html","/cookbook/vuepress/page.html","/cookbook/vuepress/plugin.html","/cookbook/vuepress/theme.html","/guide/customize/color.html","/guide/customize/effect.html","/guide/customize/external.html","/guide/customize/font.html","/cookbook/markdown/emoji/nature.html","/cookbook/markdown/emoji/object.html","/cookbook/markdown/emoji/people.html","/cookbook/markdown/emoji/place.html","/cookbook/markdown/emoji/symbol.html","/guide/intro/install.html","/guide/intro/intro.html","/guide/intro/markdown.html","/guide/","/guide/markdown/external.html","/guide/markdown/intro.html","/guide/markdown/others.html","/guide/markdown/chart/","/guide/markdown/chart/chartjs.html","/guide/markdown/chart/echarts.html","/guide/markdown/chart/flowchart.html","/guide/markdown/chart/markmap.html","/guide/markdown/chart/mermaid.html","/guide/markdown/chart/plantuml.html","/guide/markdown/grammar/","/guide/markdown/grammar/image.html","/guide/markdown/grammar/sup-sub.html","/guide/markdown/grammar/tasklist.html","/guide/markdown/grammar/tex.html","/guide/markdown/stylize/","/guide/markdown/stylize/alert.html","/guide/markdown/stylize/align.html","/guide/markdown/stylize/attrs.html","/guide/markdown/stylize/hint.html","/guide/markdown/stylize/mark.html","/guide/markdown/stylize/spoiler.html","/guide/markdown/stylize/stylize.html","/guide/markdown/code/","/guide/markdown/code/code-tabs.html","/guide/markdown/code/demo.html","/guide/markdown/code/kotlin-playground.html","/guide/markdown/code/playground.html","/guide/markdown/code/sandpack.html","/guide/markdown/code/vue-playground.html","/guide/markdown/content/","/guide/markdown/content/footnote.html","/guide/markdown/content/include.html","/guide/markdown/content/revealjs.html","/guide/markdown/content/tabs.html","/guide/advanced/","/guide/advanced/client.html","/guide/advanced/extend.html","/guide/advanced/feed.html","/guide/advanced/pwa.html","/guide/advanced/replace.html","/guide/advanced/seo.html","/guide/advanced/sitemap.html","/guide/blog/article.html","/guide/blog/blogger.html","/guide/blog/category-and-tags.html","/guide/blog/home.html","/guide/blog/intro.html","/guide/blog/path.html","/guide/blog/timeline.html","/guide/component/","/guide/component/built-in.html","/guide/component/global.html","/guide/component/grammar.html","/guide/component/sfc.html","/guide/customize/","/guide/customize/layout.html","/guide/customize/presets.html","/guide/feature/catalog.html","/guide/feature/comment.html","/guide/feature/copy-code.html","/guide/feature/copyright.html","/guide/feature/encrypt.html","/guide/feature/meta.html","/guide/feature/page-info.html","/guide/feature/photo-swipe.html","/guide/feature/search.html","/guide/interface/accessibility.html","/guide/interface/code-theme.html","/guide/interface/darkmode.html","/guide/interface/icon.html","/guide/interface/others.html","/guide/interface/pure.html","/guide/interface/responsive.html","/guide/interface/theme-color.html","/guide/layout/breadcrumb.html","/guide/layout/footer.html","/guide/layout/home.html","/guide/layout/navbar.html","/guide/layout/page.html","/guide/layout/sidebar.html","/guide/layout/slides.html","/zh/contribution.html","/zh/faq/","/zh/faq/common-error.html","/zh/faq/common-question.html","/zh/faq/safari.html","/zh/faq/troubleshooting.html","/zh/faq/vite.html","/zh/config/","/zh/config/i18n.html","/zh/config/intro.html","/zh/config/style.html","/zh/config/frontmatter/","/zh/config/frontmatter/blog-home.html","/zh/config/frontmatter/home.html","/zh/config/frontmatter/info.html","/zh/config/frontmatter/layout.html","/zh/config/frontmatter/plugins.html","/zh/config/plugins/blog.html","/zh/config/plugins/comment.html","/zh/config/plugins/copyright.html","/zh/config/plugins/feed.html","/zh/config/plugins/intro.html","/zh/config/plugins/md-enhance.html","/zh/config/plugins/others.html","/zh/config/plugins/search.html","/zh/config/theme/","/zh/config/theme/appearance.html","/zh/config/theme/basic.html","/zh/config/theme/behavior.html","/zh/config/theme/feature.html","/zh/config/theme/i18n.html","/zh/config/theme/layout.html","/zh/demo/","/zh/demo/encrypt.html","/zh/demo/projects.html","/zh/get-started/","/zh/kuang/","/zh/get-started/command.html","/zh/get-started/config.html","/zh/get-started/content.html","/zh/get-started/create.html","/zh/get-started/deploy.html","/zh/get-started/structure.html","/zh/guide/intro/install.html","/zh/guide/intro/intro.html","/zh/guide/intro/markdown.html","/zh/get-started/black_sesame_paste.html","/zh/cookbook/markdown/","/zh/cookbook/markdown/demo.html","/zh/cookbook/vuepress/","/zh/cookbook/vuepress/config.html","/zh/cookbook/vuepress/file.html","/zh/cookbook/vuepress/markdown.html","/zh/cookbook/vuepress/page.html","/zh/cookbook/vuepress/plugin.html","/zh/cookbook/vuepress/theme.html","/zh/guide/customize/","/zh/guide/customize/color.html","/zh/guide/customize/effect.html","/zh/guide/customize/external.html","/zh/guide/customize/font.html","/zh/guide/customize/layout.html","/zh/cookbook/markdown/emoji/nature.html","/zh/cookbook/markdown/emoji/object.html","/zh/cookbook/markdown/emoji/people.html","/zh/cookbook/markdown/emoji/place.html","/zh/cookbook/markdown/emoji/symbol.html","/zh/guide/","/zh/guide/markdown/external.html","/zh/guide/markdown/intro.html","/zh/guide/markdown/others.html","/zh/guide/markdown/chart/","/zh/guide/markdown/chart/chartjs.html","/zh/guide/markdown/chart/echarts.html","/zh/guide/markdown/chart/flowchart.html","/zh/guide/markdown/chart/markmap.html","/zh/guide/markdown/chart/mermaid.html","/zh/guide/markdown/chart/plantuml.html","/zh/guide/markdown/grammar/","/zh/guide/markdown/grammar/image.html","/zh/guide/markdown/grammar/sup-sub.html","/zh/guide/markdown/grammar/tasklist.html","/zh/guide/markdown/grammar/tex.html","/zh/guide/markdown/stylize/","/zh/guide/markdown/stylize/alert.html","/zh/guide/markdown/stylize/align.html","/zh/guide/markdown/stylize/attrs.html","/zh/guide/markdown/stylize/hint.html","/zh/guide/markdown/stylize/mark.html","/zh/guide/markdown/stylize/spoiler.html","/zh/guide/markdown/stylize/stylize.html","/zh/guide/markdown/code/","/zh/guide/markdown/code/code-tabs.html","/zh/guide/markdown/code/demo.html","/zh/guide/markdown/code/kotlin-playground.html","/zh/guide/markdown/code/playground.html","/zh/guide/markdown/code/sandpack.html","/zh/guide/markdown/code/vue-playground.html","/zh/guide/markdown/content/","/zh/guide/markdown/content/footnote.html","/zh/guide/markdown/content/revealjs.html","/zh/guide/markdown/content/tabs.html","/zh/guide/advanced/","/zh/guide/advanced/client.html","/zh/guide/advanced/extend.html","/zh/guide/advanced/feed.html","/zh/guide/advanced/pwa.html","/zh/guide/advanced/replace.html","/zh/guide/advanced/seo.html","/zh/guide/advanced/sitemap.html","/zh/guide/blog/article.html","/zh/guide/blog/blogger.html","/zh/guide/blog/category-and-tags.html","/zh/guide/blog/home.html","/zh/guide/blog/intro.html","/zh/guide/blog/path.html","/zh/guide/blog/timeline.html","/zh/guide/component/","/zh/guide/component/built-in.html","/zh/guide/component/global.html","/zh/guide/component/grammar.html","/zh/guide/component/sfc.html","/zh/guide/customize/presets.html","/zh/guide/feature/catalog.html","/zh/guide/feature/comment.html","/zh/guide/feature/copy-code.html","/zh/guide/feature/copyright.html","/zh/guide/feature/encrypt.html","/zh/guide/feature/meta.html","/zh/guide/feature/page-info.html","/zh/guide/feature/photo-swipe.html","/zh/guide/feature/search.html","/zh/guide/interface/accessibility.html","/zh/guide/interface/code-theme.html","/zh/guide/interface/darkmode.html","/zh/guide/interface/icon.html","/zh/guide/interface/others.html","/zh/guide/interface/pure.html","/zh/guide/interface/responsive.html","/zh/guide/interface/theme-color.html","/zh/guide/layout/breadcrumb.html","/zh/guide/layout/footer.html","/zh/guide/layout/home.html","/zh/guide/layout/navbar.html","/zh/guide/layout/page.html","/zh/guide/layout/sidebar.html","/zh/guide/layout/slides.html","/zh/guide/markdown/content/include.html","/changelog.html","/related.html","/demo/","/demo/slot.html","/config/plugins/","/guide/blog/","/guide/feature/","/guide/interface/","/guide/intro/","/guide/layout/","/guide/markdown/","/zh/changelog.html","/zh/related.html","/zh/demo/slot.html","/zh/config/plugins/","/zh/guide/blog/","/zh/guide/feature/","/zh/guide/interface/","/zh/guide/intro/","/zh/guide/markdown/","/zh/guide/layout/"];
diff --git a/docs/theme/src/.vuepress/.temp/blog/type.js b/docs/theme/src/.vuepress/.temp/blog/type.js
deleted file mode 100644
index 3cd864b..0000000
--- a/docs/theme/src/.vuepress/.temp/blog/type.js
+++ /dev/null
@@ -1,3 +0,0 @@
- export const typesMap = {"article":{"/":{"path":"/article/","indexes":[34,294,0,295,7,8,9,10,296,32,33,297,1,2,3,4,5,6,35,36,37,38,39,40,41,11,12,13,14,15,16,63,298,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,43,44,45,46,47,48,49,50,99,100,101,102,103,104,105,106,299,107,108,109,110,111,112,113,114,115,116,117,118,119,51,52,53,54,120,121,300,122,123,124,125,126,127,128,129,130,301,131,132,133,134,135,136,137,138,302,60,61,62,303,139,140,141,142,143,144,145,55,56,57,58,59,304,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98]},"/zh/":{"path":"/zh/article/","indexes":[182,181,305,146,306,153,154,155,156,178,179,180,307,147,148,149,150,151,152,183,184,185,186,187,188,213,157,158,159,160,161,162,308,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,193,194,195,196,197,198,199,200,201,248,249,250,251,252,253,254,255,309,256,257,258,259,260,261,262,263,264,265,266,267,202,203,204,205,206,207,268,310,269,270,271,272,273,274,275,276,277,311,278,279,280,281,282,283,284,285,312,189,190,191,313,214,215,216,314,286,287,288,289,290,291,292,208,209,210,211,212,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,293,246,247,192]}},"star":{"/":{"path":"/star/","indexes":[7,1,34,61]},"/zh/":{"path":"/zh/star/","indexes":[153,147,182,190,181]}},"timeline":{"/":{"path":"/timeline/","indexes":[294,0,295,7,8,9,10,296,32,33,297,1,2,3,4,5,6,34,35,36,37,38,39,40,41,11,12,13,14,15,16,63,298,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,42,43,44,45,46,47,48,49,50,99,100,101,102,103,104,105,106,299,107,108,109,110,111,112,113,114,115,116,117,118,119,51,52,53,54,120,121,300,122,123,124,125,126,127,128,129,130,301,131,132,133,134,135,136,137,138,302,60,61,62,303,139,140,141,142,143,144,145,55,56,57,58,59,304,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98]},"/zh/":{"path":"/zh/timeline/","indexes":[305,146,306,153,154,155,156,178,179,180,307,147,148,149,150,151,152,183,184,185,186,187,188,213,182,157,158,159,160,161,162,308,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,193,194,195,196,197,198,199,200,201,248,249,250,251,252,253,254,255,309,256,257,258,259,260,261,262,263,264,265,266,267,202,203,204,205,206,207,268,310,269,270,271,272,273,274,275,276,277,311,278,279,280,281,282,283,284,285,312,189,190,191,313,214,215,216,314,286,287,288,289,290,291,292,208,209,210,211,212,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,293,246,247,181]}}};
-
-
\ No newline at end of file
diff --git a/docs/theme/src/.vuepress/.temp/components/config.js b/docs/theme/src/.vuepress/.temp/components/config.js
deleted file mode 100644
index 9cdb44e..0000000
--- a/docs/theme/src/.vuepress/.temp/components/config.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { defineClientConfig } from "vuepress/client";
-import { hasGlobalComponent } from "/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+helper@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-vite@2.0._jkddgdlnvaul6rhxeamn7z6ocy/node_modules/@vuepress/helper/lib/client/index.js";
-import { h } from "vue";
-
-import { useScriptTag } from "/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vueuse+core@10.9.0_vue@3.4.26_typescript@5.4.5_/node_modules/@vueuse/core/index.mjs";
-import FontIcon from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/FontIcon.js";
-import ArtPlayer from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/ArtPlayer.js";
-import Badge from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/Badge.js";
-import BiliBili from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/BiliBili.js";
-import CodePen from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/CodePen.js";
-import PDF from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/PDF.js";
-import Share from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/Share.js";
-import SiteInfo from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/SiteInfo.js";
-import StackBlitz from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/StackBlitz.js";
-import VPBanner from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/VPBanner.js";
-import VPCard from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/VPCard.js";
-import VidStack from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/VidStack.js";
-import Notice from "/Users/kuang/GitHub/recipe/packages/components/lib/client/components/Notice.js";
-
-import "/Users/kuang/GitHub/recipe/packages/components/lib/client/styles/sr-only.scss";
-
-export default defineClientConfig({
- enhance: ({ app }) => {
- if(!hasGlobalComponent("FontIcon")) app.component("FontIcon", FontIcon);
- if(!hasGlobalComponent("ArtPlayer")) app.component("ArtPlayer", ArtPlayer);
- if(!hasGlobalComponent("Badge")) app.component("Badge", Badge);
- if(!hasGlobalComponent("BiliBili")) app.component("BiliBili", BiliBili);
- if(!hasGlobalComponent("CodePen")) app.component("CodePen", CodePen);
- if(!hasGlobalComponent("PDF")) app.component("PDF", PDF);
- if(!hasGlobalComponent("Share")) app.component("Share", Share);
- if(!hasGlobalComponent("SiteInfo")) app.component("SiteInfo", SiteInfo);
- if(!hasGlobalComponent("StackBlitz")) app.component("StackBlitz", StackBlitz);
- if(!hasGlobalComponent("VPBanner")) app.component("VPBanner", VPBanner);
- if(!hasGlobalComponent("VPCard")) app.component("VPCard", VPCard);
- if(!hasGlobalComponent("VidStack")) app.component("VidStack", VidStack);
-
- },
- setup: () => {
- useScriptTag(
- `https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/js/brands.min.js`,
- () => {},
- { attrs: { "data-auto-replace-svg": "nest" } }
-);
-
- useScriptTag(
- `https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/js/solid.min.js`,
- () => {},
- { attrs: { "data-auto-replace-svg": "nest" } }
-);
-
- useScriptTag(
- `https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/js/fontawesome.min.js`,
- () => {},
- { attrs: { "data-auto-replace-svg": "nest" } }
-);
-
- },
- rootComponents: [
- () => h(Notice, { config: [{"path":"/zh/","title":"新的文檔地址","content":"我們的文檔已經遷移至新域名 vuejs.press 下。
當前文檔是基於主分支最新提交構建的,可能包含未發布的更改。","actions":[{"text":"立即訪問","link":"https://theme-hope.vuejs.press/zh/"}]},{"path":"/","title":"New docs location","content":"Our docs has moved to a new domain vuejs.press
Current docs is built from the latest commit on the main branch, and may contain unreleased changes!","actions":[{"text":"Visit Now","link":"https://theme-hope.vuejs.press"}]}] }),
- ],
-});
diff --git a/docs/theme/src/.vuepress/.temp/internal/clientConfigs.js b/docs/theme/src/.vuepress/.temp/internal/clientConfigs.js
deleted file mode 100644
index b37ab2a..0000000
--- a/docs/theme/src/.vuepress/.temp/internal/clientConfigs.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import clientConfig0 from '/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/sass-palette/load-hope.js'
-import clientConfig1 from '/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/components/config.js'
-import clientConfig2 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-active-header-links@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepre_z4azrirkpwasfdpfxjsja2kqx4/node_modules/@vuepress/plugin-active-header-links/lib/client/config.js'
-import clientConfig3 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-catalog@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-v_ob4yt76pa6yrsjdqqemkxtukiy/node_modules/@vuepress/plugin-catalog/lib/client/config.js'
-import clientConfig4 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-back-to-top@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_i7g5rtwx3hkuntqc7yelemwckq/node_modules/@vuepress/plugin-back-to-top/lib/client/config.js'
-import clientConfig5 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-external-link-icon@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepres_6twuuhk3hucrb5ltjxxxdi7nbu/node_modules/@vuepress/plugin-external-link-icon/lib/client/config.js'
-import clientConfig6 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-nprogress@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_6tmezf3rw3vzk6y63p5grgimoi/node_modules/@vuepress/plugin-nprogress/lib/client/config.js'
-import clientConfig7 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-theme-data@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundle_z5mpr6tytfmuj2i44lwfrzc74i/node_modules/@vuepress/plugin-theme-data/lib/client/config.js'
-import clientConfig8 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-comment@2.0.0-rc.26_@waline+client@3.1.3_typescript@5.4.5__sass-loader@14.2._7y4oqvkziq6gvaxfgfu2ngfwae/node_modules/@vuepress/plugin-comment/lib/client/config.js'
-import clientConfig9 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-copy-code@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_om6d7rhvassqryqqra3vmevkk4/node_modules/@vuepress/plugin-copy-code/lib/client/config.js'
-import clientConfig10 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-copyright@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler_bqp4gbxapatr53vyaw4wqhm25e/node_modules/@vuepress/plugin-copyright/lib/client/config.js'
-import clientConfig11 from '/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/md-enhance/config.js'
-import clientConfig12 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-photo-swipe@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundl_2qykbbbf7tzy4yeww4dewoodm4/node_modules/@vuepress/plugin-photo-swipe/lib/client/config.js'
-import clientConfig13 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-docsearch@2.0.0-rc.26_@algolia+client-search@4.23.3_search-insights@2.13.0_t_muh4ed2lxtafga75q2httwynvm/node_modules/@vuepress/plugin-docsearch/lib/client/config.js'
-import clientConfig14 from '/Users/kuang/GitHub/recipe/node_modules/.pnpm/@vuepress+plugin-redirect@2.0.0-rc.26_typescript@5.4.5_vuepress@2.0.0-rc.9_@vuepress+bundler-_zdftcar353hgotxtdffljxu37m/node_modules/@vuepress/plugin-redirect/lib/client/config.js'
-import clientConfig15 from '/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/theme-hope/config.js'
-import clientConfig16 from '/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/client.ts'
-
-export const clientConfigs = [
- clientConfig0,
- clientConfig1,
- clientConfig2,
- clientConfig3,
- clientConfig4,
- clientConfig5,
- clientConfig6,
- clientConfig7,
- clientConfig8,
- clientConfig9,
- clientConfig10,
- clientConfig11,
- clientConfig12,
- clientConfig13,
- clientConfig14,
- clientConfig15,
- clientConfig16,
-]
diff --git a/docs/theme/src/.vuepress/.temp/internal/routes.js b/docs/theme/src/.vuepress/.temp/internal/routes.js
deleted file mode 100644
index f88584d..0000000
--- a/docs/theme/src/.vuepress/.temp/internal/routes.js
+++ /dev/null
@@ -1,585 +0,0 @@
-export const redirects = JSON.parse("{}")
-
-export const routes = Object.fromEntries([
- ["/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/index.html.js"), meta: {"t":"Home","i":"home"} }],
- ["/changelog.html", { loader: () => import(/* webpackChunkName: "changelog.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/changelog.html.js"), meta: {"d":1723465957000,"e":"
This file contains all notable changes to vuepress-theme-hope
and its plugins.
We always welcome everyone to contribute! Here is a guide for you.
\n","r":{"minutes":2.27,"words":680},"t":"Contribution Guide","i":"lightbulb","y":"a"} }], - ["/related.html", { loader: () => import(/* webpackChunkName: "related.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/related.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.42,"words":126},"t":"Related Plugins","i":"puzzle-piece","y":"a"} }], - ["/config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/index.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Config"],"r":{"minutes":0.27,"words":82},"t":"Config","i":"gears","y":"a"} }], - ["/config/i18n.html", { loader: () => import(/* webpackChunkName: "i18n.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/i18n.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["I18N"],"r":{"minutes":1.76,"words":528},"t":"I18n","i":"language","O":2,"y":"a"} }], - ["/config/intro.html", { loader: () => import(/* webpackChunkName: "intro.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/intro.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Intro"],"r":{"minutes":0.54,"words":163},"t":"Config Intro","i":"gears","O":1,"y":"a"} }], - ["/config/style.html", { loader: () => import(/* webpackChunkName: "style.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/style.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Theme Config","Style"],"e":"You can change the theme's styles in .vuepress/styles
by setting variable values in the config.scss
and palette.scss
files.
Also, you can add your own styles in .vuepress/styles/index.scss
.
This page shows how to use slots to customize the content of a page.
\n","r":{"minutes":0.38,"words":113},"t":"Slot Demo","i":"boxes-packing","y":"a"} }], - ["/faq/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/faq/index.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":1.63,"words":489},"t":"FAQ","i":"circle-question","y":"a"} }], - ["/faq/common-error.html", { loader: () => import(/* webpackChunkName: "common-error.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/faq/common-error.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":4.29,"words":1287},"t":"Common Errors","i":"triangle-exclamation","O":3,"y":"a"} }], - ["/faq/common-question.html", { loader: () => import(/* webpackChunkName: "common-question.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/faq/common-question.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":1.65,"words":496},"t":"Common question","i":"triangle-exclamation","O":1,"y":"a"} }], - ["/faq/safari.html", { loader: () => import(/* webpackChunkName: "safari.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/faq/safari.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":0.43,"words":129},"t":"Safari FAQ","i":"fab fa-safari","O":-1,"y":"a"} }], - ["/faq/troubleshooting.html", { loader: () => import(/* webpackChunkName: "troubleshooting.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/faq/troubleshooting.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":1,"words":299},"t":"Troubleshooting","i":"square-check","O":2,"y":"a"} }], - ["/faq/vite.html", { loader: () => import(/* webpackChunkName: "vite.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/faq/vite.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":2.4,"words":720},"t":"Vite FAQ","i":"circle-question","O":-2,"y":"a"} }], - ["/cookbook/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/index.html.js"), meta: {"t":"Cookbook","i":"signs-post"} }], - ["/zh/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/index.html.js"), meta: {"t":"主頁","i":"home"} }], - ["/zh/changelog.html", { loader: () => import(/* webpackChunkName: "changelog.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/changelog.html.js"), meta: {"d":1723465957000,"e":"该文件包含 vuepress-theme-hope
及其插件的所有显着更改。
我们永远欢迎你对项目进行贡献! 这里是一份相关指南。
\n","r":{"minutes":3.35,"words":1005},"t":"贡献指南","i":"lightbulb","y":"a"} }], - ["/zh/related.html", { loader: () => import(/* webpackChunkName: "related.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/related.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.47,"words":142},"t":"相关插件","i":"puzzle-piece","y":"a"} }], - ["/get-started/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/index.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"u":10,"r":{"minutes":0.32,"words":95},"t":"Get Started","i":"signs-post","O":1,"y":"a"} }], - ["/get-started/command.html", { loader: () => import(/* webpackChunkName: "command.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/command.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Project Command"],"e":"This tutorial introduces VuePress project commands.
\n","r":{"minutes":0.83,"words":248},"t":"Project Command","i":"flag","O":3,"y":"a"} }], - ["/get-started/config.html", { loader: () => import(/* webpackChunkName: "config.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/config.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Project Config"],"e":"This tutorial guides you on how to configure a VuePress project.
\n","r":{"minutes":2.16,"words":649},"t":"Project Config","i":"gears","O":5,"y":"a"} }], - ["/get-started/content.html", { loader: () => import(/* webpackChunkName: "content.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/content.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Project Content"],"e":"This tutorial guides you on how to generate page in a VuePress project.
\n","r":{"minutes":1.37,"words":412},"t":"Project Content","i":"file","O":4,"y":"a"} }], - ["/get-started/create.html", { loader: () => import(/* webpackChunkName: "create.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/create.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Template"],"e":"This tutorial will guide you through creating a VuePress Theme Hope project.
\n","r":{"minutes":0.83,"words":248},"t":"Create Project","i":"folder-plus","O":2,"y":"a"} }], - ["/get-started/deploy.html", { loader: () => import(/* webpackChunkName: "deploy.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/deploy.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Project Deployment"],"e":"This tutorial guides you on how to deploy a VuePress project.
\n","r":{"minutes":0.86,"words":259},"t":"Project Deployment","i":"rocket","O":7,"y":"a"} }], - ["/get-started/env.html", { loader: () => import(/* webpackChunkName: "env.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/env.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Runtime"],"e":"This tutorial will guide you on how to set up a VuePress runtime environment.
\n","r":{"minutes":0.95,"words":285},"t":"Runtime Setup","i":"leaf","O":1,"y":"a"} }], - ["/get-started/structure.html", { loader: () => import(/* webpackChunkName: "structure.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/get-started/structure.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Tutorial","Get Started"],"g":["Project Structure"],"e":"This tutorial will introduce VuePress project structure.
\n","r":{"minutes":0.5,"words":151},"t":"Project Structure","i":"folder-tree","O":6,"y":"a"} }], - ["/config/frontmatter/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/frontmatter/index.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Config","Frontmatter"],"r":{"minutes":0.13,"words":38},"t":"Frontmatter Config","i":"gears","O":5,"y":"a"} }], - ["/config/frontmatter/blog-home.html", { loader: () => import(/* webpackChunkName: "blog-home.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/frontmatter/blog-home.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Frontmatter","Blog Home"],"r":{"minutes":0.75,"words":225},"t":"Blog Home Frontmatter Config","i":"blog","O":5,"y":"a"} }], - ["/config/frontmatter/home.html", { loader: () => import(/* webpackChunkName: "home.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/frontmatter/home.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Frontmatter","Home"],"r":{"minutes":1.59,"words":476},"t":"Home Frontmatter Config","i":"home","O":4,"y":"a"} }], - ["/config/frontmatter/info.html", { loader: () => import(/* webpackChunkName: "info.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/frontmatter/info.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Frontmatter","Info"],"r":{"minutes":1.25,"words":374},"t":"Info Frontmatter Config","i":"circle-info","O":1,"y":"a"} }], - ["/config/frontmatter/layout.html", { loader: () => import(/* webpackChunkName: "layout.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/frontmatter/layout.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Frontmatter","Layout"],"r":{"minutes":1.94,"words":581},"t":"Layout Frontmatter Config","i":"object-group","O":2,"y":"a"} }], - ["/config/frontmatter/plugins.html", { loader: () => import(/* webpackChunkName: "plugins.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/frontmatter/plugins.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Frontmatter","Layout"],"r":{"minutes":0.85,"words":254},"t":"Plugin Frontmatter Config","i":"puzzle-piece","O":3,"y":"a"} }], - ["/guide/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/index.html.js"), meta: {"d":1723465957000,"c":["Intro"],"g":["Intro"],"r":{"minutes":0.79,"words":238},"t":"Guide","i":"lightbulb","y":"a"} }], - ["/config/plugins/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/plugins/index.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.21,"words":63},"t":"Plugin Config","i":"puzzle-piece","O":4,"y":"a"} }], - ["/config/plugins/blog.html", { loader: () => import(/* webpackChunkName: "blog.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/plugins/blog.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Blog","Plugin Config","Theme Config"],"e":"The theme provides blog feature via @vuepress/plugin-blog
, and it's not enabled by default.
You can enable blog feature by setting plugins.blog
to true
in theme options.
For instructions, please see Blog Intro.
\nboolean
true
Whether generate excerpt for page.
\nstring
vuepress-theme-hope
bundles many VuePress plugins and adds support for more VuePress plugin.
The following options control the appearance of the theme. You don't need to pay attention to them in most cases, they are only provided for a small amount of users with needs.
\n","r":{"minutes":1.08,"words":324},"t":"Theme Appearance Options","i":"palette","O":5,"y":"a"} }], - ["/config/theme/basic.html", { loader: () => import(/* webpackChunkName: "basic.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/theme/basic.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Basic","ThemeConfig"],"e":"Caution
\nThese options are important and require you to configure them correctly.
\nhopeTheme()
accepts an optional second argument, which is the behavior option. The behavior option controls the behavior of the theme.
The behavior option can also accept a boolean value:
\nfalse
: options set tofalse
with false
valuetrue
: { check: true, compact:true, custom: false, debug: false }
The following options control features provided by theme.
\n","r":{"minutes":1.8,"words":541},"t":"Theme Feature Options","i":"splotch","O":3,"y":"a"} }], - ["/config/theme/i18n.html", { loader: () => import(/* webpackChunkName: "i18n.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/theme/i18n.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["I18n","Theme Config"],"r":{"minutes":1.71,"words":512},"t":"Theme I18n Options","i":"language","O":6,"y":"a"} }], - ["/config/theme/layout.html", { loader: () => import(/* webpackChunkName: "layout.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/config/theme/layout.html.js"), meta: {"d":1723465957000,"c":["Config"],"g":["Theme Config","Layout"],"r":{"minutes":2.34,"words":703},"t":"Theme Layout Options","i":"object-group","O":4,"y":"a"} }], - ["/cookbook/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/markdown/index.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Markdown"],"g":["Intro","Markdown"],"r":{"minutes":1.43,"words":429},"t":"Markdown Introduction","i":"fab fa-markdown","O":1,"y":"a"} }], - ["/cookbook/markdown/demo.html", { loader: () => import(/* webpackChunkName: "demo.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/markdown/demo.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Markdown"],"g":["Demo","Markdown"],"r":{"minutes":1,"words":299},"t":"Markdown DEMO","i":"fab fa-markdown","O":2,"y":"a"} }], - ["/cookbook/vuepress/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/index.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["Intro","VuePress"],"e":"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.
\n","r":{"minutes":0.73,"words":218},"t":"About VuePress","i":"fab fa-vuejs","O":2,"y":"a"} }], - ["/cookbook/vuepress/config.html", { loader: () => import(/* webpackChunkName: "config.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/config.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["Config","VuePress"],"r":{"minutes":1.32,"words":397},"t":"VuePress Config","i":"gears","O":4,"y":"a"} }], - ["/cookbook/vuepress/file.html", { loader: () => import(/* webpackChunkName: "file.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/file.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["File Structure","VuePress"],"r":{"minutes":0.24,"words":71},"t":"File Structure","i":"folder","O":3,"y":"a"} }], - ["/cookbook/vuepress/markdown.html", { loader: () => import(/* webpackChunkName: "markdown.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/markdown.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["Markdown","VuePress"],"r":{"minutes":5.79,"words":1736},"t":"Builtin Markdown features","i":"fab fa-markdown","O":2,"y":"a"} }], - ["/cookbook/vuepress/page.html", { loader: () => import(/* webpackChunkName: "page.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/page.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["Page","VuePress"],"r":{"minutes":1.03,"words":309},"t":"VuePress Page","i":"file","O":1,"y":"a"} }], - ["/cookbook/vuepress/plugin.html", { loader: () => import(/* webpackChunkName: "plugin.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/plugin.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["Plugin","VuePress"],"r":{"minutes":0.95,"words":284},"t":"Plugins","i":"puzzle-piece","O":5,"y":"a"} }], - ["/cookbook/vuepress/theme.html", { loader: () => import(/* webpackChunkName: "theme.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/theme.html.js"), meta: {"d":1723465957000,"c":["Cookbook","VuePress"],"g":["Theme","VuePress"],"r":{"minutes":0.84,"words":252},"t":"Theme Config","i":"palette","O":6,"y":"a"} }], - ["/zh/config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/index.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["配置"],"r":{"minutes":0.14,"words":41},"t":"華點","i":"gears","y":"a"} }], - ["/zh/config/i18n.html", { loader: () => import(/* webpackChunkName: "i18n.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/i18n.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["多语言"],"r":{"minutes":2.52,"words":757},"t":"多语言","i":"language","O":2,"y":"a"} }], - ["/zh/config/intro.html", { loader: () => import(/* webpackChunkName: "intro.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/intro.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["介绍"],"r":{"minutes":0.76,"words":228},"t":"配置介绍","i":"gears","O":1,"y":"a"} }], - ["/zh/config/style.html", { loader: () => import(/* webpackChunkName: "style.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/style.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["主题配置","样式"],"e":"你可以在 .vuepress/styles
中通过在 config.scss
和 palette.scss
文件中写入变量值来更改主题的样式。
你也可以在 .vuepress/styles/index.scss
中添加你自己的样式。
本页面展示了如何使用插槽来自定义页面的内容。
\n","r":{"minutes":0.59,"words":176},"t":"插槽演示","i":"boxes-packing","y":"a"} }], - ["/zh/faq/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/faq/index.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":0.1,"words":30},"t":"西點","i":"circle-question","y":"a"} }], - ["/zh/faq/common-error.html", { loader: () => import(/* webpackChunkName: "common-error.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/faq/common-error.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":6.31,"words":1893},"t":"常见错误","i":"triangle-exclamation","O":3,"y":"a"} }], - ["/zh/faq/common-question.html", { loader: () => import(/* webpackChunkName: "common-question.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/faq/common-question.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":2.48,"words":744},"t":"普遍问题","i":"triangle-exclamation","O":1,"y":"a"} }], - ["/zh/faq/safari.html", { loader: () => import(/* webpackChunkName: "safari.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/faq/safari.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":0.54,"words":162},"t":"Safari 常见问题","i":"fab fa-safari","O":-1,"y":"a"} }], - ["/zh/faq/troubleshooting.html", { loader: () => import(/* webpackChunkName: "troubleshooting.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/faq/troubleshooting.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":1.38,"words":414},"t":"故障排查","i":"square-check","O":2,"y":"a"} }], - ["/zh/faq/vite.html", { loader: () => import(/* webpackChunkName: "vite.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/faq/vite.html.js"), meta: {"d":1723465957000,"c":["FAQ"],"r":{"minutes":3.59,"words":1077},"t":"Vite 常见问题","i":"circle-question","O":-2,"y":"a"} }], - ["/zh/get-started/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/index.html.js"), meta: {"a":"ycKuang","d":1407456000000,"l":"2014年8月8日","c":["醬料"],"u":10,"r":{"minutes":0.33,"words":100},"t":"醬料","i":"signs-post","O":1,"y":"a"} }], - ["/zh/get-started/black_sesame_paste.html", { loader: () => import(/* webpackChunkName: "black_sesame_paste.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/black_sesame_paste.html.js"), meta: {"c":["快速上手","基础知识","教程"],"g":["醬料"],"e":"黑芝麻醬的材料、作法與注意事項
\n","r":{"minutes":0.42,"words":125},"t":"黑芝麻醬","i":"leaf","O":1,"y":"a"} }], - ["/zh/get-started/command.html", { loader: () => import(/* webpackChunkName: "command.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/command.html.js"), meta: {"d":1723465957000,"c":["快速上手","基础知识","教程"],"g":["项目命令"],"e":"本教程介绍 VuePress 项目命令。
\n","r":{"minutes":1.17,"words":352},"t":"项目命令","i":"flag","O":3,"y":"a"} }], - ["/zh/get-started/config.html", { loader: () => import(/* webpackChunkName: "config.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/config.html.js"), meta: {"d":1723465957000,"c":["快速上手","基础知识","教程"],"g":["配置项目"],"e":"本教程指引你如何配置 VuePress 项目。
\n","r":{"minutes":3.28,"words":985},"t":"配置项目","i":"gears","O":5,"y":"a"} }], - ["/zh/get-started/content.html", { loader: () => import(/* webpackChunkName: "content.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/content.html.js"), meta: {"d":1723465957000,"c":["快速上手","基础知识","教程"],"g":["项目内容"],"e":"本教程指引你如何在 VuePress 项目中生成页面。
\n","r":{"minutes":2.08,"words":624},"t":"项目内容","i":"file","O":4,"y":"a"} }], - ["/zh/get-started/create.html", { loader: () => import(/* webpackChunkName: "create.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/create.html.js"), meta: {"d":1723465957000,"c":["快速上手","基础知识","教程"],"g":["模板"],"e":"此教程将指引你创建一个 VuePress Theme Hope 项目。
\n","r":{"minutes":1.39,"words":416},"t":"创建项目","i":"folder-plus","O":2,"y":"a"} }], - ["/zh/get-started/deploy.html", { loader: () => import(/* webpackChunkName: "deploy.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/deploy.html.js"), meta: {"d":1723465957000,"c":["快速上手","基础知识","教程"],"g":["部署项目"],"e":"本教程指引你如何部署 VuePress 项目。
\n","r":{"minutes":1.47,"words":441},"t":"部署项目","i":"rocket","O":7,"y":"a"} }], - ["/zh/get-started/structure.html", { loader: () => import(/* webpackChunkName: "structure.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/get-started/structure.html.js"), meta: {"d":1723465957000,"c":["快速上手","基础知识","教程"],"g":["配置项目"],"e":"本教程将介绍 VuePress 项目结构。
\n","r":{"minutes":0.74,"words":223},"t":"项目结构","i":"folder-tree","O":6,"y":"a"} }], - ["/zh/cookbook/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/index.html.js"), meta: {"t":"基礎教程","i":"signs-post"} }], - ["/zh/guide/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/index.html.js"), meta: {"d":1723465957000,"c":["介紹"],"g":["介紹"],"r":{"minutes":0.2,"words":61},"t":"單點餐","i":"lightbulb","y":"a"} }], - ["/guide/advanced/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/advanced/index.html.js"), meta: {"d":1723465957000,"c":["Advanced"],"g":["Advanced"],"r":{"minutes":0.76,"words":229},"t":"Advanced","i":"gem","O":9,"y":"a"} }], - ["/guide/advanced/client.html", { loader: () => import(/* webpackChunkName: "client.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/advanced/client.html.js"), meta: {"d":1723465957000,"c":["Advanced"],"g":["Advanced","Client Config"],"e":"You can create .vuepress/client.ts
or .vuepress/client.js
as a client config file to customize your site.
The theme adds feed support with [@vuepress/plugin-feed
][feed]. To use it, install @vuepress/plugin-feed
manually in your project.
Info
\nvuepress-theme-hope
provides plugins.feed
in theme options to @vuepress/plugin-feed
.
The theme provides progressive web app support [^pwa-intro] via [@vuepress/plugin-pwa
][pwa]. To use it, install @vuepress/plugin-pwa
manually in your project.
Info
\nIf you are using this plugin, we recommend you to set shouldPrefetch: false
in your VuePress config file.
vuepress-theme-hope
provides plugins.pwa
in theme options to @vuepress/plugin-pwa
.
When setting { custom: true }
in Behavior options, the theme will import components through @theme-hope
alias, so you can use it to replace any component of the theme.
vuepress-theme-hope
provides SEO enhancements via built-in [@vuepress/plugin-seo
][seo].
To make the plugin work better, you may need to check the page config and configure them properly.
\nInfo
\nvuepress-theme-hope
passes plugins.seo
in theme options as plugin options to @vuepress/plugin-seo
.
The plugin will make your site fully support Open Content Protocol OGP and JSON-LD 1.1 to enhance the SEO of the site.
\nIf you don't need this plugin, please set plugins.seo
to false
in theme options.
The topic provides you with a list of all articles under the path /article/
by default.
All articles will be added to the article list by default and rendered under the path /article/
.
\n
If you don't want the list to contain some specific articles, just set the article
to false
in the frontmatter of the article, or you may customize it through plugins.blog.filter
in theme options.
To sticky a specific article in the article list, just set sticky
to true
in the frontmatter of the article.
Order
\nFor sticky articles, you can set sticky
with a number to set their order. Articles with large numbers will be listed first.
If you want to add an excerpt for an article, you can mark contents with `
\n","r":{"minutes":2.4,"words":721},"t":"Article List","i":"clipboard-list","O":3,"y":"a"} }], - ["/guide/blog/blogger.html", { loader: () => import(/* webpackChunkName: "blogger.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/blog/blogger.html.js"), meta: {"d":1723465957000,"c":["Blog"],"g":["Blog","Blogger"],"e":"Themes allow you to display basic information about the blogger.
\n","r":{"minutes":1.46,"words":437},"t":"Blogger Info","i":"circle-info","O":2,"y":"a"} }], - ["/guide/blog/category-and-tags.html", { loader: () => import(/* webpackChunkName: "category-and-tags.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/blog/category-and-tags.html.js"), meta: {"d":1723465957000,"c":["Blog"],"g":["Blog","Category","Tag"],"e":"You can configure category and tags for articles through frontmatter to make them appear in specific categories and tags pages.
\n","r":{"minutes":0.79,"words":238},"t":"Category and tags","i":"tag","O":4,"y":"a"} }], - ["/guide/blog/home.html", { loader: () => import(/* webpackChunkName: "home.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/blog/home.html.js"), meta: {"d":1723465957000,"c":["Blog"],"g":["Blog","Home","Layout"],"e":"vuepress-theme-hope
allows you to enable a blog-style and a portfolio style homepage.
The theme supports blog feature with@vuepress/plugin-blog
by default, and it's disabled by default.
If you need blog functionality, you can set plugins.blog: true
in theme options to enable blog functionality.
By using vuepress-plugin-components
, you can import and use some components in your Markdown files.
Available components:
\nTo enable components, you should set plugins.components.components
with an array of components names.
This tutorial will guide you on how to register components globally in your VuePress project.
\n","r":{"minutes":0.74,"words":221},"t":"Global Components","i":"puzzle-piece","O":2,"y":"a"} }], - ["/guide/component/grammar.html", { loader: () => import(/* webpackChunkName: "grammar.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/component/grammar.html.js"), meta: {"d":1723465957000,"c":["Component"],"g":["Component","Markdown"],"e":"You can easily insert components in Markdown content with component code block.
\n","r":{"minutes":0.16,"words":48},"t":"Component","i":"puzzle-piece","O":3,"y":"a"} }], - ["/guide/component/sfc.html", { loader: () => import(/* webpackChunkName: "sfc.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/component/sfc.html.js"), meta: {"d":1723465957000,"c":["Component"],"g":["Component","SFC"],"e":"This tutorial will explain how to every Markdown files are converted to a Vue-powered page.
\n","r":{"minutes":1.23,"words":370},"t":"Markdown to Vue SFC","i":"fab fa-vuejs","O":1,"y":"a"} }], - ["/guide/customize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/index.html.js"), meta: {"d":1723465957000,"c":["Customize"],"g":["Customize"],"r":{"minutes":0.53,"words":159},"t":"Customize","i":"gear","O":8,"y":"a"} }], - ["/guide/customize/color.html", { loader: () => import(/* webpackChunkName: "color.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/color.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Customize"],"g":["Customize"],"e":"This page guides you how to customize theme colors.
\n","r":{"minutes":0.88,"words":265},"t":"Customize color","i":"palette","O":1,"y":"a"} }], - ["/guide/customize/effect.html", { loader: () => import(/* webpackChunkName: "effect.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/effect.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Customize"],"g":["Customize"],"e":"This tutorial guides you how to customize theme effects.
\n","r":{"minutes":0.43,"words":129},"t":"Customize Effects","i":"wand-magic-sparkles","O":3,"y":"a"} }], - ["/guide/customize/external.html", { loader: () => import(/* webpackChunkName: "external.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/external.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Customize"],"g":["Customize"],"e":"This tutorial guides you how to add external scripts and styles to your site.
\n","r":{"minutes":0.54,"words":161},"t":"External Scripts and Styles","i":"wand-magic-sparkles","O":7,"y":"a"} }], - ["/guide/customize/font.html", { loader: () => import(/* webpackChunkName: "font.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/font.html.js"), meta: {"d":1723465957000,"c":["Cookbook","Customize"],"g":["Customize"],"e":"This page guides you how to customize theme fonts.
\n","r":{"minutes":2.38,"words":714},"t":"Customizing Fonts","i":"font","O":2,"y":"a"} }], - ["/guide/customize/layout.html", { loader: () => import(/* webpackChunkName: "layout.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/layout.html.js"), meta: {"d":1723465957000,"c":["Customize"],"g":["Customize","Layout"],"e":"This tutorial guides you how to customize theme layout.
\n","r":{"minutes":1.69,"words":507},"t":"Customize Layouts","i":"clone","O":5,"y":"a"} }], - ["/guide/customize/presets.html", { loader: () => import(/* webpackChunkName: "presets.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/customize/presets.html.js"), meta: {"d":1723465957000,"c":["Customize"],"g":["Customize","Preset"],"r":{"minutes":2.04,"words":613},"t":"Theme Presets","i":"palette","O":6,"y":"a"} }], - ["/guide/feature/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/feature/index.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.22,"words":66},"t":"Features","i":"splotch","O":6,"y":"a"} }], - ["/guide/feature/catalog.html", { loader: () => import(/* webpackChunkName: "catalog.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/feature/catalog.html.js"), meta: {"d":1723465957000,"c":["Feature"],"g":["Catalog","Feature"],"e":"VuePress Theme Hope provides catalog component and auto catalog generation using [@vuepress/plugin-catalog
][catalog].
vuepress-theme-hope
implements the comment feature with built-in [@vuepress/plugin-comment
][comment].
Info
\nvuepress-theme-hope
passes plugins.comment
in theme options as plugin options to @vuepress/plugin-comment
.
If you are a programmer, you may want your users to be able to copy the code you show in the text with one click.
\nFor this, vuepress-theme-hope
use [@vuepress/plugin-copy-code
][copy-code] to provide a copy button on code blocks.
Info
\nvuepress-theme-hope
passes plugins.copyCode
in theme options as plugin options to @vuepress/plugin-copy-code
.
You may not want some of your articles to be copied by others, or you want copyright information appended to the clipboard when copying.
\nvuepress-theme-hope
use [@vuepress/plugin-copyright
][copyright] to provide this feature.
Info
\nvuepress-theme-hope
passes plugins.copyright
in theme options to @vuepress/plugin-copyright
.
The theme supports encryption of specific folders or specific paths, as well as global scope encryption.
\nCaution
\nNote that because of the limitation of vuepress, the content of the article is only hidden before being decrypted, and visitors can still get the content of the article from the source code (from js).
\nPlease DO NOT USE this encryption function for any sensitive and confidential articles and files, please bear the consequences of it.
\nThe theme displays last update time and contributors of the page via the [@vuepress/plugin-git
][git] plugin, and provides support for an \"edit this page\" button.
The theme also provides navigation buttons for previous and next pages depending on sidebar config.
\n","r":{"minutes":1.22,"words":365},"t":"Page Meta","i":"clock","y":"a"} }], - ["/guide/feature/page-info.html", { loader: () => import(/* webpackChunkName: "page-info.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/feature/page-info.html.js"), meta: {"d":1723465957000,"c":["Feature"],"g":["Feature","Page Info"],"e":"vuepress-theme-hope
can display article information for you.
By using [@vuepress/plugin-photo-swipe][photo-swipe], clicking images in pages will enter preview mode.
\nIf you don't need this feature, you can set plugins.photoSwipe: false
in theme options to disable it.
The theme adds built-in support for , [@vuepress/plugin-docsearch
][docsearch] and [@vuepress/plugin-search
][search]. Just install the plugin you want and config it, you will get a search box in navbar.
In dark mode, the page uses a dark background to make you comfortable.
\n","r":{"minutes":0.54,"words":161},"t":"Darkmode","i":"circle-half-stroke","O":1,"y":"a"} }], - ["/guide/interface/icon.html", { loader: () => import(/* webpackChunkName: "icon.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/interface/icon.html.js"), meta: {"d":1723465957000,"c":["Interface"],"g":["Icon","Interface"],"e":"The entire theme adds FontClass and Image format icon support in multiple places.
\nYou can use iconfont, iconify and fontawesome to add icons to your project, and you can also use your own icon assets. Also, png/svg format icon is supported. You can use full links or pathname to add icons.
\nWe recommend you to use iconify or fontawesome.
\n","r":{"minutes":3.42,"words":1026},"t":"Icon support","i":"icons","O":3,"y":"a"} }], - ["/guide/interface/others.html", { loader: () => import(/* webpackChunkName: "others.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/interface/others.html.js"), meta: {"d":1723465957000,"c":["Interface"],"g":["Interface"],"r":{"minutes":1.06,"words":317},"t":"Other features","i":"ellipsis","O":7,"y":"a"} }], - ["/guide/interface/pure.html", { loader: () => import(/* webpackChunkName: "pure.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/interface/pure.html.js"), meta: {"d":1723465957000,"c":["Interface"],"g":["Interface"],"r":{"minutes":0.23,"words":68},"t":"Pure Mode","i":"leaf","O":-2,"y":"a"} }], - ["/guide/interface/responsive.html", { loader: () => import(/* webpackChunkName: "responsive.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/interface/responsive.html.js"), meta: {"d":1723465957000,"c":["Interface"],"g":["Interface","Responsive layout"],"e":"The whole theme is responsive, which means it works well on different screen sizes.
\n","r":{"minutes":0.92,"words":276},"t":"Responsive Layout","i":"grip","O":5,"y":"a"} }], - ["/guide/interface/theme-color.html", { loader: () => import(/* webpackChunkName: "theme-color.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/interface/theme-color.html.js"), meta: {"d":1723465957000,"c":["Interface"],"g":["Interface","Theme Color"],"e":"The theme allows you to customize theme color and even provide a picker.
\n","r":{"minutes":0.46,"words":137},"t":"Theme Color","i":"palette","O":2,"y":"a"} }], - ["/guide/intro/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/intro/index.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.04,"words":13},"t":"Theme Intro","i":"circle-info","O":1,"y":"a"} }], - ["/guide/intro/install.html", { loader: () => import(/* webpackChunkName: "install.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/intro/install.html.js"), meta: {"d":1723465957000,"c":["Get Started"],"g":["Get Started","Install","Usage"],"r":{"minutes":0.83,"words":249},"t":"Install / Usage","i":"download","O":2,"y":"a"} }], - ["/guide/intro/intro.html", { loader: () => import(/* webpackChunkName: "intro.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/intro/intro.html.js"), meta: {"d":1723465957000,"c":["Get Started"],"g":["Get Started","Intro"],"r":{"minutes":2.93,"words":880},"t":"Theme intro","i":"circle-info","O":1,"y":"a"} }], - ["/guide/intro/markdown.html", { loader: () => import(/* webpackChunkName: "markdown.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/intro/markdown.html.js"), meta: {"d":1723465957000,"c":["Get Started"],"g":["Get Started","Markdown"],"e":"VuePress basically generate pages from Markdown files. So you can use it to generate documentation or blog sites easily.
\nYou should create and write Markdown files, so that VuePress can convert them to different pages according to file structure.
\n","r":{"minutes":0.65,"words":196},"t":"Markdown","i":"fab fa-markdown","O":3,"y":"a"} }], - ["/guide/layout/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/layout/index.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.04,"words":12},"t":"Layout","i":"object-group","O":5,"y":"a"} }], - ["/guide/layout/breadcrumb.html", { loader: () => import(/* webpackChunkName: "breadcrumb.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/layout/breadcrumb.html.js"), meta: {"d":1723465957000,"c":["Layout"],"g":["Breadcrumb","Layout"],"e":"The theme adds Breadcrumb support, you can configure it using breadcrumb
in page frontmatter and theme options
Without any config, a Breadcrumb that matches the theme color is displayed at the top of the page content to help the reader understand the document structure.
\n","r":{"minutes":0.77,"words":232},"t":"Path Navigation","i":"bars-progress","O":3,"y":"a"} }], - ["/guide/layout/footer.html", { loader: () => import(/* webpackChunkName: "footer.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/layout/footer.html.js"), meta: {"d":1723465957000,"c":["Layout"],"g":["Footer","Layout"],"e":"vuepress-theme-hope
provides footer feature for all pages
vuepress-theme-hope
improves the default home page.
To use it, set home: true
in page frontmatter. Any extra content after the YAML front matter
will be parsed as normal Markdown and rendered after the features section.
\n
The Navbar contains:
\nAll of them are customizable, and you can also fully customize Navbar layout.
\n","r":{"minutes":3.62,"words":1086},"t":"NavBar","i":"window-maximize","O":1,"y":"a"} }], - ["/guide/layout/page.html", { loader: () => import(/* webpackChunkName: "page.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/layout/page.html.js"), meta: {"d":1723465957000,"c":["Layout"],"g":["Page","Layout"],"r":{"minutes":1.5,"words":451},"t":"Page","i":"file","O":5,"y":"a"} }], - ["/guide/layout/sidebar.html", { loader: () => import(/* webpackChunkName: "sidebar.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/layout/sidebar.html.js"), meta: {"d":1723465957000,"c":["Layout"],"g":["Layout","Sidebar"],"e":"The sidebar contains list of related documents, document titles, and blogger information in blog mode.
\n\nThe theme allows you to generate side bar from file structure or headers automatically, or you can customize it manually.
\n\n","r":{"minutes":6.41,"words":1922},"t":"Sidebar","i":"fas fa-window-maximize fa-rotate-270","O":2,"y":"a"} }], - ["/guide/layout/slides.html", { loader: () => import(/* webpackChunkName: "slides.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/layout/slides.html.js"), meta: {"d":1723465957000,"c":["Layout"],"g":["Layout","Slides"],"e":"vuepress-theme-hope
allows you to add slides pages.
You need to set layout: Slide
in the frontmatter of the corresponding page to enable the slides page.
主题通过 @vuepress/plugin-blog
提供博客功能,默认情况下此功能不启用。
你可以在主题选项中设置 plugins.blog: true
来启用博客功能。
有关说明,请参阅博客介绍。
\nboolean
true
是否生成摘要。
\nstring
vuepress-theme-hope
捆绑了很多 VuePress 插件并提供了更多 VuePress 插件支持。
Besides Markdown syntaxes VuePress itself adds, vuepress-theme-hope
enables more syntax in Markdown via plugin.
To using new syntax inside Markdown to enhance content, you can also use <iframe>
or <img>
to import external links to enhance your Markdown content.
Besides Markdown syntaxes VuePress itself adds, vuepress-theme-hope
enables more syntax in Markdown via plugin.
以下選項控制主題的外觀,一般情况下你無需關注他們,它們僅為有相關配置需求的少數用户提供。
\n","r":{"minutes":1.62,"words":485},"t":"主題外觀選項","i":"palette","O":4,"y":"a"} }], - ["/zh/config/theme/basic.html", { loader: () => import(/* webpackChunkName: "basic.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/theme/basic.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["主題配置","基礎"],"r":{"minutes":4.24,"words":1272},"t":"主題基本選項","i":"circle-info","O":1,"y":"a"} }], - ["/zh/config/theme/behavior.html", { loader: () => import(/* webpackChunkName: "behavior.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/theme/behavior.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["行為選項"],"e":"hopeTheme()
的參數可以接受2個,第二個參數即行為選項。行為選項將會控制主題的外表及行為。
行為選項也可接受一個布爾值、或分開個別設定:
\nfalse
: 意味著所有選項都設置為 false
true
: 意味著同時打開檢核、精簡、客製、與偵錯的行為功能 { check: true, compact:true, custom: false, debug: false }
.vuepress/config.ts
(或.js
)的設定方式如下以下選項控制主題功能。
\n","r":{"minutes":3.46,"words":1037},"t":"主題功能選項","i":"splotch","O":2,"y":"a"} }], - ["/zh/config/theme/i18n.html", { loader: () => import(/* webpackChunkName: "i18n.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/theme/i18n.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["多語言","主題配置"],"r":{"minutes":2.13,"words":639},"t":"主題多語言選項","i":"language","O":5,"y":"a"} }], - ["/zh/config/theme/layout.html", { loader: () => import(/* webpackChunkName: "layout.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/config/theme/layout.html.js"), meta: {"d":1723465957000,"c":["配置"],"g":["主題配置","布局"],"e":"以下選項控制主題布局。
\n","r":{"minutes":3.7,"words":1111},"t":"主題布局選項","i":"object-group","O":3,"y":"a"} }], - ["/zh/cookbook/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/index.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["介紹","Markdown"],"e":"Markdown 是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,它可以使普通文本内容具有一定的格式。
\nMarkdown 的目標是實現「易讀易寫」。
\n","r":{"minutes":19.25,"words":5775},"t":"Markdown 介紹","i":"fab fa-markdown","O":1,"y":"a"} }], - ["/zh/cookbook/markdown/demo.html", { loader: () => import(/* webpackChunkName: "demo.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/demo.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["示例","Markdown"],"r":{"minutes":1.6,"words":481},"t":"Markdown 示例","i":"fab fa-markdown","O":2,"y":"a"} }], - ["/zh/cookbook/vuepress/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/index.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["介紹","VuePress"],"e":"VuePress 是一個以 Markdown 為中心的静態網站生成器。你可以使用 Markdown 來書寫内容 (如文檔、網誌等) ,然後 VuePress 會幫助你生成一個静態網站來展示它們。
\n","r":{"minutes":1.02,"words":305},"t":"VuePress","i":"fab fa-vuejs","O":2,"y":"a"} }], - ["/zh/cookbook/vuepress/config.html", { loader: () => import(/* webpackChunkName: "config.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/config.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["配置","VuePress"],"r":{"minutes":2.04,"words":612},"t":"VuePress 配置","i":"gears","O":4,"y":"a"} }], - ["/zh/cookbook/vuepress/file.html", { loader: () => import(/* webpackChunkName: "file.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/file.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["文件结构","VuePress"],"r":{"minutes":0.5,"words":149},"t":"文件结构介绍","i":"folder","O":3,"y":"a"} }], - ["/zh/cookbook/vuepress/markdown.html", { loader: () => import(/* webpackChunkName: "markdown.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/markdown.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["Markdown","VuePress"],"r":{"minutes":8.26,"words":2479},"t":"内置 Markdown 拓展","i":"fab fa-markdown","O":2,"y":"a"} }], - ["/zh/cookbook/vuepress/page.html", { loader: () => import(/* webpackChunkName: "page.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/page.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["页面","VuePress"],"r":{"minutes":1.45,"words":436},"t":"VuePress 页面","i":"file","O":1,"y":"a"} }], - ["/zh/cookbook/vuepress/plugin.html", { loader: () => import(/* webpackChunkName: "plugin.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/plugin.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["VuePress","插件"],"r":{"minutes":1.43,"words":428},"t":"插件","i":"puzzle-piece","O":5,"y":"a"} }], - ["/zh/cookbook/vuepress/theme.html", { loader: () => import(/* webpackChunkName: "theme.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/vuepress/theme.html.js"), meta: {"d":1723465957000,"c":["教程","VuePress"],"g":["主题","VuePress"],"r":{"minutes":1.26,"words":378},"t":"主题配置","i":"palette","O":6,"y":"a"} }], - ["/zh/guide/advanced/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/advanced/index.html.js"), meta: {"d":1723465957000,"c":["高級"],"g":["高級"],"r":{"minutes":1.19,"words":357},"t":"高級","i":"gem","O":9,"y":"a"} }], - ["/zh/guide/advanced/client.html", { loader: () => import(/* webpackChunkName: "client.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/advanced/client.html.js"), meta: {"d":1723465957000,"c":["高级"],"g":["高级","客户端配置"],"e":"你可以创建 .vuepress/client.ts
或 .vuepress/client.js
作为 [客户端配置文件][client-config] 来自定义你的站点。
vuepress-theme-hope
和默认主题一样,同样支持继承。
你可以根据自己的需求在 vuepress-theme-hope
的基础上二次创作自己的主题并本地使用或发布它。
vuepress-theme-hope
通过内置 [@vuepress/plugin-feed
][feed] 插件来为你提供 feed 支持。想使用它,你应该手动在你的项目中安装 @vuepress/plugin-feed
。
相关信息
\nvuepress-theme-hope
将主题选项中的 plugins.feed
选项作为插件选项提供给 @vuepress/plugin-feed
。
该主题将通过 [@vuepress/plugin-pwa
][pwa] 提供渐进式 Web 应用程序支持[^pwa-intro]。想使用它,你应该手动在你的项目中安装 @vuepress/plugin-pwa
。
相关信息
\n如果你正在使用此插件,我们推荐你在 VuePress 配置文件 中设置 shouldPrefetch: false
。
vuepress-theme-hope
将主题选项中的 plugins.pwa
提供给 @vuepress/plugin-pwa
。
当在 行为选项 中设置 { custom: true }
时,主题将通过 @theme-hope
别名来引入组件,所以你可以利用这一点来替换主题的任何一个组件。
vuepress-theme-hope
通过内置 [@vuepress/plugin-seo
][seo] 为提供 SEO 增强功能。
为了使插件能够更好的工作,你可能需要查看一下 页面配置 并合理的配置它们。
\n相关信息
\nvuepress-theme-hope
将主题选项中的 plugins.seo
作为插件选项提供给 @vuepress/plugin-seo
。
插件会通过向网站 <head>
注入标签,让你的网站完全支持 开放内容协议 OGP 和 JSON-LD 1.1,以全面增强站点的搜索引擎优化性。
如果不需要这个插件,请设置在主题选项中设置 plugins.seo: false
。
主题默认在 /article/
路径下为你提供了全部的文章列表。
主题允许你展示博主的基本信息。
\n","r":{"minutes":2.84,"words":851},"t":"博主信息","i":"circle-info","O":2,"y":"a"} }], - ["/zh/guide/blog/category-and-tags.html", { loader: () => import(/* webpackChunkName: "category-and-tags.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/blog/category-and-tags.html.js"), meta: {"d":1723465957000,"c":["博客"],"g":["博客","分类","标签"],"e":"你可以通过 frontmatter 来为文章配置分类与标签,使它们出现在特定的分类与标签页面中。
\n","r":{"minutes":1.17,"words":350},"t":"分类与标签","i":"tag","O":4,"y":"a"} }], - ["/zh/guide/blog/home.html", { loader: () => import(/* webpackChunkName: "home.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/blog/home.html.js"), meta: {"d":1723465957000,"c":["博客"],"g":["博客","主页","布局"],"e":"vuepress-theme-hope
允许你启用博客风格的首页。
主题通过引入 @vuepress/plugin-blog
提供了博客支持,该功能是默认禁用的。
如果你需要博客功能,你可以在主题选项中设置 plugins.blog: true
来启用博客功能。
通过 vuepress-plugin-components
,你可以在 Markdown 文件中导入并使用一些组件。
可用组件:
\n为了启用组件,你需要将 plugins.components.components
设置为一个组件名的数组。
本教程将指引你如何在 VuePress 项目中注册全局组件。
\n","r":{"minutes":1.06,"words":319},"t":"全局组件","i":"puzzle-piece","O":2,"y":"a"} }], - ["/zh/guide/component/grammar.html", { loader: () => import(/* webpackChunkName: "grammar.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/component/grammar.html.js"), meta: {"d":1723465957000,"c":["组件"],"g":["组件","Markdown"],"e":"你可以在 Markdown 中通过 component 代码块快速添加组件。
\n","r":{"minutes":0.19,"words":57},"t":"Component","i":"puzzle-piece","O":3,"y":"a"} }], - ["/zh/guide/component/sfc.html", { loader: () => import(/* webpackChunkName: "sfc.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/component/sfc.html.js"), meta: {"d":1723465957000,"c":["组件"],"g":["组件","SFC"],"e":"此教程将解释 Markdown 文件是如何转换为 Vue 驱动的页面。
\n","r":{"minutes":1.67,"words":501},"t":"Markdown 到 Vue SFC","i":"fab fa-vuejs","O":1,"y":"a"} }], - ["/zh/guide/customize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/index.html.js"), meta: {"d":1723465957000,"c":["教程","自定義"],"g":["自定義"],"e":"此章節向你範例常見的自定義需求涉及的相關程式碼。
\n","r":{"minutes":0.96,"words":289},"t":"自定義","i":"gear","O":8,"y":"a"} }], - ["/zh/guide/customize/color.html", { loader: () => import(/* webpackChunkName: "color.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/color.html.js"), meta: {"d":1723465957000,"c":["教程","自定义"],"g":["自定义"],"e":"此页面指导你如何自定义主题颜色。
\n","r":{"minutes":1.22,"words":367},"t":"修改颜色","i":"palette","O":1,"y":"a"} }], - ["/zh/guide/customize/effect.html", { loader: () => import(/* webpackChunkName: "effect.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/effect.html.js"), meta: {"d":1723465957000,"c":["教程","自定义"],"g":["自定义"],"e":"此教程引导你如何自定义主题特效。
\n","r":{"minutes":0.68,"words":204},"t":"修改特效","i":"wand-magic-sparkles","y":"a"} }], - ["/zh/guide/customize/external.html", { loader: () => import(/* webpackChunkName: "external.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/external.html.js"), meta: {"d":1723465957000,"c":["教程","自定义"],"g":["自定义"],"e":"本教程将指导您如何将外部脚本和样式添加到您的站点。
\n","r":{"minutes":0.73,"words":219},"t":"外部脚本与样式","i":"wand-magic-sparkles","O":7,"y":"a"} }], - ["/zh/guide/customize/font.html", { loader: () => import(/* webpackChunkName: "font.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/font.html.js"), meta: {"d":1723465957000,"c":["教程","自定义"],"g":["自定义"],"e":"此页面指导你如何自定义主题字体。
\n","r":{"minutes":3.8,"words":1139},"t":"修改字体","i":"font","O":2,"y":"a"} }], - ["/zh/guide/customize/layout.html", { loader: () => import(/* webpackChunkName: "layout.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/layout.html.js"), meta: {"d":1723465957000,"c":["教程","自定义"],"g":["自定义","布局"],"e":"此教程指导你如何修改主题布局。
\n","r":{"minutes":2.44,"words":732},"t":"自定义布局","i":"clone","y":"a"} }], - ["/zh/guide/customize/presets.html", { loader: () => import(/* webpackChunkName: "presets.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/customize/presets.html.js"), meta: {"d":1723465957000,"c":["自定义"],"g":["自定义","预设"],"r":{"minutes":2.61,"words":783},"t":"主题预设","i":"palette","y":"a"} }], - ["/zh/guide/feature/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/feature/index.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.34,"words":101},"t":"功能","i":"splotch","O":6,"y":"a"} }], - ["/zh/guide/feature/catalog.html", { loader: () => import(/* webpackChunkName: "catalog.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/feature/catalog.html.js"), meta: {"d":1723465957000,"c":["功能"],"g":["目录","功能"],"e":"VuePress Theme Hope 通过 [@vuepress/plugin-catalog
][catalog] 提供目录组件和目录页自动生成。
通过内置 [@vuepress/plugin-comment
][comment],vuepress-theme-hope
实现了评论功能。
相关信息
\nvuepress-theme-hope
将主题选项中的 plugins.comment
作为插件选项提供给 @vuepress/plugin-comment
。
如果你是一个程序员,你可能希望你的用户能够一键复制你在正文中展示的代码。
\n针对这一情况,vuepress-theme-hope
内置了 [@vuepress/plugin-copy-code
][copy-code],提供了一个复制按钮。
相关信息
\nvuepress-theme-hope
将主题选项中的 plugins.copyCode
选项作为插件选项提供给 @vuepress/plugin-copy-code
。
你可能不想让你的某些文章被他人复制,或者你想版权信息在复制时自动附加。
\nvuepress-theme-hope
通过 [@vuepress/plugin-copyright
][copyright] 提供此功能。
相关信息
\nvuepress-theme-hope
将主题选项中的 plugins.copyright
提供给 @vuepress/plugin-copyright
。
主题支持对特定文件夹或特定的路径进行加密,也支持进行全局范围的加密。
\n警告
\n注意,受到 VuePress 的限制,在未解密前,文章内容仅仅被隐藏,访问者仍可以从源码中获取文章的内容。
\n所以请不要使用该加密功能用于任何敏感、机密的文章与档案,造成的后果请你自负。
\n主题通过 [@vuepress/plugin-git
][git] 插件在页面底部显示页面的最后更新时间与贡献者,并提供了“编辑此页”按钮的支持。
主题同时根据侧边栏配置提供上一页和下一页的导航按钮。
\n","r":{"minutes":2.02,"words":605},"t":"页面元数据","i":"clock","y":"a"} }], - ["/zh/guide/feature/page-info.html", { loader: () => import(/* webpackChunkName: "page-info.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/feature/page-info.html.js"), meta: {"d":1723465957000,"c":["功能"],"g":["功能","页面信息"],"e":"vuepress-theme-hope
实现了文章信息展示。
通过内置 [@vuepress/plugin-photo-swipe][photo-swipe], 点击页面正文内的图片会进入浏览模式。
\n如果你不需要此功能,请在主题选项中设置 plugins.photoSwipe: false
。
主题对 、 [@vuepress/plugin-docsearch
][docsearch] 和 [@vuepress/plugin-search
][search] 提供了内置支持。你只需要安装并配置所需的搜索插件,就能够在导航栏获得一个搜索框。
在深色模式下,页面会使用深色背景与浅色文字,以让你更加舒适。
\n","r":{"minutes":0.86,"words":259},"t":"深色模式","i":"circle-half-stroke","O":1,"y":"a"} }], - ["/zh/guide/interface/icon.html", { loader: () => import(/* webpackChunkName: "icon.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/interface/icon.html.js"), meta: {"d":1723465957000,"c":["界面"],"g":["界面","图标"],"e":"整个主题在多处都添加了字体类名与图片格式图标的支持。
\n目前你可以使用 iconfont、iconify 和 fontawesome 为你的项目添加图标,可以设置自己的图标资源。同时,png/svg 格式的图标也是支持的。你可以使用完整 URL 或路径名来添加图标。
\n我们推荐使用 iconify 或 fontawesome。
\n","r":{"minutes":4.9,"words":1471},"t":"图标支持","i":"icons","O":3,"y":"a"} }], - ["/zh/guide/interface/others.html", { loader: () => import(/* webpackChunkName: "others.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/interface/others.html.js"), meta: {"d":1723465957000,"c":["界面"],"g":["界面"],"r":{"minutes":1.42,"words":426},"t":"其他界面功能","i":"ellipsis","O":7,"y":"a"} }], - ["/zh/guide/interface/pure.html", { loader: () => import(/* webpackChunkName: "pure.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/interface/pure.html.js"), meta: {"d":1723465957000,"c":["界面"],"g":["界面"],"r":{"minutes":0.35,"words":104},"t":"纯净模式","i":"leaf","O":-2,"y":"a"} }], - ["/zh/guide/interface/responsive.html", { loader: () => import(/* webpackChunkName: "responsive.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/interface/responsive.html.js"), meta: {"d":1723465957000,"c":["界面"],"g":["界面","响应式布局"],"e":"整个主题都是响应式的,这意味着它可以在不同的屏幕尺寸上正常工作。
\n","r":{"minutes":1.4,"words":421},"t":"响应式布局","i":"grip","O":5,"y":"a"} }], - ["/zh/guide/interface/theme-color.html", { loader: () => import(/* webpackChunkName: "theme-color.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/interface/theme-color.html.js"), meta: {"d":1723465957000,"c":["界面"],"g":["界面","主题色"],"e":"主题允许你自定义主题颜色,甚至提供选择器。
\n","r":{"minutes":0.59,"words":176},"t":"主题色","i":"palette","O":2,"y":"a"} }], - ["/zh/guide/intro/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/intro/index.html.js"), meta: {"d":1723465957000,"r":{"minutes":0.05,"words":15},"t":"主題介紹","i":"circle-info","O":1,"y":"a"} }], - ["/zh/guide/intro/install.html", { loader: () => import(/* webpackChunkName: "install.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/intro/install.html.js"), meta: {"d":1723465957000,"c":["快速上手"],"g":["快速上手","安装","使用"],"r":{"minutes":1.1,"words":330},"t":"安装/使用","i":"download","O":2,"y":"a"} }], - ["/zh/guide/intro/intro.html", { loader: () => import(/* webpackChunkName: "intro.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/intro/intro.html.js"), meta: {"d":1723465957000,"c":["快速上手"],"g":["快速上手","介绍"],"r":{"minutes":4.75,"words":1425},"t":"主题介绍","i":"circle-info","O":1,"y":"a"} }], - ["/zh/guide/intro/markdown.html", { loader: () => import(/* webpackChunkName: "markdown.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/intro/markdown.html.js"), meta: {"d":1723465957000,"c":["快速上手"],"g":["快速上手","Markdown"],"e":"VuePress 主要从 Markdown 文件生成页面。因此,你可以使用它轻松生成文档或博客站点。
\n你应该创建和编写 Markdown 文件,以便 VuePress 可以根据文件结构将它们转换为不同的页面。
\n","r":{"minutes":0.97,"words":291},"t":"Markdown","i":"fab fa-markdown","O":3,"y":"a"} }], - ["/zh/guide/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/index.html.js"), meta: {"d":1723465957000,"e":"除了 VuePress 本身新增了一些 Markdown 語法外,vuepress-theme-hope
通過 ,在 Markdown 中啟用了更多的語法與新功能。
除了在 Markdown 内部使用新语法来增强内容外,你也可以使用 <iframe>
或 <img>
从外部引入链接来增强你的 Markdown 内容。
除了 VuePress 本身新增了一些 Markdown 语法外,vuepress-theme-hope
通过 ,在 Markdown 中启用了更多的语法与新功能。
vuepress-theme-hope
添加了开箱即用的路径导航支持,你可以通过 breadcrumb
字段控制它
无需任何额外配置,一个和主题色相符合的路径导航会显示在页面内容最上方,帮助阅读者理解文档结构。
\n你也可以通过 breadcrumbIcon
字段
如果你不希望某个页面被添加到路径导航中(例如:首页),你可以在页面的 frontmatter 中设置 breadcrumbExclude: true
。
vuepress-theme-hope
为所有页面提供了页脚功能
vuepress-theme-hope
保留了默认主题的首页配置,在此基础上改进样式与配置。
如果想要使用它,请在 frontmatter 中设置 home: true
。任何 frontmatter 之后的内容将会以普通的 Markdown 被渲染,并插入到主页渲染内容的底部。
\n
导航栏包含:
\n\n它们都是可配置的,你也可以完全自定义导航栏布局。
\n","r":{"minutes":5.36,"words":1608},"t":"导航栏","i":"window-maximize","O":1,"y":"a"} }], - ["/zh/guide/layout/page.html", { loader: () => import(/* webpackChunkName: "page.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/layout/page.html.js"), meta: {"d":1723465957000,"c":["布局"],"g":["布局","页面"],"r":{"minutes":2.3,"words":689},"t":"页面","i":"file","O":5,"y":"a"} }], - ["/zh/guide/layout/sidebar.html", { loader: () => import(/* webpackChunkName: "sidebar.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/layout/sidebar.html.js"), meta: {"d":1723465957000,"c":["布局"],"g":["布局","侧边栏"],"e":"侧边栏包含相关的文档列表,文档标题以及博客模式下的博主信息。
\n\n主题允许你通过 文件结构 和 文档标题 自动生成侧边栏,也可以手动配置。
\n\n","r":{"minutes":9.18,"words":2753},"t":"侧边栏","i":"fas fa-window-maximize fa-rotate-270","O":2,"y":"a"} }], - ["/zh/guide/layout/slides.html", { loader: () => import(/* webpackChunkName: "slides.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/layout/slides.html.js"), meta: {"d":1723465957000,"c":["布局"],"g":["布局","幻灯片"],"e":"vuepress-theme-hope
允许你添加幻灯片页面。
你需要在相应的页面的 frontmatter 中,设置 layout: Slide
来开启幻灯片风格。
Improve image syntax in Markdown to support color scheme and size.
\n","r":{"minutes":0.23,"words":68},"t":"Image","i":"image","y":"a"} }], - ["/guide/markdown/grammar/sup-sub.html", { loader: () => import(/* webpackChunkName: "sup-sub.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/grammar/sup-sub.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Superscript","Subscript"],"e":"Let the Markdown file in your VuePress site support Subscript and Superscript.
\n","r":{"minutes":0.29,"words":86},"t":"Superscript and Subscript","i":"superscript","y":"a"} }], - ["/guide/markdown/grammar/tasklist.html", { loader: () => import(/* webpackChunkName: "tasklist.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/grammar/tasklist.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Task List"],"e":"Let the Markdown file in your VuePress site support task list.
\n","r":{"minutes":0.16,"words":47},"t":"Task list","i":"square-check","y":"a"} }], - ["/guide/markdown/grammar/tex.html", { loader: () => import(/* webpackChunkName: "tex.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/grammar/tex.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","TEX"],"r":{"minutes":0.17,"words":52},"t":"TeX","i":"square-root-variable","y":"a"} }], - ["/guide/markdown/stylize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Stylize","Markdown"],"r":{"minutes":0.06,"words":19},"t":"Stylize","i":"code","O":3,"y":"a"} }], - ["/guide/markdown/stylize/alert.html", { loader: () => import(/* webpackChunkName: "alert.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/alert.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["alert","Markdown"],"e":"The theme adds GFM alerts support.
\n","r":{"minutes":0.13,"words":40},"t":"GFM alert","i":"bell","y":"a"} }], - ["/guide/markdown/stylize/align.html", { loader: () => import(/* webpackChunkName: "align.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/align.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Align","Markdown"],"e":"Customize content alignment.
\n","r":{"minutes":0.13,"words":38},"t":"Custom alignment","i":"align-center","y":"a"} }], - ["/guide/markdown/stylize/attrs.html", { loader: () => import(/* webpackChunkName: "attrs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/attrs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Attributes","Markdown"],"e":"You can use custom syntax to add attrs for Markdown content.
\n","r":{"minutes":0.15,"words":45},"t":"Attrs support","i":"code","y":"a"} }], - ["/guide/markdown/stylize/hint.html", { loader: () => import(/* webpackChunkName: "hint.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/hint.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["hintbox","Markdown"],"e":"The theme adds tip, note, info, warning, danger and detail hint box.
\n","r":{"minutes":0.2,"words":60},"t":"Hint box","i":"box-open","y":"a"} }], - ["/guide/markdown/stylize/mark.html", { loader: () => import(/* webpackChunkName: "mark.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/mark.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Mark","Markdown"],"e":"Highlight content with <mark>
tag in your VuePress site.
Hide spoiler contents in your VuePress site.
\n","r":{"minutes":0.18,"words":53},"t":"Spoiler","i":"eraser","y":"a"} }], - ["/guide/markdown/stylize/stylize.html", { loader: () => import(/* webpackChunkName: "stylize.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/stylize/stylize.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Stylize","Markdown"],"e":"Stylize inline tokens including changing tags, adding attributes and modifying content.
\n","r":{"minutes":1.05,"words":314},"t":"Stylize","i":"wand-magic-sparkles","y":"a"} }], - ["/zh/cookbook/markdown/emoji/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/emoji/index.html.js"), meta: {"t":"Emoji 列表","i":"face-smile","O":3} }], - ["/zh/cookbook/markdown/emoji/nature.html", { loader: () => import(/* webpackChunkName: "nature.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/emoji/nature.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["Markdown","Emoji"],"r":{"minutes":0.8,"words":239},"t":"自然 Emoji","i":"tree","y":"a"} }], - ["/zh/cookbook/markdown/emoji/object.html", { loader: () => import(/* webpackChunkName: "object.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/emoji/object.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["Markdown","Emoji"],"r":{"minutes":1.79,"words":536},"t":"对象 Emoji","i":"object-group","y":"a"} }], - ["/zh/cookbook/markdown/emoji/people.html", { loader: () => import(/* webpackChunkName: "people.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/emoji/people.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["Markdown","Emoji"],"r":{"minutes":1.23,"words":369},"t":"人物 Emoji","i":"person","y":"a"} }], - ["/zh/cookbook/markdown/emoji/place.html", { loader: () => import(/* webpackChunkName: "place.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/emoji/place.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["Markdown","Emoji"],"r":{"minutes":0.68,"words":203},"t":"地点 Emoji","i":"city","y":"a"} }], - ["/zh/cookbook/markdown/emoji/symbol.html", { loader: () => import(/* webpackChunkName: "symbol.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/cookbook/markdown/emoji/symbol.html.js"), meta: {"d":1723465957000,"c":["教程","Markdown"],"g":["Markdown","Emoji"],"r":{"minutes":1.32,"words":396},"t":"符号 Emoji","i":"circle-right","y":"a"} }], - ["/guide/markdown/code/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Code","Markdown"],"r":{"minutes":0.07,"words":20},"t":"Code","i":"laptop-code","O":5,"y":"a"} }], - ["/guide/markdown/code/code-tabs.html", { loader: () => import(/* webpackChunkName: "code-tabs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/code-tabs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Code Tabs","Markdown"],"e":"The theme provides you code tabs support.
\n","r":{"minutes":0.14,"words":43},"t":"Code Tabs","i":"code","y":"a"} }], - ["/guide/markdown/code/demo.html", { loader: () => import(/* webpackChunkName: "demo.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/demo.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Code Demo","Markdown"],"e":"Let you insert code demos in your Markdown file.
\n","r":{"minutes":0.36,"words":108},"t":"Code Demo","i":"splotch","y":"a"} }], - ["/guide/markdown/code/kotlin-playground.html", { loader: () => import(/* webpackChunkName: "kotlin-playground.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/kotlin-playground.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Playground"],"e":"Let the Markdown file support kotlin playground in your VuePress site.
\n","r":{"minutes":0.17,"words":52},"t":"Kotlin Playground","i":"fab fa-kickstarter","y":"a"} }], - ["/guide/markdown/code/playground.html", { loader: () => import(/* webpackChunkName: "playground.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/playground.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Playground"],"e":"Let the Markdown file support playground in your VuePress site.
\n","r":{"minutes":0.52,"words":157},"t":"Playground","i":"code","y":"a"} }], - ["/guide/markdown/code/sandpack.html", { loader: () => import(/* webpackChunkName: "sandpack.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/sandpack.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Playground"],"r":{"minutes":0.12,"words":36},"t":"Sandpack Playground","i":"code","y":"a"} }], - ["/guide/markdown/code/vue-playground.html", { loader: () => import(/* webpackChunkName: "vue-playground.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/vue-playground.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Playground"],"e":"Let the Markdown file support vue playground in your VuePress site.
\n","r":{"minutes":0.36,"words":109},"t":"Vue Playground","i":"fab fa-vuejs","y":"a"} }], - ["/guide/markdown/content/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Content","Markdown"],"r":{"minutes":0.07,"words":21},"t":"Content","i":"pen","O":2,"y":"a"} }], - ["/guide/markdown/content/footnote.html", { loader: () => import(/* webpackChunkName: "footnote.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/footnote.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Footnote","Markdown"],"e":"Let the Markdown file in your VuePress site support footnotes.
\n","r":{"minutes":0.15,"words":44},"t":"Footnote","i":"quote-left","y":"a"} }], - ["/guide/markdown/content/include.html", { loader: () => import(/* webpackChunkName: "include.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/include.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Code Demo","Include Files"],"e":"Let the Markdown file in your VuePress site support including other files.
\n","r":{"minutes":0.73,"words":220},"t":"Include Files","i":"fab fa-markdown","y":"a"} }], - ["/guide/markdown/content/revealjs.html", { loader: () => import(/* webpackChunkName: "revealjs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/revealjs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Slides"],"r":{"minutes":0.38,"words":113},"t":"Presentation","i":"person-chalkboard","y":"a"} }], - ["/guide/markdown/content/tabs.html", { loader: () => import(/* webpackChunkName: "tabs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/tabs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Tabs"],"e":"Let the Markdown file in your VuePress site support tabs.
\n","r":{"minutes":0.15,"words":44},"t":"Tabs","i":"table-columns","y":"a"} }], - ["/zh/guide/markdown/chart/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["圖表","Markdown"],"r":{"minutes":0.07,"words":22},"t":"圖表","i":"chart-simple","O":4,"y":"a"} }], - ["/zh/guide/markdown/chart/chartjs.html", { loader: () => import(/* webpackChunkName: "chartjs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/chartjs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["图表","Markdown"],"r":{"minutes":0.12,"words":37},"t":"Chart.js","i":"chart-simple","y":"a"} }], - ["/zh/guide/markdown/chart/echarts.html", { loader: () => import(/* webpackChunkName: "echarts.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/echarts.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["ECharts","Markdown"],"r":{"minutes":0.12,"words":36},"t":"ECharts","i":"chart-simple","y":"a"} }], - ["/zh/guide/markdown/chart/flowchart.html", { loader: () => import(/* webpackChunkName: "flowchart.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/flowchart.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","流程图"],"r":{"minutes":0.13,"words":39},"t":"流程图","i":"route","y":"a"} }], - ["/zh/guide/markdown/chart/markmap.html", { loader: () => import(/* webpackChunkName: "markmap.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/markmap.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","图表"],"r":{"minutes":0.14,"words":41},"t":"思维导图","i":"fab fa-markdown","y":"a"} }], - ["/zh/guide/markdown/chart/mermaid.html", { loader: () => import(/* webpackChunkName: "mermaid.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/mermaid.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","图表"],"r":{"minutes":0.12,"words":37},"t":"Mermaid","i":"chart-pie","y":"a"} }], - ["/zh/guide/markdown/chart/plantuml.html", { loader: () => import(/* webpackChunkName: "plantuml.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/chart/plantuml.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","图表"],"r":{"minutes":0.12,"words":37},"t":"Plantuml","i":"diagram-project","y":"a"} }], - ["/zh/guide/markdown/grammar/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/grammar/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["語法","Markdown"],"r":{"minutes":0.07,"words":21},"t":"語法","i":"code","O":1,"y":"a"} }], - ["/zh/guide/markdown/grammar/image.html", { loader: () => import(/* webpackChunkName: "image.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/grammar/image.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","图片"],"e":"改进 Markdown 中的图像语法以支持颜色方案和大小。
\n","r":{"minutes":0.3,"words":90},"t":"图片","i":"image","y":"a"} }], - ["/zh/guide/markdown/grammar/sup-sub.html", { loader: () => import(/* webpackChunkName: "sup-sub.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/grammar/sup-sub.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","上下角标"],"e":"让你的 VuePress 站点中的 Markdown 文件支持上下角标。
\n","r":{"minutes":0.39,"words":117},"t":"上下角标","i":"superscript","y":"a"} }], - ["/zh/guide/markdown/grammar/tasklist.html", { loader: () => import(/* webpackChunkName: "tasklist.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/grammar/tasklist.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","任务列表"],"e":"让你的 VuePress 站点中的 Markdown 文件支持任务列表。
\n","r":{"minutes":0.19,"words":58},"t":"任务列表","i":"square-check","y":"a"} }], - ["/zh/guide/markdown/grammar/tex.html", { loader: () => import(/* webpackChunkName: "tex.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/grammar/tex.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","TEX"],"r":{"minutes":0.2,"words":60},"t":"Tex 语法","i":"square-root-variable","y":"a"} }], - ["/zh/guide/markdown/stylize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["樣式化","Markdown"],"r":{"minutes":0.08,"words":23},"t":"樣式化","i":"code","O":3,"y":"a"} }], - ["/zh/guide/markdown/stylize/alert.html", { loader: () => import(/* webpackChunkName: "alert.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/alert.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","警告"],"e":"主题可以提供 GFM 警告支持。
\n","r":{"minutes":0.31,"words":92},"t":"GFM 警告","i":"bell","y":"a"} }], - ["/zh/guide/markdown/stylize/align.html", { loader: () => import(/* webpackChunkName: "align.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/align.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","对齐"],"e":"自定义内容对齐方式。
\n","r":{"minutes":0.16,"words":49},"t":"自定义对齐","i":"align-center","y":"a"} }], - ["/zh/guide/markdown/stylize/attrs.html", { loader: () => import(/* webpackChunkName: "attrs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/attrs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","属性"],"e":"你可以使用特殊标记为 Markdown 元素添加属性。
\n","r":{"minutes":0.18,"words":55},"t":"属性支持","i":"code","y":"a"} }], - ["/zh/guide/markdown/stylize/hint.html", { loader: () => import(/* webpackChunkName: "hint.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/hint.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","提示容器"],"e":"主题可以为你添加提示、注释、信息、注意、警告和详情提示容器的支持。
\n","r":{"minutes":0.3,"words":89},"t":"提示容器","i":"box-open","y":"a"} }], - ["/zh/guide/markdown/stylize/mark.html", { loader: () => import(/* webpackChunkName: "mark.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/mark.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","标记"],"e":"让你的 VuePress 站点中的 Markdown 文件支持标记。
\n","r":{"minutes":0.25,"words":76},"t":"标记","i":"highlighter","y":"a"} }], - ["/zh/guide/markdown/stylize/spoiler.html", { loader: () => import(/* webpackChunkName: "spoiler.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/spoiler.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","剧透"],"e":"在你的 VuePress 站点中添加剧透文字。
\n","r":{"minutes":0.26,"words":78},"t":"剧透","i":"highlighter","y":"a"} }], - ["/zh/guide/markdown/stylize/stylize.html", { loader: () => import(/* webpackChunkName: "stylize.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/stylize/stylize.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["样式化","Markdown"],"e":"创建行内 snippet,对内联标记进行样式化,包括更改标签、添加属性和修改内容。
\n","r":{"minutes":1.42,"words":426},"t":"样式化","i":"wand-magic-sparkles","y":"a"} }], - ["/zh/guide/markdown/code/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/code/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["程式碼","Markdown"],"e":"主題提供以下功能來增强程式碼編寫。
\n主题为你带来了代码块分组支持。
\n","r":{"minutes":0.18,"words":55},"t":"代码块分组","i":"code","y":"a"} }], - ["/zh/guide/markdown/code/demo.html", { loader: () => import(/* webpackChunkName: "demo.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/code/demo.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","代码演示"],"e":"让你的 VuePress 站点中的 Markdown 文件支持代码案例。
\n","r":{"minutes":0.43,"words":130},"t":"代码演示","i":"splotch","y":"a"} }], - ["/zh/guide/markdown/code/kotlin-playground.html", { loader: () => import(/* webpackChunkName: "kotlin-playground.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/code/kotlin-playground.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","交互演示"],"r":{"minutes":0.15,"words":46},"t":"Kotlin 交互演示","i":"fab fa-kickstarter","y":"a"} }], - ["/zh/guide/markdown/code/playground.html", { loader: () => import(/* webpackChunkName: "playground.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/code/playground.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","交互演示"],"e":"让你的 VuePress 站点中的 Markdown 文件支持交互演示。
\n","r":{"minutes":0.66,"words":199},"t":"交互演示","i":"code","y":"a"} }], - ["/zh/guide/markdown/code/sandpack.html", { loader: () => import(/* webpackChunkName: "sandpack.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/code/sandpack.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","Playground"],"r":{"minutes":0.13,"words":39},"t":"Sandpack 交互演示","i":"code","y":"a"} }], - ["/zh/guide/markdown/code/vue-playground.html", { loader: () => import(/* webpackChunkName: "vue-playground.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/code/vue-playground.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","交互演示"],"r":{"minutes":0.43,"words":130},"t":"Vue 交互演示","i":"fab fa-vuejs","y":"a"} }], - ["/zh/guide/markdown/content/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/content/index.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["内容","Markdown"],"r":{"minutes":0.08,"words":23},"t":"内容","i":"pen","O":2,"y":"a"} }], - ["/zh/guide/markdown/content/footnote.html", { loader: () => import(/* webpackChunkName: "footnote.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/content/footnote.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","脚注"],"e":"让你的 VuePress 站点中的 Markdown 文件支持脚注。
\n","r":{"minutes":0.17,"words":52},"t":"脚注","i":"quote-left","y":"a"} }], - ["/zh/guide/markdown/content/include.html", { loader: () => import(/* webpackChunkName: "include.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/content/include.html.js"), meta: {"d":1723465957000,"g":["Markdown","导入文件"],"e":"让你的 VuePress 站点中的 Markdown 文件支持导入其他文件。
\n","r":{"minutes":0.9,"words":271},"t":"导入文件","i":"fab fa-markdown - Markdown","y":"a"} }], - ["/zh/guide/markdown/content/revealjs.html", { loader: () => import(/* webpackChunkName: "revealjs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/content/revealjs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","幻灯片"],"r":{"minutes":0.49,"words":146},"t":"幻灯片","i":"person-chalkboard","y":"a"} }], - ["/zh/guide/markdown/content/tabs.html", { loader: () => import(/* webpackChunkName: "tabs.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/guide/markdown/content/tabs.html.js"), meta: {"d":1723465957000,"c":["Markdown"],"g":["Markdown","选项卡"],"e":"让你的 Markdown 文件支持供选项卡。
\n","r":{"minutes":0.17,"words":51},"t":"选项卡","i":"table-columns","y":"a"} }], - ["/404.html", { loader: () => import(/* webpackChunkName: "404.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/404.html.js"), meta: {"t":""} }], - ["/category/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/index.html.js"), meta: {"t":"Category","I":false} }], - ["/category/faq/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/faq/index.html.js"), meta: {"t":"FAQ Category","I":false} }], - ["/category/config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/config/index.html.js"), meta: {"t":"Config Category","I":false} }], - ["/category/demo/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/demo/index.html.js"), meta: {"t":"Demo Category","I":false} }], - ["/category/cookbook/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/cookbook/index.html.js"), meta: {"t":"Cookbook Category","I":false} }], - ["/category/tutorial/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/tutorial/index.html.js"), meta: {"t":"Tutorial Category","I":false} }], - ["/category/get-started/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/get-started/index.html.js"), meta: {"t":"Get Started Category","I":false} }], - ["/category/intro/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/intro/index.html.js"), meta: {"t":"Intro Category","I":false} }], - ["/category/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/markdown/index.html.js"), meta: {"t":"Markdown Category","I":false} }], - ["/category/vuepress/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/vuepress/index.html.js"), meta: {"t":"VuePress Category","I":false} }], - ["/category/advanced/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/advanced/index.html.js"), meta: {"t":"Advanced Category","I":false} }], - ["/category/blog/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/blog/index.html.js"), meta: {"t":"Blog Category","I":false} }], - ["/category/component/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/component/index.html.js"), meta: {"t":"Component Category","I":false} }], - ["/category/customize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/customize/index.html.js"), meta: {"t":"Customize Category","I":false} }], - ["/category/feature/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/feature/index.html.js"), meta: {"t":"Feature Category","I":false} }], - ["/category/interface/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/interface/index.html.js"), meta: {"t":"Interface Category","I":false} }], - ["/category/layout/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/category/layout/index.html.js"), meta: {"t":"Layout Category","I":false} }], - ["/zh/category/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/index.html.js"), meta: {"t":"分类","I":false} }], - ["/zh/category/faq/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/faq/index.html.js"), meta: {"t":"FAQ 分类","I":false} }], - ["/zh/category/%E9%85%8D%E7%BD%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/配置/index.html.js"), meta: {"t":"配置 分类","I":false} }], - ["/zh/category/%E6%A1%88%E4%BE%8B/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/案例/index.html.js"), meta: {"t":"案例 分类","I":false} }], - ["/zh/category/%E9%86%AC%E6%96%99/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/醬料/index.html.js"), meta: {"t":"醬料 分类","I":false} }], - ["/zh/category/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/快速上手/index.html.js"), meta: {"t":"快速上手 分类","I":false} }], - ["/zh/category/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/基础知识/index.html.js"), meta: {"t":"基础知识 分类","I":false} }], - ["/zh/category/%E6%95%99%E7%A8%8B/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/教程/index.html.js"), meta: {"t":"教程 分类","I":false} }], - ["/zh/category/%E4%BB%8B%E7%B4%B9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/介紹/index.html.js"), meta: {"t":"介紹 分类","I":false} }], - ["/zh/category/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/markdown/index.html.js"), meta: {"t":"Markdown 分类","I":false} }], - ["/zh/category/vuepress/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/vuepress/index.html.js"), meta: {"t":"VuePress 分类","I":false} }], - ["/zh/category/%E9%AB%98%E7%B4%9A/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/高級/index.html.js"), meta: {"t":"高級 分类","I":false} }], - ["/zh/category/%E9%AB%98%E7%BA%A7/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/高级/index.html.js"), meta: {"t":"高级 分类","I":false} }], - ["/zh/category/%E5%8D%9A%E5%AE%A2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/博客/index.html.js"), meta: {"t":"博客 分类","I":false} }], - ["/zh/category/%E5%85%83%E4%BB%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/元件/index.html.js"), meta: {"t":"元件 分类","I":false} }], - ["/zh/category/%E7%BB%84%E4%BB%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/组件/index.html.js"), meta: {"t":"组件 分类","I":false} }], - ["/zh/category/%E8%87%AA%E5%AE%9A%E7%BE%A9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/自定義/index.html.js"), meta: {"t":"自定義 分类","I":false} }], - ["/zh/category/%E8%87%AA%E5%AE%9A%E4%B9%89/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/自定义/index.html.js"), meta: {"t":"自定义 分类","I":false} }], - ["/zh/category/%E5%8A%9F%E8%83%BD/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/功能/index.html.js"), meta: {"t":"功能 分类","I":false} }], - ["/zh/category/%E7%95%8C%E9%9D%A2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/界面/index.html.js"), meta: {"t":"界面 分类","I":false} }], - ["/zh/category/%E5%B8%83%E5%B1%80/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/category/布局/index.html.js"), meta: {"t":"布局 分类","I":false} }], - ["/tag/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/index.html.js"), meta: {"t":"Tag","I":false} }], - ["/tag/config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/config/index.html.js"), meta: {"t":"Tag: Config","I":false} }], - ["/tag/i18n/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/i18n/index.html.js"), meta: {"t":"Tag: I18N","I":false} }], - ["/tag/intro/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/intro/index.html.js"), meta: {"t":"Tag: Intro","I":false} }], - ["/tag/theme-config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/theme-config/index.html.js"), meta: {"t":"Tag: Theme Config","I":false} }], - ["/tag/style/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/style/index.html.js"), meta: {"t":"Tag: Style","I":false} }], - ["/tag/encryption/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/encryption/index.html.js"), meta: {"t":"Tag: encryption","I":false} }], - ["/tag/project-command/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/project-command/index.html.js"), meta: {"t":"Tag: Project Command","I":false} }], - ["/tag/project-config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/project-config/index.html.js"), meta: {"t":"Tag: Project Config","I":false} }], - ["/tag/project-content/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/project-content/index.html.js"), meta: {"t":"Tag: Project Content","I":false} }], - ["/tag/template/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/template/index.html.js"), meta: {"t":"Tag: Template","I":false} }], - ["/tag/project-deployment/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/project-deployment/index.html.js"), meta: {"t":"Tag: Project Deployment","I":false} }], - ["/tag/runtime/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/runtime/index.html.js"), meta: {"t":"Tag: Runtime","I":false} }], - ["/tag/project-structure/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/project-structure/index.html.js"), meta: {"t":"Tag: Project Structure","I":false} }], - ["/tag/frontmatter/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/frontmatter/index.html.js"), meta: {"t":"Tag: Frontmatter","I":false} }], - ["/tag/blog-home/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/blog-home/index.html.js"), meta: {"t":"Tag: Blog Home","I":false} }], - ["/tag/home/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/home/index.html.js"), meta: {"t":"Tag: Home","I":false} }], - ["/tag/info/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/info/index.html.js"), meta: {"t":"Tag: Info","I":false} }], - ["/tag/layout/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/layout/index.html.js"), meta: {"t":"Tag: Layout","I":false} }], - ["/tag/blog/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/blog/index.html.js"), meta: {"t":"Tag: Blog","I":false} }], - ["/tag/plugin-config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/plugin-config/index.html.js"), meta: {"t":"Tag: Plugin Config","I":false} }], - ["/tag/comment/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/comment/index.html.js"), meta: {"t":"Tag: Comment","I":false} }], - ["/tag/copyright/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/copyright/index.html.js"), meta: {"t":"Tag: Copyright","I":false} }], - ["/tag/feed/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/feed/index.html.js"), meta: {"t":"Tag: Feed","I":false} }], - ["/tag/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/markdown/index.html.js"), meta: {"t":"Tag: Markdown","I":false} }], - ["/tag/search/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/search/index.html.js"), meta: {"t":"Tag: Search","I":false} }], - ["/tag/appearance/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/appearance/index.html.js"), meta: {"t":"Tag: Appearance","I":false} }], - ["/tag/basic/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/basic/index.html.js"), meta: {"t":"Tag: Basic","I":false} }], - ["/tag/themeconfig/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/themeconfig/index.html.js"), meta: {"t":"Tag: ThemeConfig","I":false} }], - ["/tag/behavior-options/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/behavior-options/index.html.js"), meta: {"t":"Tag: Behavior Options","I":false} }], - ["/tag/feature/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/feature/index.html.js"), meta: {"t":"Tag: Feature","I":false} }], - ["/tag/i18n/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/i18n/index.html.js"), meta: {"t":"Tag: I18n","I":false} }], - ["/tag/demo/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/demo/index.html.js"), meta: {"t":"Tag: Demo","I":false} }], - ["/tag/vuepress/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/vuepress/index.html.js"), meta: {"t":"Tag: VuePress","I":false} }], - ["/tag/file-structure/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/file-structure/index.html.js"), meta: {"t":"Tag: File Structure","I":false} }], - ["/tag/page/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/page/index.html.js"), meta: {"t":"Tag: Page","I":false} }], - ["/tag/plugin/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/plugin/index.html.js"), meta: {"t":"Tag: Plugin","I":false} }], - ["/tag/theme/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/theme/index.html.js"), meta: {"t":"Tag: Theme","I":false} }], - ["/tag/advanced/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/advanced/index.html.js"), meta: {"t":"Tag: Advanced","I":false} }], - ["/tag/client-config/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/client-config/index.html.js"), meta: {"t":"Tag: Client Config","I":false} }], - ["/tag/customize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/customize/index.html.js"), meta: {"t":"Tag: Customize","I":false} }], - ["/tag/pwa/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/pwa/index.html.js"), meta: {"t":"Tag: PWA","I":false} }], - ["/tag/seo/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/seo/index.html.js"), meta: {"t":"Tag: SEO","I":false} }], - ["/tag/sitemap/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/sitemap/index.html.js"), meta: {"t":"Tag: Sitemap","I":false} }], - ["/tag/article/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/article/index.html.js"), meta: {"t":"Tag: Article","I":false} }], - ["/tag/encrypt/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/encrypt/index.html.js"), meta: {"t":"Tag: Encrypt","I":false} }], - ["/tag/slide/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/slide/index.html.js"), meta: {"t":"Tag: Slide","I":false} }], - ["/tag/star/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/star/index.html.js"), meta: {"t":"Tag: Star","I":false} }], - ["/tag/blogger/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/blogger/index.html.js"), meta: {"t":"Tag: Blogger","I":false} }], - ["/tag/category/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/category/index.html.js"), meta: {"t":"Tag: Category","I":false} }], - ["/tag/tag/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/tag/index.html.js"), meta: {"t":"Tag: Tag","I":false} }], - ["/tag/path/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/path/index.html.js"), meta: {"t":"Tag: Path","I":false} }], - ["/tag/timeline/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/timeline/index.html.js"), meta: {"t":"Tag: Timeline","I":false} }], - ["/tag/component/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/component/index.html.js"), meta: {"t":"Tag: Component","I":false} }], - ["/tag/sfc/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/sfc/index.html.js"), meta: {"t":"Tag: SFC","I":false} }], - ["/tag/preset/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/preset/index.html.js"), meta: {"t":"Tag: Preset","I":false} }], - ["/tag/catalog/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/catalog/index.html.js"), meta: {"t":"Tag: Catalog","I":false} }], - ["/tag/copy-code/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/copy-code/index.html.js"), meta: {"t":"Tag: Copy Code","I":false} }], - ["/tag/meta/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/meta/index.html.js"), meta: {"t":"Tag: Meta","I":false} }], - ["/tag/page-info/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/page-info/index.html.js"), meta: {"t":"Tag: Page Info","I":false} }], - ["/tag/image-preview/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/image-preview/index.html.js"), meta: {"t":"Tag: Image Preview","I":false} }], - ["/tag/a11y/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/a11y/index.html.js"), meta: {"t":"Tag: A11y","I":false} }], - ["/tag/interface/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/interface/index.html.js"), meta: {"t":"Tag: Interface","I":false} }], - ["/tag/code-themes/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/code-themes/index.html.js"), meta: {"t":"Tag: Code Themes","I":false} }], - ["/tag/darkmode/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/darkmode/index.html.js"), meta: {"t":"Tag: Darkmode","I":false} }], - ["/tag/icon/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/icon/index.html.js"), meta: {"t":"Tag: Icon","I":false} }], - ["/tag/responsive-layout/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/responsive-layout/index.html.js"), meta: {"t":"Tag: Responsive layout","I":false} }], - ["/tag/theme-color/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/theme-color/index.html.js"), meta: {"t":"Tag: Theme Color","I":false} }], - ["/tag/get-started/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/get-started/index.html.js"), meta: {"t":"Tag: Get Started","I":false} }], - ["/tag/install/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/install/index.html.js"), meta: {"t":"Tag: Install","I":false} }], - ["/tag/usage/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/usage/index.html.js"), meta: {"t":"Tag: Usage","I":false} }], - ["/tag/breadcrumb/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/breadcrumb/index.html.js"), meta: {"t":"Tag: Breadcrumb","I":false} }], - ["/tag/footer/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/footer/index.html.js"), meta: {"t":"Tag: Footer","I":false} }], - ["/tag/navbar/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/navbar/index.html.js"), meta: {"t":"Tag: Navbar","I":false} }], - ["/tag/sidebar/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/sidebar/index.html.js"), meta: {"t":"Tag: Sidebar","I":false} }], - ["/tag/slides/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/slides/index.html.js"), meta: {"t":"Tag: Slides","I":false} }], - ["/tag/emoji/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/emoji/index.html.js"), meta: {"t":"Tag: Emoji","I":false} }], - ["/tag/chart/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/chart/index.html.js"), meta: {"t":"Tag: Chart","I":false} }], - ["/tag/echarts/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/echarts/index.html.js"), meta: {"t":"Tag: ECharts","I":false} }], - ["/tag/flowchart/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/flowchart/index.html.js"), meta: {"t":"Tag: Flowchart","I":false} }], - ["/tag/diagram/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/diagram/index.html.js"), meta: {"t":"Tag: Diagram","I":false} }], - ["/tag/grammar/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/grammar/index.html.js"), meta: {"t":"Tag: Grammar","I":false} }], - ["/tag/image/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/image/index.html.js"), meta: {"t":"Tag: Image","I":false} }], - ["/tag/superscript/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/superscript/index.html.js"), meta: {"t":"Tag: Superscript","I":false} }], - ["/tag/subscript/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/subscript/index.html.js"), meta: {"t":"Tag: Subscript","I":false} }], - ["/tag/task-list/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/task-list/index.html.js"), meta: {"t":"Tag: Task List","I":false} }], - ["/tag/tex/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/tex/index.html.js"), meta: {"t":"Tag: TEX","I":false} }], - ["/tag/stylize/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/stylize/index.html.js"), meta: {"t":"Tag: Stylize","I":false} }], - ["/tag/alert/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/alert/index.html.js"), meta: {"t":"Tag: alert","I":false} }], - ["/tag/align/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/align/index.html.js"), meta: {"t":"Tag: Align","I":false} }], - ["/tag/attributes/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/attributes/index.html.js"), meta: {"t":"Tag: Attributes","I":false} }], - ["/tag/hintbox/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/hintbox/index.html.js"), meta: {"t":"Tag: hintbox","I":false} }], - ["/tag/mark/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/mark/index.html.js"), meta: {"t":"Tag: Mark","I":false} }], - ["/tag/markup/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/markup/index.html.js"), meta: {"t":"Tag: Markup","I":false} }], - ["/tag/code/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/code/index.html.js"), meta: {"t":"Tag: Code","I":false} }], - ["/tag/code-tabs/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/code-tabs/index.html.js"), meta: {"t":"Tag: Code Tabs","I":false} }], - ["/tag/code-demo/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/code-demo/index.html.js"), meta: {"t":"Tag: Code Demo","I":false} }], - ["/tag/playground/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/playground/index.html.js"), meta: {"t":"Tag: Playground","I":false} }], - ["/tag/content/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/content/index.html.js"), meta: {"t":"Tag: Content","I":false} }], - ["/tag/footnote/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/footnote/index.html.js"), meta: {"t":"Tag: Footnote","I":false} }], - ["/tag/include-files/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/include-files/index.html.js"), meta: {"t":"Tag: Include Files","I":false} }], - ["/tag/tabs/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/tag/tabs/index.html.js"), meta: {"t":"Tag: Tabs","I":false} }], - ["/zh/tag/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/index.html.js"), meta: {"t":"标签","I":false} }], - ["/zh/tag/%E9%85%8D%E7%BD%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/配置/index.html.js"), meta: {"t":"标签: 配置","I":false} }], - ["/zh/tag/%E5%A4%9A%E8%AF%AD%E8%A8%80/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/多语言/index.html.js"), meta: {"t":"标签: 多语言","I":false} }], - ["/zh/tag/%E4%BB%8B%E7%BB%8D/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/介绍/index.html.js"), meta: {"t":"标签: 介绍","I":false} }], - ["/zh/tag/%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/主题配置/index.html.js"), meta: {"t":"标签: 主题配置","I":false} }], - ["/zh/tag/%E6%A0%B7%E5%BC%8F/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/样式/index.html.js"), meta: {"t":"标签: 样式","I":false} }], - ["/zh/tag/%E5%8A%A0%E5%AF%86/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/加密/index.html.js"), meta: {"t":"标签: 加密","I":false} }], - ["/zh/tag/%E9%86%AC%E6%96%99/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/醬料/index.html.js"), meta: {"t":"标签: 醬料","I":false} }], - ["/zh/tag/%E9%A1%B9%E7%9B%AE%E5%91%BD%E4%BB%A4/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/项目命令/index.html.js"), meta: {"t":"标签: 项目命令","I":false} }], - ["/zh/tag/%E9%85%8D%E7%BD%AE%E9%A1%B9%E7%9B%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/配置项目/index.html.js"), meta: {"t":"标签: 配置项目","I":false} }], - ["/zh/tag/%E9%A1%B9%E7%9B%AE%E5%86%85%E5%AE%B9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/项目内容/index.html.js"), meta: {"t":"标签: 项目内容","I":false} }], - ["/zh/tag/%E6%A8%A1%E6%9D%BF/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/模板/index.html.js"), meta: {"t":"标签: 模板","I":false} }], - ["/zh/tag/%E9%83%A8%E7%BD%B2%E9%A1%B9%E7%9B%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/部署项目/index.html.js"), meta: {"t":"标签: 部署项目","I":false} }], - ["/zh/tag/%E4%BB%8B%E7%B4%B9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/介紹/index.html.js"), meta: {"t":"标签: 介紹","I":false} }], - ["/zh/tag/frontmatter/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/frontmatter/index.html.js"), meta: {"t":"标签: Frontmatter","I":false} }], - ["/zh/tag/%E5%8D%9A%E5%AE%A2%E4%B8%BB%E9%A1%B5/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/博客主页/index.html.js"), meta: {"t":"标签: 博客主页","I":false} }], - ["/zh/tag/%E4%B8%BB%E9%A1%B5/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/主页/index.html.js"), meta: {"t":"标签: 主页","I":false} }], - ["/zh/tag/%E4%BF%A1%E6%81%AF/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/信息/index.html.js"), meta: {"t":"标签: 信息","I":false} }], - ["/zh/tag/%E5%B8%83%E5%B1%80/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/布局/index.html.js"), meta: {"t":"标签: 布局","I":false} }], - ["/zh/tag/%E6%8F%92%E4%BB%B6%E9%85%8D%E7%BD%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/插件配置/index.html.js"), meta: {"t":"标签: 插件配置","I":false} }], - ["/zh/tag/%E5%8D%9A%E5%AE%A2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/博客/index.html.js"), meta: {"t":"标签: 博客","I":false} }], - ["/zh/tag/%E8%AF%84%E8%AE%BA/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/评论/index.html.js"), meta: {"t":"标签: 评论","I":false} }], - ["/zh/tag/%E7%89%88%E6%9D%83%E4%BF%A1%E6%81%AF/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/版权信息/index.html.js"), meta: {"t":"标签: 版权信息","I":false} }], - ["/zh/tag/feed/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/feed/index.html.js"), meta: {"t":"标签: Feed","I":false} }], - ["/zh/tag/markdown/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/markdown/index.html.js"), meta: {"t":"标签: Markdown","I":false} }], - ["/zh/tag/%E6%8F%92%E4%BB%B6%E9%80%89%E9%A1%B9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/插件选项/index.html.js"), meta: {"t":"标签: 插件选项","I":false} }], - ["/zh/tag/%E6%90%9C%E7%B4%A2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/搜索/index.html.js"), meta: {"t":"标签: 搜索","I":false} }], - ["/zh/tag/%E4%B8%BB%E9%A1%8C%E9%85%8D%E7%BD%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/主題配置/index.html.js"), meta: {"t":"标签: 主題配置","I":false} }], - ["/zh/tag/%E5%A4%96%E8%A7%80/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/外觀/index.html.js"), meta: {"t":"标签: 外觀","I":false} }], - ["/zh/tag/%E5%9F%BA%E7%A4%8E/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/基礎/index.html.js"), meta: {"t":"标签: 基礎","I":false} }], - ["/zh/tag/%E8%A1%8C%E7%82%BA%E9%81%B8%E9%A0%85/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/行為選項/index.html.js"), meta: {"t":"标签: 行為選項","I":false} }], - ["/zh/tag/%E5%8A%9F%E8%83%BD/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/功能/index.html.js"), meta: {"t":"标签: 功能","I":false} }], - ["/zh/tag/%E5%A4%9A%E8%AA%9E%E8%A8%80/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/多語言/index.html.js"), meta: {"t":"标签: 多語言","I":false} }], - ["/zh/tag/%E7%A4%BA%E4%BE%8B/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/示例/index.html.js"), meta: {"t":"标签: 示例","I":false} }], - ["/zh/tag/vuepress/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/vuepress/index.html.js"), meta: {"t":"标签: VuePress","I":false} }], - ["/zh/tag/%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/文件结构/index.html.js"), meta: {"t":"标签: 文件结构","I":false} }], - ["/zh/tag/%E9%A1%B5%E9%9D%A2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/页面/index.html.js"), meta: {"t":"标签: 页面","I":false} }], - ["/zh/tag/%E6%8F%92%E4%BB%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/插件/index.html.js"), meta: {"t":"标签: 插件","I":false} }], - ["/zh/tag/%E4%B8%BB%E9%A2%98/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/主题/index.html.js"), meta: {"t":"标签: 主题","I":false} }], - ["/zh/tag/%E9%AB%98%E7%B4%9A/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/高級/index.html.js"), meta: {"t":"标签: 高級","I":false} }], - ["/zh/tag/%E9%AB%98%E7%BA%A7/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/高级/index.html.js"), meta: {"t":"标签: 高级","I":false} }], - ["/zh/tag/%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%85%8D%E7%BD%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/客户端配置/index.html.js"), meta: {"t":"标签: 客户端配置","I":false} }], - ["/zh/tag/%E8%87%AA%E5%AE%9A%E4%B9%89/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/自定义/index.html.js"), meta: {"t":"标签: 自定义","I":false} }], - ["/zh/tag/pwa/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/pwa/index.html.js"), meta: {"t":"标签: PWA","I":false} }], - ["/zh/tag/seo/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/seo/index.html.js"), meta: {"t":"标签: SEO","I":false} }], - ["/zh/tag/sitemap/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/sitemap/index.html.js"), meta: {"t":"标签: Sitemap","I":false} }], - ["/zh/tag/%E6%96%87%E7%AB%A0/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/文章/index.html.js"), meta: {"t":"标签: 文章","I":false} }], - ["/zh/tag/%E5%B9%BB%E7%81%AF%E7%89%87/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/幻灯片/index.html.js"), meta: {"t":"标签: 幻灯片","I":false} }], - ["/zh/tag/%E6%98%9F%E6%A0%87/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/星标/index.html.js"), meta: {"t":"标签: 星标","I":false} }], - ["/zh/tag/%E5%8D%9A%E4%B8%BB%E4%BF%A1%E6%81%AF/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/博主信息/index.html.js"), meta: {"t":"标签: 博主信息","I":false} }], - ["/zh/tag/%E5%88%86%E7%B1%BB/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/分类/index.html.js"), meta: {"t":"标签: 分类","I":false} }], - ["/zh/tag/%E6%A0%87%E7%AD%BE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/标签/index.html.js"), meta: {"t":"标签: 标签","I":false} }], - ["/zh/tag/%E8%B7%AF%E5%BE%84/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/路径/index.html.js"), meta: {"t":"标签: 路径","I":false} }], - ["/zh/tag/%E6%97%B6%E9%97%B4%E7%BA%BF/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/时间线/index.html.js"), meta: {"t":"标签: 时间线","I":false} }], - ["/zh/tag/%E5%85%83%E4%BB%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/元件/index.html.js"), meta: {"t":"标签: 元件","I":false} }], - ["/zh/tag/%E7%BB%84%E4%BB%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/组件/index.html.js"), meta: {"t":"标签: 组件","I":false} }], - ["/zh/tag/sfc/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/sfc/index.html.js"), meta: {"t":"标签: SFC","I":false} }], - ["/zh/tag/%E8%87%AA%E5%AE%9A%E7%BE%A9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/自定義/index.html.js"), meta: {"t":"标签: 自定義","I":false} }], - ["/zh/tag/%E9%A2%84%E8%AE%BE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/预设/index.html.js"), meta: {"t":"标签: 预设","I":false} }], - ["/zh/tag/%E7%9B%AE%E5%BD%95/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/目录/index.html.js"), meta: {"t":"标签: 目录","I":false} }], - ["/zh/tag/%E4%BB%A3%E7%A0%81%E5%A4%8D%E5%88%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/代码复制/index.html.js"), meta: {"t":"标签: 代码复制","I":false} }], - ["/zh/tag/%E5%85%83%E6%95%B0%E6%8D%AE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/元数据/index.html.js"), meta: {"t":"标签: 元数据","I":false} }], - ["/zh/tag/%E9%A1%B5%E9%9D%A2%E4%BF%A1%E6%81%AF/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/页面信息/index.html.js"), meta: {"t":"标签: 页面信息","I":false} }], - ["/zh/tag/%E5%9B%BE%E7%89%87%E6%B5%8F%E8%A7%88/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/图片浏览/index.html.js"), meta: {"t":"标签: 图片浏览","I":false} }], - ["/zh/tag/%E7%95%8C%E9%9D%A2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/界面/index.html.js"), meta: {"t":"标签: 界面","I":false} }], - ["/zh/tag/%E6%97%A0%E9%9A%9C%E7%A2%8D/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/无障碍/index.html.js"), meta: {"t":"标签: 无障碍","I":false} }], - ["/zh/tag/%E4%BB%A3%E7%A0%81%E4%B8%BB%E9%A2%98/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/代码主题/index.html.js"), meta: {"t":"标签: 代码主题","I":false} }], - ["/zh/tag/%E6%B7%B1%E8%89%B2%E6%A8%A1%E5%BC%8F/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/深色模式/index.html.js"), meta: {"t":"标签: 深色模式","I":false} }], - ["/zh/tag/%E5%9B%BE%E6%A0%87/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/图标/index.html.js"), meta: {"t":"标签: 图标","I":false} }], - ["/zh/tag/%E5%93%8D%E5%BA%94%E5%BC%8F%E5%B8%83%E5%B1%80/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/响应式布局/index.html.js"), meta: {"t":"标签: 响应式布局","I":false} }], - ["/zh/tag/%E4%B8%BB%E9%A2%98%E8%89%B2/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/主题色/index.html.js"), meta: {"t":"标签: 主题色","I":false} }], - ["/zh/tag/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/快速上手/index.html.js"), meta: {"t":"标签: 快速上手","I":false} }], - ["/zh/tag/%E5%AE%89%E8%A3%85/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/安装/index.html.js"), meta: {"t":"标签: 安装","I":false} }], - ["/zh/tag/%E4%BD%BF%E7%94%A8/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/使用/index.html.js"), meta: {"t":"标签: 使用","I":false} }], - ["/zh/tag/%E8%B7%AF%E5%BE%84%E5%AF%BC%E8%88%AA/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/路径导航/index.html.js"), meta: {"t":"标签: 路径导航","I":false} }], - ["/zh/tag/%E9%A1%B5%E8%84%9A/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/页脚/index.html.js"), meta: {"t":"标签: 页脚","I":false} }], - ["/zh/tag/%E5%AF%BC%E8%88%AA%E6%A0%8F/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/导航栏/index.html.js"), meta: {"t":"标签: 导航栏","I":false} }], - ["/zh/tag/%E4%BE%A7%E8%BE%B9%E6%A0%8F/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/侧边栏/index.html.js"), meta: {"t":"标签: 侧边栏","I":false} }], - ["/zh/tag/emoji/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/emoji/index.html.js"), meta: {"t":"标签: Emoji","I":false} }], - ["/zh/tag/%E5%9C%96%E8%A1%A8/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/圖表/index.html.js"), meta: {"t":"标签: 圖表","I":false} }], - ["/zh/tag/%E5%9B%BE%E8%A1%A8/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/图表/index.html.js"), meta: {"t":"标签: 图表","I":false} }], - ["/zh/tag/echarts/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/echarts/index.html.js"), meta: {"t":"标签: ECharts","I":false} }], - ["/zh/tag/%E6%B5%81%E7%A8%8B%E5%9B%BE/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/流程图/index.html.js"), meta: {"t":"标签: 流程图","I":false} }], - ["/zh/tag/%E8%AA%9E%E6%B3%95/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/語法/index.html.js"), meta: {"t":"标签: 語法","I":false} }], - ["/zh/tag/%E5%9B%BE%E7%89%87/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/图片/index.html.js"), meta: {"t":"标签: 图片","I":false} }], - ["/zh/tag/%E4%B8%8A%E4%B8%8B%E8%A7%92%E6%A0%87/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/上下角标/index.html.js"), meta: {"t":"标签: 上下角标","I":false} }], - ["/zh/tag/%E4%BB%BB%E5%8A%A1%E5%88%97%E8%A1%A8/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/任务列表/index.html.js"), meta: {"t":"标签: 任务列表","I":false} }], - ["/zh/tag/tex/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/tex/index.html.js"), meta: {"t":"标签: TEX","I":false} }], - ["/zh/tag/%E6%A8%A3%E5%BC%8F%E5%8C%96/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/樣式化/index.html.js"), meta: {"t":"标签: 樣式化","I":false} }], - ["/zh/tag/%E8%AD%A6%E5%91%8A/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/警告/index.html.js"), meta: {"t":"标签: 警告","I":false} }], - ["/zh/tag/%E5%AF%B9%E9%BD%90/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/对齐/index.html.js"), meta: {"t":"标签: 对齐","I":false} }], - ["/zh/tag/%E5%B1%9E%E6%80%A7/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/属性/index.html.js"), meta: {"t":"标签: 属性","I":false} }], - ["/zh/tag/%E6%8F%90%E7%A4%BA%E5%AE%B9%E5%99%A8/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/提示容器/index.html.js"), meta: {"t":"标签: 提示容器","I":false} }], - ["/zh/tag/%E6%A0%87%E8%AE%B0/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/标记/index.html.js"), meta: {"t":"标签: 标记","I":false} }], - ["/zh/tag/%E5%89%A7%E9%80%8F/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/剧透/index.html.js"), meta: {"t":"标签: 剧透","I":false} }], - ["/zh/tag/%E6%A0%B7%E5%BC%8F%E5%8C%96/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/样式化/index.html.js"), meta: {"t":"标签: 样式化","I":false} }], - ["/zh/tag/%E7%A8%8B%E5%BC%8F%E7%A2%BC/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/程式碼/index.html.js"), meta: {"t":"标签: 程式碼","I":false} }], - ["/zh/tag/%E4%BB%A3%E7%A0%81%E7%BB%84/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/代码组/index.html.js"), meta: {"t":"标签: 代码组","I":false} }], - ["/zh/tag/%E4%BB%A3%E7%A0%81%E6%BC%94%E7%A4%BA/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/代码演示/index.html.js"), meta: {"t":"标签: 代码演示","I":false} }], - ["/zh/tag/%E4%BA%A4%E4%BA%92%E6%BC%94%E7%A4%BA/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/交互演示/index.html.js"), meta: {"t":"标签: 交互演示","I":false} }], - ["/zh/tag/playground/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/playground/index.html.js"), meta: {"t":"标签: Playground","I":false} }], - ["/zh/tag/%E5%86%85%E5%AE%B9/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/内容/index.html.js"), meta: {"t":"标签: 内容","I":false} }], - ["/zh/tag/%E8%84%9A%E6%B3%A8/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/脚注/index.html.js"), meta: {"t":"标签: 脚注","I":false} }], - ["/zh/tag/%E5%AF%BC%E5%85%A5%E6%96%87%E4%BB%B6/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/导入文件/index.html.js"), meta: {"t":"标签: 导入文件","I":false} }], - ["/zh/tag/%E9%80%89%E9%A1%B9%E5%8D%A1/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/tag/选项卡/index.html.js"), meta: {"t":"标签: 选项卡","I":false} }], - ["/article/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/article/index.html.js"), meta: {"t":"Articles","I":false} }], - ["/zh/article/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/article/index.html.js"), meta: {"t":"文章","I":false} }], - ["/star/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/star/index.html.js"), meta: {"t":"Star","I":false} }], - ["/zh/star/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/star/index.html.js"), meta: {"t":"星标","I":false} }], - ["/timeline/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/timeline/index.html.js"), meta: {"t":"Timeline","I":false} }], - ["/zh/timeline/", { loader: () => import(/* webpackChunkName: "index.html" */"/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/zh/timeline/index.html.js"), meta: {"t":"时间轴","I":false} }], -]); diff --git a/docs/theme/src/.vuepress/.temp/internal/siteData.js b/docs/theme/src/.vuepress/.temp/internal/siteData.js deleted file mode 100644 index 7353fc4..0000000 --- a/docs/theme/src/.vuepress/.temp/internal/siteData.js +++ /dev/null @@ -1 +0,0 @@ -export const siteData = JSON.parse("{\"base\":\"/v2/\",\"lang\":\"en-US\",\"title\":\"\",\"description\":\"\",\"head\":[[\"link\",{\"rel\":\"icon\",\"href\":\"https://theme-hope-assets.vuejs.press/icon/chrome-mask-512.png\",\"type\":\"image/png\",\"sizes\":\"512x512\"}],[\"link\",{\"rel\":\"icon\",\"href\":\"https://theme-hope-assets.vuejs.press/icon/chrome-mask-192.png\",\"type\":\"image/png\",\"sizes\":\"512x512\"}],[\"link\",{\"rel\":\"icon\",\"href\":\"https://theme-hope-assets.vuejs.press/icon/chrome-512.png\",\"type\":\"image/png\",\"sizes\":\"192x192\"}],[\"link\",{\"rel\":\"icon\",\"href\":\"https://theme-hope-assets.vuejs.press/icon/chrome-192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\"}],[\"meta\",{\"name\":\"theme-color\",\"content\":\"#46bd87\"}],[\"link\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://theme-hope-assets.vuejs.press/icon/apple-icon-152.png\"}],[\"meta\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black\"}],[\"meta\",{\"name\":\"google-site-verification\",\"content\":\"qG3soux9jAKB4Q_DYf7yj1p5cEIuib6yG4zDhpmv2_E\"}],[\"link\",{\"rel\":\"icon\",\"href\":\"/v2/favicon.ico\"}]],\"locales\":{\"/\":{\"lang\":\"en-US\",\"title\":\"vuepress-theme-hope\",\"description\":\"A VuePress theme with tons of features✨\"},\"/zh/\":{\"lang\":\"zh-TW\",\"title\":\"vuepress-theme-hope\",\"description\":\"一個具有强大功能的 vuepress 主題✨\"}}}") diff --git a/docs/theme/src/.vuepress/.temp/internal/themeData.js b/docs/theme/src/.vuepress/.temp/internal/themeData.js deleted file mode 100644 index 27623ca..0000000 --- a/docs/theme/src/.vuepress/.temp/internal/themeData.js +++ /dev/null @@ -1 +0,0 @@ -export const themeData = JSON.parse("{\"encrypt\":{\"config\":{\"/demo/encrypt.html\":[\"$2a$10$6PggRdhl7XDg1bv5bD.T/Op4aubuab5.FpnpXQiKgakaBk0KaZAKu\"],\"/zh/demo/encrypt.html\":[\"$2a$10$bw2TCyJ62GRHYxYvNnO.fOm0czluZ1hzJuGQ1FmaGsSYJkTM2XxAq\"]}},\"author\":{\"name\":\"Mr.Hope\",\"url\":\"https://mister-hope.com\"},\"repo\":\"vuepress-theme-hope/vuepress-theme-hope\",\"docsRepo\":\"vuepress-theme-hope/vuepress-theme-hope\",\"docsDir\":\"docs/theme/src\",\"logo\":\"https://theme-hope-assets.vuejs.press/logo.svg\",\"navbarLayout\":{\"start\":[\"Brand\"],\"center\":[\"Links\"],\"end\":[\"Language\",\"SocialLink\",\"Repo\",\"Outlook\",\"Search\"]},\"copyright\":\"MIT Licensed | Copyright © 2019-present Mr.Hope\",\"displayFooter\":true,\"pageInfo\":[\"ReadingTime\",\"Category\",\"Tag\"],\"blog\":{\"name\":\"VuePress Theme Hope\",\"medias\":{\"Baidu\":\"https://example.com\",\"BiliBili\":\"https://example.com\",\"Bitbucket\":\"https://example.com\",\"Dingding\":\"https://example.com\",\"Discord\":\"https://example.com\",\"Dribbble\":\"https://example.com\",\"Email\":\"mailto:info@example.com\",\"Evernote\":\"https://example.com\",\"Facebook\":\"https://example.com\",\"Flipboard\":\"https://example.com\",\"Gitee\":\"https://example.com\",\"GitHub\":\"https://example.com\",\"Gitlab\":\"https://example.com\",\"Gmail\":\"mailto:info@example.com\",\"Instagram\":\"https://example.com\",\"Lark\":\"https://example.com\",\"Lines\":\"https://example.com\",\"Linkedin\":\"https://example.com\",\"Pinterest\":\"https://example.com\",\"Pocket\":\"https://example.com\",\"QQ\":\"https://example.com\",\"Qzone\":\"https://example.com\",\"Reddit\":\"https://example.com\",\"Rss\":\"https://example.com\",\"Steam\":\"https://example.com\",\"Twitter\":\"https://example.com\",\"Wechat\":\"https://example.com\",\"Weibo\":\"https://example.com\",\"Whatsapp\":\"https://example.com\",\"Youtube\":\"https://example.com\",\"Zhihu\":\"https://example.com\"}},\"fullscreen\":true,\"navbarTitle\":\"\",\"footer\":\"views site_visits visitors
\",\"locales\":{\"/zh/\":{\"lang\":\"zh-TW\",\"navbarLocales\":{\"langName\":\"繁體中文\",\"selectLangAriaLabel\":\"选择语言\"},\"metaLocales\":{\"author\":\"作者\",\"date\":\"写作日期\",\"origin\":\"原创\",\"views\":\"访问量\",\"category\":\"分类\",\"tag\":\"标签\",\"readingTime\":\"阅读时间\",\"words\":\"字数\",\"toc\":\"此页内容\",\"prev\":\"上一页\",\"next\":\"下一页\",\"lastUpdated\":\"上次编辑于\",\"contributors\":\"贡献者\",\"editLink\":\"编辑此页\",\"print\":\"打印\"},\"blogLocales\":{\"article\":\"文章\",\"articleList\":\"文章列表\",\"category\":\"分类\",\"tag\":\"标签\",\"timeline\":\"时间轴\",\"timelineTitle\":\"昨日不在\",\"all\":\"全部\",\"intro\":\"个人介绍\",\"star\":\"星标\",\"empty\":\"$text 为空\"},\"paginationLocales\":{\"prev\":\"上一页\",\"next\":\"下一页\",\"navigate\":\"跳转到\",\"action\":\"前往\",\"errorText\":\"请输入 1 到 $page 之前的页码!\"},\"outlookLocales\":{\"themeColor\":\"主题色\",\"darkmode\":\"外观\",\"fullscreen\":\"全屏\"},\"encryptLocales\":{\"iconLabel\":\"文章已加密\",\"placeholder\":\"输入密码\",\"remember\":\"记住密码\",\"errorHint\":\"请输入正确的密码\"},\"routeLocales\":{\"skipToContent\":\"跳至主要內容\",\"notFoundTitle\":\"页面不存在\",\"notFoundMsg\":[\"这里什么也没有\",\"我们是怎么来到这儿的?\",\"这 是 四 零 四 !\",\"看起来你访问了一个失效的链接\"],\"back\":\"返回上一页\",\"home\":\"带我回家\",\"openInNewWindow\":\"Open in new window\"},\"navbar\":[\"/zh/get-started/\",\"/zh/guide/\",\"/zh/config/\",\"/zh/faq/\",\"/zh/demo/\",{\"text\":\"項目\",\"icon\":\"circle-info\",\"prefix\":\"/zh/\",\"children\":[{\"text\":\"教程\",\"icon\":\"signs-post\",\"prefix\":\"cookbook/\",\"children\":[\"markdown/\",\"vuepress/\"]},{\"text\":\"項目\",\"children\":[\"changelog\",\"related\",\"contribution\"]}]}],\"sidebar\":{\"/zh/\":[\"\",\"get-started/\",{\"text\":\"指引\",\"icon\":\"lightbulb\",\"prefix\":\"guide/\",\"children\":[\"intro/\",\"interface/\",\"layout/\",\"markdown/\",\"feature/\",\"blog/\",\"customize/\",\"advanced/\"]},{\"text\":\"配置\",\"icon\":\"gears\",\"prefix\":\"config/\",\"children\":[\"intro\",\"i18n\",\"theme/\",\"plugins/\",\"frontmatter/\",\"style\"]},{\"text\":\"教程\",\"icon\":\"signs-post\",\"prefix\":\"cookbook/\",\"children\":[\"markdown/\",\"vuepress/\"]},\"demo/\",\"faq/\",\"changelog\",\"contribution\"],\"/zh/get-started/\":\"structure\",\"/zh/guide/\":\"structure\",\"/zh/config/\":\"structure\",\"/zh/cookbook/\":\"structure\",\"/zh/demo/\":\"structure\",\"/zh/faq/\":\"structure\"}},\"/\":{\"lang\":\"en-US\",\"navbarLocales\":{\"langName\":\"English\",\"selectLangAriaLabel\":\"Select language\"},\"metaLocales\":{\"author\":\"Author\",\"date\":\"Writing Date\",\"origin\":\"Original\",\"views\":\"Page views\",\"category\":\"Category\",\"tag\":\"Tag\",\"readingTime\":\"Reading Time\",\"words\":\"Words\",\"toc\":\"On This Page\",\"prev\":\"Prev\",\"next\":\"Next\",\"lastUpdated\":\"Last update\",\"contributors\":\"Contributors\",\"editLink\":\"Edit this page\",\"print\":\"Print\"},\"blogLocales\":{\"article\":\"Articles\",\"articleList\":\"Article List\",\"category\":\"Category\",\"tag\":\"Tag\",\"timeline\":\"Timeline\",\"timelineTitle\":\"Yesterday Once More!\",\"all\":\"All\",\"intro\":\"Personal Intro\",\"star\":\"Star\",\"empty\":\"No $text\"},\"paginationLocales\":{\"prev\":\"Prev\",\"next\":\"Next\",\"navigate\":\"Jump to\",\"action\":\"Go\",\"errorText\":\"Please enter a number between 1 and $page !\"},\"outlookLocales\":{\"themeColor\":\"Theme Color\",\"darkmode\":\"Theme Mode\",\"fullscreen\":\"Full Screen\"},\"encryptLocales\":{\"iconLabel\":\"Page Encrypted\",\"placeholder\":\"Enter password\",\"remember\":\"Remember password\",\"errorHint\":\"Please enter the correct password!\"},\"routeLocales\":{\"skipToContent\":\"Skip to main content\",\"notFoundTitle\":\"Page not found\",\"notFoundMsg\":[\"There’s nothing here.\",\"How did we get here?\",\"That’s a Four-Oh-Four.\",\"Looks like we've got some broken links.\"],\"back\":\"Go back\",\"home\":\"Take me home\",\"openInNewWindow\":\"Open in new window\"},\"navbar\":[\"/get-started/\",\"/guide/\",\"/config/\",\"/faq/\",\"/demo/\",{\"text\":\"Others\",\"icon\":\"circle-info\",\"children\":[{\"text\":\"Cookbook\",\"prefix\":\"/cookbook/\",\"children\":[\"markdown/\",\"vuepress/\"]},{\"text\":\"Project\",\"children\":[\"/changelog\",\"/related\",\"/contribution\"]}]}],\"sidebar\":{\"/\":[\"\",\"get-started/\",{\"text\":\"Guide\",\"icon\":\"lightbulb\",\"prefix\":\"guide/\",\"children\":[\"intro/\",\"interface/\",\"layout/\",\"markdown/\",\"feature/\",\"blog/\",\"customize/\",\"advanced/\"]},{\"text\":\"Config\",\"icon\":\"gears\",\"prefix\":\"config/\",\"children\":[\"intro\",\"i18n\",\"theme/\",\"plugins/\",\"frontmatter/\",\"style\"]},{\"text\":\"Cookbook\",\"icon\":\"signs-post\",\"prefix\":\"cookbook/\",\"children\":[\"markdown/\",\"vuepress/\"]},\"demo/\",\"faq/\",\"changelog\",\"contribution\"],\"/get-started/\":\"structure\",\"/guide/\":\"structure\",\"/config/\":\"structure\",\"/cookbook/\":\"structure\",\"/demo/\":\"structure\",\"/faq/\":\"structure\"}}}}") diff --git a/docs/theme/src/.vuepress/.temp/md-enhance/config.js b/docs/theme/src/.vuepress/.temp/md-enhance/config.js deleted file mode 100644 index fb97f28..0000000 --- a/docs/theme/src/.vuepress/.temp/md-enhance/config.js +++ /dev/null @@ -1,64 +0,0 @@ -import { defineClientConfig } from "vuepress/client"; -import ChartJS from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/ChartJS.js"; -import CodeTabs from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/CodeTabs.js"; -import CodeDemo from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/CodeDemo.js"; -import MdDemo from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/MdDemo.js"; -import ECharts from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/ECharts.js"; -import { injectEChartsConfig } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client//index.js"; -import "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/figure.scss"; -import FlowChart from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/FlowChart.js"; -import "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/footnote.scss"; -import { useHintContainers } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/composables/useHintContainers.js"; -import "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/hint/index.scss"; -import "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/image-mark.scss" -import KotlinPlayground from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/KotlinPlayground.js"; -import { injectKotlinPlaygroundConfig } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/index.js"; -import MarkMap from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/MarkMap.js"; -import "./mathjax.css"; -import Mermaid from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/Mermaid.js"; -import { injectMermaidConfig } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client//index.js"; -import Playground from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/Playground.js"; -import "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/dist/reveal.css"; -import RevealJs from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/RevealJs.js"; -import { injectRevealJsConfig } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/index.js"; -import Tabs from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/Tabs.js"; -import { defineAsyncComponent } from "vue"; -import { LoadingIcon } from "/Users/kuang/GitHub/recipe/packages/shared/lib/client/index.js"; -import { injectSandpackConfig } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/index.js"; -import "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/tasklist.scss"; -import VuePlayground from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/VuePlayground.js"; -import { injectVuePlaygroundConfig } from "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/index.js"; - -export default defineClientConfig({ - enhance: ({ app }) => { - app.component("ChartJS", ChartJS) - app.component("CodeTabs", CodeTabs); - app.component("CodeDemo", CodeDemo); - app.component("MdDemo", MdDemo); - app.component("ECharts", ECharts); - injectEChartsConfig(app); - app.component("FlowChart", FlowChart); - injectKotlinPlaygroundConfig(app); - app.component("KotlinPlayground", KotlinPlayground); - app.component("MarkMap", MarkMap); - injectMermaidConfig(app); - app.component("Mermaid", Mermaid); - app.component("Playground", Playground); - injectRevealJsConfig(app); - app.component("RevealJs", RevealJs); - app.component("Tabs", Tabs); - injectSandpackConfig(app); - app.component( - "SandPack", - defineAsyncComponent({ - loader: () => import("/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/components/SandPack.js"), - loadingComponent: LoadingIcon, - }) -); - injectVuePlaygroundConfig(app); - app.component("VuePlayground", VuePlayground); - }, - setup: () => { -useHintContainers(); - } -}); diff --git a/docs/theme/src/.vuepress/.temp/md-enhance/mathjax.css b/docs/theme/src/.vuepress/.temp/md-enhance/mathjax.css deleted file mode 100644 index 3272a0b..0000000 --- a/docs/theme/src/.vuepress/.temp/md-enhance/mathjax.css +++ /dev/null @@ -1,142 +0,0 @@ - -mjx-container[jax="SVG"] { - direction: ltr; -} - -mjx-container[jax="SVG"] > svg { - overflow: visible; - min-height: 1px; - min-width: 1px; -} - -mjx-container[jax="SVG"] > svg a { - fill: blue; - stroke: blue; -} - -mjx-assistive-mml { - position: absolute !important; - top: 0px; - left: 0px; - clip: rect(1px, 1px, 1px, 1px); - padding: 1px 0px 0px 0px !important; - border: 0px !important; - display: block !important; - width: auto !important; - overflow: hidden !important; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -mjx-assistive-mml[display="block"] { - width: 100% !important; -} - -mjx-container[jax="SVG"][display="true"] { - display: block; - text-align: center; - margin: 1em 0; -} - -mjx-container[jax="SVG"][display="true"][width="full"] { - display: flex; -} - -mjx-container[jax="SVG"][justify="left"] { - text-align: left; -} - -mjx-container[jax="SVG"][justify="right"] { - text-align: right; -} - -g[data-mml-node="merror"] > g { - fill: red; - stroke: red; -} - -g[data-mml-node="merror"] > rect[data-background] { - fill: yellow; - stroke: none; -} - -g[data-mml-node="mtable"] > line[data-line], svg[data-table] > g > line[data-line] { - stroke-width: 70px; - fill: none; -} - -g[data-mml-node="mtable"] > rect[data-frame], svg[data-table] > g > rect[data-frame] { - stroke-width: 70px; - fill: none; -} - -g[data-mml-node="mtable"] > .mjx-dashed, svg[data-table] > g > .mjx-dashed { - stroke-dasharray: 140; -} - -g[data-mml-node="mtable"] > .mjx-dotted, svg[data-table] > g > .mjx-dotted { - stroke-linecap: round; - stroke-dasharray: 0,140; -} - -g[data-mml-node="mtable"] > g > svg { - overflow: visible; -} - -[jax="SVG"] mjx-tool { - display: inline-block; - position: relative; - width: 0; - height: 0; -} - -[jax="SVG"] mjx-tool > mjx-tip { - position: absolute; - top: 0; - left: 0; -} - -mjx-tool > mjx-tip { - display: inline-block; - padding: .2em; - border: 1px solid #888; - font-size: 70%; - background-color: #F8F8F8; - color: black; - box-shadow: 2px 2px 5px #AAAAAA; -} - -g[data-mml-node="maction"][data-toggle] { - cursor: pointer; -} - -mjx-status { - display: block; - position: fixed; - left: 1em; - bottom: 1em; - min-width: 25%; - padding: .2em .4em; - border: 1px solid #888; - font-size: 90%; - background-color: #F8F8F8; - color: black; -} - -foreignObject[data-mjx-xml] { - font-family: initial; - line-height: normal; - overflow: visible; -} - -mjx-container[jax="SVG"] path[data-c], mjx-container[jax="SVG"] use[data-c] { - stroke-width: 3; -} - -mjx-container { - overflow-x: auto; -} diff --git a/docs/theme/src/.vuepress/.temp/md-enhance/revealjs-plugins.js b/docs/theme/src/.vuepress/.temp/md-enhance/revealjs-plugins.js deleted file mode 100644 index d7ea97a..0000000 --- a/docs/theme/src/.vuepress/.temp/md-enhance/revealjs-plugins.js +++ /dev/null @@ -1,8 +0,0 @@ -export const useRevealJs = () => [ - import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/dist/reveal.esm.js"), - import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/plugin/markdown/markdown.esm.js"), - import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/plugin/highlight/highlight.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/plugin/math/math.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/plugin/search/search.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/plugin/notes/notes.esm.js"), -import(/* webpackChunkName: "reveal" */ "/Users/kuang/GitHub/recipe/node_modules/.pnpm/reveal.js@5.1.0/node_modules/reveal.js/plugin/zoom/zoom.esm.js")]; diff --git a/docs/theme/src/.vuepress/.temp/md-enhance/revealjs-theme.scss b/docs/theme/src/.vuepress/.temp/md-enhance/revealjs-theme.scss deleted file mode 100644 index 5bb1195..0000000 --- a/docs/theme/src/.vuepress/.temp/md-enhance/revealjs-theme.scss +++ /dev/null @@ -1,12 +0,0 @@ -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/auto.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/beige.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/black.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/blood.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/league.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/moon.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/night.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/serif.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/simple.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/sky.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/solarized.scss"; -@use "/Users/kuang/GitHub/recipe/packages/md-enhance/lib/client/styles/revealjs/theme/white.scss"; diff --git a/docs/theme/src/.vuepress/.temp/pages/404.html.js b/docs/theme/src/.vuepress/.temp/pages/404.html.js deleted file mode 100644 index 91fcd08..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/404.html.js +++ /dev/null @@ -1,3 +0,0 @@ -import comp from "/Users/kuang/GitHub/recipe/docs/theme/src/.vuepress/.temp/pages/404.html.vue" -const data = JSON.parse("{\"path\":\"/404.html\",\"title\":\"\",\"lang\":\"en-US\",\"frontmatter\":{\"layout\":\"NotFound\",\"description\":\"404 Not Found\",\"head\":[[\"link\",{\"rel\":\"canonical\",\"href\":\"https://theme-hope.vuejs.press/404.html\"}],[\"meta\",{\"property\":\"og:url\",\"content\":\"https://vuepress-theme-hope.github.io/v2/404.html\"}],[\"meta\",{\"property\":\"og:site_name\",\"content\":\"vuepress-theme-hope\"}],[\"meta\",{\"property\":\"og:description\",\"content\":\"404 Not Found\"}],[\"meta\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"meta\",{\"property\":\"og:locale\",\"content\":\"en-US\"}],[\"meta\",{\"property\":\"article:author\",\"content\":\"Mr.Hope\"}],[\"script\",{\"type\":\"application/ld+json\"},\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebPage\\\",\\\"name\\\":\\\"\\\",\\\"description\\\":\\\"404 Not Found\\\"}\"],[\"link\",{\"rel\":\"alternate\",\"type\":\"application/atom+xml\",\"href\":\"https://vuepress-theme-hope.github.io/v2/atom.xml\",\"title\":\"vuepress-theme-hope Atom Feed\"}],[\"link\",{\"rel\":\"alternate\",\"type\":\"application/json\",\"href\":\"https://vuepress-theme-hope.github.io/v2/feed.json\",\"title\":\"vuepress-theme-hope JSON Feed\"}],[\"link\",{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"href\":\"https://vuepress-theme-hope.github.io/v2/rss.xml\",\"title\":\"vuepress-theme-hope RSS Feed\"}]]},\"headers\":[],\"git\":{},\"readingTime\":{\"minutes\":0.01,\"words\":3},\"filePathRelative\":null,\"excerpt\":\"\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/404.html.vue b/docs/theme/src/.vuepress/.temp/pages/404.html.vue deleted file mode 100644 index dab0540..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/404.html.vue +++ /dev/null @@ -1,4 +0,0 @@ -404 Not Found
-This file contains all notable changes to vuepress-theme-hope
and its plugins.
This file contains all notable changes to vuepress-theme-hope
and its plugins.
giscusLang
value, fix #3862@vuepress/docsearch
@vuepress/search
and search-pro
. After installing them, you only need to provide necessary options, and the theme will do the rest job for you.categories
and tags
in frontmatter are standard, which will improve experience with tools like Obsidian.md-enhance
now undeprecate danger container support back to align vuepress default theme.This version is not actually released.
-This version is not actually released.
-<Share>
component in component
plugin is rebuild, new services are added and icons are redrawn.auto-catalog
plugin has been rebuilt, and provides a client api to customize catalog info extracting.md-enhance
md-enhance
alert
feature in md-enhance
to support GFM alertscaution
and important
container in hint feature (previously named container
)container
option is deprecated, use hint
insteadcaution
and important
container is added to align GFMicon
fieldcomponent
option is added in md-enhance
plugin to deprecate card
option
Now you can use component fence block to quickly write any components you want
-<VPBanner>
and <VPCard>
component is added to components
plugin
md-enhance
plugindefineEchartsConfig
to use 3rd party plugins and add default option in echarts.indexType
prop is no longer needed in <AutoCatalog>
componentrevealJs
now running on Reveal.js v5indexType
prop, close #3537We use modern css to support RTL, so more old browsers appearance may be broken.
-You can check FAQ part in theme docs to add backward compatibility.
-Heavy deps in md-enhance
plugin are now optional
revealJS
in md-enhance
plugin<VidStack>
component in components
plugin now requires vidstack@v1.presentation
option is no longer supported, use revealJs
insteadInfo
-For historical changelog older than 2.0.0-beta.238
, see Github Repo Changelog
boolean
false
Enable homepage style when setting to true
string
Page title, will be used in breadcrumb, seo, etc.
-string | false
"Hello"
Hero Title
-string | false
"Welcome to your VuePress site"
Short description in hero
-string
Home hero (logo) image address, relative path is not supported.
-string
heroImage
Darkmode Home hero (logo) image address, relative path is not supported.
-Record<string, string> | string
CSS style for home icon
-string
Home icon alt text
-string | false
Link of background image, relative path is not supported.
-string
bgImage
Link of darkmode background image, relative path is not supported.
-Record<string, string> | string
The CSS style of the background image.
-boolean
false
Whether Hero is full screen displayed
-Type: ThemeBlogHomeProjectOptions[]
interface ThemeBlogHomeProjectOptions {
- /**
- * Project name
- */
- name: string;
-
- /**
- * Project description
- */
- desc?: string;
-
- /**
- * Project link
- */
- link: string;
-
- /**
- * Project icon
- *
- * @description image link or icon fontClass are supported, as well as `"link"`、`"project"`、`"book"`、`"article"`、`"friend"`
- */
- icon?: string;
-}
-
Required: No
-Project list
-boolean
false
Enable homepage style when setting to true
string
Page title, will be used in breadcrumb, seo, etc.
-string | false
"Hello"
Hero Title
-string | false
"Welcome to your VuePress site"
Short description in hero
-string
Home hero (logo) image link, relative path is not supported.
-string
heroImage
Darkmode Home hero (logo) image link, relative path is not supported.
-string
Home icon alt text
-Record<string, string> | string
CSS style for home icon
-string
Link of background image, relative path is not supported.
-string
bgImage
Link of darkmode background image, relative path is not supported.
-Record<string, string> | string
The CSS style of the background image.
-boolean
false
Whether Hero is full screen displayed
-Type: ThemeHomeActionOptions[]
interface ThemeHomeActionOptions {
- /**
- * Action name
- */
- text: string;
-
- /**
- * Action link
- */
- link: string;
-
- /**
- * Type of action
- * @default 'default'
- */
- type?: "primary" | "default";
-}
-
Required: No
-Home actions
-Type: (ThemeProjectHomeFeatureOptions |ThemeProjectHomeHighlightOptions)[]
interface ThemeProjectHomeHighlightItem {
- /**
- * Item name, supports HTML string
- */
- title: string;
-
- /**
- * Item description, supports HTML string
- */
- details?: string;
-
- /**
- * Item icon
- *
- * @description image link or icon fontClass are supported
- */
- icon?: string;
-
- /**
- * Item link
- */
- link?: string;
-}
-
-type ThemeProjectHomeFeatureItem = ThemeProjectHomeHighlightItem;
-
-interface ThemeProjectHomeFeatureOptions {
- /**
- * Feature header
- */
- header?: string;
-
- /**
- * Feature section description, supports HTML string
- */
- description?: string;
-
- /**
- * Text color
- */
- color?: string;
-
- /**
- * Feature section image
- */
- image?: string;
-
- /**
- * Feature section image used in darkmode
- *
- * @default image
- */
- imageDark?: string;
-
- /**
- * Feature Background image
- */
- bgImage?: string;
-
- /**
- * Feature Background image used in darkmode
- *
- * @default bgImage
- */
- bgImageDark?: string;
-
- /**
- * Features Background image style
- */
- bgImageStyle?: Record<string, string> | string;
-
- /**
- * Features
- */
- features: ThemeProjectHomeFeatureItem[];
-}
-
-interface ThemeProjectHomeHighlightSection {
- /**
- * Highlight section header, supports HTML string
- */
- header: string;
-
- /**
- * Highlight section description, supports HTML string
- */
- description?: string;
-
- /**
- * Text color
- */
- color?: string;
-
- /**
- * Highlight section image
- */
- image?: string;
-
- /**
- * Highlight section image used in darkmode
- *
- * @default image
- */
- imageDark?: string;
-
- /**
- * Highlight Background image
- */
- bgImage?: string;
-
- /**
- * Highlight Background image used in darkmode
- *
- * @default bgImage
- */
- bgImageDark?: string;
-
- /**
- * Highlight Background image style
- */
- bgImageStyle?: Record<string, string> | string;
-
- /**
- * Highlight section list type
- *
- * @default un-order
- */
- type?: "order" | "un-order" | "no-order";
-
- /**
- * Highlights
- */
- highlights?: ThemeProjectHomeHighlightItem[];
-}
-
Required: No
-Highlights description.
-Type: ThemeProjectHomeFeatureItem[]
interface ThemeProjectHomeFeatureItem {
- /**
- * Item name, supports HTML string
- */
- title: string;
-
- /**
- * Item description, supports HTML string
- */
- details?: string;
-
- /**
- * Item icon
- *
- * @description image link or icon fontClass are supported
- */
- icon?: string;
-
- /**
- * Item link
- */
- link?: string;
-}
-
Required: No
-Features description.
-You can set information for page with the following frontmatter options.
-string
Current page's title. Markdown's first h1 by default.
-string
Current page's short title. Will be used as in navbar, sidebar and breadcrumb.
-string
Current page's description.
-string
FontClass / Image link of the current page icon (recommended).
-Type: Author | boolean
type AuthorName = string;
-
-interface AuthorInfo {
- /**
- * Author name
- */
- name: string;
-
- /**
- * Author website
- */
- url?: string;
-
- /**
- * Author email
- */
- email?: string;
-}
-
-type Author = AuthorName | AuthorName[] | AuthorInfo | AuthorInfo[];
-
Required: No
-Show the author of the current page. If you don't fill it, you will fall back to the default author.
-Tips
-When setting default author in theme options, you can set false
to prevent showing the default author.
boolean
false
Whether the current article is original.
-DateString
YYYY-MM-DD
or YYYY-MM-DD hh:mm:ss
Set the writing time of the current page.
-string | string[]
Set the category of the current page.
-string | string []
Set the label of the current page.
-string
The license information. A license text will be displayed on footer with the license when it's set.
-For more details, please see
boolean | number
false
Sets whether the current article is pinned in the list. When fill in with number, greater ones come before smaller ones.
-boolean | number
false
Sets whether the current article is pinned in the article list in blog theme. When fill in with number, greater ones come before smaller ones.
-boolean
true
Whether to add the article to the article list.
-boolean
true
Whether to add the article to the timeline list.
-string
Current page's image, needs an absolute path.
-string
Current page's banner image, needs an absolute path.
-You can configure page layout by setting the following frontmatter options.
-PageInfo[] | false
Item | -Corresponding Content | -Page frontmatter Value | -
---|---|---|
"Author" |
-Author | -author |
-
"Date" |
-Writing Date | -date |
-
"Category" |
-Category | -category |
-
"Tag" |
-Tags | -tag |
-
"ReadingTime" |
-Expect reading time | -N/A (automatically generated) | -
"Word" |
-Word count | -N/A (automatically generated) | -
"PageView" |
-Visit Number | -pageview (only available with Waline) |
-
Set whether to show page details on the current page
-boolean
Whether display page views.
-Tips
-The pageview feature requires you to have a valid Waline Comment Service config.
-boolean
Whether path navigation is enabled on the current page.
-boolean
Whether path navigation icon is enabled on the current page.
-boolean
false
Whether to exclude the current page from the breadcrumb.
-boolean
Setting it to false
will disable navbar
boolean
Setting it to false
will disable sidebar
number
2
Heading rendering depth.
-boolean
true
Whether index current page in sidebar and catalog.
-number
Page order in sidebar and catalog.
-Sidebar group information used for
string
README.md
Group title.
-string
README.md
Group icon.
-boolean
true
Whether group is collapsible
-boolean
false
Whether Dir is clickable.
-Note
-Setting to true
means setting group link to link of README.md
.
boolean
true
Whether index current dir
-number
Group order in sidebar.
-boolean
Whether to enable comments on the current page.
-boolean
Whether display lastUpdated time.
-boolean
Whether to show edit link.
-boolean
Whether to show contributors.
-Type: AutoLinkOptions | string | false
interface AutoLinkOptions {
- text: string;
- icon: string;
- link: string;
-}
-
Previous article link.
-Type: AutoLinkOptions |string | false
interface AutoLinkOptions {
- text: string;
- icon: string;
- link: string;
-}
-
Next article link.
-boolean | string | HTMLString
Footer content.
-false
to disable the footertrue
to display the default footerFor more details, please see
string | false
Copyright information
-For more details, please see
boolean
true
Whether display the back to top button.
-boolean
Whether display toc
-string
Extra container class.
-string
"Layout"
Page custom layout name.
-You can configure the following options in the frontmatter of the page to control plugin behavior.
-@vuepress/plugin-copyright
number
100
Min words triggering copyright append
-boolean
false
Disable copy
-boolean
false
Disable selection
-@vuepress/plugin-feed
string
The title of the feed item
-string
Description of the feed item
-string
The content of the feed item
-FeedAuthor[] | FeedAuthor
The author of the feed item
-interface FeedAuthor {
- /**
- * Author name
- */
- name?: string;
-
- /**
- * Author email
- */
- email?: string;
-
- /**
- * Author site
- *
- * @description json format only
- */
- url?: string;
-
- /**
- * Author avatar
- *
- * @description json format only
- */
- avatar?: string;
-}
-
FeedContributor[] | FeedContributor
Contributors to feed item
-interface FeedContributor {
- /**
- * Author name
- */
- name?: string;
-
- /**
- * Author email
- */
- email?: string;
-
- /**
- * Author site
- *
- * @description json format only
- */
- url?: string;
-
- /**
- * Author avatar
- *
- * @description json format only
- */
- avatar?: string;
-}
-
string
The identifier of feed item, used to identify the feed item.
-Note
-You should make sure this is globally unique.
-@vuepress/sitemap
"always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never"
"daily"
Page default update frequency. This will override changefreq in Plugin Options.
-boolean
false
Whether exclude the page from sitemap
-number
0.5
Page priority, range from 0
to 1
.
You need to set the lang
option for each language. Even if you are only using a single language, you must set lang
in .vuepress/config.{js,ts}
.
Why setting it?
-To provide the correct locale text, the theme needs to know which language every directory is using.
-import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- // Set language you are using
- lang: "en-US",
-});
-
export default {
- // Set language you are using
- lang: "en-US",
-};
-
import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- locales: {
- "/": {
- // Set language you are using
- lang: "en-US",
- },
- "/zh/": {
- // Set language you are using
- lang: "zh-TW",
- },
- },
-});
-
export default {
- locales: {
- "/": {
- // Set language you are using
- lang: "en-US",
- },
- "/zh/": {
- // Set language you are using
- lang: "zh-TW",
- },
- },
-};
-
locales
is an object whose key is the path prefix of each language, and value is the configuration of this language. The value object can include title
, description
, lang
, etc.
Info
-For details of multiple languages, please see Official Document
You should set the lang
option for each language so that themes and plugins can handle them correctly.
If the locales
objects only contain the "/"
key, the theme will not display the language dropdown menu. When you set multiple keys through locales
(when there are multiple languages), we will display a language dropdown menu in navbar.
Note
-If you need multi-language support for other languages, you can set locales for theme and plugins, this also gives you the ability to customize built-in locales. For details, see
Also submit a PR to all files named locale.ts
or under locale
folder in this repo is welcomed.
Like the Site Config and Theme Config of @vuepress/theme-default
, vuepress-theme-hope
also supports you to set a locale
option in theme options, and set different config for each language.
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- locales: {
- "/": {
- lang: "en-US",
- },
- "/zh/": {
- lang: "zh-TW",
- },
- },
-
- theme: hopeTheme({
- // common config
- // ...
- locales: {
- "/": {
- // config for English
- // ...
- },
- "/zh/": {
- // config for Chinese
- // ...
- },
- },
- }),
-});
-
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- locales: {
- "/": {
- lang: "en-US",
- },
- "/zh/": {
- lang: "zh-TW",
- },
- },
-
- theme: hopeTheme({
- // common config
- // ...
- locales: {
- "/": {
- // config for English
- // ...
- },
- "/zh/": {
- // config for Chinese
- // ...
- },
- },
- }),
-};
-
VuePress mainly stores config and required files through the .vuepress/
folder in the directory.
Info
-For the file structure of VuePress, see
In VuePress, there are three config concepts:
-hopeTheme
functionimport { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // siteConfig here
- // ...
-
- theme: hopeTheme(
- {
- // themeConfig here
- // ...
- },
- {
- // theme behavior options here (optional)
- },
- ),
-});
-
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // siteConfig here
- // ...
-
- theme: hopeTheme(
- {
- // themeConfig here
- // ...
- },
- {
- // theme behavior options here (optional)
- },
- ),
-});
-
The theme provides blog feature via @vuepress/plugin-blog
, and it's not enabled by default.
You can enable blog feature by setting plugins.blog
to true
in theme options.
For instructions, please see Blog Intro.
\\nboolean
true
Whether generate excerpt for page.
\\nstring
The theme provides blog feature via @vuepress/plugin-blog
, and it's not enabled by default.
You can enable blog feature by setting plugins.blog
to true
in theme options.
For instructions, please see
boolean
true
Whether generate excerpt for page.
-string
<!-- more -->
Separator used to split excerpt from page content.
-number
300
Length of excerpt when auto generating.
-Type: (page: Page) => boolean
Default:
-({ frontmatter, filePathRelative }) =>
- frontmatter.article ?? (Boolean(filePathRelative) && !frontmatter.home);
-
Page filter, determine whether a page should be included.
-By default, all the pages generated from Markdown files but not homepage will be included as articles.
-(page: Page) => boolean
filter
optionPage filter, determine whether the plugin should generate excerpt for it.
-(name: string) => string
(name) => name.replace(/ _/g, '-').replace(/[:?*|\\/<>]/g, "").toLowerCase()
Slugify function, used to convert key name which they are register in routes.
-Type: BlogTypeOptions[]
interface BlogTypeOptions {
- /**
- * Unique type name
- */
- key: string;
-
- /**
- * A filter function to determine whether a page should be the type
- */
- filter: (page: Page) => boolean;
-
- /**
- * A custom function to sort the pages
- */
- sorter?: (pageA: Page, pageB: Page) => number;
-
- /**
- * Page path to be registered
- *
- * @default '/:key/'
- */
- path?: string;
-
- /**
- * Frontmatter
- */
- frontmatter?: (localePath: string) => Record<string, string>;
-
- /**
- * Layout name
- *
- * @default 'BlogType'
- */
- layout?: string;
-}
-
-- Default: `[]`
-- Details:
- - [Guide → Article List](../../guide/blog/article.md#other-types-of-articles)
-
-Additional article type.
-
-### article
-
-- Type: `string`
-- Default: `/article/`
-
-Article list route path.
-
-### category
-
-- Type: `string`
-- Default: `/category/`
-
-Category map route path.
-
-### categoryItem
-
-- Type: `string`
-- Default: `/category/:name/`
-
-Category list route path. `:name` will be replaced by category name.
-
-### tag
-
-- Type: `string`
-- Default: `/tag/`
-
-Tag map route path.
-
-### tagItem
-
-- Type: `string`
-- Default: `/tag/:name/`
-
-Tag list route path. `:name` will be replaced by tag name.
-
-### star
-
-- Type: `string`
-- Default: `/star/`
-
-Star article list route path.
-
-### timeline
-
-- Type: `string`
-- Default: `/timeline/`
-
-Timeline list route path.
-
-### hotReload
-
-- Type: `boolean`
-- Default: Whether using `--debug` flag
-
-Whether to enable hot reload in the development server.
-
The theme provide comment support using @vuepress/plugin-comment
, and it passes plugins.comment
in theme options to the plugin.
@vuepress/plugin-comment
currently supports 4 comment services:
Ignore this option if you don't need comment feature.
-For details of each comment service options, please refer to @vuepress/plugin-comment documentation
The theme can append copyright information while copying via @vuepress/plugin-copyright
, and it's not enabled by default.
You can enabled this feature by setting plugins.copyright
to true
in theme options. The default behavior globally enables the plugin and use author and license defined in theme options.
The theme passes plugins.copyright
in theme options as plugin options to @vuepress/plugin-copyright
plugin.
You can pass your own options with plugins.copyright
, here are some common ones:
number
100
Min words triggering copyright append
-boolean
false
Whether enabled globally
-boolean
false
Disable copy
-boolean
false
Disable selection
-string
Canonical hostname with base.
-This is useful when your content are deploying in multiple places.
-Info
-Check copyright plugin documentation
The theme can generate feeds via @vuepress/plugin-feed
, and you need to manually install the plugin before using.
You can enable this feature by setting plugins.feed
to true
in theme options. This default behavior generates RSS format feeds for you.
The theme passes plugins.feed
in theme options as plugin options to @vuepress/plugin-feed
plugin.
You can pass your own options with plugins.feed
, here are some common ones:
boolean
false
Whether to output Atom syntax files.
-boolean
false
Whether output JSON syntax files.
-boolean
false
Whether to output RSS syntax files.
-number
100
Set the maximum number of items in the feed. After all pages are sorted, the first count
items will be intercepted.
If your site has a lot of articles, you may consider this option to reduce feed file size.
-Type: (page: Page)=> boolean
Default:
-({ frontmatter, filePathRelative }) =>
- Boolean(
- frontmatter.feed ??
- frontmatter.article ??
- (filePathRelative && !frontmatter.home),
- );
-
A custom filter function, used to filter feed items.
-(pageA: Page, pageB: Page)=> number
Custom sorter function for feed items.
-The default sorting behavior is by file adding time coming from git (needs @vuepress/plugin-git
).
Info
-Check feed plugin documentation
Use theme plugins through theme
-The theme has some plugins built-in and enables them for you to enhance your experience, you should customize these plugins through theme options.
-Some plugins are required for the theme to work properly, which means you are not allowed to call them with options yourself.
-vuepress-theme-hope
bundles many VuePress plugins and adds support for more VuePress plugin.
vuepress-theme-hope
bundles many VuePress plugins and adds support for more VuePress plugin.
The theme provides plugins
option to pass options to plugins.
Plugin Options Name
-All key names in plugins
option are the camelCase version of the plugin name, with the optional number 2
suffix removed.
For example:
-@vuepress/plugin-copy-code
is controlled by key name copyCode
.@vuepress/plugin-copyright
is controlled by key name copyright
.vuepress-plugin-md-enhance
is controlled by key name mdEnhance
.The following plugins are used internally and can not be disabled:
-@vuepress/plugin-theme-data
The following plugins are enabled by default, and you can disable them:
-@vuepress/plugin-active-header-links
@vuepress/plugin-catalog<Catalog />
component
@vuepress/plugin-copy-code
@vuepress/plugin-external-link-icon
@vuepress/plugin-git
@vuepress/plugin-nprogress
@vuepress/plugin-photo-swipe
@vuepress/plugin-prismjs
@vuepress/plugin-reading-time
@vuepress/plugin-seo
@vuepress/plugin-sitemap
The following plugins are bundled by theme, you can enable them via configuration:
-@vuepress/plugin-blog
@vuepress/plugin-copyright
@vuepress/plugin-comment
These plugins are supported by theme, but you need to install them manually while using:
-@vuepress/plugin-docsearch
@vuepress/plugin-search
@vuepress/plugin-feed
@vuepress/plugin-pwa
@vuepress/plugin-redirect
The theme can enhance Markdown syntax via vuepress-plugin-md-enhance
, and by default, the theme will enable linkCheck and hint feature.
You can set the following options with plugins.mdEnhance
in theme options.
The theme passes plugins.mdEnhance
in theme options as plugin options to vuepress-plugin-md-enhance
plugin.
boolean
false
Whether to support full GFM syntax.
-Note
-For full GFM syntax, see GFM
Honestly, we do not 100% implement GFM, we only supply its common syntax.
-Some of the behavior might be different, for example to support Vue syntax, we are not disallowing <script>
tags. But in most situation, the behavior should be same.
boolean
false
Whether to enable hint box including
-boolean
false
Whether to enable v-pre wrapper.
-boolean
false
Whether convert \n
in paragraphs into <br>
s
boolean
false
Whether convert URL-like text into links
-boolean
false
Whether to enable gfm alerts.
-boolean
false
Whether to enable tabs.
-boolean
false
Whether to enable codetabs.
-boolean
false
Whether to enable custom align.
-Type: AttrsOptions | boolean
interface AttrsOptions {
- /**
- * left delimiter
- *
- * @default '{'
- */
- left?: string;
-
- /**
- * right delimiter
- *
- * @default '}'
- */
- right?: string;
-
- /**
- * allowed attributes
- *
- * @description An empty list means allowing all attribute
- *
- * @default []
- */
- allowed?: (string | RegExp)[];
-}
-
Default: false
Details:
-Whether to enable attribute customize support.
-boolean
false
Whether to enable the upper format support.
-boolean
false
Whether to enable the lower corner format support.
-boolean
false
Whether to enable footnote format support.
-boolean
false
Whether to enable mark support.
-boolean
false
Whether enable figure support.
-boolean
false
Whether to lazy load every image in page in native way.
-ImageMarkOptions | boolean
false
Whether enable image mark support.
-interface ImageMarkOptions {
- /** lightmode only IDs */
- light?: string[];
- /** darkmode only IDs */
- dark?: string[];
-}
-
boolean
false
Whether enable image size support.
-boolean
false
Whether enable obsidian image size support.
-TaskListOptions | boolean
false
Whether to enable tasklist format support. You can pass an object to config task list.
-interface TaskListOptions {
- /**
- * Whether disable checkbox
- *
- * @default true
- */
- disabled?: boolean;
-
- /**
- * Whether use `<label>` to wrap text
- *
- * @default true
- */
- label?: boolean;
-}
-
KatexOptions & { copy?: boolean; mhchem?: boolean } | boolean
false
Whether to enable
In particular, you can enable the copy and mhchem extensions with katex.copy: true
and katex.mhchem: true
.
Please see Katex Docs
MathJaxOptions | boolean
false
Whether to enable
Please see source code
Type: IncludeOptions | boolean
interface IncludeOptions {
- /**
- * handle include filePath
- *
- * @default (path) => path
- */
- resolvePath?: (path: string, cwd: string) => string;
-
- /**
- * Whether deep include files in included Markdown files
- *
- * @default false
- */
- deep?: boolean;
-}
-
Default: false
Whether to enable Markdown import support. You can pass in a function for path resolution.
-boolean
false
Whether to enable component support
-boolean
false
Whether to enable chart support
-boolean
false
Whether to enable ECharts support
-boolean
false
Whether to enable flowchart support
-MermaidConfig | boolean
false
Whether to enable Mermaid
MarkdownItPlantumlOptions[] | boolean
false
Whether to enable plantuml
boolean
false
Whether to enable spoiler support.
-Type: StylizeOptions | false
interface StylizeResult {
- /**
- * Tag name
- */
- tag: string;
-
- /**
- * Attributes settings
- */
- attrs: Record<string, string>;
-
- /**
- * Tag content
- */
- content: string;
-}
-
-interface StylizeItem {
- /**
- * Inline token matcher
- */
- matcher: string | RegExp;
-
- /**
- * Content Replacer
- */
- replacer: (options: {
- tag: string;
- content: string;
- attrs: Record<string, string>;
- env?: MarkdownEnv;
- }) => StylizeResult | void;
-}
-
-type StylizeOptions = StylizeItem[];
-
Default: false
Stylize inline tokens to create snippet you want.
-Type: PlaygroundGlobalOptions
interface PlaygroundCodeConfig {
- /**
- * Code block extension
- *
- * @description It's based on filename, not code fence language
- */
- ext: string;
-
- /** Code block content */
- content: string;
-}
-
-interface PlaygroundData {
- /** Title of Playground */
- title?: string;
-
- /**
- * Import map file name
- *
- * @default "import-map.json"
- */
- importMap?: string;
-
- /** Playground files info */
- files: Record<
- /** File name */
- string,
- /** File detail */
- PlaygroundCodeConfig
- >;
-
- /**
- * Playground settings
- *
- * @description It's parsed result of json content after setting directive
- */
- settings: Record<string, unknown>;
-
- /** hash key based on playground content */
- key: string;
-}
-
-interface PlaygroundOptions {
- /** Playground container name */
- name: string;
-
- /**
- * Playground component name
- *
- * @default "Playground"
- */
- component?: string;
-
- /**
- * Props getter
- */
- propsGetter: (data: PlaygroundData) => Record<string, string>;
-}
-
-interface TSPresetPlaygroundOptions extends CompilerOptions {
- /**
- * external playground service url
- *
- * @default "https://www.typescriptlang.org/play"
- */
- service?: string;
-}
-
-interface VuePresetPlaygroundOptions {
- /**
- * external playground service url
- *
- * @default "https://sfc.vuejs.org/"
- */
- service?: string;
-
- /**
- * Whether to use dev version
- *
- * @default false
- */
- dev?: boolean;
-
- /**
- * Whether to enable SSR
- *
- * @default false
- */
- ssr?: boolean;
-}
-
-interface UnoPresetPlaygroundOptions {
- /**
- * external playground service url
- *
- * @default "https://unocss.dev/play"
- */
- service?: string;
-}
-
-type BuiltInPlaygroundPreset = "ts" | "vue" | "unocss";
-
-interface PlaygroundGlobalOptions {
- /** Playground presets */
- presets: (BuiltInPlaygroundPreset | PlaygroundOptions)[];
- /** Playground config */
- config?: {
- ts?: TSPresetPlaygroundOptions;
- vue?: VuePresetPlaygroundOptions;
- unocss?: UnoPresetPlaygroundOptions;
- };
-}
-
Required: No
-Playground options.
-Type: boolean
Default: false
Whether to enable vue playground support.
-boolean
false
Whether to enable sandpack playground support.
-CodeDemoGlobalOptions | boolean
false
Whether to enable code demo support.
-string[]
CodePen, JsFiddle requires an external JS library for dating.
-string[]
CodePen, JsFiddle need an external CSS library for dating.
-Warning
-The above two options are only used by third-party code demo service, you need to import these libraries in head
.
Type: RevealJsOptions | boolean
type RevealJsPlugin = "highlight" | "math" | "search" | "notes" | "zoom";
-
-type RevealJsTheme =
- | "auto"
- | "beige"
- | "black"
- | "blood"
- | "league"
- | "moon"
- | "night"
- | "serif"
- | "simple"
- | "sky"
- | "solarized"
- | "white";
-
-/**
- * reveal.js options
- */
-interface RevealJsOptions {
- /**
- * reveal.js plugins
- *
- * @default []
- */
- plugins?: RevealJsPlugin[];
-
- /**
- * reveal.js themes
- *
- * @default ["auto"]
- */
- themes?: RevealJsTheme[];
-}
-
Default: false
Whether to enable slides support. You can pass an option to control plugins and themes to import.
-Info
-Check
Controls @vuepress/plugin-catalog
which provides catalog pages generation.
No extra config is required by default. Se it to false
if you don't need it.
Check catalog plugin docs
Controls @vuepress/plugin-back-to-top
which provides a back to top button.
No extra config is required by default. Se it to false
if you don't need it.
Check back-to-top plugin docs
Controls vuepress-plugin-components
, providing a set of components for Markdown.
Available component which can be used in markdown files are:
-"ArtPlayer"
"Badge"
"BiliBili"
"CodePen"
"FontIcon"
"PDF"
"Share"
"StackBlitz"
"VPBanner"
"VPCard"
"VidStack"
"SiteInfo"
"XiGua"
You can set plugins.components.components
with an array of components you want, by default it will be ["Badge"]
.
Also, you can set plugins.components.rootComponents
to enable some root components, such as Notice.
Check
Controls @vuepress/plugin-copy-code
which provides a code copy button on desktop.
No extra config is required by default. Se it to false
if you don't need it.
Check copy-code plugin docs
Controls whether enable @vuepress/external-link-icon
or not, only accept boolean value.
Controls @vuepress/plugin-git
which provides page meta via Git.
The plugin is only enabled in build mode by default to improve devServer performance. You can manually set a boolean to control the plugin state, or provide plugin options.
-Check git plugin docs
Controls @vuepress/plugin-links-check
which provides markdown links check. You can manually set a boolean to control the plugin state, or provide plugin options.
Check links-check plugin docs
Controls @vuepress/plugin-nprogress
which provides a progress bar through nprogress
when switching pages .
You can set false
to disable it.
Controls @vuepress/plugin-prismjs
which provides code block highlighting via prismjs
.
You can set false
to disable it and highlight code blocks yourself or with other plugins.
PrismjsTheme
"one-light"
Prism.js theme used in lightmode.
-PrismjsTheme
"one-dark"
Prism.js theme used in darkmode.
-Controls @vuepress/plugin-photo-swipe
which provides picture browsing feature.
No extra config is required by default. Se it to false
if you don't need it.
Check photo-swipe plugin docs
Controls @vuepress/plugin-pwa
which provides PWA support.
You can set true
to directly enable it, or provide plugin options.
Check pwa plugin docs
Controls @vuepress/plugin-reading-time
which generates words count and estimated reading time for pages.
number
300
Reading speed (words per minute)
-Check reading-time plugin docs
Controls @vuepress/plugin-seo
which provides search engine enhancements.
No extra config is required by default. Se it to false
if you don't need it.
Check seo plugin docs
Controls @vuepress/plugin-sitemap
which provides sitemap.
No extra config is required by default. Se it to false
if you don't need it.
Check sitemap plugin docs
The theme adds built-in support for the following three plugins:
-Only 1 of the 3 can be enabled at the same time, and the priority is docsearch
> searchPro
> search
.
Options which will be passed to @vuepress/plugin-docsearch
, for details, see DocSearch plugin documentation
Note
-You need to install @vuepress/plugin-docsearch
manually.
You can set it to true
to enable it directly, or an object to configure will be passed to vuepress-plugin-search-pro
.
For details, see
Note
-You need to install vuepress-plugin-search-pro
manually.
You can set it to true
to enable it directly, or an object to configure will be passed to @vuepress/plugin-search
.
For details, see search plugin documentation
Note
-You need to install @vuepress/plugin-search
manually.
You can change the theme's styles in .vuepress/styles
by setting variable values in the config.scss
and palette.scss
files.
Also, you can add your own styles in .vuepress/styles/index.scss
.
You can change the theme's styles in .vuepress/styles
by setting variable values in the config.scss
and palette.scss
files.
Also, you can add your own styles in .vuepress/styles/index.scss
.
config.scss
is used for pure variable config, the following are supported variables and default values.
Responsive breakpoints:
-$pc
$laptop
$pad
$tablet
$mobile
Theme Colors:
-$theme-colors
: theme colors you want to use besides primary theme colorCode block (Only available with shiki):
-$code-bg-color
: background color for code blocks$code-color
: font color for code blocksColor list: $colors
// update pc breakpoint
-$pc: 1920px;
-
-/* Content Class */
-$content-class: ".theme-hope-content";
-
-/* responsive breakpoints */
-
-// wide screen
-$pc: 1440px !default;
-
-// desktop
-$laptop: 1280px !default;
-
-// narrow desktop / iPad
-$pad: 959px !default;
-
-// wide mobile
-$tablet: 719px !default;
-
-// narrow mobile
-$mobile: 419px !default;
-
-/* Color list */
-$colors: #cf1322, #fa541c, #f39c12, #2ecc71, #25a55b, #10a5a5, #096dd9, #aa6fe9,
- #eb2f96 !default;
-
-/* Code Block */
-// only available with shiki highlighter
-$code-color: (
- light: #383a42,
- dark: #abb2bf,
-) !default;
-$code-bg-color: (
- light: #ecf4fa,
- dark: #282c34,
-) !default;
-
palette.scss
is used for CSS variable injecting, the following are supported configurations and default values.
Info
-All variables here (including your newly added variables) will be converted to kebab-case format and injected as CSS variables.
-For example $theme-color
will be injected as --theme-color
, and $backgroundColor
will be injected as --background-color
.
For all colors, if they are the same in light mode and dark mode, you can set them directly; otherwise, please set a Sass variable of type Map to give the color values in light and dark modes respectively.
-Available color variables:
-$theme-color
: theme color$text-color
: text color$bg-color
: background color$bg-color-secondary
: another "light" background color$bg-color-tertiary
: another "lighter" background color$border-color
: border color$box-shadow
: shadow color using on elements$card-shadow
: shadow color using on cards// set theme color to red
-$theme-color: red;
-
-// setting border color with a darker value
-$border-color: (
- light: #ddd,
- dark: #444,
-);
-
$theme-color: #3eaf7c !default;
-$text-color: (
- light: #2c3e50,
- dark: #9e9e9e,
-) !default;
-$bg-color: (
- light: #fff,
- dark: #0d1117,
-) !default;
-$bg-color-secondary: (
- light: #f8f8f8,
- dark: #161b22,
-) !default;
-$bg-color-tertiary: (
- light: #efeef4,
- dark: #21262c,
-) !default;
-$border-color: (
- light: #eaecef,
- dark: #30363d,
-) !default;
-
-// shadow
-$box-shadow: (
- light: #f0f1f2,
- dark: #282a32,
-) !default;
-$card-shadow: (
- light: rgb(0 0 0 / 15%),
- dark: rgb(0 0 0 / 30%),
-) !default;
-
-// constants
-$black: (
- light: #000,
- dark: #fff,
-);
-$grey-dark: (
- light: #666,
- dark: #999,
-);
-$grey-light: (
- light: #999,
- dark: #666,
-);
-$white: (
- light: #fff,
- dark: #000,
-);
-$grey-darker: (
- light: #333,
- dark: #bbb,
-);
-$grey-lighter: (
- light: #bbb,
- dark: #333,
-);
-
Available layout variables:
-Navbar:
-$navbar-height
: navbar height$navbar-horizontal-padding
: navbar horizontal padding$navbar-vertical-padding
: navbar vertical padding$navbar-mobile-height
: navbar height on mobile devices$navbar-mobile-horizontal-padding
: navbar horizontal padding on mobile$navbar-mobile-vertical-padding
: navbar vertical padding on mobileSidebar:
-$sidebar-width
: sidebar width$sidebar-mobile-width
: sidebar width on mobileContent:
-$content-width
: width of main content$home-page-width
: width of homepage contentFonts:
-$font-family
: font family used on normal text$font-family-heading:
font family used on heading elementsCode:
-$font-family-mono
: font family used on code$line-numbers-width
: width of line number in code blocksTransition:
-$color-transition
: transition used on colors$transform-transition
: transition used on transform animation// update navbar height on mobile
-$navbar-mobile-height: 3.5rem;
-
-// Override default font
-$font-family: 'Georgia, -apple-system, "Nimbus Roman No9 L", "PingFang SC", "Hiragino Sans GB", sans-serif';
-
/* layout */
-// navbar
-$navbar-height: 3.75rem !default;
-$navbar-horizontal-padding: 1.5rem !default;
-$navbar-vertical-padding: 0.7rem !default;
-$navbar-mobile-height: 3.25rem !default;
-$navbar-mobile-horizontal-padding: 1rem !default;
-$navbar-mobile-vertical-padding: 0.5rem !default;
-
-// sidebar
-$sidebar-width: 18rem !default;
-$sidebar-mobile-width: 16rem !default;
-
-// content
-$content-width: 780px !default;
-$home-page-width: 1160px !default;
-
-// font
-$font-family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", STHeiti, "Microsoft YaHei", SimSun, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"' !default;
-$font-family-heading: $font-family !default;
-
-// code
-$font-family-mono: 'Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace' !default;
-$line-numbers-width: 2.5rem !default;
-
-// transition
-$color-transition: "0.3s ease" !default;
-$transform-transition: "0.3s ease" !default;
-
Everything filling in this will be parsed to standard CSS and then injected after theme and plugins styles.
-So you can add new styles or override styles here:
-// make site name in navbar italic
-.site-name {
- font-style: italic;
-}
-
The following options control the appearance of the theme. You don't need to pay attention to them in most cases, they are only provided for a small amount of users with needs.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/config/theme/appearance.html.vue b/docs/theme/src/.vuepress/.temp/pages/config/theme/appearance.html.vue deleted file mode 100644 index 15d5266..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/config/theme/appearance.html.vue +++ /dev/null @@ -1,81 +0,0 @@ -The following options control the appearance of the theme. You don't need to pay attention to them in most cases, they are only provided for a small amount of users with needs.
- -Warning
-These options are only valid when setting directly under the theme options, setting them in each language as no effect.
-Type: FontIconAssets
type Link =
- | `/${string}`
- | `//${string}`
- | `http://${string}`
- | `https://${string}`;
-
-type BuiltInFontIcon = "iconify" | "fontawesome" | "fontawesome-with-brands";
-
-type FontIconAssets = BuiltInFontIcon | Link | (BuiltInFontIcon | Link)[];
-
Required: No
-Details:
Link of font icon asset, 'iconify'
'fontawesome'
and 'fontawesome-with-brands'
keywords are supported.
"switch" | "toggle" | "auto" | "enable" | "disable"
"switch"
Dark mode support options:
-"switch"
: switch between dark, light and auto"toggle"
: toggle between lightmode and darkmode"auto"
: Automatically decide whether to apply dark mode based on user device's color-scheme or current time"enable"
: only dark mode"disable"
: disable dark modeNote
-If you don't need this feature, set darkmode: "disable"
to disable it.
boolean
false
Whether show the "full screen" button.
-boolean
false
Whether enable pure mode.
-Tips
-Enabling this will disable some of the fancy styles.
-Useful when you want to provide "A pure document site".
-boolean
true
Whether display print icon in desktop mode.
-string
Prefix of icon FontClass, usually, it can be automatically set by the theme.
-Caution
\\nThese options are important and require you to configure them correctly.
\\nCaution
-These options are important and require you to configure them correctly.
-string
Domain which the site will be deployed to.
-Tips
-It should contain full protocol (e.g. https://example.com
).
Type: Author
type AuthorName = string;
-
-interface AuthorInfo {
- /**
- * Author name
- */
- name: string;
-
- /**
- * Author website
- */
- url?: string;
-
- /**
- * Author email
- */
- email?: string;
-}
-
-type Author = AuthorName | AuthorName[] | AuthorInfo | AuthorInfo[];
-
Required: No
-Global default author.
-string
The default license of site.
-string
Site favicon.
-Type: NavbarConfig
interface TextItemOptions {
- /**
- * Text of item
- */
- text: string;
-
- /**
- * Icon of item
- */
- icon?: string;
-
- /**
- * Aria label of item
- */
- ariaLabel?: string;
-}
-
-interface AutoLinkOptions extends TextItemOptions {
- /**
- * link of item
- */
- link: string;
-
- /**
- * Rel of `<a>` tag
- */
- rel?: string;
-
- /**
- * Target of `<a>` tag
- */
- target?: string;
-
- /**
- * Regexp mode to be active
- */
- activeMatch?: string;
-}
-
-interface NavGroup<T> extends TextItemOptions {
- /**
- * Link prefix of current group
- */
- prefix?: string;
-
- /**
- * Link of current group
- */
- link?: string;
-
- /**
- * Children of current group
- */
- children: T[];
-}
-
-type NavbarItem = AutoLinkOptions;
-type NavbarGroup = NavGroup<NavbarGroup | NavbarItem | string>;
-type NavbarConfig = (NavbarItem | NavbarGroup | string)[];
-
Details:
Navbar config
-Type: SidebarConfig
interface TextItemOptions {
- /**
- * Text of item
- */
- text: string;
-
- /**
- * Icon of item
- */
- icon?: string;
-
- /**
- * Aria label of item
- */
- ariaLabel?: string;
-}
-
-interface AutoLinkOptions extends TextItemOptions {
- /**
- * link of item
- */
- link: string;
-
- /**
- * Rel of `<a>` tag
- */
- rel?: string;
-
- /**
- * Target of `<a>` tag
- */
- target?: string;
-
- /**
- * Regexp mode to be active
- */
- activeMatch?: string;
-}
-
-type SidebarPageItem = AutoLinkOptions;
-
-interface SidebarGroupItem extends TextItemOptions {
- /**
- * Link prefix of current group
- */
- prefix?: string;
-
- /**
- * Link of current group
- */
- link?: string;
-
- /**
- * Whether current group is collapsible
- *
- * @default false
- */
- collapsible?: boolean;
-
- /**
- * Children of current group
- */
- children: (
- | SidebarPageItem
- | SidebarGroupItem
- | SidebarStructureItem
- | string
- )[];
-}
-
-interface SidebarStructureItem extends TextItemOptions {
- /**
- * Link prefix of current group
- */
- prefix?: string;
-
- /**
- * Link of current group
- */
- link?: string;
-
- /**
- * Whether current group is collapsible
- *
- * @default false
- */
- collapsible?: boolean;
-
- children: "structure";
-}
-
-type SidebarItem =
- | SidebarPageItem
- | SidebarGroupItem
- | SidebarStructureItem
- | string;
-
-type SidebarArrayConfig = SidebarItem[];
-
-type SidebarObjectConfig = Record<
- string,
- SidebarArrayConfig | "structure" | false
->;
-
-type SidebarConfig = SidebarArrayConfig | SidebarObjectConfig;
-
Details:
Sidebar config
-Record<string, ThemeLocaleOptions>
I18n config of the theme, where you can set options for each language separately.
-Record<string, string>
Extra locales for the site, where key is the language name and value is the site path, :route
will be replaced by current route path.
boolean
--debug
flagWhether to enable hot reload in the devServer.
-Tips
-Normally, you will expect:
-In order to achieve this expectation, the theme needs to skip some time-consuming operations on the devServer, and it needs to skip some time-consuming functions that are triggered by page modifications on the devServer to improve the speed of project startup and hot update. At the same time, because some modifications will change the underlying raw data of VuePress, these modifications will cause the web page refresh and reload the entire VuePress application. In order to avoid frequent page reloads (i.e.: Page refresh is triggered, and you are getting a blank screen for a few seconds) when modifying Markdown, the theme disables some features on the devServer.
-By default, devServer has the following limitations:
-Enabling it means you accept that every modification will trigger some expensive recalculations and the whole application will restart, which usually results refreshing the page and a few seconds of blank screen in environments with weak performance.
-hopeTheme()
accepts an optional second argument, which is the behavior option. The behavior option controls the behavior of the theme.
The behavior option can also accept a boolean value:
\\nfalse
: options set tofalse
with false
valuetrue
: { check: true, compact:true, custom: false, debug: false }
hopeTheme()
accepts an optional second argument, which is the behavior option. The behavior option controls the behavior of the theme.
The behavior option can also accept a boolean value:
-false
: options set tofalse
with false
valuetrue
: { check: true, compact:true, custom: false, debug: false }
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // siteConfig here
- // ...
-
- theme: hopeTheme(
- {
- // themeConfig here
- // ...
- },
- {
- // theme behavior options here (optional)
- },
- ),
-});
-
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // siteConfig here
- // ...
-
- theme: hopeTheme(
- {
- // themeConfig here
- // ...
- },
- {
- // theme behavior options here (optional)
- },
- ),
-});
-
boolean
true
Whether to perform additional checks.
-Checks include runtime checks, and frontmatter checks. Incompatible values will be warned.
-Note
-This option will be reverted to false
as default value in stable version.
boolean
true
Whether to compact historical versions (v1 the latest version and v2 beta versions).
-Note
-This option will be reverted to false
as default value in stable version.
boolean
false
Whether enable customization support by importing components through alias.
-By default, the theme will run on performance mode, which all files are bundled and imported directly.
-If you want to customize theme by overriding components and layouts, set this option to true
and the theme will load components and layouts with @theme-hope
alias.
boolean
false
Whether running under debug mode.
-Note
-This is just a hack by setting app.env.isDebug
to true
.
You can also add --debug
flag while running vuepress dev
or vuepress build
to enable debug mode. (Recommended)
The following options control features provided by theme.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/config/theme/feature.html.vue b/docs/theme/src/.vuepress/.temp/pages/config/theme/feature.html.vue deleted file mode 100644 index 5c20494..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/config/theme/feature.html.vue +++ /dev/null @@ -1,249 +0,0 @@ -The following options control features provided by theme.
- -The theme adds blog feature using @vuepress/plugin-blog
To enable blog plugin and use default options, you can set plugins.blog
to true
in theme options.
Warning
-The following options will have NO effects unless you enable blog plugin.
-For details, see
string
author
Blogger name.
-string
logo
Blogger avatar.
-string
Motto, slogan or a short description.
-string
Personal introduction address of the blogger.
-Note
-Visitors can click on the avatar or name in "Blogger Information" to enter the personal introduction page.
-Record<string, string | [string, string]>
Set social links.
-If the social media icon is available below, you can set MediaName: MediaLink
directly.
Otherwise, you should pass in a tuple MediaName: [MediaLink , MediaSvgIconString or MediaSvgIconPath]
,
The second element in the tuple must be a valid SVG string or a full path of an existing SVG file.
-Available Social Media
-The following social medias has built-in icons:
-"CoolApk"
"Discord"
"Douban"
"Facebook"
"Instagram"
"Kook"
"Line"
"Messenger"
"QQ"
"Qzone"
"Reddit"
"Skype"
"SnapChat"
"Soul"
"Telegram"
"Tieba"
"Tumblr"
"Twitter"
"VK"
"Wechat"
"Weibo"
"Whatsapp"
"YY"
"Bitbucket"
"Dingding"
"Dribbble"
"Email"
"Evernote"
"Gitee"
"GitHub"
"Gitlab"
"Gmail"
"KDocs"
"Lark"
"Linkedin"
"Pocket"
"QQDocs"
"WechatWork"
"AFDian"
"Baidu"
"Bangumi"
"DuiTang"
"Flipboard"
"HuaBan"
"Pinterest"
"Pixiv"
"Rss"
"WechatMP"
"XiaoHongShu"
"Zhihu"
"163Music"
"5Sing"
"Kugou"
"Kuwo"
"QQMusic"
"SoundCloud"
"XiMaLaYa"
"AcFun"
"BiliBili"
"Douyin"
"Douyu"
"HuoShan"
"HuYa"
"iQiYi"
"KuaiShou"
"Nico"
"QQVideo"
"Twitch"
"WechatCh"
"Weishi"
"Youku"
"Youtube"
"115"
"360Yun"
"AliDrive"
"AliPay"
"BaiduDisk"
"BattleNET"
"IdleFish"
"Paypal"
"Steam"
"WechatPay"
"mobile" | "none" | "always"
"mobile"
Whether to show blogger information in the sidebar
-"mobile"
: Show in sidebar in mobile view"always"
: Always show in the sidebar"none"
: Never show in the sidebarstring
"Yesterday once more"
Text on the top of timeline page.
-number
10
Article number per page
-ArticleInfo[]
["Author", "Original", "Date", "PageView", "Category", "Tag", "ReadingTime"]
Article info displayed in article list
-Available values for ArticleInfo
:
"Author"
"Category"
"Date"
"Original"
"Tag"
"ReadingTime"
"Word"
Limitation
-ReadingTime and Word are not available in devServer by default,
For details, see
Note
-You can only set this option directly under theme options, setting it in each locale has NO effect.
-boolean
false
Whether to encrypt globally.
-string | string []
Admin password with the highest authority, you can set multiple ones by using array.
-Record <string, string | string []>
The encryption configuration is an object with a key name matching the path and a key-value corresponding to a password that accepts a string or an array of strings.
-{
- // This will encrypt the entire guide directory and both passwords will be available
- "/guide/": ["1234", "5678"],
- // this will only encrypt /config/page.html
- "/config/page.html": "1234"
-}
-
You can add the following options to locales[localePath]
in theme options to customize the theme's multilingual options.
interface ThemeLocaleData {
- /**
- * Current lang code
- */
- lang: string;
-
- /**
- * Outlook
- */
- outlookLocales: {
- /**
- * Theme Color
- */
- themeColor: string;
-
- /**
- * Theme mode
- */
- darkmode: string;
-
- /**
- * Fullscreen text
- */
- fullscreen: string;
- };
-
- /**
- * Blog
- */
- blogLocales: {
- /** 文章文字 */
- article: string;
- /** 文章列表文字 */
- articleList: string;
- /** 分类文字 */
- category: string;
- /** 标签文字 */
- tag: string;
- /** 时间轴文字 */
- timeline: string;
- /** 时间轴标题文字 */
- timelineTitle: string;
- /** 全部文字 */
- all: string;
- /** 个人介绍 */
- intro: string;
- /** 星标文章 */
- star: string;
- /** 空文字 */
- empty: string;
- };
-
- /**
- * Pagination
- */
- paginationLocales: {
- /**
- * Previous page button label text
- */
- prev: string;
-
- /**
- * Next page button label text
- */
- next: string;
-
- /**
- * Navigation hint label text
- */
- navigate: string;
-
- /**
- * Navigation button label text
- */
- action: string;
-
- /**
- * Error text when invalid page number
- *
- * @description `$page` will be replaced by total page number automatically
- */
- errorText: string;
- };
-
- /**
- * Encrypt
- */
- encryptLocales: {
- /**
- * Aria label for encrypt icon
- */
- iconLabel: string;
-
- /**
- * Password placeholder
- */
- placeholder: string;
-
- /**
- * Whether remember password
- */
- remember: string;
-
- /**
- * Password error hint
- */
- errorHint: string;
- };
-
- /**
- * Navbar
- */
- navbarLocales: {
- /**
- * Aria label of of the language selection dropdown
- */
- selectLangAriaLabel: string;
-
- /**
- * Language name of current locale
- */
- langName: string;
- };
-
- /**
- * Page meta
- */
- metaLocales: {
- /**
- * Author label text
- */
- author: string;
-
- /**
- * Writing date label text
- */
- date: string;
-
- /**
- * Label text marked as original
- */
- origin: string;
-
- /**
- * Page views label text
- */
- views: string;
-
- /**
- * Tag label text
- */
- tag: string;
-
- /**
- * Category label text
- */
- category: string;
-
- /**
- * Expect reading time label text
- */
- readingTime: string;
-
- /**
- * Words label Text
- */
- words: string;
-
- /**
- * Table of contents
- */
- toc: string;
-
- /**
- * Previous link
- */
- prev: string;
-
- /**
- * Next link
- */
- next: string;
-
- /**
- * last updated text
- */
- lastUpdated: string;
-
- /**
- * Contributors text
- */
- contributors: string;
-
- /**
- * Edit link text
- */
- editLink: string;
- };
-
- routeLocales: {
- /**
- * Skip to main content
- */
- skipToContent: string;
-
- /**
- * 404 page title
- */
- notFoundTitle: string;
-
- /**
- * 404 page msgs
- */
- notFoundMsg: string[];
-
- /**
- * Back to homepage
- */
- home: string;
-
- /**
- * Back to last page
- */
- back: string;
-
- /**
- * screen reader only message in `<ExternalLinkIcon>`
- */
- openInNewWindow: string;
- };
-}
-
Meanwhile, some i18n options are controlled by plugins, including:
-plugins.comment.walineLocales
plugins.copyCode.locales
plugins.copyright.locales
plugins.photoSwipe.locales
plugins.pwa.locales
You can check theme docs' config
The following options control theme layout.
- -For related guide, please see
NavbarConfig | false
false
Navbar config
-Type: NavbarLayoutOptions
/**
- * Built-in Navbar component
- */
-type NavbarComponent =
- | "Brand"
- | "Links"
- | "Language"
- | "Search"
- | "Outlook"
- | "Repo";
-
-/**
- * Navbar layout options
- */
-interface NavbarLayoutOptions {
- start?: (NavbarComponent | string)[];
- center?: (NavbarComponent | string)[];
- end?: (NavbarComponent | string)[];
-}
-
Default: { start: ["Brand"], center: ["Links"], end: ["Language", "Repo", "Outlook", "Search"] }
Customize navbar layout.
-string
Navbar logo, should be absolute path relative to .vuepress/public
folder.
string
logo
Navbar logo in darkmode, should be absolute path relative to .vuepress/public
folder.
string
$siteLocale.title
Navbar title, you can set it to an empty string to hide it.
-string
Repository link
-boolean
true
Whether display repo link in navbar.
-string
Repository aria label of navbar.
-Note
-The theme can recognize links of GitHub, Gitlab, Gitee and Bitbucket.
-"always" | "mobile" | "none"
"mobile"
Whether to hide navbar when scrolling down.
-boolean
true
Whether hide site title on mobile.
-For guide, see
SidebarConfig | "structure" | false
"structure"
Sidebar Config.
-Type: SidebarSorter
interface SidebarFileInfo {
- type: "file";
- filename: string;
-
- title: string;
- order: number | null;
- path?: string | null;
-
- frontmatter: ThemeNormalPageFrontmatter;
- pageData: ThemePageData;
-}
-
-interface SidebarDirInfo {
- type: "dir";
- dirname: string;
- children: SidebarInfo[];
-
- title: string;
- order: number | null;
-
- groupInfo: {
- icon?: string;
- collapsible?: boolean;
- link?: string;
- };
-
- frontmatter: ThemeNormalPageFrontmatter | null;
- pageData: ThemePageData | null;
-}
-
-type SidebarInfo = SidebarFileInfo | SidebarDirInfo;
-
-type SidebarSorterKeyword =
- | "readme"
- | "order"
- | "date"
- | "date-desc"
- | "filename"
- | "title";
-
-type SidebarSorterFunction = (
- infoA: SidebarInfo,
- infoB: SidebarInfo,
-) => number;
-
-type SidebarSorter =
- | SidebarSorterFunction
- | SidebarSorterFunction[]
- | SidebarSorterKeyword
- | SidebarSorterKeyword[];
-
Default: ["readme", "order", "title", "filename"]
Structure sidebar sorter.
-You can:
-Available keywords are:
-readme
: README.md
or readme.md
firstorder
: positive order first with its value ascending, negative order last with its value descendingdate
: sort by date ascendingdate-desc
: sort by date descendingtitle
: alphabetically sort by titlefilename
: alphabetically sort by filenamenumber
2
Nested headings depth
-boolean
true
Whether enable route navigation globally.
-boolean
true
Whether show icons in route navigation
-boolean
true
Whether show prevLink in bottom.
-boolean
true
Whether show nextLink in bottom.
-boolean
true
Whether display icon besides page title
-ArticleInfo[] | false
["Author", "Original", "Date", "Category", "Tag", "ReadingTime"]
Article information. The order of the items decides the display order. Fill in false
to disable it.
Available items in ArticleInfo
:
"Author"
: author"Date"
: writing date"Original"
: is original"Category"
: category"Tag"
: tags"ReadingTime"
: expect reading time"Word"
: word number for the article"PageView"
: pageviewsboolean
true
Whether to show "Last Updated" or not.
-boolean
true
Whether to show "Contributors" or not.
-boolean
true
Whether to show "Edit this page" or not.
-string
Pattern of edit link. While :repo
:branch
:path
will be automatically replaced by docsRepo
docsBranch
and docsDir + filePath
。
Note
-The theme provides built-in support for GitHub, Gitlab, Gitee and Bitbucket.
-string
repo
The repo of your docs
-string
"main"
The branch of your docs
-string
""
Docs dir location in repo
-string
The default content for the footer, can accept HTMLString.
-string | false
"Copyright © <author>"
The default copyright info, set it to false
to disable it by default.
boolean
false
Whether to display footer by default.
-string
Home path of current locale, used as the link of back-to-home and navbar logo.
-boolean
false
Whether to use RTL layout.
-boolean
true
Whether show toc list.
-We always welcome everyone to contribute! Here is a guide for you.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/contribution.html.vue b/docs/theme/src/.vuepress/.temp/pages/contribution.html.vue deleted file mode 100644 index a5e767c..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/contribution.html.vue +++ /dev/null @@ -1,126 +0,0 @@ -We always welcome everyone to contribute! Here is a guide for you.
- -You should have Node.js and Git installed, and enabled corepack with corepack enable
.
Use Git to clone the project to the local, and install dependencies:
-git clone git@github.com:vuepress-theme-hope/vuepress-theme-hope.git
-pnpm i
-
The project is a monorepo, managed by pnpm.
-docs
: place the documentation of each plugin and theme, each subdirectory is a projectdemo
: theme demo projectpackages
: place the code of each plugin and theme, each subdirectory is a project.
-├── .github → GitHub config
-├── .husky → husky config
-│
-├── demo → Demo projects
-│
-├── docs → document directory
-│ ├── components → components plugin document
-│ ├── lightgallery → lightgallery plugin document
-│ ├── md-enhance → md-enhance plugin document
-│ ├── sass-palette → sass-palette plugin document
-│ ├── search-pro → search-pro plugin document
-│ └── theme → theme document
-│
-├── packages → project source code
-│ ├── components → components plugin
-│ ├── create → create-vuepress-theme-hope helper
-│ ├── lightgallery → lightgallery plugin
-│ ├── md-enhance → md-enhance plugin
-│ ├── sass-palette → sass-palette plugin
-│ ├── search-pro → search-pro plugin
-│ ├── shared → shared file
-│ └── theme → vuepress-theme-hope theme
-│
-├── scripts → command scripts
-│
-├── ... → some config files
-│
-├── LICENSE → License
-├── package.json → root package.json
-├── README.md → project intro
-├── SECURITY.md → Security Policy
-│
-└── tsconfig.* → TypeScript config file
-
You can find the corresponding project in the docs directory, so you can modify the corresponding Markdown directly.
-After ensuring that the pnpm lint
and pnpm lint:md
commands emit no errors, you can commit to GitHub to open a PR.
Preview Docs
-Since the docs are using local themes and plugins, you need to build the local project through pnpm build
first.
To start previewing, cd to the right project under docs
directory, then run pnpm docs:vite-dev
(using vite) or pnpm docs:webpack-dev
(using webpack).
The structure of each project is as follows:
-.
-├── lib → compiled output file
-│ │
-│ ├── client → client-side compiled code
-│ │
-│ └── node → Node.js side compiled code
-│
-└── src → source file
- │
- ├── client → client-side source code
- │
- ├── node → Node.js side source code
- │
- └── shared → Shared files between node and client
-
VuePress is running both in client side and node side. Node side has node module like fs
, while client side is running in browser which has document
windows
navigator
etc. globals, you should be aware of where a piece of code is running.
client
directory stores code running in browsernode
directory stores code running in Node.jsshared
directory stores files that are used in both client and node, so code shall not reference any browser globals or node module.For better performance, all plugins are packed and minified using rollup when they are published.
-Build project: pnpm build
lib
folderrollup-plugin-copy
to copy other files to lib
folderDevelop project: pnpm dev
tsc
to compile ts file to lib
foldercpx
to copy other files to lib
folderFormat project: pnpm lint
It will format the project using prettier, eslint and stylelint.
-If you modify Markdown, you also need to run the pnpm lint:md
command.
Warning
-Please do not mix build and dev commands as they compile in completely different ways.
-You may need to execute the pnpm clean
command to clear previous command result.
The project uses husky
to add Git Hooks for verification:
In precommit
stage: we use lint-staged
to check the changed code with the corresponding Linter
This means that you need to ensure that your code is formatted by the project requirements and can pass Linter tests.
-In commit-msg
stage: we use commitlint
to verify the commit comment.
This means that you need to ensure that your commit comments comply with Semantic
-Tips
-If you cannot pass the above Git Hooks, you will not be able to complete git commit
.
If you have already contributed something, but cannot make a commit and don't know how to fix it, you can add the --no-verify
flag when committing to bypass Git Hooks.
# Heading 1
-
-## Heading 2
-
-### Heading 3
-
-#### Heading 4
-
-##### Heading 5
-
-###### Heading 6
-
This sentence has bold, italic and delete style text.
This sentence has **bold**, _italic_ and ~~delete~~ style text.
-
This is a paragraph.
-This is another paragraph.
- - -This is a paragraph.
-
-This is another paragraph.
-
I would like to line break at
-this point or
-this point
I would like to line break at
-this point or\
-this point
-
-- - -Blockquotes can also be nested...
---...by using greater-than signs right next to each other...
---...or with spaces between arrows.
-
> Blockquotes can also be nested...
->
-> > ...by using greater-than signs right next to each other...
-> >
-> > > ...or with spaces between arrows.
-
Create a list by starting a line with -
Make sub-lists by indenting 2 spaces:
-Marker character change forces new list start:
-Ac tristique libero volutpat at
-Facilisis in pretium nisl aliquet
-Nulla volutpat aliquam velit
-link break
New paragraph
-It's easy!
-- Create a list by starting a line with `-`
-- Make sub-lists by indenting 2 spaces:
-
- - Marker character change forces new list start:
-
- - Ac tristique libero volutpat at
- - Facilisis in pretium nisl aliquet
- - Nulla volutpat aliquam velit
- link break
-
- New paragraph
-
-- It's easy!
-
1. Lorem ipsum dolor sit amet
-1. Consectetur adipiscing elit
- line break\
- line break again
-1. Integer molestie lorem at massa
-
---
-
[Home page using absolute path](/)
-
-[Home page using relative path](../../README.md)
-
- [Home page-Can route when editing Markdown file](../../README.md)
-
-- [Home page using absolute path 2](/README.md)
-
-- [Visit in HTML](../../index.html)
-
![Logo](/logo.png)
-
Classic:
-😉 😢 😆 😋
-Shortcuts:
-😎 😃 :* 😦 😃 😦 😉
- - -Classic:
-
-:wink: :cry: :laughing: :yum:
-
-Shortcuts:
-
-8-) :) :\* :( :-) :-( ;)
-
Tips
-For more see
center | -right | -left | -
---|---|---|
For center align use :-: |
-For right align use -: |
-For left align use :- |
-
b | -aaaaaaaaa | -aaaa | -
c | -aaaa | -a | -
| center | right | left |
-| :------------------------: | -----------------------: | :---------------------- |
-| For center align use `:-:` | For right align use `-:` | For left align use `:-` |
-| b | aaaaaaaaa | aaaa |
-| c | aaaa | a |
-
Inline Code: code
Indented code:
-// Some comments
-line 1 of code
-line 2 of code
-line 3 of code
-
-Block code:
-Sample text here...
-
Syntax highlighting:
-var foo = function (bar) {
- return bar++;
-};
-
-console.log(foo(5));
-
Inline Code: `code`
-
-Indented code:
-
- // Some comments
- line 1 of code
- line 2 of code
- line 3 of code
-
-Block code:
-
-```
-Sample text here...
-```
-
-Syntax highlighting:
-
-```js
-var foo = function (bar) {
- return bar++;
-};
-
-console.log(foo(5));
-```
-
:sunny:
:umbrella:
:cloud:
:snowflake:
:snowman:
:zap:
:cyclone:
:foggy:
:ocean:
:cat:
:dog:
:mouse:
:hamster:
:rabbit:
:wolf:
:frog:
:tiger:
:koala:
:bear:
:pig:
:pig_nose:
:cow:
:boar:
:monkey_face:
:monkey:
:horse:
:racehorse:
:camel:
:sheep:
:elephant:
:panda_face:
:snake:
:bird:
:baby_chick:
:hatched_chick:
:hatching_chick:
:chicken:
:penguin:
:turtle:
:bug:
:honeybee:
:ant:
:beetle:
:snail:
:octopus:
:tropical_fish:
:fish:
:whale:
:whale2:
:dolphin:
:cow2:
:ram:
:rat:
:water_buffalo:
:tiger2:
:rabbit2:
:dragon:
:goat:
:rooster:
:dog2:
:pig2:
:mouse2:
:ox:
:dragon_face:
:blowfish:
:crocodile:
:dromedary_camel:
:leopard:
:cat2:
:poodle:
:paw_prints:
:bouquet:
:cherry_blossom:
:tulip:
:four_leaf_clover:
:rose:
:sunflower:
:hibiscus:
:maple_leaf:
:leaves:
:fallen_leaf:
:herb:
:mushroom:
:cactus:
:palm_tree:
:evergreen_tree:
:deciduous_tree:
:chestnut:
:seedling:
:blossom:
:ear_of_rice:
:shell:
:globe_with_meridians:
:sun_with_face:
:full_moon_with_face:
:new_moon_with_face:
:new_moon:
:waxing_crescent_moon:
:first_quarter_moon:
:waxing_gibbous_moon:
:full_moon:
:waning_gibbous_moon:
:last_quarter_moon:
:waning_crescent_moon:
:last_quarter_moon_with_face:
:first_quarter_moon_with_face:
:crescent_moon:
:earth_africa:
:earth_americas:
:earth_asia:
:volcano:
:milky_way:
:partly_sunny:
:bamboo:
:gift_heart:
:dolls:
:school_satchel:
:mortar_board:
:flags:
:fireworks:
:sparkler:
:wind_chime:
:rice_scene:
:jack_o_lantern:
:ghost:
:santa:
:christmas_tree:
:gift:
:bell:
:no_bell:
:tanabata_tree:
:tada:
:confetti_ball:
:balloon:
:crystal_ball:
:cd:
:dvd:
:floppy_disk:
:camera:
:video_camera:
:movie_camera:
:computer:
:tv:
:iphone:
:phone:
:telephone:
:telephone_receiver:
:pager:
:fax:
:minidisc:
:vhs:
:sound:
:speaker:
:mute:
:loudspeaker:
:mega:
:hourglass:
:hourglass_flowing_sand:
:alarm_clock:
:watch:
:radio:
:satellite:
:loop:
:mag:
:mag_right:
:unlock:
:lock:
:lock_with_ink_pen:
:closed_lock_with_key:
:key:
:bulb:
:flashlight:
:high_brightness:
:low_brightness:
:electric_plug:
:battery:
:calling:
:email:
:mailbox:
:postbox:
:bath:
:bathtub:
:shower:
:toilet:
:wrench:
:nut_and_bolt:
:hammer:
:seat:
:moneybag:
:yen:
:dollar:
:pound:
:euro:
:credit_card:
:money_with_wings:
:e-mail:
:inbox_tray:
:outbox_tray:
:envelope:
:incoming_envelope:
:postal_horn:
:mailbox_closed:
:mailbox_with_mail:
:mailbox_with_no_mail:
:package:
:door:
:smoking:
:bomb:
:gun:
:hocho:
:pill:
:syringe:
:page_facing_up:
:page_with_curl:
:bookmark_tabs:
:bar_chart:
:chart_with_upwards_trend:
:chart_with_downwards_trend:
:scroll:
:clipboard:
:calendar:
:date:
:card_index:
:file_folder:
:open_file_folder:
:scissors:
:pushpin:
:paperclip:
:black_nib:
:pencil2:
:straight_ruler:
:triangular_ruler:
:closed_book:
:green_book:
:blue_book:
:orange_book:
:notebook:
:notebook_with_decorative_cover:
:ledger:
:books:
:bookmark:
:name_badge:
:microscope:
:telescope:
:newspaper:
:football:
:basketball:
:soccer:
:baseball:
:tennis:
:8ball:
:rugby_football:
:bowling:
:golf:
:mountain_bicyclist:
:bicyclist:
:horse_racing:
:snowboarder:
:swimmer:
:surfer:
:ski:
:spades:
:hearts:
:clubs:
:diamonds:
:gem:
:ring:
:trophy:
:musical_score:
:musical_keyboard:
:violin:
:space_invader:
:video_game:
:black_joker:
:flower_playing_cards:
:game_die:
:dart:
:mahjong:
:clapper:
:memo:
:pencil:
:book:
:art:
:microphone:
:headphones:
:trumpet:
:saxophone:
:guitar:
:shoe:
:sandal:
:high_heel:
:lipstick:
:boot:
:shirt:
:tshirt:
:necktie:
:womans_clothes:
:dress:
:running_shirt_with_sash:
:jeans:
:kimono:
:bikini:
:ribbon:
:tophat:
:crown:
:womans_hat:
:mans_shoe:
:closed_umbrella:
:briefcase:
:handbag:
:pouch:
:purse:
:eyeglasses:
:fishing_pole_and_fish:
:coffee:
:tea:
:sake:
:baby_bottle:
:beer:
:beers:
:cocktail:
:tropical_drink:
:wine_glass:
:fork_and_knife:
:pizza:
:hamburger:
:fries:
:poultry_leg:
:meat_on_bone:
:spaghetti:
:curry:
:fried_shrimp:
:bento:
:sushi:
:fish_cake:
:rice_ball:
:rice_cracker:
:rice:
:ramen:
:stew:
:oden:
:dango:
:egg:
:bread:
:doughnut:
:custard:
:icecream:
:ice_cream:
:shaved_ice:
:birthday:
:cake:
:cookie:
:chocolate_bar:
:candy:
:lollipop:
:honey_pot:
:apple:
:green_apple:
:tangerine:
:lemon:
:cherries:
:grapes:
:watermelon:
:strawberry:
:peach:
:melon:
:banana:
:pear:
:pineapple:
:sweet_potato:
:eggplant:
:tomato:
:corn:
:smile:
:laughing:
:blush:
:smiley:
:smirk:
:heart_eyes:
:kissing_heart:
:kissing_closed_eyes:
:flushed:
:relieved:
:satisfied:
:grin:
:wink:
:stuck_out_tongue_winking_eye:
:stuck_out_tongue_closed_eyes:
:grinning:
:kissing:
:kissing_smiling_eyes:
:stuck_out_tongue:
:sleeping:
:worried:
:frowning:
:anguished:
:open_mouth:
:grimacing:
:confused:
:hushed:
:expressionless:
:unamused:
:sweat_smile:
:sweat:
:disappointed_relieved:
:weary:
:pensive:
:disappointed:
:confounded:
:fearful:
:cold_sweat:
:persevere:
:cry:
:sob:
:joy:
:astonished:
:scream:
:tired_face:
:angry:
:rage:
:triumph:
:sleepy:
:yum:
:mask:
:sunglasses:
:dizzy_face:
:imp:
:smiling_imp:
:neutral_face:
:no_mouth:
:innocent:
:alien:
:yellow_heart:
:blue_heart:
:purple_heart:
:heart:
:green_heart:
:broken_heart:
:heartbeat:
:heartpulse:
:two_hearts:
:revolving_hearts:
:cupid:
:sparkling_heart:
:sparkles:
:star:
:star2:
:dizzy:
:boom:
:collision:
:anger:
:exclamation:
:question:
:grey_exclamation:
:grey_question:
:zzz:
:dash:
:sweat_drops:
:notes:
:musical_note:
:fire:
:hankey:
:poop:
:shit:
:+1:
:thumbsup:
:-1:
:thumbsdown:
:ok_hand:
:punch:
:facepunch:
:fist:
:v:
:wave:
:hand:
:raised_hand:
:open_hands:
:point_up:
:point_down:
:point_left:
:point_right:
:raised_hands:
:pray:
:point_up_2:
:clap:
:muscle:
:metal:
:fu:
:runner:
:running:
:couple:
:family:
:two_men_holding_hands:
:two_women_holding_hands:
:dancer:
:dancers:
:ok_woman:
:no_good:
:information_desk_person:
:raising_hand:
:bride_with_veil:
:person_with_pouting_face:
:person_frowning:
:bow:
:couple_with_heart:
:massage:
:haircut:
:nail_care:
:boy:
:girl:
:woman:
:man:
:baby:
:older_woman:
:older_man:
:person_with_blond_hair:
:man_with_gua_pi_mao:
:man_with_turban:
:construction_worker:
:cop:
:angel:
:princess:
:smiley_cat:
:smile_cat:
:heart_eyes_cat:
:kissing_cat:
:smirk_cat:
:scream_cat:
:crying_cat_face:
:joy_cat:
:pouting_cat:
:japanese_ogre:
:japanese_goblin:
:see_no_evil:
:hear_no_evil:
:speak_no_evil:
:guardsman:
:skull:
:feet:
:lips:
:kiss:
:droplet:
:ear:
:eyes:
:nose:
:tongue:
:love_letter:
:bust_in_silhouette:
:busts_in_silhouette:
:speech_balloon:
:thought_balloon:
:house:
:house_with_garden:
:school:
:office:
:post_office:
:hospital:
:bank:
:convenience_store:
:love_hotel:
:hotel:
:wedding:
:church:
:department_store:
:european_post_office:
:city_sunrise:
:city_sunset:
:japanese_castle:
:european_castle:
:tent:
:factory:
:tokyo_tower:
:japan:
:mount_fuji:
:sunrise_over_mountains:
:sunrise:
:stars:
:statue_of_liberty:
:bridge_at_night:
:carousel_horse:
:rainbow:
:ferris_wheel:
:fountain:
:roller_coaster:
:ship:
:speedboat:
:boat:
:sailboat:
:rowboat:
:anchor:
:rocket:
:airplane:
:helicopter:
:steam_locomotive:
:tram:
:mountain_railway:
:bike:
:aerial_tramway:
:suspension_railway:
:mountain_cableway:
:tractor:
:blue_car:
:oncoming_automobile:
:car:
:red_car:
:taxi:
:oncoming_taxi:
:articulated_lorry:
:bus:
:oncoming_bus:
:rotating_light:
:police_car:
:oncoming_police_car:
:fire_engine:
:ambulance:
:minibus:
:truck:
:train:
:station:
:train2:
:bullettrain_front:
:bullettrain_side:
:light_rail:
:monorail:
:railway_car:
:trolleybus:
:ticket:
:fuelpump:
:vertical_traffic_light:
:traffic_light:
:warning:
:construction:
:beginner:
:atm:
:slot_machine:
:busstop:
:barber:
:hotsprings:
:checkered_flag:
:crossed_flags:
:izakaya_lantern:
:moyai:
:circus_tent:
:performing_arts:
:round_pushpin:
:triangular_flag_on_post:
:one:
:two:
:three:
:four:
:five:
:six:
:seven:
:eight:
:nine:
:keycap_ten:
:1234:
:zero:
:hash:
:symbols:
:arrow_backward:
:arrow_down:
:arrow_forward:
:arrow_left:
:capital_abcd:
:abcd:
:abc:
:arrow_lower_left:
:arrow_lower_right:
:arrow_right:
:arrow_up:
:arrow_upper_left:
:arrow_upper_right:
:arrow_double_down:
:arrow_double_up:
:arrow_down_small:
:arrow_heading_down:
:arrow_heading_up:
:leftwards_arrow_with_hook:
:arrow_right_hook:
:left_right_arrow:
:arrow_up_down:
:arrow_up_small:
:arrows_clockwise:
:arrows_counterclockwise:
:rewind:
:fast_forward:
:information_source:
:ok:
:twisted_rightwards_arrows:
:repeat:
:repeat_one:
:new:
:top:
:up:
:cool:
:free:
:ng:
:cinema:
:koko:
:signal_strength:
:sa:
:restroom:
:mens:
:womens:
:baby_symbol:
:no_smoking:
:parking:
:wheelchair:
:metro:
:baggage_claim:
:accept:
:wc:
:potable_water:
:put_litter_in_its_place:
:secret:
:congratulations:
:m:
:passport_control:
:left_luggage:
:customs:
:ideograph_advantage:
:cl:
:sos:
:id:
:no_entry_sign:
:underage:
:no_mobile_phones:
:do_not_litter:
:non-potable_water:
:no_bicycles:
:no_pedestrians:
:children_crossing:
:no_entry:
:eight_spoked_asterisk:
:sparkle:
:eight_pointed_black_star:
:heart_decoration:
:vs:
:vibration_mode:
:mobile_phone_off:
:chart:
:currency_exchange:
:aries:
:taurus:
:gemini:
:cancer:
:leo:
:virgo:
:libra:
:scorpius:
:sagittarius:
:capricorn:
:aquarius:
:pisces:
:ophiuchus:
:six_pointed_star:
:negative_squared_cross_mark:
:a:
:b:
:ab:
:o2:
:diamond_shape_with_a_dot_inside:
:recycle:
:end:
:back:
:on:
:soon:
:clock1:
:clock130:
:clock10:
:clock1030:
:clock11:
:clock1130:
:clock12:
:clock1230:
:clock2:
:clock230:
:clock3:
:clock330:
:clock4:
:clock430:
:clock5:
:clock530:
:clock6:
:clock630:
:clock7:
:clock730:
:clock8:
:clock830:
:clock9:
:clock930:
:heavy_dollar_sign:
:copyright:
:registered:
:tm:
:x:
:heavy_exclamation_mark:
:bangbang:
:interrobang:
:o:
:heavy_multiplication_x:
:heavy_plus_sign:
:heavy_minus_sign:
:heavy_division_sign:
:white_flower:
:100:
:heavy_check_mark:
:ballot_box_with_check:
:radio_button:
:link:
:curly_loop:
:wavy_dash:
:part_alternation_mark:
:trident:
:black_small_square:
:white_small_square:
:black_medium_small_square:
:white_medium_small_square:
:black_medium_square:
:white_medium_square:
:black_large_square:
:white_large_square:
:white_check_mark:
:black_square_button:
:white_square_button:
:black_circle:
:white_circle:
:red_circle:
:large_blue_circle:
:large_blue_diamond:
:large_orange_diamond:
:small_blue_diamond:
:small_orange_diamond:
:small_red_triangle:
:small_red_triangle_down:
Markdown is a markup language that can be written using a plain text editor that allows plain text content to be formatted with simple markup syntax.
-Markdown has a series of derivative versions that extend Markdown's functionality (such as tables, footnotes, embedded HTML, etc.). These features were not available in the original Markdown. They can convert Markdown into more formats, such as LaTeX, Docbook, Markdown Extra, MultiMarkdown, Maruku, etc. are more famous in Markdown's enhanced version. These derivative versions are either based on tools such as Pandoc; or based on sites such as GitHub and Wikipedia, which are syntactically compatible, but have some changes in syntax and rendering effects.
-Markdown's grammar is simple and straightforward, easy to learn, and features more powerful than plain text, so people use it to write blogs. WordPress, the world's most popular blogging platform, and large CMSs such as Joomla and Drupal all support Markdown. The blog platforms that use the Markdown editor are Ghost and Typecho.
-Used to write documentation and save it under the software's directory under the filename README.md
. Because we have a god-level editor like RStudio, we can turn Markdown into a presentation PPT, Word product documentation, LaTex papers, and even a minimally usable prototype with little code. In the field of data science, Markdown has been widely used, greatly promoting the historical process of dynamic repeatability research.
Display | -Code | -ShortCut Key | -
---|---|---|
Bold | -**text** |
-Ctrl/⌘ + B | -
Emphasize | -*text* |
-Ctrl/⌘ + I | -
Inline Code |
-`code` | -Select then ` |
-
The title shows the structure of the article. Insert 1-6 #
at the beginning of the line, each adding a #
indicates a more in-depth content, corresponding to the depth of the title by 1-6.
# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
###### Header 6
[Title](URL)
**Bold**
*Italics*
~~Italics~~
\
at the end of the line-
to become a list item> Blockquote Content
---
in a single line[Title](URL)
Example: [Baidu](https://baidu.com)
![Alt](ImageLink)
。
E.g: ![This is a title](./assets/title.jpg)
.
center | -right | -left | -
---|---|---|
For center align use :-: |
-For right align use -: |
-For left align use :- |
-
b | -aaaaaaaaa | -aaaa | -
c | -aaaa | -a | -
:emoji name:
Example: :smile:
For full emoji list, see
Without any configuration, the VuePress site is pretty minimal. To customize your site, let's first create a .vuepress
directory inside your docs directory. This is where all VuePress-specific files will be placed. Your project structure is probably like this:
├─ docs
-│ ├─ .vuepress
-│ │ └─ config.js
-│ └─ README.md
-├─ .gitignore
-└─ package.json
-
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.
A basic config file looks like this:
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // site config
- lang: "en-US",
- title: "Hello VuePress",
- description: "Just playing around",
-
- // theme
- theme: hopeTheme({
- // theme config
- }),
-});
-
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- // site config
- lang: "en-US",
- title: "Hello, VuePress!",
- description: "This is my first VuePress site",
-
- // theme
- theme: hopeTheme({
- // theme config
- }),
-};
-
Tips
-Check out the Config Reference
Site config means that, no matter what theme you are using, these configurations are always valid.
-As we know, every site should have its own lang
, title
, description
, etc. Thus, VuePress has built-in support for those options.
Theme config will be processed by VuePress theme, so it depends on the theme you are using.
-To use vuepress-theme-hope
, you should import hopeTheme
from it, passing in your theme options and call it, then assign it to theme
option.
Warning
-If you don't specify the theme
option of VuePress config, the default theme will be used.
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
-
A basic client config file looks like this:
-import { defineClientConfig } from "vuepress/client";
-
-export default defineClientConfig({
- enhance({ app, router, siteData }) {},
- setup() {},
- rootComponents: [],
-});
-
Tips
-Unlike config file, client config file could not be specified via CLI options.
-To learn more about client config file, see Advanced > Cookbook > Usage of Client Config
.
-├── docs → Docs folder depending on you
-│ │
-│ ├── .vuepress (Optional) → VuePress Config
-│ │ │
-│ │ ├── dist (Default) → Output folder
-│ │ │
-│ │ │
-│ │ ├── public (Optional) → Static resource dir
-│ │ │
-│ │ ├── styles (Optional) → Stores style related files
-│ │ │
-│ │ ├── config.{js,ts} (Optional) → Entry file of configuration
-│ │ │
-│ │ └── client.{js,ts} (Optional) → Client App file
-│ │
-│ ├── ... → Other docs
-│ │
-│ └── README.md → Project homepage
-│
-└── package.json → Node.js declaration file for the entire project
-
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.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/index.html.vue b/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/index.html.vue deleted file mode 100644 index 1fa4b6c..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/cookbook/vuepress/index.html.vue +++ /dev/null @@ -1,41 +0,0 @@ -VuePress is a markdown-centered static site generator. You can write your content (documentations, blogs, etc.) in Markdown
A VuePress site is in fact a single-page application (SPA) powered by Vue
Routes are generated according to the relative path of your Markdown files. Each Markdown file is compiled into HTML with markdown-it
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.
-Here are some enhance VuePress makes on Markdown syntax.
-The Markdown content in VuePress will be parsed by markdown-it
This section will introduce built-in Markdown syntax extensions of VuePress.
-You can also configure those built-in extensions, load more markdown-it plugins and implement your own extensions via markdown
Embedded by markdown-it:
-You might have noticed that, a #
anchor is displayed when you hover the mouse on the headers of each section. By clicking the #
anchor, you can jump to the section directly.
Tips
-This header anchors extension is supported by markdown-it-anchor
Config reference: markdown.anchor
When using Markdown link syntax
Take our documentation source files as an example:
-└─ src
- ├─ cookbook
- │ └─ vuepress
- │ ├─ markdown.md <- Here we are
- │ └─ README.md
- ├─ guide
- │ └─ README.md
- ├─ contribution.md
- └─ README.md
-
Raw Markdown:
-<!-- relative path -->
-
-[Home](../../README.md)
-[Contribution Guide](../../contribution.md)
-[VuePress Config](./config.md)
-
-<!-- absolute path -->
-
-[Guide](/guide/README.md)
-[Config > I18n](/config/i18n.md)
-
-<!-- URL -->
-
-[GitHub](https://github.com)
-
Converted to:
-<template>
- <RouterLink to="/v2/">Home</RouterLink>
- <RouterLink to="/v2/contribution.html">Contribution Guide</RouterLink>
- <RouterLink to="/v2/cookbook/vuepress/config.html"
- >VuePress Config</RouterLink
- >
- <RouterLink to="/v2/guide/">Guide</RouterLink>
- <RouterLink to="/v2/config/i18n.html">Config > I18n</RouterLink>
- <a href="https://github.com" target="_blank" rel="noopener noreferrer"
- >GitHub</a
- >
-</template>
-
Rendered as:
-Explanation:
-<RouterLink>
for SPA navigation..md
files will be converted to the target="_blank" rel="noopener noreferrer"
attrs.Suggestion:
-Try to use relative paths instead of absolute paths for internal links.
-"/"
, you will need to prepend the base
manually or use base helperTips
-This links extension is supported by our built-in plugin.
-Config reference: markdown.links
You can add emoji to your Markdown content by typing :EMOJICODE:
.
For a full list of available emoji and codes, check out emoji-cheat-sheet
Input:
-VuePress 2 is out :tada: !
-
Output:
-VuePress 2 is out 🎉 !
- -To put the table of contents (TOC) of your current page inside your Markdown content, you can use the [[toc]]
syntax.
Input:
-[[toc]]
-
Output:
- -The headers in TOC will link to the corresponding header anchors, so TOC won't work well if you disable header anchors.
-Tips
-This toc extension is supported by our built-in plugin, which is forked and modified from markdown-it-toc-done-right
Config reference: markdown.toc
Following code blocks extensions are implemented during Markdown parsing in Node side. That means, the code blocks won't be processed in client-side.
-You can highlight specified lines of your code blocks by adding line ranges mark in your fenced code blocks:
-Input:
-```ts {1,6-8}
-import type { UserConfig } from "vuepress/cli";
-import { defaultTheme } from "@vuepress/theme-default";
-
-export const config: UserConfig = {
- title: "Hello, VuePress",
-
- theme: defaultTheme({
- logo: "https://vuejs.org/images/logo.png",
- }),
-};
-```
-
Output:
-import type { UserConfig } from "vuepress/cli";
-import { defaultTheme } from "@vuepress/theme-default";
-
-export const config: UserConfig = {
- title: "Hello, VuePress",
-
- theme: defaultTheme({
- logo: "https://vuejs.org/images/logo.png",
- }),
-};
-
Examples for line ranges mark:
-{5-8}
{4,7,9}
{4,7-13,16,23-27,40}
Tips
-This line highlighting extension is supported by our built-in plugin, which is forked and modified from markdown-it-highlight-lines
Config reference: markdown.code.highlightLines
You must have noticed that the number of lines is displayed on the left side of code blocks. This is enabled by default, and you can disable it in config.
-You can add :line-numbers
/ :no-line-numbers
mark in your fenced code blocks to override the value set in config.
Input:
-```ts
-// line-numbers is enabled by default
-const line2 = "This is line 2";
-const line3 = "This is line 3";
-```
-
-```ts:no-line-numbers
-// line-numbers is disabled
-const line2 = 'This is line 2'
-const line3 = 'This is line 3'
-```
-
Output:
-// line-numbers is enabled by default
-const line2 = "This is line 2";
-const line3 = "This is line 3";
-
// line-numbers is disabled
-const line2 = 'This is line 2'
-const line3 = 'This is line 3'
-
Tips
-This line numbers extension is supported by our built-in plugin.
-Config reference: markdown.code.lineNumbers
As template syntax is allowed in Markdown, it would also work in code blocks, too.
-To avoid your code blocks being compiled by Vue, VuePress will add v-pre
You can add :v-pre
/ :no-v-pre
mark in your fenced code blocks to override the value set in config.
Warning
-The template syntax characters, for example, the "Mustache" syntax (double curly braces) might be parsed by the syntax highlighter. Thus, as the following example, :no-v-pre
might not work well in some languages.
To make Vue syntax work in those languages anyway, try to disable the default syntax highlighting and implement your own syntax highlighting in client-side.
-Input:
-```md
-<!-- This will be kept as is by default -->
-
-1 + 2 + 3 = {{ 1 + 2 + 3 }}
-```
-
-```md:no-v-pre
-<!-- This will be compiled by Vue -->
-1 + 2 + 3 = {{ 1 + 2 + 3 }}
-```
-
-```js:no-v-pre
-// This won't be compiled correctly because of js syntax highlighting
-const onePlusTwoPlusThree = {{ 1 + 2 + 3 }}
-```
-
Output:
-<!-- This will be kept as is -->
-
-1 + 2 + 3 = {{ 1 + 2 + 3 }}
-
<!-- This will be compiled by Vue -->
-1 + 2 + 3 = {{ 1 + 2 + 3 }}
-
// This won't be compiled correctly because of js syntax highlighting
-const onePlusTwoPlusThree = {{ 1 + 2 + 3 }}
-
Tips
-This v-pre extension is supported by our built-in plugin.
-Config reference: markdown.code.vPre
You can import code blocks from files with following syntax:
-<!-- minimal syntax -->
-
-@[code](../foo.js)
-
To partially import the file:
-<!-- partial import, from line 1 to line 10 -->
-
-@[code{1-10}](../foo.js)
-
The code language is inferred from the file extension, while it is recommended to specify it explicitly:
-<!-- specify the code language -->
-
-@[code js](../foo.js)
-
In fact, the second part inside the []
will be treated as the mark of the code fence, so it supports all the syntax mentioned in the above Code Blocks section:
<!-- line highlighting -->
-
-@[code js{2,4-5}](../foo.js)
-
Here is a complex example:
-"../foo.js"
file"js"
"../foo.js"
file@[code{3-10} js{3}:no-line-numbers](../foo.js)
-
Notice that path aliases are not available in import code syntax. You can use following config to handle path alias yourself:
-import { getDirname, path } from "vuepress/utils";
-
-const __dirname = getDirname(import.meta.url);
-
-export default {
- markdown: {
- importCode: {
- handleImportPath: (str) =>
- str.replace(/^@src/, path.resolve(__dirname, "path/to/src")),
- },
- },
-};
-
<!-- it will be resolved to 'path/to/src/foo.js' -->
-
-@[code](@src/foo.js)
-
Tips
-This import code extension is supported by our built-in plugin.
-Config reference: markdown.importCode
This section will introduce some basic usage of Vue in Markdown.
-Check out Cookbook > Markdown and Vue SFC
As we know:
-That means, Vue template syntax
Input:
-One plus one equals: {{ 1 + 1 }}
-
-<span v-for="i in 3"> span: {{ i }} </span>
-
Output:
-One plus one equals: {{ 1 + 1 }}
- -span: {{ i }}
- -You can use Vue components directly in Markdown.
-Input:
-This is default theme built-in `<Badge />` component <Badge text="demo" />
-
Output:
-This is default theme built-in <Badge />
component
Tips
-Check out the Built-in Components
Deprecated HTML tags such as <center>
Those tags would not be recognized as native HTML tags by Vue template compiler. Instead, Vue will try to resolve those tags as Vue components, and obviously these components usually don't exist.
-You should try to avoid using deprecated HTML tags. However, to use those tags anyway, try either of the following workarounds:
-@bundler-webpack
, set vue.compilerOptions@bundler-vite
, set vuePluginOptions.template.compilerOptionsVuePress is markdown-centered. Each Markdown file inside your project is a standalone page.
-By default, the route path of a page is determined by the relative path of your Markdown file.
-Assuming this is the directory structure of your Markdown files:
-└─ docs
- ├─ guide
- │ ├─ getting-started.md
- │ └─ README.md
- ├─ contributing.md
- └─ README.md
-
Take the docs
directory as your sourceDirvuepress dev docs
command. Then the route paths of your Markdown files would be:
Relative Path | -Route Path | -
---|---|
/README.md |
-/ |
-
/contributing.md |
-/contributing.html |
-
/guide/README.md |
-/guide/ |
-
/guide/page.md |
-/guide/page.html |
-
A Markdown file could contain a YAML
---
-lang: en-US
-title: Title of this page
-description: Description of this page
----
-
You must have noticed that those fields are similar with the Site Config in Config File. You can override lang
, title
, description
, etc., of current page via frontmatter. So you can take frontmatter as page scope config.
Also, VuePress has built-in support for some frontmatter fields, and your theme may have its own special frontmatter, too.
-Tips
-Check out the Frontmatter Reference
Check out the vuepress-theme-hope
.
The main content of your page is written in Markdown. VuePress will firstly transform your Markdown to HTML code, then treat the HTML code as <template>
of Vue SFC.
With the power of markdown-it
With the help of Plugin API
Community users have created lots of plugins and published them to NPM
In general, you need to include the plugin in the plugins
import { googleAnalyticsPlugin } from "@vuepress/plugin-google-analytics";
-
-export default {
- plugins: [
- googleAnalyticsPlugin({
- id: "G-XXXXXXXXXX",
- }),
- ],
-};
-
Tips
-Most plugins can only be used once. If the same plugin is used multiple times, only the last one will take effect.
-However, some plugins can be used multiple times (e.g. @vuepress/plugin-container
To use your own plugin but don't want to publish it, you can create a local plugin.
-It is recommended to use the
But if you have too many things to do in your config file, you can consider extracting them into separate plugins, and use them in your config file:
-import myPlugin from "./path/to/my-plugin.js";
-
-export default {
- plugins: [myPlugin()],
-};
-
You can refer to Advanced > Writing a Plugin
VuePress theme can provide layouts, styles and many other features for you, helping you to focus on writing Markdown content.
-VuePress has a default theme out of the box, which is applied to our documentation site you are currently browsing.
-If you don't specify the theme to use, the default theme will be used automatically.
-To configure the default theme, you need to import and use it in your config file via the theme
import { defaultTheme } from "vuepress";
-
-export default {
- theme: defaultTheme({
- // default theme config
- navbar: [
- {
- text: "Home",
- link: "/",
- },
- ],
- }),
-};
-
The default theme provides basic but useful features for documentation site, you can check out Default Theme Config Reference
However, you might think it is not good enough. Or, you want to build a different type of site, for example, a blog, instead of a documentation. Then, you can try to use a community theme or create a local theme.
-Community users have created lots of themes and published them to NPM
If you want to use your own custom theme but don't want to publish it, you can create a local theme. Refer to Advanced > Writing a Theme
This is a blog home page demo.
-To use this layout, you should set both layout: BlogHome
and home: true
in the page front matter.
For related configuration docs, please see
This is a blog home page demo.
-To use this layout, you should set both layout: BlogHome
and home: true
in the page front matter.
For related configuration docs, please see
The actual article content.
-Paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text paragraph 1 text.
-Paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text paragraph 2 text.
-This is a portfolio home page demo.
-To use this layout, you should set both layout: PortfolioHome
and home: true
in the page front matter.
For related configuration docs, please see
Create a new vuepress-theme-hope project in [dir]
directory under the current path:
pnpm create vuepress-theme-hope [dir]
-
yarn create vuepress-theme-hope [dir]
-
npm init vuepress-theme-hope@latest [dir]
-
To add vuepress-theme-hope as docs builder to an existing project, run the following command in the project root directory:
-pnpm create vuepress-theme-hope add [dir]
-
yarn create vuepress-theme-hope add [dir]
-
npm init vuepress-theme-hope@latest add [dir]
-
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- // your theme config here
- }),
-});
-
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- // your theme config here
- }),
-};
-
This page shows how to use slots to customize the content of a page.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/demo/slot.html.vue b/docs/theme/src/.vuepress/.temp/pages/demo/slot.html.vue deleted file mode 100644 index 5bab96e..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/demo/slot.html.vue +++ /dev/null @@ -1,14 +0,0 @@ -This page shows how to use slots to customize the content of a page.
- -You can customize the theme layout through these slots, and what you can do depends entirely on your imagination, such as:
-navbarEndBefore
slotcontentBefore
slotcontentAfter
slottocBefore
slottocAfter
slotuseXXX() is called without provider
Such errors are usually caused by incorrectly containing multiple versions of vue
in project.
Make sure you are using the latest vuepress
and vuepress-theme-hope
versions and all related packages. You can use vp-update
helper for that
pnpm dlx vp-update
-
yarn dlx vp-update
-
npx vp-update
-
Issues with peer dependencies found
This means you have wrong deps installed in your project.
-Here is a example:
- WARN Issues with peer dependencies found
-.
-├─┬ @vuepress/plugin-docsearch 2.0.0-rc.7
-│ └── ✕ unmet peer vuepress@2.0.0-rc.2: found 2.0.0-rc.5
-├─┬ @vuepress/plugin-git 2.0.0-rc.7
-│ └── ✕ unmet peer vuepress@2.0.0-rc.2: found 2.0.0-rc.5
-├─┬ vuepress 2.0.0-rc.5
-│ └── ✕ unmet peer @vuepress/bundler-vite@2.0.0-rc.5: found 2.0.0-rc.4
-└─┬ vuepress-theme-hope 2.0.0-rc.21
- └── ✕ unmet peer @vuepress/plugin-docsearch@2.0.0-rc.10: found 2.0.0-rc.7
-
The example shows that:
-vuepress
requires a same version of @vuepress/bundler-vite
as itself, but you have rc.4
bundler and rc.5
vuepress.
Some of the plugin requires vuepress@2.0.0-rc.2
, while you have vuepress@2.0.0-rc.5
.
You can always edit your deps version to let them fit each other. Usually you are trying to upgrade vuepress, vuepress bundler and plugins to latest version, but there could be chances where a plugin is not compatible with the latest version of vuepress. In this case, you should downgrade vuepress to the version that is compatible with the plugin or temporarily removing the plugin till it supports latest vuepress.
-You are not allowed to use plugin XXX yourself in vuepress config file.
This means you are calling a theme-bundled plugin yourself in VuePress config file.
-So when you want to customize these plugins, you should set their options in plugins.PLUGIN_NAME
under theme options and let the theme call these plugins for you.
For details on all plugins of the theme, please see
FATAL ERROR: XXX - JavaScript heap out of memory
This means that your max_old_space_size
setting of Node.js is too small to build this application. You can try to increase the max_old_space_size
by setting the NODE_OPTIONS
environment variable.
max_old_space_size
is in unit of MB, by default it is half size of your machine memory.
This value can be greater than the actual memory size of your machine.
-With GitHub workflow, set env
in your workflow file.
- name: Build project
-+ env:
-+ NODE_OPTIONS: --max_old_space_size=8192
- run: pnpm run build
-
On windows, you can follow this guide
xxx isn't assign with a lang, and will return 'en-US' instead.
If you see xxx isn't assign with a lang, and will return 'en-US' instead.
while the dev process is starting up, please check whether you set lang for every language.
Even if you only have one language, you still need to
xxx is missing sidebar config.
Using object format sidebar config means you want to set different sidebar based on routes.
-sidebar: false
in frontmatter.[currentFolderRoute]: false
in sidebar config.[rootLocalePath]: false
in sidebar config to tell theme sidebar config is disabled by default.xxx is not installed
In order to speed up the installation of themes and plugins, we set dependencies with large size as optional, which means that when features you use require these dependencies, you need to manually install the corresponding dependencies.
-Just install them in your project directly through your current package manager:
-pnpm add -D xxx
-
yarn add -D xxx
-
npm i -Dxxx
-
[Vue warn]: Failed to resolve component: XXX
If you are facing error like this, you are probably using non-standard tags in your project.
-There are tags like <center>
or <font>
, which is in HTML1.0 spec, but marked as unrecommended since HTML4.0 released in 1999, then removed in HTML5 release in 2008. So Vue is not allowing you to use them by default. You should probably remove them and use standard HTML5 tag.
To remove them, run theme with --debug
flag, and you will get warning logs telling you tags that probably not be recognized.
To use them anyway, check here
Hydration completed but contains mismatches.
This error indicates that you have an SSR mismatch, and it should not be a problem with theme.
-Please check if you are using CloudFlare related services first, if so, make sure you turn off static resource compression. Visit dash.cloudflare.comYOUR_DOMAIN
→ Speed → Optimization, turn JavaScript
and HTML
off in Auto Minify
options.
Warning
-Auto Minify in CloudFlare incorrectly handle HTML spaces and line breaks, which can cause Vue triggering SSR mismatches during initialization.
-To debug this, set __VUE_PROD_HYDRATION_MISMATCH_DETAILS__
to true
so that you can see the details of the mismatch in browser console.
If a component is likely to have different render results between SSR[1] and CSR[2]. You can wrap your components with the <ClientOnly />
component provided by vuepress/client
.
Some configuration has high performance impact on dev server, so their hot reload are disabled by default. You can enable it manually via hotReload: true
in theme options.
These include categories and tags for blog, structured sidebar and git-based information.
-You can first review the documentation to see if the setting does not support page config.
-Support for page config means that the theme allows the config of the page to override the global config of the same name (same function), but not all functions meet this setting.
-Tips
-You should be aware that some features will not be loaded during the prepare stage when the global setting is disabled, so they cannot be enabled locally.
-To support RTL layout and reduce style size, the theme uses newer CSS, such as padding-inline
margin-block
inset-inline-start
and so on.
The lowest version that supports them is:
-If you need to support older browsers, you can use postcss-preset-env
to be compatible with the environment you set:
import { addViteConfig } from "@vuepress/helper";
-import postcssPresetEnv from "postcss-preset-env";
-import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- extendsBundlerOptions: (config, app) => {
- addViteConfig(config, app, {
- css: {
- postcss: {
- plugins: [postcssPresetEnv()],
- },
- },
- });
- },
-});
-
import { configWebpack } from "@vuepress/helper";
-import postcssPresetEnv from "postcss-preset-env";
-import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- extendsBundlerOptions: (config, app) => {
- configWebpack(config, app, (config) => {
- (((config.postcss ??= {}).postcssOptions ??= {}).plugins ??= []).push(
- postcssPresetEnv(),
- );
- });
- },
-});
-
You can use extendsMarkdown
hook in
import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- // site config
- // ...
-
- extendsMarkdown: (md) => {
- md.use(yourExtension, options);
- },
-});
-
import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- // site config
- // ...
-
- extendsMarkdown: (md) => {
- md.use(yourExtension, options);
- },
-});
-
To better adapt to different sizes of devices, the theme uses
Since the layout is pre-rendered, all sizes of screens share the same DOM structure. To correctly render FCP and for better performance, different size layouts are almost entirely rendered by CSS rather than controlling by scripts. We implement several sets of CSS to display different layouts with same DOM structure. This means that you cannot customize these layouts or adjust their order.
-The only thing you can configure is the CSS breakpoint. The default breakpoints are as follows:
-You can customize these breakpoints with
For example:
-If you don't like the wide layout, you can set the $pc
breakpoint to a very large value:
$pc: 9999px;
-
If you don't want the Pad layout, you can overlap the $tablet
breakpoint and the $pad
breakpoint:
$tablet: 959px;
-
Of course, if you are expect enough, you can achieve the layout you want by overriding the theme's CSS styles. This may be difficult, but it is technically feasible.
-By default, VuePress only extracts h2 and h3 titles from Markdown, so you will never see h4 titles by configuring the theme alone.
-You need to configure markdown.headers.levels
export default {
- markdown: {
- headers: {
- // extract levels you need
- levels: [2, 3, 4, 5, 6],
- },
- },
-
- // other config
- // ...
-};
-
After extracting deeper level titles above, you can display more titles by increasing the value of headerDepth
in
If you are not satisfied with the default content width, you can adjust the content width by setting the $content-width
variable in the
Narrow content width
-If you feel that the content width is very narrow, this is probably your personal aesthetic problem, because vuepress-theme-hope follows the best layout design practices. For related discussions and solutions to make the content fill the screen, see this discussion
Frequency asked questions and corresponding solutions using the theme are included here.
-Before contacting us, please make sure to check your project according to
If you are sure there is an issue somewhere, please open an issue
If necessary, provide a minimal reproduction Repo[1] link.
-Theme and Plugins in repo only
-If you have questions about learning and using Vue, TypeScript, Sass, or you don't know how to write what you want, you may want to ask questions on the Vue forums, Stack Overflow, etc.
-If you have questions about VuePress, please open a new discussion
Please only start discussions about the VuePress Theme Hope and plugins written by Mr.Hope in theme repository.
-If you ran into some issues, please open a discussion
vuepress dev [docs-dir] --debug
If there is something you don't know how to solve, welcome to open a discussion
You have tried searching related docs through search box.
-You are providing a detailed description in the discussion.
-You are not asking question unrelated to VuePress or asking for a "technical support".
-For customization, we only support "how can you customize something (in which way)". "How to customize something" (what you should write in your own codes) is NOT SUPPORTED. Unless you are donating this project, please do not insist asking help for that part.
-Mr.Hope is a postgraduate student majored in theoretical physics, and really busy. He is not expecting to "be a doc provider" or "teach you how to write code".
-The basic idea of a minimal reproduction is to use the least amount of both code and config to trigger missing or wrong behavior. Having a minimal reproduction makes it easier for the developers to see where the bug or missing feature is, and to verify that the new code satisfies requirements. ↩︎
-We use the CSS property scroll-behavior: smooth
to provide smooth scrolling. It has a global approval rating of 93.06% [1]
Currently, this property is only supported on iOS / iPadOS 15.4+ and macOS 12.3+[2].
-If you need to use this feature in older versions of Safari, please refer to Related Stack Overflow Question
vuepress-theme-hope
only supports node version of >=18.16.0
.
If the output of node -v
does not satisfy the requirement, you should
Also, you should use a package manager satisfying the following requirements (pnpm@v9
recommended):
pnpm: >= 7
-Check: pnpm -v
npm: >= 8
-Check: npm -v
yarn: >= 2
-Check: yarn -v
(Also requires nodeLinker: 'node-modules'
in .yarnrc.yml
)
To use the correct package manager, run corepack enable
(might need to run as Administrator on Windows), and run one of the following commend:
corepack use npm@10
corepack use yarn@4
corepack use pnpm@9
Please make sure you are using the latest vuepress
, VuePress plugins and vuepress-theme-hope
V2 version, because some bugs you encountered may have been fixed in new versions. Also in some cases, you may generate incorrect dependency tree after upgrading some dependencies. To let VuePress work correctly, there should only be one version of vue
and vuepress
in the whole project. Multiple versions of a package can cause different parts of the application to use different package, resulting in errors like useXXX() is called without provider
.
You can execute the following command to make sure you are using the latest version and having correct deps tree.
-pnpm dlx vp-update
-
yarn dlx vp-update
-
npx vp-update
-
Please confirm that there are no errors in your config file (such as red wavy lines), if so, please modify the config file according to the prompts until you correctly configured VuePress and themes.
-Vite only supports "modern browsers" by default, see Vite support
This is the expected behavior. We are adding more features, which means we have 2× to 8× lines of code comparing with @vuepress/theme-default
according to the functions you are using. So transforming and sending the theme and plugins code to browser is expected to increase from 0.8s - 2s
in @vuepress/theme-default
to 3s - 10s
(range due to machine performance).
Tree-shaking burden
-In order to fully support Tree-shaking in functionality and styles, themes and plugins do additional work, including modularization, partial injection, generation of temp files, etc. These extra behaviors ensure that unused feature code is removed at build stage, but it also means that more logic needs to be performed, and more fragmented files need to be loaded in development mode.
-Dude, you can't expect to have the full power of tree-shaking support and still be extremely fast when the development server starts up, they are contradictory.
-style system
-In order to make component styles binding with component, we split the styles according to the component hierarchy and imported them in components, which greatly slowed down the speed.
-@vuepress/theme-default
is placing all the styles together at styles
folder and importing them entirely, so that sass
will only need to compile once and vite only need to send 1 extra web request. That's why it's fast.
But this will let style unbind with components, and they will be injected anyway. So that when you override a component or a layout, you have to override old styles to build styles you want.
-vuepress-theme-hope
is binding styles with components, but that means sass
has to compile styles for each component, and vite need to send an extra request for each component. Due to vuepress-theme-hope
has 2× to 6× components (depending on whether you enable blog features or not) comparing with @vuepress/theme-default
, it will take extra time of 2.4s - 4s
for that.
But, you can easily override a component together with its styles in this way.
-So, due to the above reasons, vuepress-theme-hope
will have an average of 4× code and 10× requests comparing with @vuepress/theme-default
, so the time increasing from 2s
to 10s
is reasonable and expected.
No effect on HMR and online speed
-don't worry, the above extra overhead mainly exists in code boot. Due to the large size of code in development environment, the corresponding time will also increase after refreshing.
-These extra overheads do not affect HMR, so when editing the Markdown file, the page's HMR response can still remain at the 100 ms level.
-Unused code twill be removed during the build phase with well design, so the production environment usually only adds additional 200 KB - 500 KB size in JS entry comparing the default theme and about 100 ms of extra script execution time, so the online impact is very small.
-@import()
in CSS does not workIn VuePress2, importing web CSS via @import
in index.scss
has no effect. You may need to manually import it in the head
option of your VuePress configuration.
import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- head: [
- [
- "link",
- {
- rel: "stylesheet",
- href: "YOUR_CSS_URL",
- },
- ],
- ],
-
- // ...
-});
-
export default {
- head: [
- [
- "link",
- {
- rel: "stylesheet",
- href: "YOUR_CSS_URL",
- },
- ],
- ],
-
- // ...
-};
-
Reason
-@import
in Sass will be compiled into standard CSS @import
syntax.@import
syntax only works at the top of css file.The above results in the user's CSS @import
imports in Sass appearing in the middle of the final CSS file and thus invalid.
The default theme also has the same problem, and this cannot be fixed on the theme side.
-This tutorial introduces VuePress project commands.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/command.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/command.html.vue deleted file mode 100644 index b0c2cc9..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/command.html.vue +++ /dev/null @@ -1,68 +0,0 @@ -This tutorial introduces VuePress project commands.
- -vuepress dev [dir]
will start a development server to allow you to develop your VuePress site locally.vuepress build [dir]
will build your VuePress site into static files for your subsequent deployment.Using Template
-If you are using the VuePress Theme Hope template, you can find the following three commands in package.json
:
{
- "scripts": {
- "docs:build": "vuepress build src",
- "docs:clean-dev": "vuepress dev src --clean-cache",
- "docs:dev": "vuepress dev src"
- }
-}
-
This means you can use:
-pnpm docs:dev
starts the development serverpnpm docs:build
builds the project and outputspnpm docs:clean-dev
to clear cache and start development serveryarn docs:dev
starts the development serveryarn docs:build
builds the project and outputsyarn docs:clean-dev
to clear cache and start development servernpm run docs:dev
starts the development servernpm run docs:build
builds the project and outputsnpm run docs:clean-dev
to clear cache and start development serverTerminate DevServer
-To terminate the development server, please click on the terminal and press Ctrl + C
twice.
If you need to upgrade your theme and VuePress version, execute the following command:
-pnpm dlx vp-update
-
yarn dlx vp-update
-
npx vp-update
-
This tutorial guides you on how to configure a VuePress project.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/config.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/config.html.vue deleted file mode 100644 index 4a8f995..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/config.html.vue +++ /dev/null @@ -1,113 +0,0 @@ -This tutorial guides you on how to configure a VuePress project.
- -VuePress uses .vuepress
folder inside the docs folder to store configuration, and all VuePress related files will be placed here.
For a VuePress site, .vuepress/config.ts
(or .vuepress/config.js
) is the necessary config file.
Use TS configuration file
-We recommend you to use TypeScript config files for better type hinting, autocompletion and error checking.
-If you are not familiar with TypeScript, you can also use a JavaScript config file, but it is better to use an editor such as VSCode that fully supports TS/JS features to avoid losing the type checking, autocompletion and option hints features mentioned below.
-You need to set up a config object in the config file .vuepress/config.ts
(or .vuepress/config.js
) and export it.
To get correct hints, importing defineUserConfig
from vuepress
and wrapping the config object is recommended:
import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- // put your config here
-});
-
import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- // put your config here
-});
-
In the template, in order to avoid the configuration file being too long, we use the ESM feature natively provided by JavaScript to split the theme configuration, navigation bar and sidebar configuration into separate files.
-The template extracts theme functions to .vuepress/theme.js
and exports them via export default
.
.vuepress/theme.ts
:
import { hopeTheme } from "vuepress-theme-hope";
-
-// We export the theme object by default
-export default hopeTheme({
- // theme configuration
-});
-
Then import directly in the configuration file:
-.vuepress/config.ts
:
//...
-// we introduce the theme here
-import theme from "./theme.js";
-
-//...
-
-export default defineUserConfig({
- //...
-
- // This is equivalent to `theme: hopeTheme({/* your config */})`
- theme,
-
- //...
-});
-
This can also help you understand the site configuration and theme configuration in the configuration more clearly.
-Config items in the Site Config are directly read by VuePress, have nothing to do with the theme and can take effect in all themes.
-We know that every site should have its lang
, title
and description
properties, so VuePress has built-in support for setting these properties.
Site Config
-You can go to VuePress2 → Reference → Configuration
Theme config is the object you pass to hopeTheme
function, which will be handled by VuePress Theme Hope.
You can find all the theme config in
Hints and Checks
-If you are using an editor that supports TS/JS language features (such as VSCode), you can easily get option hints and checks.
-You can hover over an option to get hints:
-
-
If you enter wrong option name or invalid value, you will get error message:
-
-
You can get autocompletion while inputting:
-
-
Plugin Config
-VuePress Theme Hope bundles some plugins, you can pass plugin options through plugins.PLUGIN_NAME
in theme options, see
If you want to use additional plugins, please import the plugin yourself and pass plugin options, see
Style Config
-VuePress Theme Hope is using .vuepress/styles
folder to store style config like other themes.
In this folder you can:
-index.scss
to inject additional CSS stylesconfig.scss
for styling configpalette.scss
to set color and layoutFor more details, see
Page Config
-VuePress supports page scope config of specific page through YAML Frontmatter in Markdown files. For details, see
This tutorial guides you on how to generate page in a VuePress project.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/content.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/content.html.vue deleted file mode 100644 index 0cee475..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/content.html.vue +++ /dev/null @@ -1,77 +0,0 @@ -This tutorial guides you on how to generate page in a VuePress project.
- -VuePress is markdown-centered. Each Markdown file inside your project is a standalone page.
-By default, the route path of a page is determined by the relative path of your Markdown file.
-Since you are generating the project from create helper, you will have the following file structure:
-└─ src
- ├─ demo
- │ ├─ ...
- │ └─ page.md
- │ └─ markdown.md
- │ └─ README.md
- ├─ ...
- └─ README.md
-
The route path of your Markdown files are:
-Relative Path | -Route Path | -
---|---|
/README.md |
-/ |
-
/demo/README.md |
-/demo/ |
-
/demo/page.md |
-/demo/page.html |
-
README.md
-README.md
is a special case. In Markdown, by convention, it will be used as the home page of the folder where it is located. So when it is rendered as a web page, its corresponding path is the home page path index.html
in the web page.
This should be easy to understand.
-Each Markdown file will be processed by VuePress Theme Hope to render file content as webpage content.
-You can try editing the Markdown file yourself to modify the content of the template. If you have started the development server, the modified results will be synced to the development server in real time.
-Markdown Syntax
-If you don't know Markdown yet, check out the
In about fifteen minutes, you can learn how to write Markdown, remember to come back after reading it!
-Markdown Extension
-VuePress itself extends some Markdown syntax. For details, see
The theme additionally enables some syntax extensions via vuepress-plugin-md-enhance
, see
Frontmatter is an important concept in VuePress, it is used to carry config of Markdown files. Markdown files can contain a YAML
Frontmatter must be at the top of the Markdown file, surrounded by a pair of triple dashes. Here is a basic example:
----
-lang: en-US
-title: the title of the page
-description: the description of the page
----
-
-<!-- Here is Markdown Content -->
-
-...
-
You may noticed that fields in demo Frontmatter are very similar to lang
, title
, description
and other properties of the current page through Frontmatter. Therefore, you can think of Frontmatter as a page-level scope config, which usually has the highest priority, and the config only takes effect on the current page.
This tutorial will guide you through creating a VuePress Theme Hope project.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/create.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/create.html.vue deleted file mode 100644 index 0c88f38..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/create.html.vue +++ /dev/null @@ -1,38 +0,0 @@ -This tutorial will guide you through creating a VuePress Theme Hope project.
- -To avoid accidentally triggering some strange problems that you cannot solve by yourself, please try to avoid using file paths that contain CJK characters, emoji or spaces (e.g. C:\Users\毛泽东\Desktop\VuePress Project\Hope theme ❤️\
).
It is recommended to use plain English paths (e.g. D:\projects\vuepress-theme-hope\
).
Open a terminal in the chosen folder.
-Opening terminal on Windows
-Please use file explorer to open that folder, then enter cmd
in the address bar above and press Enter.
Execute one of the following command in terminal:
-pnpm create vuepress-theme-hope my-docs
-
yarn create vuepress-theme-hope my-docs
-
npm init vuepress-theme-hope@latest my-docs
-
Folder Argument
-Here my-docs
is an argument representing the folder name of the VuePress Theme Hope project. In this tutorial, we will generate the project to the my-docs
folder in the current directory.
You can change this parameter to use a new folder if you want.
-Dev Server
-If you choose to start the development server after the template is initialized, you can enter localhost:8080/
in the browser address bar to access the development server after the dev server starts.
This tutorial guides you on how to deploy a VuePress project.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/deploy.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/deploy.html.vue deleted file mode 100644 index b0f375f..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/deploy.html.vue +++ /dev/null @@ -1,22 +0,0 @@ -This tutorial guides you on how to deploy a VuePress project.
- -Once you completed the starter stage development of the project locally, you can build the website using the pnpm docs:build
command.
If you are using theme template, the website content will be output to the .vuepress/dist
under VuePress project folder These files are the final output of VuePress.
You can deploy the contents of this folder to your website's server. The easiest way to do this is to upload to GitHub and start GitHub Pages.
-After the action finishes, you should go to GitHub repo settings to choose gh-pages
as source of GitHub Pages.
If you're using theme template, and you choose to create GitHub workflow during setup, the only thing you need to do is set the correct base option
If you are going to publish to https://<USERNAME>.github.io/
, you must upload the entire project to the https://github.com/<USERNAME>/<USERNAME>.github.io
repository. You don't need to make any changes in this case, since base defaults to "/"
.
If your repository link is in a normal format like https://github.com/<USERNAME>/<REPO>
, the website will be published to https://<USERNAME>.github.io /<REPO>/
, so you need to set base to "/<REPO>/"
.
For other deployment methods, please refer to VuePress → Deployment
This tutorial will guide you on how to set up a VuePress runtime environment.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/env.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/env.html.vue deleted file mode 100644 index 7301740..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/env.html.vue +++ /dev/null @@ -1,46 +0,0 @@ -This tutorial will guide you on how to set up a VuePress runtime environment.
- -You need an editor to edit your project, and we recommend using VSCode to write and run your VuePress projects.
-Click the blue button on the left of Download page
Double-click the installation package to open
-Agree to the User Agreement.
-In the installation options, be sure to select all the following options:
-Tick Add to directory context menu, Add to file context menu, Register code as a supported file editor, Add to path.
-After the initial startup of VS Code, if Git is not installed in advance, it may prompt that the Git software is not found, just ignore it.
-Introduction
-Node.js®
You need to download and install the latest long-term maintenance release.
-Warning
-If you are a real novice, please do not change the default installation directory.
-Node.js itself will only take up a few dozen megabytes of space!
-After you install Node.js, enable corepack with corepack enable
.
Tips
-We recommend you to choose pnpm as package manager, because VuePress and VuePress Theme Hope both use pnpm to manage dependencies.
-Some features of pnpm ensure that you have the correct dependencies, also it can speed up your installation.
-This tutorial will introduce VuePress project structure.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/get-started/structure.html.vue b/docs/theme/src/.vuepress/.temp/pages/get-started/structure.html.vue deleted file mode 100644 index 4ebbdf9..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/get-started/structure.html.vue +++ /dev/null @@ -1,36 +0,0 @@ -This tutorial will introduce VuePress project structure.
- -VuePress only controls the files in the VuePress project folder, that is, the parameters in the previous chapter. Other files in project are not used by VuePress.
-Note
-If you used docs
as instructed in the previous tutorial, then docs
is your VuePress project folder.
A basic project structure is as follows:
-.
-├── .github (optional) → GitHub config file storage path
-│ └── workflow → GitHub workflow configuration
-│ └── docs-deploy.yml → Workflow for automatic deployment of documents
-│
-├── src → docs folder
-│ │
-│ ├── .vuepress (optional) → VuePress config folder
-│ │ │
-│ │ ├── dist (default) → build output directory
-│ │ │
-│ │ ├── public (optional) → static resource directory
-│ │ │
-│ │ ├── styles (optional) → style-related files
-│ │ │
-│ │ ├── config.{js,ts} (optional) → the entry file of the configuration file
-│ │ │
-│ │ └── client.{js,ts} (optional) → client application file
-│ │
-│ ├── ... → Other project documentation
-│ │
-│ └── README.md → Project Homepage
-│
-└── package.json → Nodejs configuration file
-
You can create .vuepress/client.ts
or .vuepress/client.js
as a client config file to customize your site.
You can create .vuepress/client.ts
or .vuepress/client.js
as a
Info
-To learn more about client config file, see Advanced > Cookbook > Usage of Client Config
import { defineClientConfig } from "vuepress/client";
-import ExampleGlobalComponent from "./components/ExampleGlobalComponent.vue";
-import ExampleRootComponent from "./components/ExampleRootComponent.vue";
-import { setupExampleCompositionAPI } from "./composables/exampleCompositionAPI";
-import ExampleLayout from "./layouts/ExampleLayout.vue";
-
-export default defineClientConfig({
- // Client enhancements
- enhance: ({ app, router }) => {
- // register global component
- app.component("ExampleGlobalComponent", ExampleGlobalComponent);
-
- // register router guard
- router.beforeEach((to) => {
- console.log("before navigation");
- });
-
- router.afterEach((to) => {
- console.log("after navigation");
- });
- },
-
- // global registration
- setup() {
- // Register the global Composition API
- setupExampleCompositionAPI();
-
- // access dom in client
- onMounted(() => {
- // use DOM API after mounted
- document.querySelector("#app");
- });
- },
-
- // adding or overriding layouts
- layouts: {
- ExampleLayout,
- },
-
- // global component
- rootComponents: [
- "ExampleRootComponent",
- //...
- ],
-});
-
vuepress-theme-hope
supports extending just like @vuepress/theme-default
.
You can create your own theme based on vuepress-theme-hope
and use it locally or publish it according to your needs.
You need to create an entry file for your theme and import hopeTheme
from vuepress-theme-hope
.
In your entry file, set extends: hopeTheme(options)
to extend the vuepress-theme-hope
theme.
The aliases of the same name (alias
) and layouts (layouts
) of your own newly created theme has higher priority over the extended theme vuepress-theme-hope
, which means that you can override vuepress-theme-hope
components via alias
option in theme api, and you can add or override layouts via layouts
in
import { getDirname, path } from "vuepress/utils";
-import { hopeTheme } from "vuepress-theme-hope";
-import type { ThemeOptions } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default (options: ThemeOptions) => ({
- name: "vuepress-theme-local",
-
- extends: hopeTheme(options, { custom: true }),
-
- alias: {
- // You can override or add aliases here
- // For example, here we change the vuepress-theme-hope HomePage component to components/HomePage.vue under our own theme
- "@theme-hope/components/HomePage": path.resolve(
- __dirname,
- "./components/HomePage.vue",
- ),
- },
-});
-
import { getDirname, path } from "vuepress/utils";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default (options) => ({
- name: "vuepress-theme-local",
-
- extends: hopeTheme(options, { custom: true }),
-
- alias: {
- // You can override or add aliases here
- // For example, here we change the vuepress-theme-hope HomePage component to components/HomePage.vue under our own theme
- "@theme-hope/components/HomePage": path.resolve(
- __dirname,
- "./components/HomePage.vue",
- ),
- },
-});
-
Also, you can add or override layout provided by vuepress-theme-hope
via layouts
in your theme client config file.
import { defineClientConfig } from "vuepress/client";
-import Changelog from "./layouts/Changelog.vue";
-import Layout from "./layouts/Layout.vue";
-
-export default defineClientConfig({
- // You can override or add layouts here
- layouts: {
- // For example, here we change the default layout of vuepress-theme-hope to layouts/Layout.vue
- Layout,
- // Also we added a Changelog layout
- Changelog,
- },
-});
-
import { defineClientConfig } from "vuepress/client";
-import Changelog from "./layouts/Changelog.vue";
-import Layout from "./layouts/Layout.vue";
-
-export default defineClientConfig({
- // You can override or add layouts here
- layouts: {
- // For example, here we change the default layout of vuepress-theme-hope to layouts/Layout.vue
- Layout,
- // Also we added a Changelog layout
- Changelog,
- },
-});
-
The theme adds feed support with [@vuepress/plugin-feed
][feed]. To use it, install @vuepress/plugin-feed
manually in your project.
Info
\\nvuepress-theme-hope
provides plugins.feed
in theme options to @vuepress/plugin-feed
.
The theme adds feed support with @vuepress/plugin-feed
@vuepress/plugin-feed
manually in your project.
Info
-vuepress-theme-hope
provides plugins.feed
in theme options to @vuepress/plugin-feed
.
The @vuepress/plugin-feed
plugin can generate feed files in the following three formats for you:
Please use RSS if possible. Atom and JSON are only provided for best compatibility.
-Please set plugins.feed.atom
, plugins.feed.json
or plugins.feed.rss
to true
in theme options according to the format you want to generate.
Tips
-Of course, you can enable them all. This is not a "choose 1 from 3" situation.
-Considering that rare people stick to feed now, this plugin provides a minimal configuration to adjust the automatic generation of detailed feed files. Also, it allows you to freely define the output content of the feed.
-You can customize the feed channel information by setting the plugins.feed.channel
in theme options.
We recommend the following settings:
-channel.pubDate
channel.ttl
(unit: minutes)channel.copyright
, or fallback to copyright
in theme optionschannel.author
, or fallback to author
in theme optionsDefault channel settings
-The title and description of the channel is the name and description of the site by default
-The link of the channel and the last update time will be automatically generated by the plugin.
-For detailed options and their default values, see Feed Channel Docs
By default, all articles are added to the feed stream.
-You can control how feed item is generated in specific article by configuring the feed
option in frontmatter, check Feed frontmatter Docs
You can take full control of feed items generation by configuring the plugins.feed.getter
, check Feed Getter Docs
The plugin generates separate feeds for each language.
-You can provide different settings for different languages via plugins.feed.locales
.
Here are some advanced uses of vuepress-theme-hope
.
To properly use them the way you want, you should understand of how VuePress works, know about VuePress Plugin API, or related concepts.
-If you are new to frontend, you can give up these features at your discretion.
-Warning
-To be as friendly as possible to newcomers, we added concept introductions that are important in the corresponding chapters of the document as much as possible.
-If you are still confused what's it or what's it for after reading, we recommend you to learn through the internet or stop using those features.
-We are happy to answer your questions about how to customize related content. Also, if you do want to implement XXX, but don't know how, we are happy to give you advice on what you should learn to implement them.
-But please don't ask such questions:
-We do not want to "describe all the concepts involved and their usage to you" and "teach you how to implement the features you want" in telegram group or discussion panel.
-The theme provides progressive web app support [^pwa-intro] via [@vuepress/plugin-pwa
][pwa]. To use it, install @vuepress/plugin-pwa
manually in your project.
Info
\\nIf you are using this plugin, we recommend you to set shouldPrefetch: false
in your VuePress config file.
vuepress-theme-hope
provides plugins.pwa
in theme options to @vuepress/plugin-pwa
.
The theme provides progressive web app support [1] via @vuepress/plugin-pwa
@vuepress/plugin-pwa
manually in your project.
Info
-If you are using this plugin, we recommend you to set shouldPrefetch: false
in your
vuepress-theme-hope
provides plugins.pwa
in theme options to @vuepress/plugin-pwa
.
You can set plugins.pwa
to true
in theme options to let theme automatically generate the necessary config and enable plugins quickly. However, we recommend you to manually set some options by following the instructions below.
To make your website fully compliant with PWA, a Web app manifests [2] file is needed, and your pwa should satisfy the installability [3] specification.
-You can set plugins.pwa.manifest
option to customize the manifest file, or provide a manifest.webmanifest
or manifest.json
in public folder. The former has higher priority.
The plugin will automatically generate manifest.webmanifest
for you and add manifest link declaration in each page, while you should still at least set a valid icon through plugins.pwa.manifest.icons
or other icon related options in the PWA plugin.
Warning
-The installability [3:1] specification requires at least one valid icon to be declared in the manifest.
-So if you do not configure plugins.pwa.manifest.icons
, visitors can only enjoy the offline accessibility brought by the Service Worker cache, while cannot install your site as a PWA.
Besides the plugin does not process anything in the manifest by default, but outputs them as-is. This means that if you plan to deploy to a subdirectory, you should append the URL prefix to manifest Urls yourself. If everything you need is all under base
directory, you can set plugins.pwa.appendBase: true
in plugin options to let the plugin append base
to any links in manifest.
To better control what the Service Worker can pre-cache, the plugin provides related options for cache control.
-By default, the plugin will pre-cache all js
css
files, and only homepage and 404 html are cached. The plugin will also cache font files (woff, woff2, eot, ttf, otf) and SVG icons.
If your site has only a few important images, and want them displayed in offline mode, you can cache site images by setting plugins.pwa.cacheImage: true
.
We recognize images by file extension. Any files ending with .png
, .jpg
, .jpeg
, .gif
, .bmp
, .webp
will be regarded as images.
If you have small sites, and would like to make document fully offline available, you can set plugins.pwa.cacheHTML
to true
to cache all HTML files.
Why only home and 404 page been cached by default?
-Though VuePress generates HTML files through SSG[4] for all pages, these files are mainly used for SEO[5] and allow you to directly configure the backend without SPA[6] Visit any link.
-VuePress is essentially an SPA. This means that you only need to cache the home page and enter from the home page to access all pages normally. Therefore, not caching other HTML by default can effectively reduce the cache size (40% smaller in size) and speed up the SW update speed.
-But this also has the disadvantage. If the user enters the site directly from a non-home page, the HTML file for the first page still needs to be loaded from the internet. Also, in offline environment, users can only enter through the homepage and then navigate to the corresponding page by themselves. If they directly access a link, an inaccessible prompt will appear.
-To prevent large files from being included in the pre-cache list, any files > 2 MB or images > 1 MB will be omitted. You can customize these limits with plugins.pwa.maxSize
and plugins.pwa.maxImageSize
options (in KB unit).
We provide the plugins.pwa.update
option to control how users receive updates.
The default value of the plugins.pwa.update
option is "available"
, which means that when new content available, the new SW will be installed and its resources will be fetched silently in the background. A pop-up window appears once the new SW is ready, and users can choose whether to refresh immediately to view new content. This means users are reading old content before a new SW is ready.
If your project is still in building stage, and you want to alert the user that he may be reading outdated content, you can set this to "hint"
. This allows users to be notified that new content has been published within seconds after visiting docs. But the negative effect of this is that if the user chooses to update before the new SW is ready, he will need to get all the resources of the page from the internet before the new SW installs and controls the page.
If your docs are stable, or you're hosting a blog and don't care much about users receiving the latest version right away, you can set this to "disabled"
, which means that the new SW will be installed completely silently in the background and start waiting, when all pages controlled by old SW are all closed, the new SW will start to take control and provide users with new content during next visit. This setting can prevent users from being disturbed during the visit.
To speed up user access under weak or no network conditions through SW, but also want users to always access new content, you can set this option to "force"
. This means any old SW will be removed as soon as a new SW is detected, and all pages are refreshed to ensure the user is browsing the latest content. The biggest disadvantage is that all users will experience unexpected sudden refresh within seconds after reentering an updated site.
When new content is detected (new SW detected), a update found popup appears; and when the new content is ready, an update ready popup appears.
-If you are not satisfied with the default popup content, you can use your own component. Import PWAFoundPopup
or PWAReadyPopup
from @vuepress/plugin-pwa/client
and use its slot to customize the popup content, then pass the component path to plugins.pwa.foundComponent
or plugins.pwa.readyComponent
option:
<script setup lang="ts">
-import { PWAFoundPopup } from "@vuepress/plugin-pwa/client";
-</script>
-<template>
- <PWAFoundPopup v-slot="{ found, refresh }">
- <div v-if="found">
- New content is found.
- <button @click="refresh">Refresh</button>
- </div>
- </PWAFoundPopup>
-</template>
-
<script setup lang="ts">
-import { PWAReadyPopup } from "@vuepress/plugin-pwa/client";
-</script>
-<template>
- <PWAReadyPopup v-slot="{ isReady, reload }">
- <div v-if="isReady">
- New content is ready.
- <button @click="reload">Apply</button>
- </div>
- </PWAReadyPopup>
-</template>
-
The plugin also provides other PWA-related options, such as Microsoft tile icon and color settings, Apple icon and so on. If you are an advanced user, you can also set plugins.pwa.generateSwConfig
to configure workbox-build
. Check Plugin options
For more details, please see:
- -PWA introduction
-PWA, full name Progressive Web app. PWA standard is stipulated by W3C.
-It allows sites to install the site as an App on supported platform through a browser that supports this feature. ↩︎
-Manifest File
-The manifest file uses the JSON format and is responsible for declaring various information of the PWA, such as name, description, icon, and shortcut actions.
-In order for your site to be registered as a PWA, you need to meet the basic specifications of the manifest to make the browser consider the site as an installable PWA and allow users to install it.
-Tips
-For Manifest standards and specifications, please see MDN Web app manifests
Installable
-To let the site be registered as a PWA, the site needs to successfully register a valid service worker by itself, and declare a valid manifest file with its link in meta tag.
-The manifest file should contain at least name
(or short_name
) icons
start_url
.
On safari, the maximum cache size of the service worker is 50 MB. ↩︎ ↩︎
-SSG: Static Site Generation, ↩︎
-SEO: Search Engine Optimization. ↩︎
-SPA: Single Page Application, most of them only have the homepage, and use history mode to handle routing instead of actually navigating between pages. ↩︎
-When setting { custom: true }
in Behavior options, the theme will import components through @theme-hope
alias, so you can use it to replace any component of the theme.
When setting { custom: true }
in @theme-hope
alias, so you can use it to replace any component of the theme.
You need to replace the component alias used in the theme with alias
option in your own VuePress config file.
import { getDirname, path } from "vuepress/utils";
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default defineUserConfig({
- theme: hopeTheme(
- {
- // your theme config here
- },
- { custom: true },
- ),
-
- alias: {
- // Here you can redirect aliases to your own components
- // For example, here we change the theme's home page component to HomePage.vue under user .vuepress/components
- "@theme-hope/components/HomePage": path.resolve(
- __dirname,
- "./components/HomePage.vue",
- ),
- },
-});
-
import { getDirname, path } from "vuepress/utils";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default {
- theme: hopeTheme(
- {
- // your theme config here
- },
- { custom: true },
- ),
-
- alias: {
- // Here you can redirect aliases to your own components
- // For example, here we change the theme's home page component to HomePage.vue under user .vuepress/components
- "@theme-hope/components/HomePage": path.resolve(
- __dirname,
- "./components/HomePage.vue",
- ),
- },
-};
-
Here are list of aliases.
-Components:
-@theme-hope/components/AutoLink
: basic link@theme-hope/components/BreadCrumb
: breadcrumb@theme-hope/components/CommonWrapper
: basic layout integration@theme-hope/components/FeaturePanel
: homepage features@theme-hope/components/HeroInfo
: homepage logo and introduction@theme-hope/components/HighlightPanel
: homepage highlights@theme-hope/components/HomePage
: home page@theme-hope/components/HopeIcon
: icon@theme-hope/components/MarkdownContent
: Markdown content@theme-hope/components/NormalPage
: normal page@theme-hope/components/PageFooter
: page footer@theme-hope/components/PageNav
: page navigation@theme-hope/components/PageTitle
: page title@theme-hope/components/SkipLink
: skip to main content@theme-hope/components/transitions
: drop transition componentMiscellaneous:
-@theme-hope/components/transitions/index
: theme transitions@theme-hope/components/icons/index
: theme icons@theme-hope/composables/index
: theme Composition API@theme-hope/utils/index
: theme utility functionsComponents:
-@theme-hope/modules/navbar/components/NavbarDropdown
: dropdown list@theme-hope/modules/navbar/components/LanguageDropdown
: language dropdown@theme-hope/modules/navbar/components/NavActions
: navbar functions@theme-hope/modules/navbar/components/Navbar
: navbar@theme-hope/modules/navbar/components/NavbarBrand
: navbar brand information@theme-hope/modules/navbar/components/NavbarLinks
: navbar links@theme-hope/modules/navbar/components/NavScreen
: navigation screen in mobile view@theme-hope/modules/navbar/components/NavScreenMenu
: mobile view navbar dropdown menu@theme-hope/modules/navbar/components/NavScreenLinks
: mobile view navbar links@theme-hope/modules/navbar/components/RepoLink
: repository link@theme-hope/modules/navbar/components/ToggleNavbarButton
: navbar toggle button@theme-hope/modules/navbar/components/ToggleSidebarButton
: sidebar toggle buttonMiscellaneous:
-@theme-hope/modules/navbar/components/icons/index
: navbar icons@theme-hope/modules/navbar/composables/index
: navbar Composition APIComponents:
-@theme-hope/modules/sidebar/components/Sidebar
: sidebar@theme-hope/modules/sidebar/components/SidebarChild
: sidebar link item@theme-hope/modules/sidebar/components/SidebarGroup
: sidebar grouping links@theme-hope/modules/sidebar/components/SidebarLinks
: sidebar linksMiscellaneous:
-@theme-hope/modules/sidebar/composables/index
: sidebar Composition API@theme-hope/modules/sidebar/utils/index
: sidebar utility functionsComponents:
-@theme-hope/modules/info/components/AuthorInfo
: author information@theme-hope/modules/info/components/CategoryInfo
: category information@theme-hope/modules/info/components/DateInfo
: date information@theme-hope/modules/info/components/OriginalInfo
: original mark@theme-hope/modules/info/components/PageInfo
: page information@theme-hope/modules/info/components/PageMeta
: page meta information@theme-hope/modules/info/components/PageViewInfo
: page views information@theme-hope/modules/info/components/ReadingTimeInfo
: reading time information@theme-hope/modules/info/components/TagInfo
: tag information@theme-hope/modules/info/components/TOC
: table of contents@theme-hope/modules/info/components/WordInfo
: word informationMiscellaneous:
-@theme-hope/modules/blog/components/icons
: info icons@theme-hope/modules/blog/composables/index
: info Composables API@theme-hope/modules/blog/utils/index
: info utility functionsComponents:
-@theme-hope/modules/blog/components/ArticleItem
: article item@theme-hope/modules/blog/components/ArticleList
: article list@theme-hope/modules/blog/components/ArticleType
: article type@theme-hope/modules/blog/components/BloggerInfo
: blogger info@theme-hope/modules/blog/components/BlogHero
: blog homepage logo and introduction@theme-hope/modules/blog/components/BlogHome
: blog home page@theme-hope/modules/blog/components/BlogWrapper
: common wrapper for blog page@theme-hope/modules/blog/components/CategoryList
: Category list@theme-hope/modules/blog/components/InfoList
: blog info list@theme-hope/modules/blog/components/InfoPanel
: blog info panel@theme-hope/modules/blog/components/Pagination
: pagination@theme-hope/modules/blog/components/PortfolioHome
: portfolio homepage@theme-hope/modules/blog/components/ProjectPanel
: blog homepage project panel@theme-hope/modules/blog/components/SocialMedia
: social media links@theme-hope/modules/blog/components/TagList
: tag list@theme-hope/modules/blog/components/TimelineItems
: timeline items@theme-hope/modules/blog/components/TimelineList
: timeline ListMiscellaneous:
-@theme-hope/modules/blog/components/icons/index
: blog icons@theme-hope/modules/blog/composables/index
: blog Composables APIComponents:
-@theme-hope/modules/encrypt/components/GlobalEncrypt
: global encrypt wrapper@theme-hope/modules/encrypt/components/LocalEncrypt
: local encrypt wrapper@theme-hope/modules/encrypt/components/PasswordModal
: password input boxMiscellaneous:
-@theme-hope/modules/encrypt/composables/index
: encryption Composition API@theme-hope/modules/encrypt/utils/index
: encryption utility functions@theme-hope/modules/outlook/components/ColorMode
: theme color mode@theme-hope/modules/outlook/components/ColorModeSwitch
: theme color mode switch@theme-hope/modules/outlook/components/OutlookButton
: appearance button@theme-hope/modules/outlook/components/OutlookSettings
: appearance settings@theme-hope/modules/outlook/components/ThemeColor
: theme color@theme-hope/modules/outlook/components/ThemeColorPicker
: theme color picker@theme-hope/modules/outlook/components/ToggleFullScreenButton
: fullscreen toggle buttonMiscellaneous:
-@theme-hope/modules/outlook/components/icons/index
: appearance icons@theme-hope/modules/outlook/composables/index
: appearance Composition APISome components provide slots, in this case, you can directly import the original component when overriding the component, and pass in the content you need through the slot.
-Tips
-For demo of common slots, please refer
For example, if your site has strong social attributes, and you want to display a comment box on the homepage, you can display it like this:
-import { getDirname, path } from "vuepress/utils";
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default defineUserConfig({
- theme: hopeTheme(
- {
- // your theme config here
- },
- { custom: true },
- ),
-
- alias: {
- // Here you can direct aliases to your own components
- // For example, here we change the theme's home page component to HomePage.vue under user .vuepress/components
- "@theme-hope/components/HomePage": path.resolve(
- __dirname,
- "./components/HomePage.vue",
- ),
- },
-});
-
<template>
- <HopeHomePage>
- <!-- Introduce comment component using bottom slot -->
- <template #bottom>
- <CommentService />
- </template>
- </HopeHomePage>
-</template>
-<script setup lang="ts">
-import HopeHomePage from "vuepress-theme-hope/components/HomePage.js";
-</script>
-
Components that provide slots are as follows:
-Theme:
-AutoLink
: default
, before
, after
CommonWrapper
: default
, navbarStartBefore
, navbarStartAfter
, navbarCenterBefore
, navbarCenterAfter
, navbarEndBefore
, navbarEndAfter
, navScreenTop
, navScreenBottom
, sidebar
, sidebarTop
, sidebarBottom
HeroInfo
: logo
, info
, bg
info
slot will receive text
tagline
and isFullScreen
props.logo
slot will receive image
imageDark
style
alt
and isFullScreen
props.bg
slot will receive image
bgStyle
and isFullScreen
props.HomePage
: top
, center
, bottom
NormalPage
: top
, contentBefore
, contentAfter
, bottom
, tocBefore
, tocAfter
Blog:
-ArticleItem
: title
, cover
, info
, excerpt
title
slot will receive title
isEncrypted
and type
props.excerpt
slot will receive excerpt
props.cover
slot will receive cover
props.info
slot will receive info
props.BlogHero
: bg
, info
info
slot will receive text
tagline
image
imageDark
style
alt
and isFullScreen
props.bg
slot will receive image
bgStyle
and isFullScreen
props.PortfolioHero
: avatar
bg
, info
avatar
slot will receive avatar
avatarDark
avatarStyle
and alt
props.info
slot will receive name
welcome
title
titles
and links
props.bg
slot will receive image
imageDark
and bgStyle
props.NavBar:
-NavbarDropdown
: title
NavActions
: before
, after
Navbar
: startBefore
, startAfter
, centerBefore
, centerAfter
, endBefore
, endAfter
NavbarBrand
: default
NavScreen
: before
, after
NavScreenMenu
: before
, after
SideBar:
-Sidebar
: top
, default
, bottom
TOC:
-TOC
: before
, after
Tips
-For the corresponding location and function of each slot, please refer to theme source code
vuepress-theme-hope
provides SEO enhancements via built-in [@vuepress/plugin-seo
][seo].
To make the plugin work better, you may need to check the page config and configure them properly.
\\nInfo
\\nvuepress-theme-hope
passes plugins.seo
in theme options as plugin options to @vuepress/plugin-seo
.
The plugin will make your site fully support Open Content Protocol OGP and JSON-LD 1.1 to enhance the SEO of the site.
\\nIf you don't need this plugin, please set plugins.seo
to false
in theme options.
vuepress-theme-hope
provides SEO enhancements via built-in @vuepress/plugin-seo
To make the plugin work better, you may need to check the
Info
-vuepress-theme-hope
passes plugins.seo
in theme options as plugin options to @vuepress/plugin-seo
.
The plugin will make your site fully support Open Content Protocol OGP
If you don't need this plugin, please set plugins.seo
to false
in theme options.
The plugin works out of the box. Without any config, it will extract information from the page content as much as possible to complete the necessary tags required by OGP and JSON-LD.
-By default, the plugin will read the site config and page frontmatter to automatically generate tags as much as possible. Such as site name, page title, page type, writing date, last update date, and article tags are all automatically generated.
-The following are the <meta>
tags and their values that will be injected into <head>
by default:
The following are the <meta>
tags and their value injected into <head>
by default to satisfy OGP:
Meta Name | -Value | -
---|---|
og:url |
-themeConfig.hostname + path |
-
og:site_name |
-siteConfig.title |
-
og:title |
-page.title |
-
og:description |
-page.frontmatter.description || auto generated (when autoDescription is true in plugin options) |
-
og:type |
-"article" |
-
og:image |
-themeConfig.hostname + page.frontmatter.image ||first image in page || fallbackImage in plugin options |
-
og:updated_time |
-page.git.updatedTime |
-
og:locale |
-page.lang |
-
og:locale:alternate |
-Other languages including in siteData.locales |
-
twitter:card |
-"summary_large_image" (only available when image found) |
-
twitter:image:alt |
-page.title (only available when image found) |
-
article:author |
-page.frontmatter.author || themeConfig.author |
-
article:tag |
-page.frontmatter.tags || page.frontmatter.tag |
-
article:published_time |
-page.frontmatter.date || page.git.createdTime |
-
article:modified_time |
-page.git.updatedTime |
-
Property Name | -Value | -
---|---|
@context |
-"https://schema.org" |
-
@type |
-"NewsArticle" |
-
headline |
-page.title |
-
image |
-image in page || themeConfig.hostname + page.frontmatter.image || siteFavIcon in plugin options |
-
datePublished |
-page.frontmatter.date || page.git.createdTime |
-
dateModified |
-page.git.updatedTime |
-
author |
-page.frontmatter.author || themeConfig.author |
-
You can configure the head
option in the page's frontmatter to add specific tags to the page <head>
to enhance SEO.
-For example:
---
-head:
- - - meta
- - name: keywords
- content: SEO plugin
----
-
Will automatically inject <meta name="keywords" content="SEO plugin" />
.
The plugin also gives you full control over the build logic.
-For most pages, there are basically only two types: articles and website, so the plugin provides the isArticle
option to allow you to provide logic for identifying articles.
The option accepts a function in the format (page: Page) => boolean
, by default all non-home pages generated from Markdown files are treated as articles.
Note
-If a page does fit into the "unpopular" genre like books, music, etc., you can handle them by setting the three options below.
-You can use options plugins.seo.ogp
in theme options. To pass in a function to modify the default OGP object to your needs and return it.
function ogp(
- /** OGP Object inferred by plugin */
- ogp: SeoContent,
- /** Page Object */
- page: Page,
- /** VuePress App */
- app: App,
-): SeoContent;
-
For detailed parameter structure, see seo plugin config
For example, if you are using a third-party theme and set a banner
in frontmatter for each article according to the theme requirements, then you can pass in the following ogp
:
seoPlugin({
- ogp: (ogp, page) => ({
- ...ogp,
- "og:image": page.frontmatter.banner || ogp["og:image"],
- }),
-});
-
Like OGP, you can use plugins.seo.jsonLd
options in theme options to pass in a function to modify the default JSON-LD object to your needs and return it.
function jsonLd(
- /** JSON-LD Object inferred by plugin */
- jsonLD: ArticleSchema | BlogPostingSchema | WebPageSchema,
- /** Page Object */
- page: Page,
- /** VuePress App */
- app: App,
-): ArticleSchema | BlogPostingSchema | WebPageSchema;
-
If you are deploying your content to different sites, or same content under different URLs, you may need to set plugins.seo.canonical
in theme options to provide a "Canonical Link" for your page. You can either set a string which will be prepended before page route link, or adding a custom function (page: Page) => string | null
to return a canonical link if necessary.
Example
-If your sites are deployed under docs folder in example.com
, but available in:
http://example.com/docs/xxx
https://example.com/docs/xxx
http://www.example.com/docs/xxx
https://www.example.com/docs/xxx
(primary)To let search engine results always be the primary choice, you may need to set plugins.seo.canonical
to https://www.example.com/docs/
, so that search engine will know that the fourth URL is preferred to be indexed.
Sometimes you may need to fit other protocols or provide the corresponding SEO tags in the format provided by other search engines. In this case, you can use the plugins.seo.customHead
in theme options, whose type is:
function customHead(
- /** Head tag config */
- head: HeadConfig[],
- /** Page Object */
- page: Page,
- /** VuePress App */
- app: App,
-): void;
-
You should modify the head
array in this function directly.
The theme adds rich media structure support to most of the site structure by following RDFa 1.1
Tips
-You can use Google Rich Media Structure Test Tool
Search engine optimization (SEO) is the process of improving the quality and quantity of site traffic to a site or a web page from search engines. SEO targets unpaid traffic (known as "natural" or "organic" results) rather than direct traffic or paid traffic. Unpaid traffic may originate from different kinds of searches, including image search, video search, academic search, news search, and industry-specific vertical search engines.
-As an internet marketing strategy, SEO considers how search engines work, the computer-programmed algorithms that dictate search engine behavior, what people search for, the actual search terms or keywords typed into search engines, and which search engines are preferred by their targeted audience. SEO is performed because a site will receive more visitors from a search engine when sites rank higher on the search engine results page (SERP). These visitors can then potentially be converted into customers.
-Open Content Protocol OGP
SEO plugin perfectly supports this protocol and will automatically generate <meta>
tags that conform to the protocol.
SEO will generate "NewsArticle" scheme for article pages.
-vuepress-theme-hope
support this
Schema definition site for structural markup
-vuepress-theme-hope
provide Sitemap generation with @vuepress/plugin-sitemap
The plugin will automatically generate the last update time of the page based on the Git timestamp of the page, and will also declare the alternative version link of the page in other languages according to the locales' config.
-If you don't need this plugin, please set plugins.sitemap
to false
in theme options.
Info
-vuepress-theme-hope
passes plugins.sitemap
in theme options as plugin options to @vuepress/plugin-sitemap
.
By default, all site links except 404 page will be added to the Sitemap.
-To add other pages to the Sitemap outside the VuePress project page, please turn them into an array and pass to extraUrls
.
If you don't want certain pages to appear in the sitemap, you can turn them into an array and pass them to excludeUrls
, or you can pass in a filter function though filter
options. You can also set sitemap.exclude
to true
in page frontmatter.
You can also control the output link through the sitemapFilename
. The default output directory is sitemap.xml
.
The default update cycle of the page is daily
(every day). To modify the entire page cycle, please set changefreq
. You can also set sitemap.changefreq
in the frontmatter of the page. Note that page has a higher priority.
The legal frequencies are:
-"always"
"hourly"
"daily"
"weekly"
"monthly"
"yearly"
"never"
Sitemap Intro
-Sitemaps may be addressed to users or to software. Many sites have user-visible sitemaps which present a systematic view, typically hierarchical, of the site. These are intended to help visitors find specific pages, and can also be used by crawlers. Alphabetically organized site maps, sometimes called site indexes, are a different approach.
-For use by search engines and other crawlers, there is a structured format, the XML Sitemap, which lists the pages in a site, their relative importance, and how often they are updated. This is pointed to from the robots.txt file and is typically called sitemap.xml.
-Google introduced the Sitemaps protocol, so web developers can publish lists of links from across their sites.
-The topic provides you with a list of all articles under the path /article/
by default.
All articles will be added to the article list by default and rendered under the path /article/
.
\\n
If you don't want the list to contain some specific articles, just set the article
to false
in the frontmatter of the article, or you may customize it through plugins.blog.filter
in theme options.
To sticky a specific article in the article list, just set sticky
to true
in the frontmatter of the article.
Order
\\nFor sticky articles, you can set sticky
with a number to set their order. Articles with large numbers will be listed first.
If you want to add an excerpt for an article, you can mark contents with `
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/blog/article.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/blog/article.html.vue deleted file mode 100644 index a53de63..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/blog/article.html.vue +++ /dev/null @@ -1,96 +0,0 @@ -The topic provides you with a list of all articles under the path /article/
by default.
All articles will be added to the article list by default and rendered under the path /article/
.
-
If you don't want the list to contain some specific articles, just set the article
to false
in the frontmatter of the article, or you may customize it through plugins.blog.filter
in theme options.
To sticky a specific article in the article list, just set sticky
to true
in the frontmatter of the article.
Order
-For sticky articles, you can set sticky
with a number to set their order. Articles with large numbers will be listed first.
If you want to add an excerpt for an article, you can mark contents with <!-- more -->
comment. Any content before this comment will be considered as an excerpt.
Meanwhile, if the excerpt you want to set is not what you want to show at the beginning of the article, you can also set the HTML string through the excerpt
option in Frontmatter.
By default, the theme extract article excerpts for you automatically.
-If you want the theme only display excerpt which you specify, set plugins.blog.excerptLength: 0
in theme options.
Excerpt Limitation
-We recommend you to use <!-- more -->
to mark excerpt as first choice. If you do need a special excerpt, set it in frontmatter yourself.
In addition, excerpt is directly inserted into the DOM through innerHTML
, this means that no Vue features are available.
You can star an article by setting star
to true
in frontmatter. After staring, users can view these articles on the /star/
page.
At the same time, any star articles will be displayed in the article column on the sidebar of the blog homepage.
-Info
-Our consideration for providing star options: Theme users may want to show visitors some high-quality articles, but do not want sticky articles to flood the homepage, resulting in visitors not being able to see the recently updated articles.
-Order
-Similar to sticky articles, you can also set star
to number to set their order. Articles with large numbers will be listed first.
The theme provides separate lists for additional article type.
-To add additional article type, you should set plugins.blog.type
in theme options with an array of objects describing type you want.
Each type should have a unique key (without special characters), and a filter
function to determine whether a page should be the type. The filter
function should accept page object and return a boolean value.
To sort pages in the type list, you can also set a sorter
function. The sorter
function should accept two page objects and return a number.
By default, the type list path will be /key/
(with key
replaced by your actual key). You can also set a custom path by setting path
in options.
frontmatter
option controls the frontmatter of the layout page, with is a function accepting localePath
and returning a frontmatter object. This option is useful when setting the title of the layout page.
Note
-layout
is the layout name, by default it will be BlogType
, a layout vuepress-theme-hope
registered. ONLY IF you build a custom layout for the type list, shall you set this option to your layout value.
Also, you need to set blogLocales[key]
in theme locales with the actual type name, so that the theme can display the type name correctly.
To get start with, we would like to show you some examples.
-Adding a type of slide pages.
-All slide pages should have layout: Slide
in frontmatter. And the sequence doesn't matter.
Adding an original type.
-You shall set the following options:
-import { compareDate } from "@vuepress/helper";
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // other config
- // ...
-
- theme: hopeTheme({
- blogLocales: {
- slide: "Slides",
- original: "Original",
- },
-
- plugins: {
- blog: {
- type: [
- {
- key: "slide",
- filter: (page) => page.frontmatter.layout === "Slide",
- frontmatter: () => ({ title: "Slides" }),
- },
- {
- key: "original",
- filter: (page) => page.frontmatter.original,
- sorter: (pageA, pageB) =>
- compareDate(pageA.frontmatter.date - pageB.frontmatter.date),
- frontmatter: () => ({ title: "Original" }),
- },
- ],
- },
- },
- }),
-});
-
Themes allow you to display basic information about the blogger.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/blog/blogger.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/blog/blogger.html.vue deleted file mode 100644 index fbb8779..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/blog/blogger.html.vue +++ /dev/null @@ -1,212 +0,0 @@ -Themes allow you to display basic information about the blogger.
- -
-
You can config blogger avatar and name displayed through blog.avatar
and blog.name
.
Note
-If you don't set those options, they automatically fall back to the site logo (logo
in theme options) and site name.
You can use blog.description
to set your own introduction, motto or slogan.
You can also specify a personal introduction page link through blog.intro
, so when users click on the avatar and name, they will be direct to that page.
You can also config your social media links with blog.medias
option.
If the social media icon is available below, you can set MediaName: MediaLink
directly.
Otherwise, you should pass in a tuple MediaName: [MediaLink , MediaSvgIconString or MediaSvgIconPath]
,
The second element in the tuple must be a valid SVG string or a full path of an existing SVG file.
-Available social media:
-"CoolApk"
"Discord"
"Douban"
"Facebook"
"Instagram"
"Kook"
"Line"
"Messenger"
"QQ"
"Qzone"
"Reddit"
"Skype"
"SnapChat"
"Soul"
"Telegram"
"Tieba"
"Tumblr"
"Twitter"
"VK"
"Wechat"
"Weibo"
"Whatsapp"
"YY"
"Bitbucket"
"Dingding"
"Dribbble"
"Email"
"Evernote"
"Gitee"
"GitHub"
"Gitlab"
"Gmail"
"KDocs"
"Lark"
"Linkedin"
"Pocket"
"QQDocs"
"WechatWork"
"AFDian"
"Baidu"
"Bangumi"
"DuiTang"
"Flipboard"
"HuaBan"
"Pinterest"
"Pixiv"
"Rss"
"WechatMP"
"XiaoHongShu"
"Zhihu"
"163Music"
"5Sing"
"Kugou"
"Kuwo"
"QQMusic"
"SoundCloud"
"XiMaLaYa"
"AcFun"
"BiliBili"
"Douyin"
"Douyu"
"HuoShan"
"HuYa"
"iQiYi"
"KuaiShou"
"Nico"
"QQVideo"
"Twitch"
"WechatCh"
"Weishi"
"Youku"
"Youtube"
"115"
"360Yun"
"AliDrive"
"AliPay"
"BaiduDisk"
"BattleNET"
"IdleFish"
"Paypal"
"Steam"
"WechatPay"
import { getDirname, path } from "vuepress/utils";
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default defineUserConfig({
- theme: hopeTheme({
- blog: {
- medias: {
- // GitHub Icon is available
- GitHub: "https://github.com/Mister-Hope",
- // A custom Media called "MediaX" (just an example)
- MediaX: [
- // link
- "https://mediax.com/UserX/",
- // icon string
- "<svg ....</svg>",
- ],
- // A custom Media called "MediaY" (just an example)
- MediaY: [
- // link
- "https://mediay.com/UserY/",
- // icon path
- path.resolve(__dirname, "icons/mediay.svg"),
- ],
- },
- },
- }),
-});
-
import { getDirname, path } from "vuepress/utils";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default {
- theme: hopeTheme({
- blog: {
- medias: {
- // GitHub Icon is available
- GitHub: "https://github.com/Mister-Hope",
- // A custom Media called "MediaX" (just an example)
- MediaX: [
- // link
- "https://mediax.com/UserX/",
- // icon string
- "<svg ....</svg>",
- ],
- // A custom Media called "MediaY" (just an example)
- MediaY: [
- // link
- "https://mediay.com/UserY/",
- // icon path
- path.resolve(__dirname, "icons/mediay.svg"),
- ],
- },
- },
- }),
-};
-
You can configure category and tags for articles through frontmatter to make them appear in specific categories and tags pages.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/blog/category-and-tags.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/blog/category-and-tags.html.vue deleted file mode 100644 index 02aa1c0..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/blog/category-and-tags.html.vue +++ /dev/null @@ -1,36 +0,0 @@ -You can configure category and tags for articles through frontmatter to make them appear in specific categories and tags pages.
- -Just add category array to category
in page frontmatter, the article will be automatically rendered in the list of the/category/<category name>/
category page.
For example, add this to a certain page:
----
-category:
- - HTML
- - Web
----
-
-Page content...
-
Then you can find it under the /category/html
page.
-
Just set tag
option in page frontmatter , and set value to one or more tags, then the article will be automatically rendered in the list of the /tag/<tag name>/
tag page.
For example, after adding this in frontmatter:
----
-tag:
- - HTML
- - Web
----
-
-Page content...
-
Then you can find it under the /tag/html
and /tag/web
pages.
-
Besides directly accessing the corresponding link, the category and tag name will be displayed at the article information at the top of the article. You can click on it to navigate to the corresponding list to view the articles of the same category or tag.
- -You can also select the category or tag tab in the sidebar of the blog homepage and select the corresponding item to enter the list.
- -vuepress-theme-hope
allows you to enable a blog-style and a portfolio style homepage.
vuepress-theme-hope
allows you to enable a blog-style and a portfolio style homepage.
Set layout: BlogHome
and home: true
in the frontmatter of homepage.
-
You can use heroText
to set the main title and tagline
to set the subtitle.
If you have a logo, you can place it in the public
folder and set it via heroImage
, if you want to display another logo in night mode, you can use heroImageDark
. For better A11y, we recommend that you set the description of Logo to heroAlt
.
You can set the background image through bgImage
and bgImageDark
, but you need to pay attention that you must fill in the full URL or absolute path. If you want the information to be displayed in full screen, you can set heroFullScreen: true
.
If you need to customize some styles, you can set the style of the logo and background image through heroImageStyle
and bgImageStyle
.
Typically, you might want to display some projects, books, articles, links, friend links, etc. on your homepage. You can set them via projects
, which is an array where each element is an object with the following keys:
name
: required, project name
link
: required, project link, fill in an external path or absolute path
desc
: project description
icon
: Icon, you can fill in full path or absolute path image link, also icon FontClass is supported
We provide these icons as built-in support either: "link"
, "project"
, "book"
, "article"
, "friend"
。
Info
-For complete configuration items, see
Living Demo
-Set layout: PortfolioHome
and home: true
in the frontmatter of homepage.
To describe yourself, set titles
in frontmatter with titles that fits you.
You are expected to set a image of yours with avatar
(and avatarDark
for darkmode if needed). You can also set bgImage
(and bgImageDark
for darkmode if needed) to customize background image. Advanced style adjusting can be done with avatarStyle
and bgImageStyle
option.
The name is default to author
option in theme options, while you can set name
in frontmatter to customize it. The welcome message can also be customized through welcome
option in frontmatter.
By default, media links set in blog.medias
is displayed, while you can also set medias
in frontmatter with name
icon
and url
for each media to override.
Living Demo
-The theme supports blog feature with@vuepress/plugin-blog
by default, and it's disabled by default.
If you need blog functionality, you can set plugins.blog: true
in theme options to enable blog functionality.
The theme supports blog feature with@vuepress/plugin-blog
by default, and it's disabled by default.
If you need blog functionality, you can set plugins.blog: true
in theme options to enable blog functionality.
After enabling the blog function, the theme allows you to configure categories, tags, whether it is an article, whether it appears in the timeline, stars, sticky and other functions through the frontmatter of the page.
-Demo
-Here is a demovuepress-theme-hope
.
The theme adds support for i18n in blog system. You can set different blog config for each language using locales
in theme options.
When you have multiple languages, the article list, timeline, etc. under each language will remain independent.
-The theme provides a blog info sidebar. The sidebar will be displayed on the blog-related page (it will be displayed on the right side on the desktop, and retracted into the sidebar in mobile view)
-You can control the display behavior of the sidebar on non-blog related pages through blog.sidebarDisplay
in theme options. Optional values are "mobile" | "none" | "always"
. The default is "mobile"
, that is, when you visit non-blog related pages in mobile view, you can also see it in the sidebar.
For the list of articles on all pages, we will display a pagination component at the bottom. You can use this component to quickly jump to the first page, the last page, and the two pages before and after. You can also enter a number to jump to the specified page.
-The default number of articles per page is 10
, you can set blog.articlePerPage
in theme options to override it.
Hot update disabled by default
-For performance reasons, hot updates are not enabled for blog-related data by default in devServer, i.e. if you add new articles or modify the categories, time, tags, sticky, star, etc. of existing articles, the related data of the entire site will not update until you restart devServer.
-In addition, since the blog information will be written to the underlying data of VuePress, modifying this file will cause application restart, so reading time (including word count information) which are sensitive to Markdown content will not take effect in devServer.
-If you want these to take effect or be updated in real time, you need to set hotReload: true
and accept the fact that each modification will trigger a page refresh and some time having white screen due to heavy recomputing work.
You can control the path of each page in the blog through plugins.blog
in theme options.
The default paths provided by the blog are as follows, if they conflict with your existing paths, and you don't want to adjust your own paths, you can modify them.
-Options | -Description | -Default Path | -
---|---|---|
article |
-list of articles | -/article/ |
-
category |
-Category map page | -/category/ |
-
categoryItem |
-A list of specific categories | -/category/:name/ |
-
tag |
-Tag map page | -/tag/ |
-
tagItem |
-list of specific tags | -/tag/:name/ |
-
star |
-List of starred articles | -/star/ |
-
timeline |
-Timeline list | -/timeline/ |
-
You can access the time page through /timeline/
. On the page, you can view all the articles in time reverse order.
By default, all articles which has a writing date will be displayed in timeline. If you don't want an article to be included, just set the timeline
to false
in the frontmatter of the article.
We allow you to customize the top text of the timeline, you can configure it through blog.timeline
in theme options.
We have added a timeline tab in the sidebar of blog-related pages for users to quickly preview the timeline.
- -By using vuepress-plugin-components
, you can import and use some components in your Markdown files.
Available components:
\\nTo enable components, you should set plugins.components.components
with an array of components names.
By using vuepress-plugin-components
, you can import and use some components in your Markdown files.
Available components:
-To enable components, you should set plugins.components.components
with an array of components names.
Note
-By default, <Badge />
is available to align with @vuepress/theme-default
.
<FontIcon />
is enabled anyway, as it's used by the theme internally to provide
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- components: {
- // components you want
- components: [
- "ArtPlayer",
- "Badge",
- "BiliBili",
- "CodePen",
- "PDF",
- "Share",
- "SiteInfo",
- "StackBlitz",
- "VPBanner",
- "VPCard",
- "VidStack",
- "XiGua",
- ],
- },
- },
- }),
-};
-
- <Badge text="tip" type="tip" vertical="middle" />
-- <Badge text="warning" type="warning" vertical="middle" />
-- <Badge text="danger" type="danger" vertical="middle" />
-- <Badge text="info" type="info" vertical="middle" />
-- <Badge text="note" type="note" vertical="middle" />
-
See
File not found
-See
Component which allows you to display font icons.
-File not found
-See
File not found
-See
--Install
-vidstack@1
first.
File not found
-See
PDF viewer component.
-File not found
-See
Embed BiliBili videos in Markdown files.
-File not found
-See
--Install
-artplayer
first.
File not found
-See
A component which allows you to embed CodePen demo.
-File not found
-See
Embed StackBlitz demo in Markdown files.
-File not found
-See
This tutorial will guide you on how to register components globally in your VuePress project.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/component/global.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/component/global.html.vue deleted file mode 100644 index 1b9bf0e..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/component/global.html.vue +++ /dev/null @@ -1,50 +0,0 @@ -This tutorial will guide you on how to register components globally in your VuePress project.
- -You can register components globally, so that you can use theme directly in Markdown files and Layouts.
-Important
-Registering components globally can make the component "out of box", so if a component is commonly used in your project, it is recommended to register it globally.
-But if a component is large and only used in certain pages or layouts, it is recommended to
@vuepress/plugin-register-components
You can automatically register components via the @vuepress/plugin-register-components
plugin.
For details about how to use the plugin, see Official Documentation
You can create .vuepress/client.js
or .vuepress/client.ts
and register components manually.
import { defineClientConfig } from "vuepress/client";
-import MyComponent from "./MyComponent.vue";
-
-export default defineClientConfig({
- enhance: ({ app, router, siteData }) => {
- app.component("MyComponent", MyComponent);
- },
-});
-
Global component can be directly used in any component, layouts or pages.
-Assume that you have registered MyComponent
globally, then you can use it like:
Markdown:
-<MyComponent />
-
Component:
-<!-- .vuepress/components/Example.vue -->
-<template>
- <p>Example Component</p>
- <MyComponent />
-</template>
-
Layout:
-<!-- .vuepress/layouts/Custom.vue -->
-<template>
- <p>Example Layout</p>
- <MyComponent />
-</template>
-
You can easily insert components in Markdown content with component code block.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/component/grammar.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/component/grammar.html.vue deleted file mode 100644 index 9567e79..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/component/grammar.html.vue +++ /dev/null @@ -1,18 +0,0 @@ -You can easily insert components in Markdown content with component code block.
- -import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- components: true,
- },
- },
- }),
-};
-
File not found
-This tutorial will explain how to every Markdown files are converted to a Vue-powered page.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/component/sfc.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/component/sfc.html.vue deleted file mode 100644 index 714d0b6..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/component/sfc.html.vue +++ /dev/null @@ -1,73 +0,0 @@ -This tutorial will explain how to every Markdown files are converted to a Vue-powered page.
- -Every Markdown file is first compiled to HTML and then converted to a Vue Single File Component (SFC). In other words, you can write Markdown files like Vue SFC.
-<script>
and <style>
tags are directly treated as tags in Vue SFC. In other words, they are promoted from the <template>
tag to the top level of the SFC.<script>
and <style>
tags will be compiled to HTML and then treated as <template>
tags in Vue SFC.The converted Vue SFC will be cached in the .vuepress/.temp/pages
directory, and will be rendered by the internal <Content />
component.
You can use Vue syntax directly in Markdown, for details see
Important
-Since Vue single-file components can only contain one <script>
tag, you should avoid using more than one <script>
tag in VuePress Markdown.
Import with alias
-Since Markdown will be converted to Vue single-file components in the cache directory, relative imports will not work in markdown files since they are invalid in Vue SFC. You should use alias.
-You can use @source
alias to reference the source directory of the current project
.
-├── src → project folder
-│ ├── example
-│ │ ├── ...
-│ │ └── MyComponent.vue
-│ ├── ...
-│ └── README.md
-└── ...
-
<MyComponent />
-
-<script setup>
-import MyComponent from "@source/example/MyComponent.vue";
-</script>
-
You can also use alias
option:
.
-├── src → project folder
-│ ├── .vuepress
-│ │ ├── components
-│ │ │ └── MyComponent.vue
-│ │ ├── ...
-│ │ └── config.ts
-│ ├── ...
-│ └── README.md
-└── ...
-
import { getDirname, path } from "vuepress/utils";
-
-const __dirname = getDirname(import.meta.url);
-
-export default {
- alias: {
- "@MyComponent": path.resolve(__dirname, "components/MyComponent.vue"),
- },
-};
-
<MyComponent />
-
-<script setup>
-import MyComponent from "@MyComponent";
-</script>
-
Use local registration if possible
-Global component needs to be loaded when VuePress is initialized (i.e., when visiting the first page). So if a global component is heavy, it will affect the initial loading time of the site.
-Importing in Markdown locally means components will only be loaded when visiting the page that uses it.
-This page guides you how to customize theme colors.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/customize/color.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/customize/color.html.vue deleted file mode 100644 index 8b9c36a..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/customize/color.html.vue +++ /dev/null @@ -1,39 +0,0 @@ -This page guides you how to customize theme colors.
- -The theme controls the color through the palette, you may need to set your color in two situations:
-The palette file is the .vuepress/styles/palette.scss
file under the VuePress project folder.
For the former, you need to write variable values in palette.scss
, e.g.:
$theme-color: #3eaf7c;
-
For the latter, you need to set up a Map with key names light
and dark
, and values as color values, e.g.:
$bg-color: (
- light: #fff,
- dark: #000,
-);
-
See
Sometimes, you may want to modify some colors that are not in palette.scss
, such as the background color of the code block. At this time, you can check whether the corresponding color attribute value is a CSS variable through the devTools. If so, you can go to index.scss
to manually override this variable value:
// override code block background color
-#app {
- --code-bg-color: #000;
-
- html[data-theme="dark"] & {
- --code-bg-color: #222;
- }
-}
-
If not, write your own selectors to override them:
-// override code block language font color
-pre[class*="language-"]::before {
- color: #fff !important;
-
- html[data-theme="dark"] & {
- background-color: #222 !important;
- }
-}
-
This tutorial guides you how to customize theme effects.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/customize/effect.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/customize/effect.html.vue deleted file mode 100644 index a991a6a..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/customize/effect.html.vue +++ /dev/null @@ -1,19 +0,0 @@ -This tutorial guides you how to customize theme effects.
- -By default, the theme will:
-If you need to remove these fancy styles, please set pure: true
in the theme options to enable pure mode.
Meanwhile, you can control the duration of the animation by controlling $color-transition
and transform-transition
in the palette file:
$color-transition: 0s;
-$transform-transition: 0s;
-
This tutorial guides you how to add external scripts and styles to your site.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/customize/external.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/customize/external.html.vue deleted file mode 100644 index f68655c..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/customize/external.html.vue +++ /dev/null @@ -1,61 +0,0 @@ -This tutorial guides you how to add external scripts and styles to your site.
- -If you need to add global CSS and JS, please set head
option in VuePress
Example
-import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- //...
-
- head: [
- //...
-
- // import an external script
- ["script", { src: "YOUR_SCRIPT_LINK" }],
- // add a script
- [
- "script",
- {},
- `\
- // your script here
- `,
- ],
- // add an external CSS
- ["link", { rel: "stylesheet", href: "YOUR_STYLE_LINK" }],
- // add a style
- // We don't recommend this, you should prefer to use .vuepress/style/index.scss
- [
- "style",
- {},
- `\
- /* your style here */
- `,
- ],
- ],
-
- //...
-});
-
If you need to add page-level CSS and JS, please set head
option in
---
-head:
- - script: YOUR_SCRIPT_LINK
- - script:
- type: module
- src: YOUR_SCRIPT_LINK
- - style: YOUR_STYLE_LINK
- - style:
- type: text/css
- content: |
- /* your style here */
----
-
-Page content
-
-...
-
This page guides you how to customize theme fonts.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/customize/font.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/customize/font.html.vue deleted file mode 100644 index 7611028..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/customize/font.html.vue +++ /dev/null @@ -1,107 +0,0 @@ -This page guides you how to customize theme fonts.
- -For common font families, they can generally be divided into serif[1] and sans-serif[2].
-The theme provides $font-family
, $font-family-heading
and $font-family-mono
three variables to control the font in .vuepress/styles/palette.scss
.
$font-family
: the font used on normal text$font-family-heading:
font for heading elements$font-family-mono
: the font used in code block and inline codesBy default, the theme uses sans serif with normal text.
-Use Serifs
-If you prefer serif fonts, you can modify $font-family
to the font you want.
The following font families are our recommended first choice for serif fonts:
-$font-family: 'Georgia, -apple-system, "Nimbus Roman No9 L", sans-serif';
-
Because different platforms, different operating systems, and different installation methods (slim/full) will cause huge differences in the number and types of fonts in the font library, you should set as many fonts as possible, and ensure that the fallback fonts [3] exists.
-Best Practices
-The fallback font [3:1] can ensure that your website displays well on different operating systems and devices with different fonts installed.
-You can find more fonts in Google Fonts
Please search and select the font and weight you want in the webpage, then click the Select
button on the right to add it to your selection list, then click the button in the upper right corner to view your favorite fonts and get the link Imported in the configuration file of VuePress.
We assume that you have selected the 400 and 700 italic fonts of Lora font. After clicking the button in the upper right corner, Google will give the following code in the sidebar:
-<link rel="preconnect" href="https://fonts.googleapis.com" />
-<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
-<link
- href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;1,700&display=swap"
- rel="stylesheet"
-/>
-
font-family: "Lora", serif;
-
Then all you need to do is import and use them by adding the following code in the VuePress configuration file:
-import { defineUserConfig } from "vuepress";
-
-export default defineUserConfig({
- //...
-
- head: [
- //...
-
- // Import the corresponding link
- ["link", { rel: "preconnect", href: "https://fonts.googleapis.com" }],
- [
- "link",
- { rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "" },
- ],
- [
- "link",
- {
- href: "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;700&display=swap",
- rel: "stylesheet",
- },
- ],
- ],
-
- //...
-});
-
Also modify the $font-family
variable in the palette file:
// apply font
-$font-family: "Lora, serif";
-
In this way, you can use lora font in your website.
-No one shall be subjected to arbitrary arrest, detention or exile.
-Everyone is entitled in full equality to a fair and public hearing by an independent and impartial tribunal, in the determination of his rights and obligations and of any criminal charge against him.
-No one shall be subjected to arbitrary interference with his privacy, family, home or correspondence, nor to attacks upon his honour and reputation. Everyone has the right to the protection of the law against such interference or attacks.
Related introduction: https://www.zhihu.com/topic/19559432/intro
Related introduction: https://www.zhihu.com/topic/19559433/intro
From Wikipedia
-Fallback fonts are fonts that are used to display missing characters when the displayed font lacks certain characters. Because it serves as the last line of defense for display, fallback fonts should contain all Unicode characters where possible.
-When a missing character has no fallback font for display, the missing character is usually displayed as a black square, white hollow square, question mark, Unicode placeholder (U+FFFD), or simply skipped. In practice, systems such as CSS that support sequential display of font lists usually put one or more sets of fallback fonts at the end of the list to prevent missing characters. ↩︎ ↩︎
-This section shows you the relevant codes involved in common customization.
-You can create three files under .vuepress/styles
folder in your own document for style customization.
index.scss
: You can place your own styles via CSS or SCSS syntax to modify the appearance of the theme here.
These styles will be injected after theme and plugin styles.
-config.scss
: You can set some style related variables here, including responsive breakpoints, container class names, code themes, etc.
palette.scss
: You can set some color and layout related variables here, such as theme color, background color, navbar height, etc.
For the complete config list supported by the above files, see
This tutorial guides you how to customize theme layout.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/customize/layout.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/customize/layout.html.vue deleted file mode 100644 index 3274b5b..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/customize/layout.html.vue +++ /dev/null @@ -1,109 +0,0 @@ -This tutorial guides you how to customize theme layout.
- -The theme provides many layout-related options for you to customize the layout of the theme. For details about these options, see
The theme will automatically apply responsive layouts under different screen widths. If you need to modify these breakpoints, you can modify them in
// Modify the breakpoint of the desktop layout
-$pc = 1280px;
-
For details about breakpoint variables $pc
, $laptop
, $pad
, $tablet
, $mobile
, see
The theme provides common size variables in the
// Modify the height of the navigation bar
-$navbar-height = 80px;
-
Introduction of layout variables can be found at
The .vuepress/styles/index.scss
in the project directory, where you can put your own styles.
If you are not satisfied with the style of the theme, you can adjust the style of the theme components through the
Note
-In order to override the original style, you need to use the same or higher priority selector or use !important
directly.
If you want to remove some features, you can hide related dom elements by display: none
in the
You can add new layouts or override existing layouts via layouts
option in
import { defineClientConfig } from "vuepress/client";
-import Changelog from "./layouts/Changelog.vue";
-import Layout from "./layouts/Layout.vue";
-
-export default defineClientConfig({
- // You can override or add layouts here
- layouts: {
- // For example, here we change the default layout of vuepress-theme-hope to layouts/Layout.vue
- Layout,
- // Also we added a Changelog layout
- Changelog,
- },
-});
-
import { defineClientConfig } from "vuepress/client";
-import Changelog from "./layouts/Changelog.vue";
-import Layout from "./layouts/Layout.vue";
-
-export default defineClientConfig({
- // You can override or add layouts here
- layouts: {
- // For example, here we change the default layout of vuepress-theme-hope to layouts/Layout.vue
- Layout,
- // Also we added a Changelog layout
- Changelog,
- },
-});
-
The theme provides the following layouts:
-Layout
-Basic layout, having the following slots:
-default
: Page content slottop
: Page top slotbottom
: Page bottom slotcontentBefore
: Slot before page contentcontentAfter
: Slot after page contenttocBefore
: Slot before page TOCtocAfter
: Slot after page TOCNotFound
-404 page layout, having the following slots:
-default
: 404 content slotSlide (Only available when reveal.js is enabled)
-BlogCategory (Only available when blog is enabled)
-BlogHome (Only available when blog is enabled)
-BlogType (Only available when blog is enabled)
-Timeline (Only available when blog is enabled)
-See
In order to meet the needs of different users, the theme provides some presets, you can get them under vuepress-theme-hope/presets
and import them yourself.
Tips
-To replace component using alias, you need to set { custom: true }
as second argument to hopeTheme
.
Replace the background of your blog's homepage with daily Bing wallpaper.
-Components:
-"vuepress-theme-hope/presets/BingHeroBackground.js"
: Daily Bing wallpaper componentUsage:
-Override @theme-hope/modules/blog/components/BlogHero
and import the above component into the bg
slot of the original BlogHero
.
import { getDirname, path } from "vuepress/utils";
-import { defineUserConfig } from "vuepress";
-
-const __dirname = getDirname(import.meta.url);
-
-export default defineUserConfig({
- //...
-
- alias: {
- "@theme-hope/modules/blog/components/BlogHero": path.resolve(
- __dirname,
- "./components/BlogHero.vue",
- ),
- },
-});
-
<!-- .vuepress/components/BlogHero.vue -->
-<script setup lang="ts">
-import BlogHero from "vuepress-theme-hope/blog/components/BlogHero.js";
-import BingHeroBackground from "vuepress-theme-hope/presets/BingHeroBackground.js";
-</script>
-
-<template>
- <BlogHero>
- <template #bg>
- <BingHeroBackground />
- </template>
- </BlogHero>
-</template>
-
Replace the description of the blog's home page with a random Hitokoto sentence (Chinese only).
-Components:
-"vuepress-theme-hope/presets/HitokotoBlogHero.js"
: A sentence componentUsage:
-Override @theme-hope/modules/blog/components/BlogHero
, import the above component into the info
slot of the original BlogHero
, and pass in the slot properties as they are.
import { getDirname, path } from "vuepress/utils";
-import { defineUserConfig } from "vuepress";
-
-const __dirname = getDirname(import.meta.url);
-
-export default defineUserConfig({
- //...
-
- alias: {
- "@theme-hope/modules/blog/components/BlogHero": path.resolve(
- __dirname,
- "./components/BlogHero.vue",
- ),
- },
-});
-
<!-- .vuepress/components/BlogHero.vue -->
-<script setup lang="ts">
-import BlogHero from "vuepress-theme-hope/blog/components/BlogHero.js";
-import HitokotoBlogHero from "vuepress-theme-hope/presets/HitokotoBlogHero.js";
-</script>
-
-<template>
- <BlogHero>
- <template #info="info">
- <HitokotoBlogHero v-bind="info" />
- </template>
- </BlogHero>
-</template>
-
Make navbar transparent in certain pages while at page top.
-export interface TransparentNavbarOptions {
- /**
- * @default 'blog-homepage'
- */
- type?: "homepage" | "blog-homepage" | "all";
-
- /**
- * Transparent threshold
- *
- * @default 50
- */
- threshold?: number;
-
- /**
- * Text color in lightmode
- *
- * @default '#fff'
- */
- light?: string;
-
- /**
- * Text color in darkmode
- *
- * @default '#bbb'
- */
- dark?: string;
-}
-
-export const setupTransparentNavbar: (
- options?: TransparentNavbarOptions,
-) => void;
-
import { defineClientConfig } from "vuepress/client";
-import { setupTransparentNavbar } from "vuepress-theme-hope/presets/transparentNavbar.js";
-
-export default defineClientConfig({
- setup: () => {
- setupTransparentNavbar({ type: "homepage" });
- },
-});
-
Get the running time of the site in footer.
-const setupRunningTimeFooter: (
- /**
- * The date to calculate the running time
- */
- date: string | Date,
- /**
- * The locales of running time
- *
- * @description :day, :hour, :minute, :second will be replaced by the corresponding value
- */
- locales: Record<string, string> = {
- "/": "Running time: :day days :hour hours :minute minutes :second seconds",
- },
- /**
- * Whether to preserve the original content of the footer
- *
- * @default false
- */
- preserveContent = false,
-) => void;
-
import { defineClientConfig } from "vuepress/client";
-import { setupRunningTimeFooter } from "vuepress-theme-hope/presets/footerRunningTime.js";
-
-export default defineClientConfig({
- setup() {
- setupRunningTimeFooter(
- new Date("2022-01-01"),
- {
- "/": "Running time: :day days :hour hours :minute minutes :second seconds",
- "/zh/": "已运行 :day 天 :hour 小时 :minute 分钟 :second 秒",
- },
- true,
- );
- },
-});
-
You can create a import
statement.
"vuepress-theme-hope/presets/shinning-feature-panel.scss"
: Add shinning effect to the features of the project home page."vuepress-theme-hope/presets/left-blog-info.scss"
: Move the blogger information to the left of the article list."vuepress-theme-hope/presets/round-blogger-avatar.scss"
: Clip blogger avatar to round shape"vuepress-theme-hope/presets/bounce-icon.scss"
: Add a mouseover bounce effect to the page icon."vuepress-theme-hope/presets/hide-navbar-icon.scss"
: Hide navbar icon."vuepress-theme-hope/presets/hide-sidebar-icon.scss"
: Hide sidebar icon."vuepress-theme-hope/presets/hr-driving-car.scss"
: Add a driving car to all hr elementsIf you have great customizations based on VuePress Theme Hope, you can pull them out into presets and send us a PR.
-VuePress Theme Hope provides catalog component and auto catalog generation using [@vuepress/plugin-catalog
][catalog].
VuePress Theme Hope provides catalog component and auto catalog generation using @vuepress/plugin-catalog
This feature is enabled by default. If there is no README.md
in the folder, the theme will automatically generate a directory page for it. To disable, set plugins.catalog
to false
.
You can control this via plugins.catalog
in the theme options, for example:
plugins.catalog.exclude
plugins.catalog.frontmatter
.For detailed configuration, see Catalog plugin docs
You can use the <Catalog>
component directly in Markdown to display the catalog.
<!-- Used to limit height -->
-<div class="catalog-display-container">
- <Catalog base='/' />
-</div>
-
vuepress-theme-hope
implements the comment feature with built-in [@vuepress/plugin-comment
][comment].
Info
\\nvuepress-theme-hope
passes plugins.comment
in theme options as plugin options to @vuepress/plugin-comment
.
vuepress-theme-hope
implements the comment feature with built-in @vuepress/plugin-comment
Info
-vuepress-theme-hope
passes plugins.comment
in theme options as plugin options to @vuepress/plugin-comment
.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- comment: {
- // choose a comment provider
- provider: "Waline",
-
- // provider options
- serverURL: "...", // your serverURL
- },
- },
- }),
-};
-
Comment feature is enabled globally by default, controlled by plugins.comment.comment
options.
Tips
-For the complete config item of the plugin, please see plugin documentation
Currently, you can choose from Giscus, Waline, Twikoo and Artalk.
-Comment service selection
-Giscus is a GitHub Discussion based commenting system that is easy to start.
-After completing the above steps, please go to the Giscus pagedata-repo
, data-repo-id
, data-category
and data-category-id
four items as they are required.
Please pass data-repo
, data-repo-id
, data-category
and data-category-id
as plugin options as repo
, repoId
, category
categoryId
.
For other options, see Giscus Config
pnpm add -D @waline/client
-
yarn add -D @waline/client
-
npm i -D @waline/client
-
Sign in
After that, create a vercel app using the below button.
- -Then input your new GitHub repo name and set LEAN_ID
, LEAN_KEY
and LEAN_MASTER_KEY
environment variables in the "Environment Variables" column. APP ID
is the value of LEAN_ID
, and APP Key
to LEAN_KEY
, Master Key
to LEAN_MASTER_KEY
.
Click Deploy
button to deploy. It will show you deploy successfully after some time. Then config the vercel link in your theme options:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- comment: {
- provider: "Waline",
- serverURL: "YOUR_SERVER_URL", // your server url
- },
- },
- }),
-};
-
pnpm add -D twikoo
-
yarn add -D twikoo
-
npm i -D twikoo
-
Apply for MongoDB
Create a free MongoDB database, the recommended region is AWS / N. Virginia (us-east-1)
Click CONNECT on the Clusters page, follow the steps to allow connections from all IP addresses (Why?<password>
in the connection string to the database password
Sign up for a Vercel
Click the button below to deploy Twikoo to Vercel in one click
- -Go to Settings - Environment Variables, add the environment variable MONGODB_URI
, the value is the database connection string in step 3
Go to Overview, click the link under Domains, if the environment configuration is correct, you can see the prompt "Twikoo cloud function is running normally"
-Vercel Domains (with https://
prefix, for example https://xxx.vercel.app
) is your environment ID
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- comment: {
- provider: "Twikoo",
- envId: "YOUR_SERVER_URL", // your server url
- },
- },
- }),
-};
-
Note
-Click the "little gear" icon in the comment window to set the administrator password
-pnpm add -D artalk
-
yarn add -D artalk
-
npm i -D artalk
-
See the Artalk documentation
Please set provider: "Artalk"
and pass your server link to server
in the plugin options.
For other configuration items, see Artalk Configuration
Note
-The plugin retains the el
option and inserts Artalk itself on the page. At the same time, the plugin will automatically set the pageTitle
, pageKey
and site
options for you according to the VuePress information.
Before VuePress2 provides client configuration, the two function options imgUploader
and avatarURLBuilder
are not supported.
If you are a programmer, you may want your users to be able to copy the code you show in the text with one click.
\\nFor this, vuepress-theme-hope
use [@vuepress/plugin-copy-code
][copy-code] to provide a copy button on code blocks.
Info
\\nvuepress-theme-hope
passes plugins.copyCode
in theme options as plugin options to @vuepress/plugin-copy-code
.
If you are a programmer, you may want your users to be able to copy the code you show in the text with one click.
-For this, vuepress-theme-hope
use @vuepress/plugin-copy-code
Info
-vuepress-theme-hope
passes plugins.copyCode
in theme options as plugin options to @vuepress/plugin-copy-code
.
After enabling, this plugin will automatically add a copy button to the top right corner of each code block.
-By default, the button is only displayed on desktop mode. To display this button on mobile devices, set plugins.copyCode.showInMobile
to true
in theme options.
After user press the copy button, a success hint will display on the screen. The default hint duration is 2000
ms, to change the duration, please set plugins.copyCode.duration
in theme options. To disable the hint, set duration to 0
.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- copyCode: {},
- },
- }),
-};
-
You may not want some of your articles to be copied by others, or you want copyright information appended to the clipboard when copying.
\\nvuepress-theme-hope
use [@vuepress/plugin-copyright
][copyright] to provide this feature.
Info
\\nvuepress-theme-hope
passes plugins.copyright
in theme options to @vuepress/plugin-copyright
.
You may not want some of your articles to be copied by others, or you want copyright information appended to the clipboard when copying.
-vuepress-theme-hope
use @vuepress/plugin-copyright
Info
-vuepress-theme-hope
passes plugins.copyright
in theme options to @vuepress/plugin-copyright
.
Since half of the users use this theme to build documents, and document sites usually do not need to add copyright information, this plugin is not enabled by default.
-Info
-To enable this plugin, you need to set plugins.copyright
in theme options to true
or an object.
Setting to true
is equivalent to setting { global: true }
.
global
option of the plugin is not true
, the plugin is disabled globally, and you need to manually enable it by setting copy: true
in page frontmatter.global: true
makes it enabled globally, and allows setting copy: false
in page frontmatter to disable it.To avoid disturbing visitors, copyright information will be appended only when the length of content copied by the user is not less than 100
. If you want to change this trigger value, please set triggerLength
, and this option supports being overridden via copy.triggerLength
in page frontmatter.
disableCopy
, the latter has higher priority.disableSelection
, the latter has higher priority.You can set author and license information via author
and license
in plugin options. If your site have different authors and license in different pages, you can pass in a function (page: Page) => string
that takes the current page object as parameter and returns the corresponding information.
Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect. Please copy this text and paste it to any location to see the effect.
-For plugin documentation, please visit @vuepress/plugin-copyright docs
The theme supports encryption of specific folders or specific paths, as well as global scope encryption.
\\nCaution
\\nNote that because of the limitation of vuepress, the content of the article is only hidden before being decrypted, and visitors can still get the content of the article from the source code (from js).
\\nPlease DO NOT USE this encryption function for any sensitive and confidential articles and files, please bear the consequences of it.
\\nThe theme supports encryption of specific folders or specific paths, as well as global scope encryption.
-Caution
-Note that because of the limitation of vuepress, the content of the article is only hidden before being decrypted, and visitors can still get the content of the article from the source code (from js).
-Please DO NOT USE this encryption function for any sensitive and confidential articles and files, please bear the consequences of it.
-You can configure encryption options through the encrypt.config
options in theme options.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- encrypt: {
- config: {
- // This will encrypt the entire guide directory, and both passwords are available
- "/guide/": ["1234", "5678"],
- // This will only encrypt /config/page.html
- "/config/page.html": "1234",
- },
- },
- }),
-};
-
Warning
-Note that you can only use passwords in string format.
-The salted hash value of the number 1234
and the string "1234"
is different! While user can only enter the content in the string format through the input box.
In some cases, you may want to encrypt the entire site, you can set encrypt.global: true
in theme options to do that.
For global encryption, you can set one or more passwords in the format of string or string array in encrypt.admin
.
Tips
-The consideration of multiple passwords is separation of permissions. This allows you to deprecate or update some of the global passwords in future deployments, so that some users with certain password will lose access.
-vuepress-theme-hope
introduces lots of great features. Most of the functions are separated into plugins, which means if you like them, you can use them in other VuePress themes or @vuepress/theme-default
.
Info
-All the plugin settings are under plugins
field in theme options, and the option name is related with their names.
The theme displays last update time and contributors of the page via the [@vuepress/plugin-git
][git] plugin, and provides support for an \\\"edit this page\\\" button.
The theme also provides navigation buttons for previous and next pages depending on sidebar config.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/feature/meta.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/feature/meta.html.vue deleted file mode 100644 index c8ce763..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/feature/meta.html.vue +++ /dev/null @@ -1,42 +0,0 @@ -The theme displays last update time and contributors of the page via the @vuepress/plugin-git
The theme also provides navigation buttons for previous and next pages depending on sidebar config.
- -vuepress-theme-hope
uses the built-in @vuepress/plugin-git
The plugin will automatically generate the page creation time and last update time from the UNIX timestamp (ms) of git
commit history of the page file, and generate contributors based on the commit record.
The theme will display last update time in the appropriate date format, along with all page contributors at the bottom of the page.
-Tips
-The theme will use Date.toLocaleString(pageLang)
to automatically localize the text of last update time according to the current language.
Limitations
-Since the contributors, last update time, and file creation time information are based on git
, you can only enable it in a git
based project.
Since related information are from git commits, they will only be displayed after the first commit for a given page, and will only be updated when some commits change that page.
-Since the git
plugin needs to call Git binary and involves file IO, this function will seriously affect the startup and hot update speed, so by default theme will not be enabled in devServer. Set plugins.git: true
or hotReload: true
in theme options if needed.
You can automatically generate edit links for each page by setting the following items in theme options:
-docsRepo
: docs repository link, same as repo
by defaultdocsDir
: the directory of docs in the repository, defaults to root directorydocsBranch
: docs branch, defaults to "main"
To hide these items globally, set the corresponding items below to false
in theme options. You can also enable/disable specific pages by setting these items in YAML front matter
:
lastUpdated
: whether to display last update time of the pagecontributors
: whether to show page contributorseditLink
: whether to display "edit page" linkvuepress-theme-hope
can display article information for you.
vuepress-theme-hope
can display article information for you.
Page information display is enabled globally by default, while supports page config. You can disable it by setting pageInfo: false
in frontmatter of a specific page.
To keep it globally disabled, please set pageInfo
to false
in the plugin options. Then you can set pageInfo
in frontmatter of a specific page to enable it locally.
pageInfo
accepts an array of strings by default, filling in a group of items. The order of filling is the order in which the items are displayed.
The optional values and corresponding contents of the entry are as follows:
-Entry | -Corresponding content | -page frontmatter value | -Theme Options | -
---|---|---|---|
"Author" |
-author | -author |
-author |
-
"Date" |
-Writing Date | -time |
-N/A | -
"Original" |
-Whether is original | -isOriginal |
-N/A | -
"Category" |
-Category | -category |
-N/A | -
"Tag" |
-Tag | -tag |
-N/A | -
"ReadingTime" |
-Estimated reading time | -N/A (automatically generated) | -N/A | -
"Word" |
-Word count | -N/A (automatically generated) | -N/A | -
"PageView" |
-Pageviews | -pageview (only available in Waline) |
-plugins.comment.pageview |
-
By default, it will display "Author, Visit Number, Writing Date, Category, Tags, Expect Reading Time".
-Example:
----
-author: Mr.Hope
----
-
You can configure author
in the plugin options to set the default author. And you can also configure author
in frontmatter with a new value in the page to override the default author, or set it to false
to cancel the author display.
Authors support string[]
, string
, AuthorInfo
and AuthorInfo[]
.
The format of AuthorInfo is as follows:
-interface AuthorInfo {
- /**
- * Author name
- */
- name: string;
-
- /**
- * Author website
- */
- url?: string;
-
- /**
- * Author email
- */
- email?: string;
-}
-
We recommend filling it with a standard date format. A standard format is in the form of xxxx-xx-xx
, such as "April 1, 2020" should be written as 2020-04-01
.
Example:
----
-date: 2020-01-01
----
-
Note
-When running in a Git-based project, the writing date will fall back to first commit date of current file.
-See
The default statistic method is 300 words per minute. You can override it by setting plugins.readingTime.wordPerMinute
in theme options. This option does not support individual configuration on the page.
When using Waline as
Example:
----
-pageview: false
----
-
By using [@vuepress/plugin-photo-swipe][photo-swipe], clicking images in pages will enter preview mode.
\\nIf you don't need this feature, you can set plugins.photoSwipe: false
in theme options to disable it.
By using @vuepress/plugin-photo-swipe
If you don't need this feature, you can set plugins.photoSwipe: false
in theme options to disable it.
In preview mode, you can:
-Tips
-vuepress-theme-hope
passes plugins.photoSwipe
in theme options as plugin options to @vuepress/plugin-photo-swipe
.
You can check the photo-swipe plugin documentation
The theme adds built-in support for , [@vuepress/plugin-docsearch
][docsearch] and [@vuepress/plugin-search
][search]. Just install the plugin you want and config it, you will get a search box in navbar.
The theme adds built-in support for vuepress-plugin-search-pro
@vuepress/plugin-docsearch
@vuepress/plugin-search
@vuepress/plugin-docsearch
You need to submit the URL of your site
The DocSearch team will send apiKey and indexName to your email once the index is generated. Then you can configure this plugin to enable DocSearch in VuePress.
-Alternatively, you can run your own crawler
Set up the Algolia Crawler correctly according to the following requirements. You should go to Algolia Crawler
Here are config options and descriptions:
-new Crawler({
- appId: "YOUR_APP_ID",
- apiKey: "YOUR_API_KEY",
- rateLimit: 8,
- startUrls: [
- // These are urls which algolia start to craw
- // If your site is divided in to multiple parts,
- // you may want to set multiple entry links
- "https://YOUR_WEBSITE_URL/",
- ],
- sitemaps: [
- // if you are using sitemap plugins (e.g.: @vuepress/plugin-sitemap), you may provide one
- "https://YOUR_WEBSITE_URL/sitemap.xml",
- ],
- ignoreCanonicalTo: false,
- exclusionPatterns: [
- // You can use this to stop algolia crawling some paths
- ],
- discoveryPatterns: [
- // These are urls which algolia looking for,
- "https://YOUR_WEBSITE_URL/**",
- ],
- // Crawler schedule, set it according to your docs update frequency
- schedule: "at 02:00 every 1 day",
- actions: [
- // you may have multiple actions, especially when you are deploying multiple docs under one domain
- {
- // name the index with name you like
- indexName: "YOUR_INDEX_NAME",
- // paths where the index take effect
- pathsToMatch: ["https://YOUR_WEBSITE_URL/**"],
- // controls how algolia extracts records from your site
- recordExtractor: ({ $, helpers }) => {
- // The following are the default options for vuepress-theme-hope
- // vuepress-theme-hope default container class name is theme-hope-content
- return helpers.docsearch({
- recordProps: {
- lvl0: {
- selectors: [
- ".vp-sidebar-page.active",
- ".theme-hope-content h1",
- ],
- defaultValue: "Documentation",
- },
- lvl1: ".theme-hope-content h1",
- lvl2: ".theme-hope-content h2",
- lvl3: ".theme-hope-content h3",
- lvl4: ".theme-hope-content h4",
- lvl5: ".theme-hope-content h5",
- lvl6: ".theme-hope-content h6",
- content: ".theme-hope-content p, .theme-hope-content li",
- },
- recordVersion: "v3",
- });
- },
- },
- ],
- initialIndexSettings: {
- // controls how index are initialized
- // only has effects before index are initialize
- // you may need to delete your index and recraw after modification
- YOUR_INDEX_NAME: {
- attributesForFaceting: ["type", "lang"],
- attributesToRetrieve: ["hierarchy", "content", "anchor", "url"],
- attributesToHighlight: ["hierarchy", "hierarchy_camel", "content"],
- attributesToSnippet: ["content:10"],
- camelCaseAttributes: ["hierarchy", "hierarchy_radio", "content"],
- searchableAttributes: [
- "unordered(hierarchy_radio_camel.lvl0)",
- "unordered(hierarchy_radio.lvl0)",
- "unordered(hierarchy_radio_camel.lvl1)",
- "unordered(hierarchy_radio.lvl1)",
- "unordered(hierarchy_radio_camel.lvl2)",
- "unordered(hierarchy_radio.lvl2)",
- "unordered(hierarchy_radio_camel.lvl3)",
- "unordered(hierarchy_radio.lvl3)",
- "unordered(hierarchy_radio_camel.lvl4)",
- "unordered(hierarchy_radio.lvl4)",
- "unordered(hierarchy_radio_camel.lvl5)",
- "unordered(hierarchy_radio.lvl5)",
- "unordered(hierarchy_radio_camel.lvl6)",
- "unordered(hierarchy_radio.lvl6)",
- "unordered(hierarchy_camel.lvl0)",
- "unordered(hierarchy.lvl0)",
- "unordered(hierarchy_camel.lvl1)",
- "unordered(hierarchy.lvl1)",
- "unordered(hierarchy_camel.lvl2)",
- "unordered(hierarchy.lvl2)",
- "unordered(hierarchy_camel.lvl3)",
- "unordered(hierarchy.lvl3)",
- "unordered(hierarchy_camel.lvl4)",
- "unordered(hierarchy.lvl4)",
- "unordered(hierarchy_camel.lvl5)",
- "unordered(hierarchy.lvl5)",
- "unordered(hierarchy_camel.lvl6)",
- "unordered(hierarchy.lvl6)",
- "content",
- ],
- distinct: true,
- attributeForDistinct: "url",
- customRanking: [
- "desc(weight.pageRank)",
- "desc(weight.level)",
- "asc(weight.position)",
- ],
- ranking: [
- "words",
- "filters",
- "typo",
- "attribute",
- "proximity",
- "exact",
- "custom",
- ],
- highlightPreTag:
- '<span class="algolia-docsearch-suggestion--highlight">',
- highlightPostTag: "</span>",
- minWordSizefor1Typo: 3,
- minWordSizefor2Typos: 7,
- allowTyposOnNumericTokens: false,
- minProximity: 1,
- ignorePlurals: true,
- advancedSyntax: true,
- attributeCriteriaComputedByMinProximity: true,
- removeWordsIfNoResults: "allOptional",
- },
- },
-});
-
Warning
-initialIndexSettings.YOUR_INDEX_NAME.attributesForFaceting
field must contain "lang"
, otherwise the plugin will not work properly.
Install @vuepress/plugin-docsearch
pnpm add -D @vuepress/plugin-docsearch@next
-
yarn add -D @vuepress/plugin-docsearch@next
-
npm i -D @vuepress/plugin-docsearch@next
-
Customize the plugin with plugins.docsearch
in theme options.
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- docsearch: {
- // plugin options here
- // appId, apiKey and indexName are required
- },
- },
- }),
-});
-
More
-See Plugin Docs
vuepress-plugin-search-pro
Install vuepress-plugin-search-pro
pnpm add -D vuepress-plugin-search-pro
-
yarn add -D vuepress-plugin-search-pro
-
npm i -D vuepress-plugin-search-pro
-
Customize plugins.searchPro
in theme options.
You can set plugins.searchPro
to true
to enable it directly, or set it to an object to customize the plugin.
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- searchPro: true,
- // searchPro: {
- // plugin options here
- // },
- },
- }),
-});
-
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- searchPro: true,
- // searchPro: {
- // 插件选项
- // },
- },
- }),
-});
-
More
-See
@vuepress/plugin-search
Install @vuepress/plugin-search
pnpm add -D @vuepress/plugin-search@next
-
yarn add -D @vuepress/plugin-search@next
-
npm i -D @vuepress/plugin-search@next
-
Customize plugins.search
in theme options.
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- search: true,
- // search: {
- // plugin options here
- // },
- },
- }),
-});
-
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- search: true,
- // search: {
- // plugin options here
- // },
- },
- }),
-});
-
More
-See Plugin Docs
VuePress Theme Hope is a VuePress theme containing tons of features.
-It is designed to be a powerful and extensible theme with a lot of theme plugins built-in.
-To begin with, you should already have a basic understanding of:
-Tips
-If you are completely new to VuePress, Markdown and other things, please get started with our
If you are familiar with things above,
A project with plugins and powerful theme
-Although vuepress-theme-hope/vuepress-theme-hope
Based on such a dozen plugins, Mr.Hope can confidently say that vuepress-theme-hope
is "A powerful theme with tons of features". It can also be seen as the most versatile and comprehensive theme among all VuePress themes.
If you meet a bug while using, you can open an issue
"A11y" stands for "accessibility".
-The theme adds full support of accessibility.
-All page structures of the theme are processed semantically.
-All buttons and icons have their corresponding accessibility labels
-All main interactive elements can be focused and interacted through the keyboard
-This is our support for the visually impaired people around the world! ❤️
-vuepress-theme-hope
bundles @vuepress/plugin-prismjs
to support code highlighting by default, and we allow you to set code block themes for lightmode and darkmode globally.
By default, we use one-light
and one-dark
for lightmode and darkmode respectively, and you can change them by setting light
and dark
in plugins.prismjs
.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- prismjs: {
- light: "light theme keyword",
- dark: "dark theme keyword",
- },
- },
- }),
-};
-
Tips
-Due to output size consideration, we will not import all styles globally to support code theme config per code block.
-Light themes
-Dark themes
-Prism.js is fast and lightweight, but it can not highlight all syntax correctly. If you want a more accurate highlight result, you can use @vuepress/plugin-shiki
.
Disable @vuepress/plugin-prismjs
plugin by setting plugins.prismjs: false
in theme options.
Install the plugin:
-pnpm add -D @vuepress/plugin-shiki@next
-
yarn add -D @vuepress/plugin-shiki@next
-
npm i -D @vuepress/plugin-shiki@next
-
Import shiki plugin and use it:
-import { shikiPlugin } from "@vuepress/plugin-shiki";
-
-export default {
- plugins: [
- shikiPlugin({
- // your options
- themes: {
- light: "github-light",
- dark: "one-dark-pro",
- },
- }),
- ],
-};
-
Set background color and font color for code blocks according to theme you want to use by adding these variables in .vuepress/styles/config.scss
:.
$code-bg-color
: background color for code blocks$code-color
: font color for code blocksIn dark mode, the page uses a dark background to make you comfortable.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/interface/darkmode.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/interface/darkmode.html.vue deleted file mode 100644 index 7c405e2..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/interface/darkmode.html.vue +++ /dev/null @@ -1,41 +0,0 @@ -In dark mode, the page uses a dark background to make you comfortable.
- -Toggle the button below to see effects.
-You can config darkmode through darkmode
in theme options.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- darkmode: "your option",
- }),
-};
-
Available options:
-"switch"
: switch between dark, light and auto (default)"toggle"
: toggle between lightmode and darkmode"auto"
: Automatically decide whether to apply dark mode based on user device's color-scheme or current time"enable"
: only dark mode"disable"
: disable dark modeYou can use $isDarkmode
in Markdown files or Vue Template to get darkmode status.
You can import useDarkmode
from vuepress-theme-hope/client
to get darkmode status:
import { useDarkmode } from "vuepress-theme-hope/client";
-
-const { isDarkmode } = useDarkmode();
-
-console.log(isDarkmode.value); // get darkmode status
-
The entire theme adds FontClass and Image format icon support in multiple places.
\\nYou can use iconfont, iconify and fontawesome to add icons to your project, and you can also use your own icon assets. Also, png/svg format icon is supported. You can use full links or pathname to add icons.
\\nWe recommend you to use iconify or fontawesome.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/interface/icon.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/interface/icon.html.vue deleted file mode 100644 index 03ac3a7..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/interface/icon.html.vue +++ /dev/null @@ -1,150 +0,0 @@ -The entire theme adds FontClass and Image format icon support in multiple places.
-You can use iconfont, iconify and fontawesome to add icons to your project, and you can also use your own icon assets. Also, png/svg format icon is supported. You can use full links or pathname to add icons.
-We recommend you to use iconify or fontawesome.
- -You can use icon in multiple places.
-Page: set icon
in frontmatter
This icon will be used in breadcrumb, page title, navbar generated item, sidebar generated item, page nav, etc.
-Navbar: set icon
option in NavbarItemConfig
Sidebar: set icon
option in SidebarItemConfig
HomePage: set icon
option in feature item
You can use <HopeIcon />
component to add icon in markdown.
icon
prop accepts the same content as other icon
options, i.e.: font class and image urlcolor
prop accepts a css color value, which will be used as the icon color (optional)size
prop accepts a css size value, which will be used as the icon size (optional)- <HopeIcon icon="home" color="red" />
-- <HopeIcon icon="//theme-hope-assets.vuejs.press/logo.svg" size="4rem" />
-
You can set icon assets url and icon prefix globally via iconAssets
and iconPrefix
.
You should set icon related assets to iconAssets
, where you can set:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- // keywords: "iconify", "fontawesome", "fontawesome-with-brands"
- iconAssets: "fontawesome",
-
- // an url you like
- iconAssets: "/base/my/font-icon/resource.js",
-
- // an array of above
- iconAssets: [
- "/base/my/font-icon/resource.js",
- "https://example/my/fonr-icon/resouce.css",
- "fontawesome",
- ],
- }),
-};
-
For example, you may use iconfont.cn
To keep it simple, we add built-in keywords "iconify"
, "fontawesome"
and "fontawesome-with-brand
support for you to get started easily.
Caution
-If you use this plugin for commercial project documentation, iconfont
is not recommended as iconfont itself is a study/share platform for designers and developers.
Every icon is uploaded by users, and you must get authorized from the author for commercial usage. Also, there could be chance where the uploader obeys usage term. And upload icons where its copyright is at 3rd party.
-iconPrefix
is the icon prefix where you want to set,
Normally, there should be a common prefix for your icon class, for iconfont
icon classes are iconfont icon-<ICON-NAME>
and for fontawesome free icon classes are fas fa-<icon-name>
. So when you are setting the above assets
option with keywords or a single link generated from iconfont website, fontawesome kit or fontawesome CDN, the plugin recognize those and set prefix as "iconfont icon-"
and "fas fa-"
automatically for you.
In other cases where you use iconify or your own url, you can manually set this options yourself. After all writing icon: apple
is always better than something like icon: iconfont icon-apple
, icon: mdi:icon-apple
or icon: fa-solid fa-apple
.
You can purchase at fontawesome.com
Fontawesome kits with pro features support pro icons, more icon styles and uploading your own icons.
- -Iconfont
-Iconfont
The designer uploads the icon to the Iconfont platform, and the user can customize the download of icons in a variety of formats. Users can also convert the icon into a font.
-First, you need to create a new project to set and manage your website's icons:
-FontClass/Symbol prefix
with icon-
(you can also fill in according to your preference, but you need to set this value to iconPrefix
in theme options with an extra iconfont
prefix)iconfont
Search freely through iconfont to find the icon you want to use, and click the "Add to Library" button on the icon
- -After searching for all the icons, click the "Add to Library" icon in the upper right corner, click "Add to Project" below and select the project you created then confirm.
-On the project page, you can edit the icons in the project, including adjustments with position, size, rotate, color, Unicode number and Font Class / Symbol.
- -Please click the "Font Class" button above the project and click Generate.
- -Set the css link to iconAssets
in theme options.
Tips
-If you add a new icon in the future, please regenerate the new CSS address and set it to iconAssets
in theme options.
Conflicts with private character
-Font Icon associate each icon with a character in unicode private character scope, the character used by iconfont is randomly.
-Iconfont will try to solve conflicts by assigning a new character if a new icon's default character is already used in current project, however different projects may have conflicts.
-So we do not recommend you to use multiple iconfont links as assets, if you ready want to do so, check the icons to ensure every former project icon is not covered by those in latter ones.
-Try it:
The theme fully optimize style for print, and there will be a print button at toc in desktop mode by default.
-To hide print button, you should set print: false
in theme options.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- print: false,
- }),
-};
-
Try it:
-If you need it, you can enable it by setting fullscreen: true
in theme options.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- fullscreen: true,
- }),
-};
-
Tips
-If the current browser does not support full screen, the full screen button is automatically hidden.
-vuepress-theme-hope
adds a back-to-top button with progress bar using @vuepress/plugin-back-to-top
You can set plugins.backToTop: false
in theme options to disable it, or set it with an object to customize its threshold distance and progress bar display:
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- // disable back to top button
- backToTop: false,
-
- // or
-
- // customize back to top button
- backToTop: {
- /**
- * Scroll threshold distance to display back to top button (in pixels)
- *
- * @default 100
- */
- threshold: 500,
- /**
- * Whether display scroll progress
- *
- * @default true
- */
- progress: false,
- },
- },
- }),
-});
-
vuepress-theme-hope
fully supports RTL layout. Just set rtl: true
in rtl language of locales.
Try it:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- locales: {
- // ...
- "/ar/": {
- // enable RTL layout
- rtl: true,
- },
- },
- }),
-};
-
If your site is a documentation-only site, and you prefer a clean style, you can enable pure mode by setting pure: true
in theme options.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- pure: true,
- }),
-};
-
In this mode, we disable some fancy animations and some colors and just provide functionality.
-The whole theme is responsive, which means it works well on different screen sizes.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/interface/responsive.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/interface/responsive.html.vue deleted file mode 100644 index 203f25e..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/interface/responsive.html.vue +++ /dev/null @@ -1,38 +0,0 @@ -The whole theme is responsive, which means it works well on different screen sizes.
- -On mobile devices:
-On tablet/laptop devices:
-On pc device:
-Themes provide breakpoint variables for controlling responsive layout behavior. You can modify them in .vuepress/styles/config.scss
:
$pc
: PC responsive layout breakpoint, default is 1440px
$laptop
: notebook responsive layout breakpoint, default is 1280px
$pad
: Large pad responsive layout breakpoint, defaults to 959px
$tablet
: Tablet responsive layout breakpoint, default is 768px
$mobile
: Mobile responsive layout breakpoint, default is 480px
Warning
-$tablet
and $pc
can only be based on the pixel size.
The theme allows you to customize theme color and even provide a picker.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/interface/theme-color.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/interface/theme-color.html.vue deleted file mode 100644 index 24bcfa7..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/interface/theme-color.html.vue +++ /dev/null @@ -1,27 +0,0 @@ -The theme allows you to customize theme color and even provide a picker.
- -You should set the default theme color of your site in .vuepress/styles/palette.scss
through $theme-color
:
$theme-color: #f00;
-
Top use it, set a list of theme colors you want to use in .vuepress/styles/config.scss
with $theme-colors
:
$theme-colors: #2196f3, #f26d6d, #3eaf7c, #fb9b5f;
-
Tips
-The default theme color above will always be the first one in picker.
-Create a new vuepress-theme-hope project in [dir]
folder:
pnpm create vuepress-theme-hope [dir]
-
yarn create vuepress-theme-hope [dir]
-
npm init vuepress-theme-hope@latest [dir]
-
To add vuepress-theme-hope as docs builder to an existing project, run the following command in the project root directory:
-pnpm create vuepress-theme-hope add [dir]
-
yarn create vuepress-theme-hope add [dir]
-
npm init vuepress-theme-hope@latest add [dir]
-
Important
-[dir]
is a parameter here, replace it with real folder names, such as docs
, blog
or other name you like.
Please import and use hopeTheme
to use vuepress-theme-hope
, the first argument accepted by hopeTheme
will be used as the theme config:
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- // your theme config here
- }),
-});
-
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- // your theme config here
- }),
-};
-
You can view Config of this site
VuePress extends Markdown syntax to a certain extent, but it still lacks some commonly used functions, such as text alignment, mark, flowchart, formula, presentation, etc. At the same time, some features provided by the default theme are weak or missing, such as picture preview, code block copy, toc, etc. Meanwhile, VuePress default theme is too simple and not powerful enough. vuepress-theme-hope
and related plugins were born under this situation.
We not only greatly improve outlook comparing to default theme, but also provide a full range of enhancements for VuePress with theme plugins.
-Powerful and independent features
-We extract each feature into a plugin, so that users can use them in other themes or customize their behavior standalone.
-Minimum Configuration
-All features will try to use a default value if possible, so you can use them under zero or minimum configuration.
-This helps a lot to reduce your migration or learning costs while directly enjoy their convenience.
-Improved Layout
-The theme interface has been completely refactored to provide customizable and beautiful layouts.
-Tree-shaking
-With the help of Vue3's composition API, the theme fully achieve "Tree-shaking" while remaining powerful.
-The theme will only run with features you want, without being slowed down by other features or affecting the bundle size.
-The theme provides a lot of extended syntax support for Markdown, allowing you to insert more content in the body.
-We have some built-in enhancement with
If you are a literature lover and want to place some essays, the theme provides
To store some knowledge notes, the theme provides
If you are a programmer and need to show a lot of codes and demos, this theme provides light and dark themes for code blocks,
If you are providing product documentation and presentation, the theme provides
To reorganize your content, the theme provides
To style your content, the theme provides
The theme also provides you a lot of
In short, anyone can enjoy the convenience of Markdown's enhanced syntax.
-More:
-More:
-Adds
Search feature
-Search Engine Optimization
-The theme supports
Support
A brand-new
Provides
Provides
The theme includes the following plugins, you can use them in other themes or directly.
-Tips
-Here are some other plugins that are not bundled by the theme, you can enable them according to your own needs.
-VuePress basically generate pages from Markdown files. So you can use it to generate documentation or blog sites easily.
\\nYou should create and write Markdown files, so that VuePress can convert them to different pages according to file structure.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/intro/markdown.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/intro/markdown.html.vue deleted file mode 100644 index 98a444b..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/intro/markdown.html.vue +++ /dev/null @@ -1,24 +0,0 @@ -VuePress basically generate pages from Markdown files. So you can use it to generate documentation or blog sites easily.
-You should create and write Markdown files, so that VuePress can convert them to different pages according to file structure.
- -VuePress introduce configuration for each Markdown page using Frontmatter.
-Frontmatter
-Frontmatter is an important concept in VuePress, read
The Markdown content in VuePress will be parsed by markdown-it
VuePress Enhancement
-To enrich document content, VuePress extends standard Markdown syntax, read
Theme Enhancement
-With vuepress-plugin-md-enhance
The theme adds Breadcrumb support, you can configure it using breadcrumb
in page frontmatter and theme options
Without any config, a Breadcrumb that matches the theme color is displayed at the top of the page content to help the reader understand the document structure.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/layout/breadcrumb.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/layout/breadcrumb.html.vue deleted file mode 100644 index aa0c72a..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/layout/breadcrumb.html.vue +++ /dev/null @@ -1,21 +0,0 @@ -The theme adds Breadcrumb support, you can configure it using breadcrumb
in page frontmatter and theme options true
.
Without any config, a Breadcrumb that matches the theme color is displayed at the top of the page content to help the reader understand the document structure.
- -You can also control the icon display of the path navigation using breadcrumbIcon
field true
.
If you don't want a page to be added to the breadcrumb (e.g.: home page), you can set breadcrumbExclude: true
in the Front Matter of the page.
Page config support
-Support local configuration
Take path navigation as an example:
-This feature is enabled globally by default, that is, breadcrumb
in theme options is true
by default, and you can set breadcrumb: false
in the Front Matter of a specific page to disable it locally.
Of course, you can also set the breadcrumb: false
in theme options to disable it globally, and set breadcrumb: true
in the Front Matter of a specific page to enable it locally.
vuepress-theme-hope
provides footer feature for all pages
vuepress-theme-hope
provides footer feature for all pages
You can set the default footer content and copyright information globally using footer
and copyright
in theme options.
The footer is not displayed by default. To display the footer, you need to set displayFooter: true
in theme options.
Different Locales
-You can set footers for each language individually under locales
field in theme options.
You can configure footer
and copyright
options in the frontmatter of the page to set footer content of a specific page.
When setting displayFooter: true
in theme options, you can set footer: false
in frontmatter to disable footer in a specific page.
When the global display of footer is not enabled, setting footer: true
means displaying the default footer.
If you fill in a string, it will be inserted into the footer as content with v-html
command, so you can fill in HTMLString.
The copyright
field is used as copyright information of a specific page (useful when you cite an article and the article uses a specific license). It also supports HTMLString.
The default copyright text will be generated from author and license in theme options.
-When setting displayFooter: true
in theme options, you can also set copyright: false
to hide the copyright information in a specific page.
Display default footer text:
----
-footer: true
----
-
Customize footer text without displaying copyright information:
----
-footer: This site is served by GitHub Pages
-copyright: false
----
-
Customize footer content and copyright information:
----
-footer: <a href="https://github.com/Mister-Hope"> Mr.Hope </a>
-copyright: License under CC4.0, author Mr.Hope
----
-
When you set displayFooter: true
in theme options, you can also disable it locally:
---
-footer: false
----
-
To remove the default footer content while keeping copyright information displayed, please use an empty string.
----
-footer: ""
----
-
vuepress-theme-hope
improves the default home page.
To use it, set home: true
in page frontmatter. Any extra content after the YAML front matter
will be parsed as normal Markdown and rendered after the features section.
\\n
vuepress-theme-hope
improves the default home page.
To use it, set home: true
in page frontmatter. Any extra content after the YAML front matter
will be parsed as normal Markdown and rendered after the features section.
-
You can use heroText
to set the main title and tagline
to set the subtitle.
If you have a logo, you can place it in the public
folder and set it via heroImage
, if you want to display another logo in night mode, you can use heroImageDark
. For better A11y, we recommend that you set the description of Logo to heroAlt
.
You can set the background image through bgImage
and bgImageDark
, but you need to pay attention that you must fill in the full URL or absolute path. If you want the information to be displayed in full screen, you can set heroFullScreen: true
.
If you need to customize some styles, you can set the style of the logo and background image through heroImageStyle
and bgImageStyle
.
You can display some important links in the form of buttons on the home page.
-You can set them via actions
which is an array where each element is an object with the following keys:
text
: button textlink
: button linktype
: button type (only "primary"
and "default"
(default) are supported)icon
(optional): can be filled with full path or absolute path image link, or FontClassYou can set and display item features through features
, which is an array, each element is an object, containing the following keys:
title
: titledetails
: detailsicon
(optional): can be filled with full path or absolute path image link, or FontClasslink
(optional): link addressYou can set and display project features and highlights through highlights
, which is an array, each element is an object, representing a highlight or feature section.
Highlight section use highlights
to set highlights and feature section use features
to set features (you should only set one of them). Both of them are arrays, each element is an object, representing a highlight or feature item:
title
: title, HTML string is supporteddetails
: details, HTML string is supportedicon
(optional): can be filled with full path or absolute path image link, or FontClasslink
(optional): link addressYou can also set the following optional keys:
-header
: section title, supports HTML stringdescription
: section description, supports HTML stringcolor
: Text colorimage
: Section imageimageDark
: Section image used in darkmodebgImage
: Section background imagebgImageDark
: Section background image used in darkmodebgImageStyle
: Section background image stylesHighlights also support the following properties:
-type
: "order"
, "un-order"
(default) or "no-order"
Info
-For complete configuration items, see
---
-home: true
-icon: home
-title: Project Home with features
-heroImage: https://theme-hope-assets.vuejs.press/logo.svg
-heroText: VuePress Theme Hope
-tagline: A VuePress theme with tons of features✨
-actions:
- - text: Get Started
- link: /get-started/
- icon: signs-post
- type: primary
-
- - text: Guide
- icon: lightbulb
- link: /guide/
-
- - text: Demos
- icon: star
- link: /demo/
-
-features:
- - title: Markdown Enhance
- icon: fab fa-markdown
- details: Add align, sup/sub script, footnote, tasklist, tex, flowchart, diagram, mark and presentation support in Markdown
- link: /guide/markdown/
-
- - title: Slide Page
- icon: person-chalkboard
- details: Adding slide pages to display things you like
- link: /guide/layout/slides
-
- - title: Layout Enhancement
- icon: object-group
- details: Adding breadcrumb, footer, improved navbar, improved page nav and etc.
- link: /guide/layout/
-
- - title: Pageviews and Comments
- icon: comment-dots
- details: Start pageview statistics and comment support with Waline
- link: /guide/feature/comment.html
-
- - title: Article Information
- icon: circle-info
- details: Add author, writing date, reading time, word count and other information to your article
- link: /guide/feature/page-info.html
-
- - title: Blog Support
- icon: blog
- details: Listing your articles with their dates, tags and categories with some awesome layouts
- link: /guide/blog/
-
- - title: Customizable Theme Color
- icon: palette
- details: Customize theme color
- link: /guide/interface/theme-color.html
-
- - title: Dark Mode
- icon: circle-half-stroke
- details: Switch between light and dark modes freely
- link: /guide/interface/darkmode.html
-
- - title: Full A11y support
- icon: universal-access
- details: Full support of accessibility in your site
- link: /guide/interface/accessibility.html
-
- - title: Article Encryption
- icon: lock
- details: Encrypt you articles based on page links, so that only the one you want could see them
- link: /guide/feature/encrypt.html
-
- - title: Search
- icon: search
- details: Support docsearch and client search
- link: /guide/feature/search.html
-
- - title: Copy Code Blocks
- icon: copy
- details: Copy codes with one click in code blocks
- link: /guide/feature/copy-code.html
-
- - title: Image Preview
- icon: image
- details: Support viewing, zooming, sharing your page images like a gallery
- link: /guide/feature/photo-swipe.html
-
- - title: SEO Enhancement
- icon: dumbbell
- details: Optimize pages for search engines
- link: /guide/advanced/seo.html
-
- - title: Sitemap
- icon: sitemap
- details: Generate a Sitemap for your site
- link: /guide/advanced/sitemap.html
-
- - title: Feed
- icon: rss
- details: Generate feed to allow users to subscribe it
- link: /guide/advanced/feed.html
-
- - title: PWA
- icon: mobile-screen
- details: Make your site more like an APP
- link: /guide/advanced/pwa.html
-
- - title: More New Features
- icon: ellipsis
- details: Including icon support, fullscreen button, etc.
- link: /guide/feature/
-
-copyright: false
-footer: MIT Licensed | Copyright © 2019-present Mr.Hope
----
-
-## 🛠Install
-
-Create a new vuepress-theme-hope project in `[dir]` directory under the current path:
-
-::: code-tabs#shell
-
-@tab pnpm
-
-```bash
-pnpm create vuepress-theme-hope [dir]
-```
-
-@tab yarn
-
-```bash
-yarn create vuepress-theme-hope [dir]
-```
-
-@tab npm
-
-```bash
-npm init vuepress-theme-hope@latest [dir]
-```
-
-:::
-
-To add vuepress-theme-hope as docs builder to an existing project, run the following command in the project root directory:
-
-::: code-tabs#shell
-
-@tab pnpm
-
-```bash
-pnpm create vuepress-theme-hope add [dir]
-```
-
-@tab yarn
-
-```bash
-yarn create vuepress-theme-hope add [dir]
-```
-
-@tab npm
-
-```bash
-npm init vuepress-theme-hope@latest add [dir]
-```
-
-:::
-
-## 🚀Usage
-
-::: code-tabs#language
-
-@tab TS
-
-```ts title=".vuepress/config.ts"
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- // your theme config here
- }),
-});
-```
-
-@tab JS
-
-```js title=".vuepress/config.js"
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- // your theme config here
- }),
-};
-```
-
-:::
-
-## Telegram Group
-
-- [vuepressthemehope](https://t.me/vuepressthemehope)
-
---
-containerClass: home
-home: true
-icon: home
-title: Home
-bgImage: https://theme-hope-assets.vuejs.press/bg/6-light.svg
-bgImageDark: https://theme-hope-assets.vuejs.press/bg/6-dark.svg
-bgImageStyle:
- background-attachment: fixed
-heroText: VuePress Theme Hope
-tagline: A VuePress theme with tons of features✨
-actions:
- - text: Get Started
- link: ./get-started/
- icon: signs-post
- type: primary
-
- - text: Guide
- icon: lightbulb
- link: ./guide/
-
- - text: Demos
- icon: star
- link: ./demo/
-
-highlights:
- - header: Easy to install
- image: /assets/image/box.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/3-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/3-dark.svg
- highlights:
- - title: Run <code>pnpm create vuepress-theme-hope hope-project</code> to create a new project with this theme.
- - title: Run <code>pnpm create vuepress-theme-hope add .</code> in your project root to create a new project with this theme.
-
- - header: Add things you want in markdown
- description: We extended the standard commonMark specification and added tons of new features for you.
- image: /assets/image/markdown.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/2-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/2-dark.svg
- bgImageStyle:
- background-repeat: repeat
- background-size: initial
- features:
- - title: Links Check
- icon: clipboard-check
- details: Check markdown links
- link: ./guide/markdown/others.html#link-check
-
- - title: Hint box
- icon: box-archive
- details: Decorate Markdown content with styles
- link: ./guide/markdown/stylize/hint.html
-
- - title: GFM alerts
- icon: bell
- details: GFM alert box
- link: ./guide/markdown/stylize/alert.html
-
- - title: Tabs
- icon: table-columns
- details: Group similar content with tabs and switch them together
- link: ./guide/markdown/content/tabs.html
-
- - title: Code Tabs
- icon: code
- details: Group similar codes with tabs
- link: ./guide/markdown/code/code-tabs.html
-
- - title: Custom Align
- icon: align-center
- details: Let you decide to align paragraphs in the way you like
- link: ./guide/markdown/stylize/align.html
-
- - title: Attrs
- icon: code
- details: Allow you to add attributes for Markdown content
- link: ./guide/markdown/stylize/attrs.html
-
- - title: Superscript and subscript
- icon: superscript
- details: Inserting superscript and subscript
- link: ./guide/markdown/grammar/sup-sub.html
-
- - title: Footnote
- icon: quote-left
- details: Your Markdown now support footnotes
- link: ./guide/markdown/content/footnote.html
-
- - title: Mark
- icon: highlighter
- details: Mark and highlight contents
- link: ./guide/markdown/stylize/mark.html
-
- - title: Spoiler
- icon: eraser
- details: Mark spoiler contents
- link: ./guide/markdown/stylize/spoiler.html
-
- - title: Tasklist
- icon: square-check
- details: Use tasklist in Markdown
- link: ./guide/markdown/grammar/tasklist.html
-
- - title: Image syntax
- icon: image
- details: improve syntax to specify size and color scheme
- link: ./guide/markdown/grammar/image.html
-
- - title: Component Support
- icon: puzzle-piece
- details: Easily insert components in Markdown
- link: ./guide/component/grammar.html
-
- - title: Components
- icon: puzzle-piece
- details: Common components out fo box
- link: ./guide/component/built-in.html
-
- - title: Chart Support
- icon: chart-simple
- details: Display charts in Markdown
- link: ./guide/markdown/chart/chartjs.html
-
- - title: Flowchart Support
- icon: route
- details: Create your flowchart in Markdown
- link: ./guide/markdown/chart/flowchart.html
-
- - title: Mermaid Support
- icon: chart-pie
- details: Add mermaid diagram in Markdown
- link: ./guide/markdown/chart/mermaid.html
-
- - title: Plantuml Support
- icon: diagram-project
- details: Add plantuml in Markdown
- link: ./guide/markdown/chart/plantuml.html
-
- - title: Tex Support
- icon: square-root-variable
- details: Markdown now have Tex Support so you can write your formula
- link: ./guide/markdown/grammar/tex.html
-
- - title: Include snippet Support
- icon: fab fa-markdown
- details: split your docs with different parts and import them in Markdown
- link: ./guide/markdown/content/include.html
-
- - title: Playground Support
- icon: code
- details: You can add playground in Markdown files
- link: ./guide/markdown/code/playground.html
-
- - title: Kotlin playground Support
- icon: fab fa-kickstarter
- details: Reactive kotlin playground
- link: ./guide/markdown/code/kotlin-playground.html
-
- - title: Vue playground Support
- icon: fab fa-vuejs
- details: Show living vue component in playground
- link: ./guide/markdown/code/vue-playground.html
-
- - title: Sandpack playground Support
- icon: code
- details: A live coding environment driven by Sandpack.
- link: ./guide/markdown/code/sandpack.html
-
- - title: Code Demo Support
- icon: laptop-code
- details: You can insert code demo easily
- link: ./guide/markdown/code/demo.html
-
- - title: Presentation Support
- icon: person-chalkboard
- details: Insert presentation in Markdown files via Reveal.js
- link: ./guide/markdown/content/revealjs.html
-
- - header: Customizable UI
- description: Customizable outlook with full a11y support.
- image: /assets/image/ui.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/9-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/9-dark.svg
- highlights:
- - title: Dark Mode
- icon: circle-half-stroke
- details: Switch between light and dark modes freely
- link: ./guide/interface/darkmode.html
-
- - title: Customizable Theme Color
- icon: palette
- details: Set theme color with the brand color and even a picker
- link: ./guide/interface/theme-color.html
-
- - title: Code Block Themes
- icon: wand-magic-sparkles
- details: Customize code block themes
- link: ./guide/interface/code-theme.html
-
- - title: More
- icon: ellipsis
- details: RTL layout, print support, fullscreen button, etc.
- link: ./guide/interface/others.html
-
- - header: Improved layouts
- description: An awesome responsive layout
- image: /assets/image/layout.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/5-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/5-dark.svg
- highlights:
- - title: Navbar
- icon: window-maximize
- details: Fully customizable navbar with improved mobile support
- link: ./guide/layout/navbar.html
-
- - title: Sidebar
- icon: fas fa-window-maximize fa-rotate-270
- details: Generate sidebar based on page headings and file structure
- link: ./guide/layout/sidebar.html
-
- - title: Slide Page
- icon: person-chalkboard
- details: Adding slide pages to display things you like
- link: ./guide/layout/slides.html
-
- - title: Other Layout Improvement
- icon: object-group
- details: Improved page nav and new breadcrumb, footer and toc. We also bring you a brand new homepage.
- link: ./guide/layout/
-
- - header: New features
- image: /assets/image/features.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/1-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/1-dark.svg
- features:
- - title: Catalog Page
- icon: network-wired
- details: Auto generating catalog page and out of box catalog component
- link: ./guide/feature/catalog.html
-
- - title: Pageviews and Comments
- icon: comment-dots
- details: Pageview statistics and comment support with 4 comment service
- link: ./guide/feature/comment.html
-
- - title: Article Information
- icon: circle-info
- details: Add author, writing date, reading time, word count and other information to your article
- link: ./guide/feature/page-info.html
-
- - title: Article Encryption
- icon: lock
- details: Encrypt you articles based on page links, so that only the one you want could see them
- link: ./guide/feature/encrypt.html
-
- - title: Search
- icon: search
- details: Support docsearch and client search
- link: ./guide/feature/search.html
-
- - title: Copy Code Blocks
- icon: copy
- details: Copy codes with one click in code blocks
- link: ./guide/feature/copy-code.html
-
- - title: Image Preview
- icon: image
- details: Support viewing, zooming, sharing your page images like a gallery
- link: ./guide/feature/photo-swipe.html
-
- - header: Blogging
- description: Create personal blog with theme
- image: /assets/image/blog.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/5-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/5-dark.svg
- highlights:
- - title: Blog features
- icon: blog
- details: Listing your articles with their dates, tags and categories
- link: ./guide/blog/intro.html
-
- - title: Blog homepage
- icon: blog
- details: New blog homepage
- link: ./guide/blog/home.html
-
- - title: Blogger info
- icon: circle-info
- details: Customize avatar, name, slogan, introduction and social links
- link: ./guide/blog/blogger.html
-
- - title: Timeline
- icon: clock
- details: Read through blog posts in a timeline
- link: ./guide/blog/timeline.html
-
- - header: Advanced
- description: Advanced features to improve site SEO and user experience
- image: /assets/image/advanced.svg
- bgImage: https://theme-hope-assets.vuejs.press/bg/4-light.svg
- bgImageDark: https://theme-hope-assets.vuejs.press/bg/4-dark.svg
- highlights:
- - title: SEO Enhancement
- icon: dumbbell
- details: Optimize pages for search engines
- link: ./guide/advanced/seo.html
-
- - title: Sitemap
- icon: sitemap
- details: Generate a Sitemap for your site
- link: ./guide/advanced/sitemap.html
-
- - title: Feed
- icon: rss
- details: Generate feed to allow users to subscribe it
- link: ./guide/advanced/feed.html
-
- - title: PWA
- icon: mobile-screen
- details: Make your site more like an APP
- link: ./guide/advanced/pwa.html
-
-copyright: false
-footer: MIT Licensed | Copyright © 2019-present Mr.Hope
----
-
The Navbar contains:
\\nAll of them are customizable, and you can also fully customize Navbar layout.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/layout/navbar.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/layout/navbar.html.vue deleted file mode 100644 index 9c7b5a5..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/layout/navbar.html.vue +++ /dev/null @@ -1,296 +0,0 @@ -The Navbar contains:
-All of them are customizable, and you can also fully customize Navbar layout.
- -You can add links to the navbar via navbar
options, it accepts an array.
The easiest way to configure the navbar is to fill in the paths of the page files to be displayed in turn, so that the text, icons and links of the item will be automatically generated from the corresponding files.
-import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- navbar: ["/guide/README.md", "/config/README.md", "/faq.md"],
- }),
-});
-
Tips
-We recommend you to omit the .md
extension, and paths ending with /
are inferred as /README.md
.
If you are not satisfied with the page's icon or feel that the page title is too long, you can configure an object instead. Available configuration items are:
-text:
: item textlink
: item linkicon
: item icon (optional)activeMatch
: item active math (optional), support regexp stringsimport { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- navbar: [
- {
- text: "Guide",
- link: "/guide/README.md",
- icon: "lightbulb",
- // only active in `/guide/`
- activeMatch: "^/guide/$",
- },
- { text: "Config", link: "/config/README.md", icon: "config" },
- {
- text: "FAQ",
- link: "/faq.md",
- icon: "circle-question",
- // active in path starting with `/faq`
- // so it will active in path like `/faq/xxx.html`
- activeMatch: "^/zh/faq/",
- },
- ],
- }),
-};
-
Advanced usage of activeMatch
-activeMatch
gives you the ability to control whether the path is active, for example you may have the following dropdown:
/path/
/path/a/
/path/b/
But you may have multiple folders with files under /path/
. To avoid multiple dropdown items been activated under route starting with /path/a/
or /path/b/
, you can set activeMatch
option for the first item with ^/path/(?:(?!a/|b/).*)?$
.
To display more links, you can group similar links into a dropdown list.
-You need to use object format and provide the additional children
option to nest links:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- navbar: [
- {
- text: "Basic",
- icon: "circle-info",
- children: ["/basic/markdown.md", "/basic/vuepress.md"],
- },
- ],
- }),
-};
-
In most cases, the grouped items in the navbar belong to the same category and will be placed in the same subdirectory, and they have the same path prefix.
-To simplify the configuration, you can add the prefix
field to add a prefix to each sub-link in the group:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- navbar: [
- {
- text: "Basic",
- icon: "circle-info",
- prefix: "/basic/",
- children: ["markdown.md", "vuepress.md"],
- },
- ],
- }),
-};
-
You can also have subgroups inside a dropdown by having nested children
:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- navbar: [
- {
- text: "Project",
- icon: "circle-info",
- children: [
- {
- text: "Built in Plugins",
- children: [
- /* Some items */
- ],
- },
- {
- text: "Third party Plugins",
- children: [
- /* Some items */
- ],
- },
- ],
- },
- ],
- }),
-};
-
To disable the navbar globally, set navbar: false
in theme options:
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- navbar: false,
- }),
-};
-
You can disable the navbar for a specific page via YAML front matter
:
---
-navbar: false
----
-
You can use logo
options to set site logo displayed in navbar.
The logo is displayed on the navbar instead of the previous site name on mobile.
-Note
-Please fill in an absolute path and place the logo in .vuepress/public
folder.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- logo: "/logo.png",
- }),
-};
-
Tips
-You can set logoDark
to display another logo in dark mode.
The theme's navbar supports I18n
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- locales: {
- "/": {
- logo: "/logo.svg",
- navbar: [
- /* English config under root */
- ],
- },
- "/zh/": {
- logo: "/zh-logo.svg",
- navbar: [
- /* Chinese config under zh folder */
- ],
- },
- },
- }),
-};
-
Like the default theme, vuepress-theme-hope
brings built-in support for search plugins. You can enable the following plugins according to your own needs. The corresponding search box will automatically appear in the navbar.
For details, please see
A repo button will appear in navbar if you set repo
in theme options.
You can control whether showing the repository button via repoDisplay
in theme options.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- // Assuming GitHub. Can also be a full url.
- repo: "vuepress-theme-hope/vuepress-theme-hope",
- // Customizing the header label
- // Defaults to "GitHub" / "GitLab" / "Gitee" / "Bitbucket" or "Source" depending on `repo`
- repoLabel: "GitHub",
- // Whether to display repo link, default is `true`
- repoDisplay: true,
- }),
-};
-
The following three functions are provided:
-vuepress-theme-hope
allows you to customize navbar layout. You can add components in start
, center
and end
keys under navbarLayout
options.
Navbar has the following built-in components that can be used:
-And you can also use your own component names after you register them globally.
-We use the following options by default:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- navbarLayout: {
- start: ["Brand"],
- center: ["Links"],
- end: ["Language", "Repo", "Outlook", "Search"],
- },
- }),
-};
-
vuepress-theme-hope
exports the type of navbar as NavbarConfig
, and provides a navbar
helper function. They can provide validation and autocompletion of navbar configuration in TS and JS.
Tips
-They mainly deal with scenarios when you split your VuePress configuration into multiple parts.
-import { navbar } from "vuepress-theme-hope";
-
-export default navbar([
- /* Your navbar configuration */
-]);
-
import type { NavbarConfig } from "vuepress-theme-hope";
-
-const navbarConfig: NavbarConfig = [
- /* Your navbar configuration */
-];
-
-export default navbarConfig;
-
import { navbar } from "vuepress-theme-hope";
-
-export default navbar([
- /* Your navbar configuration */
-]);
-
import { navbar } from "vuepress-theme-hope";
-
-export const enNavbarConfig = navbar([
- "/get-started/",
- "/guide/",
- "/config/",
- "/faq/",
- "/demo/",
- {
- text: "Others",
- icon: "circle-info",
- children: [
- {
- text: "Cookbook",
- prefix: "/cookbook/",
- children: ["markdown/", "vuepress/"],
- },
- {
- text: "Project",
- children: ["/changelog", "/related", "/contribution"],
- },
- ],
- },
-]);
-
-
You can configure the icon
field in the frontmatter of the page, and fill in the FontClass of the corresponding icon to bind the icon to the page.
This icon is used in navbar, sidebar, breadcrumb and page title.
----
-icon: home
----
-
Info
-For icon settings, please see
Please see
Please see
In desktop mode, a list of article headers will automatically be displayed on the right side of the screen. (They will be placed in the sidebar on mobile devices)
-If you don't want to display the title list on the right in desktop mode, please set toc: false
in theme options.
You can also set it through toc
in page frontmatter.
You can customize the depth of the header list by setting headerDepth
in theme options and page frontmatter.
Note
-The valid maximum value depends on which levels of headers you have extracted via markdown.headers.level
Since the default value of markdown.headers.level[2, 3]
, so The default maximum value for headerDepth
is 2
.
Please see
Prev and next links are automatically inferred based on the sidebar order of the active page. You can also explicitly overwrite or disable them globally with theme config or on specific pages using Front matter
:
---
-prev: ./some-other-page
-next: false
----
-
Please see
By default, the content of each *.md
file is rendered in a <div class="page">
container, along with the sidebar, auto-generated edit links and previous/next links. To use a fully custom component in place of the page, you can again specify the component using frontmatter:
---
-layout: SpecialLayout
----
-
This will render SpecialLayout
layout registered in VuePress for the given page.
Note
-The theme only provides Layout
, 404
layout.
Also the theme:
-Blog
layout when the blogging feature is enabledSlide
layout when the slideshow feature is enabledIf you want to provide your own layout, please add them in client config files
By default, each page is rendered in a div
with class theme-container
. To apply some special styles to specific pages, you can additionally specify a class name by setting containerClass
in frontmatter
---
-containerClass: fancy-container
----
-
This will render in <div class="theme-container fancy-container" />
for the current page.
The sidebar contains list of related documents, document titles, and blogger information in blog mode.
\\n\\nThe theme allows you to generate side bar from file structure or headers automatically, or you can customize it manually.
\\n\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/layout/sidebar.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/layout/sidebar.html.vue deleted file mode 100644 index 8ed22cd..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/layout/sidebar.html.vue +++ /dev/null @@ -1,464 +0,0 @@ -The sidebar contains list of related documents, document titles, and blogger information in blog mode.
- -The theme allows you to generate side bar from file structure or headers automatically, or you can customize it manually.
- - -You should use sidebar
in theme options to control sidebar.
Just like navbar, you can fill in an array of multiple file links as the basic configuration of the sidebar:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: ["/README.md", "/guide/README.md", "/config/README.md"],
- }),
-};
-
Each item of the array will be rendered as a sidebar item.
-Tips
-You can omit the .md
extension, and paths ending with /
are inferred as /README.md
.
Just like navbar, if you are not satisfied with the page's icon or feel that the page title is too long, you can configure an object instead. Available configuration items are:
-text:
: item textlink
: item linkicon
: item icon (optional)activeMatch
: item active math (optional), support regexp stringsimport { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: [
- {
- text: "Guide",
- link: "/guide/README.md",
- icon: "lightbulb",
- // only active in `/guide/`
- activeMatch: "^/guide/$",
- },
- { text: "Config", link: "/config/README.md", icon: "config" },
- {
- text: "FAQ",
- link: "/faq.md",
- icon: "circle-question",
- // active in path starting with `/faq`
- // so it will active in path like `/faq/xxx.html`
- activeMatch: "^/zh/faq/",
- },
- ],
- }),
-};
-
Advanced usage of activeMatch
-activeMatch
gives you the ability to control whether the path is active, for example you may have the following dropdown:
/path/
/path/a/
/path/b/
But you may have multiple folders with files under /path/
. To avoid multiple dropdown items been activated under route starting with /path/a/
or /path/b/
, you can set activeMatch
option for the first item with ^/path/(?:(?!a/|b/).*)?$
.
If you need a sidebar that displays a nested structure, you can group similar links.
-You should use object format and provide an additional children
option to set the list of links. Like navbar, you can use prefix
in the sidebar to add a default path prefix to each link in the group, and the sidebar additionally supports setting collapsible: true
to make the menu group collapsible.
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: [
- {
- // required, title of group
- text: "Group 1",
- // optional, icon of group
- icon: "tip",
- // optional, link of group title
- path: "/foo/",
- // optional, will be appended to each item link
- prefix: "/foo/",
- // optional, defaults to false
- collapsible: false,
- // required, items of group
- children: [
- "README.md" /* /foo/index.html */,
- /* ... */
- "geo.md" /* /foo/geo.html */,
- ],
- },
- {
- text: "Group 2",
- children: [
- /* ... */
- "bar.md" /* /ray/bar.html */,
- "baz.md" /* /ray/baz.html */,
- ],
- },
- ],
- }),
-};
-
You can also nest Sidebar grouping:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: [
- {
- text: "Group",
- prefix: "/",
- children: [
- "baz" /* /baz.html */,
- {
- text: "Sub Group 1",
- children: ["quz" /* /quz.html */, "xyzzy" /* /xyzzy.html */],
- },
- {
- text: "Sub Group 2",
- prefix: "corge/",
- children: [
- "fred" /* /corge/fred.html */,
- "grault" /* /corge/grault.html */,
- ],
- },
- "foo" /* /foo.html */,
- ],
- },
- ],
- }),
-};
-
You may want to use it with prefix
to restore the structure of the document easily.
For example, suppose you have a following directory structure:
-.
-├─ README.md
-├─ contact.md
-├─ about.md
-├─ foo/
-│ ├─ README.md
-│ ├─ one.md
-│ └─ two.md
-└─ bar/
- ├─ README.md
- ├─ three.md
- └─ four.md
-
Then you can use the following config:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: [
- "/" /* / */,
- {
- text: "Foo",
- prefix: "/foo/",
- children: [
- "" /* /foo/ */,
- "one" /* /foo/one.html */,
- "two" /* /foo/two.html */,
- ],
- },
- {
- text: "Bar",
- prefix: "/bar/",
- children: [
- "" /* /bar/ */,
- "three" /* /bar/three.html */,
- "four" /* /bar/four.html */,
- ],
- },
- "/contact" /* /contact.html */,
- "/about" /* /about.html */,
- ],
- }),
-};
-
To display different sidebars for different page groups, set an object for the sidebar in the format of path: config
.
For example, if you have the following structure:
-.
-├─ README.md
-├─ contact.md
-├─ about.md
-├─ foo/
-│ ├─ README.md
-│ ├─ one.md
-│ └─ two.md
-└─ bar/
- ├─ README.md
- ├─ three.md
- └─ four.md
-
You can define your sidebar for each section using below configuration:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: {
- "/foo/": [
- "" /* /foo/ */,
- "one" /* /foo/one.html */,
- "two" /* /foo/two.html */,
- ],
-
- "/bar/": [
- "" /* /bar/ */,
- "three" /* /bar/three.html */,
- "four" /* /bar/four.html */,
- ],
-
- // fallback
- "/": [
- "" /* / */,
- "contact" /* /contact.html */,
- "about" /* /about.html */,
- ],
- },
- }),
-};
-
Warning
-You need to pay special attention to the order of object key declaration. Generally speaking, you should put the more precise path first, because VuePress will traverse the key names of the sidebar configuration to find the matching configuration. Once a key name is successfully matched with the current path, it will display the corresponding sidebar configuration.
-In this case, the fallback sidebar must be defined last for this reason.
-You can replace the original "sidebarConfig array" with "structure"
keyword in any of the above sidebar config. This will allow the theme to automatically read local files, then generate sidebar from file structure for you, to reduce your config workload.
For example, for the following example mentioned earlier in multiple sidebars:
-.
-├─ README.md
-├─ contact.md
-├─ about.md
-├─ foo/
-│ ├─ README.md
-│ ├─ one.md
-│ └─ two.md
-└─ bar/
- ├─ README.md
- ├─ three.md
- └─ four.md
-
You can change the original config to:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- sidebar: {
- "/foo/": "structure",
-
- "/bar/": "structure",
-
- // fallback
- "/": [
- "" /* / */,
- "contact" /* /contact.html */,
- "about" /* /about.html */,
- ],
- },
- }),
-};
-
In the above modification, since the original sidebar array is all files under the relevant path, you can easily replace it with the "structure"
keyword.
If you use the structure to generate a folder with other folders nested under it, the corresponding folder will be rendered as a group. So you can even be more aggressive, for example setting sidebar: "structure"
to have your sidebars all auto-generated from the file structure.
Limitations
-Since structure sidebar is depending on file structure and markdown frontmatter, any changes in markdown may update the structure sidebar. (E.g: setting index: false
in frontmatter as described below)
However, recalculating the sidebar could be expensive for large sites, so the theme will only recalculate with hotReload
enabled
During the automatic generation from structure, you can control whether files in the same folder are included through the index
option in the page Frontmatter, and control how they are sorted through order
.
When you don't want the page to be included in the sidebar, you need to set index: false
in Frontmatter.
By default, the sidebar will be sorted according to the current language according to the title text of the file name. You can control how they are sorted by order
. When you set a positive number, they will appear at the front of the group, the smaller the more forward, when you set a negative number, it will appear at the back of the group, and the larger the more backward:
order
will be sorted by order
hereorder
option -> title: Axxxorder
option will be sorted by title hereorder
option -> title: Zxxxorder
will be sorted by order
hereTips
-README.md
is an exception, as long as you don't disable it from the sidebar via index: false
or make it as group link, it will always be the first item after sorting.
For nested folders, the grouping information is controlled by README.md
under that folder. You can control the behavior of folder grouping through the dir
option in Frontmatter. The relevant optional items are as follows:
dir.text
: Directory title, default to README.md
titledir.icon
: Directory icon, default to README.md
icondir.collapsible
: Whether the directory is collapsible, default to true
dir.link
: Whether the directory is clickable, default to false
dir.index
: Whether index current dir, default to true
dir.order
: Dir order in sidebar, default to 0
Here is an example:
----
-dir:
- order: 1
- text: Group 1
----
-
If no README.md
file exists for the corresponding folder, only the group header will be generated from the folder name.
In addition to the above implementation, we also added a more powerful sidebarSorter
option to the theme options. You can pass one or a series of built-in sorter names, or you can pass a sorter function you need to sort sidebar items at the same level.
Available keywords are:
-readme
: README.md
or readme.md
firstorder
: positive order first with its value ascending, negative order last with its value descendingdate
: sort by date ascendingdate-desc
: sort by date descendingtitle
: alphabetically sort by titlefilename
: alphabetically sort by filenameCorresponding to the above advanced control, its default value is ["readme", "order", "title", "filename"]
You can disable the sidebar on a specific page with YAML front matter
:
---
-sidebar: false
----
-
Note
-Sidebar is disabled by default in home page.
-The sidebar automatically displays links for headers in the current active page, nested under the link for the page itself. You can customize this behavior using headerDepth
in theme options. The default depth(the max value) is 2
, which extracts both h2
and h3
headers. Setting it to 0
disables the header links.
A page can also override this value via frontmatter:
----
-headerDepth: 2
----
-
Note
-The valid maximum value depends on which levels of headers you have extracted via markdown.headers.level
Since the default value of markdown.headers.level[2, 3]
, so The default maximum value for headerDepth
is 2
.
By default, the nested header links and the hash in the URL are updated as the user scrolls to view the different sections of the page. This behavior can be disabled with the following theme config:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- // Default: true
- activeHeaderLinks: false,
- },
- }),
-};
-
The theme's navbar supports I18n
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- locales: {
- "/": {
- sidebar: [
- /* English config under root */
- ],
- },
- "/zh/": {
- sidebar: [
- /* Chinese config under zh folder */
- ],
- },
- },
- }),
-};
-
vuepress-theme-hope
exports the type of sidebar as SideConfig
, and provides a sidebar
helper function. They can provide validation and autocompletion of sidebar configuration in TS and JS.
Tips
-To deal with the situation when you split multi-sidebar configuration into multiple parts, we also provide SidebarArrayConfig
SidebarObjectConfig
type and arraySidebar
and objectSidebar
Helper function.
import { sidebar } from "vuepress-theme-hope";
-
-export default sidebar(/* Your sidebar configuration */);
-
import type { SidebarConfig } from "vuepress-theme-hope";
-
-const sidebarConfig: SidebarConfig = [
- /* Your sidebar configuration */
-];
-
-export default sidebarConfig;
-
import { sidebar } from "vuepress-theme-hope";
-
-export default sidebar(/* Your sidebar configuration */);
-
import { sidebar } from "vuepress-theme-hope";
-
-export const enSidebarConfig = sidebar({
- "/": [
- "",
- "get-started/",
- {
- text: "Guide",
- icon: "lightbulb",
- prefix: "guide/",
- children: [
- "intro/",
- "interface/",
- "layout/",
- "markdown/",
- "feature/",
- "blog/",
- "customize/",
- "advanced/",
- ],
- },
- {
- text: "Config",
- icon: "gears",
- prefix: "config/",
- children: [
- "intro",
- "i18n",
- "theme/",
- "plugins/",
- "frontmatter/",
- "style",
- ],
- },
- {
- text: "Cookbook",
- icon: "signs-post",
- prefix: "cookbook/",
- children: ["markdown/", "vuepress/"],
- },
-
- "demo/",
- "faq/",
- "changelog",
- "contribution",
- ],
-
- "/get-started/": "structure",
-
- "/guide/": "structure",
-
- "/config/": "structure",
-
- "/cookbook/": "structure",
-
- "/demo/": "structure",
-
- "/faq/": "structure",
-});
-
-
vuepress-theme-hope
allows you to add slides pages.
You need to set layout: Slide
in the frontmatter of the corresponding page to enable the slides page.
vuepress-theme-hope
allows you to add slides pages.
You need to set layout: Slide
in the frontmatter of the corresponding page to enable the slides page.
-
Enable presentation
-You should enable presentation feature in vuepress-plugin-md-enhance
by setting plugins.mdEnhance.revealjs
in theme options, otherwise the layout won't be rendered correctly.
No multiple slides
-You should only include a single slide syntax on this page to avoid rendering problems.
-@slidestart [your theme]
-
-// your slides
-
-@slideend
-
File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- chart: true,
- },
- },
- }),
-};
-
File not found
-File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- echarts: true,
- },
- },
- }),
-};
-
File not found
-File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- flowchart: true,
- },
- },
- }),
-};
-
File not found
-This plugin provides 6 ways to let you insert charts into your markdown file.
-Chart.js: A lightweight, easy-to-use, highly customizable chart library.
-Chart.js is lighter comparing to ECharts.
-ECharts: A powerful, interactive charting and visualization library for browser.
-ECharts is more powerful comparing to Chart.js.
-Flowchart: A simple markdown extension to generate flowcharts and sequence diagrams.
-Lightweight, only focusing on flowcharts.
-Markmap: Create mindmap with markdown
-The runtime is very heavy, not recommended.
-Mermaid: Generation of diagram and flowchart from text in a similar manner as markdown.
-Powerful collection of common charts.
-Plantuml: UML diagram driven by Java.
-No runtime.
-File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- markmap: true,
- },
- },
- }),
-};
-
File not found
-File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- mermaid: true,
- },
- },
- }),
-};
-
File not found
-File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- plantuml: true,
- },
- },
- }),
-};
-
File not found
-The theme provides you code tabs support.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/code-tabs.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/code-tabs.html.vue deleted file mode 100644 index 5744c0a..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/code-tabs.html.vue +++ /dev/null @@ -1,18 +0,0 @@ -The theme provides you code tabs support.
- -import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- codetabs: true,
- },
- },
- }),
-};
-
File not found
-Let you insert code demos in your Markdown file.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/demo.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/demo.html.vue deleted file mode 100644 index 683b006..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/demo.html.vue +++ /dev/null @@ -1,141 +0,0 @@ -Let you insert code demos in your Markdown file.
- -import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- demo: true,
- },
- },
- }),
-};
-
You should use the following syntax:
-::: [type]-demo Optional title text
-
-```html
-<!-- ↑ use available ones -->
-<!-- your code here -->
-<!-- you can have multiple code block, but each language must appear only once. -->
-```
-
-```json
-// json block is for config
-{
- // your config here (optional)
-}
-```
-
-:::
-
Tips
-The json block is optional, for config please see
The plugin support three types:
-You can use different language in your demo block.
-When you set language which can not run on browsers, since the plugin is not able to resolve them, so demo display will be disabled. The plugin will only show the code and provide you a button to open it in CodePen.
-Available HTML languages:
-"html"
(default)"slim"
"haml"
"markdown"
--You can also use
-md
in code block.
Available JS languages:
-"javascript"
(default)"coffeescript"
"babel"
"livescript"
"typescript"
--You can also use
-js
,ts
,coffee
andls
in code block.
Available CSS languages:
-"css"
(default)"less"
"scss"
"sass"
"stylus"
--You can also use
-styl
in code block.
File not found
-File not found
-File not found
-# Title
-
-is very powerful!
-
const message: string = "VuePress Theme Hope";
-
-document.querySelector("h1").innerHTML = message;
-
h1 {
- font-style: italic;
-
- + p {
- color: red;
- }
-}
-
::: normal-demo Normal demo
-
-```md
-# Title
-
-is very powerful!
-```
-
-```ts
-const message: string = "VuePress Theme Hope";
-
-document.querySelector("h1").innerHTML = message;
-```
-
-```scss
-h1 {
- font-style: italic;
-
- + p {
- color: red;
- }
-}
-```
-
-:::
-
This plugin provides the following features to enhance coding:
-pnpm add -D vuepress-plugin-md-enhance
-
yarn add -D vuepress-plugin-md-enhance
-
npm i -D vuepress-plugin-md-enhance
-
<h1>VuePress Theme Hope</h1>
-<p>Is <span id="very">very</span> powerful!</p>
-
document.querySelector("#very").addEventListener("click", () => {
- alert("Very powerful!");
-});
-
span {
- color: red;
-}
-
Let the Markdown file support kotlin playground in your VuePress site.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/kotlin-playground.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/kotlin-playground.html.vue deleted file mode 100644 index e476fdb..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/kotlin-playground.html.vue +++ /dev/null @@ -1,18 +0,0 @@ -Let the Markdown file support kotlin playground in your VuePress site.
- -File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- kotlinPlayground: true,
- },
- },
- }),
-};
-
File not found
-Let the Markdown file support playground in your VuePress site.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/playground.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/playground.html.vue deleted file mode 100644 index 5420fc5..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/playground.html.vue +++ /dev/null @@ -1,96 +0,0 @@ -Let the Markdown file support playground in your VuePress site.
- -import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- // playground config here
- playground: {
- // add presets here
- presets: [
- "ts",
- "vue",
- "unocss",
- {
- name: "playground#language",
- component: "PlaygroundComponent",
- propsGetter: (
- playgroundData: PlaygroundData,
- ): Record<string, string> => ({
- // playground props
- }),
- },
- ],
- // configure built-in presets (optional)
- config: {
- ts: {
- // ...
- },
- vue: {
- // ...
- },
- unocss: {
- // ...
- },
- },
- },
- },
- },
- }),
-});
-
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- // playground config here
- playground: {
- // add presets here
- presets: [
- "ts",
- "vue",
- "unocss",
- {
- name: "playground#language",
- component: "PlaygroundComponent",
- propsGetter: (
- playgroundData: PlaygroundData
- ): Record<string, string> => ({
- // playground props
- }),
- },
- ],
- // configure built-in presets (optional)
- config: {
- ts: {
- // ...
- },
- vue: {
- // ...
- },
- unocss: {
- // ...
- },
- },
- },
- },
- },
- }),
-};
-
File not found
-File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- sandpack: true,
- },
- },
- }),
-};
-
File not found
-Let the Markdown file support vue playground in your VuePress site.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/vue-playground.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/vue-playground.html.vue deleted file mode 100644 index 8149db8..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/code/vue-playground.html.vue +++ /dev/null @@ -1,23 +0,0 @@ -Let the Markdown file support vue playground in your VuePress site.
- -Tips
-Since we are providing a runtime compiler, we are introducing the whole @vue/compiler-sfc
package with typescript support, so the whole Vue Playground chunk is > 4MB. So you should only use this if you are heavily depending on interactive Vue Playground.
You can use
File not found
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- vuePlayground: true,
- },
- },
- }),
-};
-
File not found
-Let the Markdown file in your VuePress site support footnotes.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/footnote.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/footnote.html.vue deleted file mode 100644 index 0845a6e..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/footnote.html.vue +++ /dev/null @@ -1,18 +0,0 @@ -Let the Markdown file in your VuePress site support footnotes.
- -import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- footnote: true,
- },
- },
- }),
-};
-
File not found
-Let the Markdown file in your VuePress site support including other files.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/include.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/include.html.vue deleted file mode 100644 index 8ba0769..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/include.html.vue +++ /dev/null @@ -1,78 +0,0 @@ -Let the Markdown file in your VuePress site support including other files.
- -import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- include: true,
- },
- },
- }),
-};
-
File not found
-import { getDirname, path } from "vuepress/utils";
-import { hopeTheme } from "vuepress-theme-hope";
-
-const __dirname = getDirname(import.meta.url);
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- // Add `@src` alias support
- include: {
- resolvePath: (file) => {
- if (file.startsWith("@src"))
- return file.replace("@src", path.resolve(__dirname, ".."));
-
- return file;
- },
- },
- },
- },
- }),
-};
-
Also, to place your Markdown files directly besides your actual files, but don't want them rendered as pages, you can set pagePatterns
options in VuePress config. See pagePatterns
import { defineUserConfig } from "vuepress";
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default defineUserConfig({
- // now any file with `.snippet.md` extension will not be rendered as a page
- pagePatterns: ["**/*.md", "!**/*.snippet.md", "!.vuepress", "!node_modules"],
-
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- include: true,
- },
- },
- }),
-});
-
import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- // now any file with `.snippet.md` extension will not be rendered as a page
- pagePatterns: ["**/*.md", "!**/*.snippet.md", "!.vuepress", "!node_modules"],
-
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- include: true,
- },
- },
- }),
-};
-
This plugin provides the following ways to enrich your content.
-This text has footnote[1].
-File not found
-Apple
- - -Banana
- - -Orange
- -This is footnote content ↩︎
-Add presentation in your VuePress site via Reveal.js.
- -Install Reveal.js
pnpm add -D reveal.js
-
yarn add -D reveal.js
-
npm i -D reveal.js
-
Then enabling via:
-import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- revealJs: true,
- },
- },
- }),
-};
-
revealJs
also receives an object as options, allowing you to control imported built-in plugins and themes.
You can enable the following plugins with revealJs.plugins
with an array of plugin names:
highlight
math
search
notes
zoom
Note
-markdown
plugin is enabled anyway to support markdown grammar.
You can also enable the following themes with revealJs.themes
with an array of theme names:
auto
(Default)black
white
league
beige
sky
night
serif
simple
solarized
blood
moon
By default, only auto theme is enabled.
----
to split slides--
to split the slides second time (vertical display)@slidestart
-
-<!-- slide1 -->
-
----
-
-<!-- slide2 -->
-
----
-
-<!-- slide3 -->
-
-@slideend
-
By default, we use auto
theme to render the presentation, but you can also use other themes with @slidestart theme-you-want
.
For the appearance of each theme, see
@slidestart
-
-## Slide 1
-
-A paragraph with some text and a [link](https://mister-hope.com)
-
----
-
-## Slide 2
-
-- Item 1
-- Item 2
-
----
-
-## Slide 3.1
-
-```js
-const a = 1;
-```
-
---
-
-## Slide 3.2
-
-$$
-J(\theta_0,\theta_1) = \sum_{i=0}
-$$
-
-@slideend
-
Info
-For detailed demo, please see
You can also import and call defineRevealJsConfig
in client config file
import { defineClientConfig } from "vuepress/client";
-import { defineRevealJsConfig } from "vuepress-plugin-md-enhance/client";
-
-defineRevealJsConfig({
- // reveal.js options here
-});
-
-export default defineClientConfig({
- // ...
-});
-
Note
-Reveal.js also provides more pluginsplugin
option in defineRevealJsConfig
. Built-in plugins you request at node side will be added automatically.
You can also set revealJs
to pass options to reveal.js per page in frontmatter.
For reveal.js options, see reveal.js config
Let the Markdown file in your VuePress site support tabs.
\\n\",\"autoDesc\":true}") -export { comp, data } diff --git a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/tabs.html.vue b/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/tabs.html.vue deleted file mode 100644 index de37a07..0000000 --- a/docs/theme/src/.vuepress/.temp/pages/guide/markdown/content/tabs.html.vue +++ /dev/null @@ -1,18 +0,0 @@ -Let the Markdown file in your VuePress site support tabs.
- -import { hopeTheme } from "vuepress-theme-hope";
-
-export default {
- theme: hopeTheme({
- plugins: {
- mdEnhance: {
- tabs: true,
- },
- },
- }),
-};
-
File not found
-