From 951a0c8122e559bd61c52a54c6547f69c8baab9a Mon Sep 17 00:00:00 2001 From: "Mr.Hope" Date: Fri, 2 Feb 2024 22:23:03 +0800 Subject: [PATCH] feat: use theme-hope --- .github/workflows/theme-hope-docs.yml | 39 + .vscode/settings.json | 3 +- README.md | 5 +- docs/.vuepress/config.ts | 92 +- docs/.vuepress/configs/navbar/en.ts | 47 +- docs/.vuepress/configs/navbar/zh.ts | 46 +- docs/.vuepress/configs/sidebar/en.ts | 53 +- docs/.vuepress/configs/sidebar/zh.ts | 56 +- docs/.vuepress/theme.ts | 61 ++ docs/README.md | 12 +- docs/advanced/architecture.md | 4 + docs/advanced/cookbook/README.md | 4 + docs/advanced/cookbook/adding-extra-pages.md | 4 + .../cookbook/making-a-theme-extendable.md | 4 + .../advanced/cookbook/markdown-and-vue-sfc.md | 4 + .../cookbook/passing-data-to-client-code.md | 4 + .../cookbook/usage-of-client-config.md | 4 + docs/advanced/plugin.md | 4 + docs/advanced/theme.md | 4 + docs/guide/assets.md | 4 + docs/guide/bundler.md | 20 +- docs/guide/configuration.md | 4 + docs/guide/deployment.md | 4 + docs/guide/getting-started.md | 52 +- docs/guide/i18n.md | 4 + docs/guide/introduction.md | 4 + docs/guide/markdown.md | 4 + docs/guide/migration.md | 4 + docs/guide/page.md | 4 + docs/guide/plugin.md | 4 + docs/guide/theme.md | 4 + docs/reference/bundler/vite.md | 4 + docs/reference/bundler/webpack.md | 4 + docs/reference/cli.md | 4 + docs/reference/client-api.md | 4 + docs/reference/components.md | 4 + docs/reference/config.md | 4 + docs/reference/frontmatter.md | 44 +- docs/reference/node-api.md | 4 + docs/reference/plugin-api.md | 4 + docs/reference/plugin/container.md | 165 +++ docs/reference/theme-api.md | 4 + docs/zh/README.md | 12 +- docs/zh/advanced/architecture.md | 4 + docs/zh/advanced/cookbook/README.md | 4 + .../advanced/cookbook/adding-extra-pages.md | 4 + .../cookbook/making-a-theme-extendable.md | 4 + .../advanced/cookbook/markdown-and-vue-sfc.md | 4 + .../cookbook/passing-data-to-client-code.md | 4 + .../cookbook/usage-of-client-config.md | 4 + docs/zh/advanced/plugin.md | 4 + docs/zh/advanced/theme.md | 4 + docs/zh/guide/assets.md | 4 + docs/zh/guide/bundler.md | 20 +- docs/zh/guide/configuration.md | 4 + docs/zh/guide/deployment.md | 4 + docs/zh/guide/getting-started.md | 63 +- docs/zh/guide/i18n.md | 4 + docs/zh/guide/introduction.md | 4 + docs/zh/guide/markdown.md | 4 + docs/zh/guide/migration.md | 4 + docs/zh/guide/page.md | 5 + docs/zh/guide/plugin.md | 4 + docs/zh/guide/theme.md | 4 + docs/zh/reference/bundler/vite.md | 4 + docs/zh/reference/bundler/webpack.md | 4 + docs/zh/reference/cli.md | 4 + docs/zh/reference/client-api.md | 4 + docs/zh/reference/components.md | 4 + docs/zh/reference/config.md | 4 + docs/zh/reference/frontmatter.md | 4 + docs/zh/reference/node-api.md | 4 + docs/zh/reference/plugin-api.md | 4 + docs/zh/reference/theme-api.md | 4 + package.json | 3 +- pnpm-lock.yaml | 977 +++++++++++++++++- 76 files changed, 1695 insertions(+), 304 deletions(-) create mode 100644 .github/workflows/theme-hope-docs.yml create mode 100644 docs/.vuepress/theme.ts create mode 100644 docs/reference/plugin/container.md diff --git a/.github/workflows/theme-hope-docs.yml b/.github/workflows/theme-hope-docs.yml new file mode 100644 index 00000000..c2832a8b --- /dev/null +++ b/.github/workflows/theme-hope-docs.yml @@ -0,0 +1,39 @@ +name: Deploy docs with theme-hope + +on: + push: + branches: + - theme-hope + +jobs: + deploy-netlify: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + run_install: true + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - name: Build docs + env: + NODE_OPTIONS: --max_old_space_size=4096 + run: |- + pnpm run docs:build + > docs/.vuepress/dist/.nojekyll + + - name: Deploy docs + uses: JamesIves/github-pages-deploy-action@v4 + with: + branch: netlify + folder: docs/.vuepress/dist diff --git a/.vscode/settings.json b/.vscode/settings.json index 611c9559..03b283b8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -41,5 +41,6 @@ "vuepress", "vueuse", "zoomable" - ] + ], + "markdown.extension.toc.updateOnSave": false } diff --git a/README.md b/README.md index b3d0249b..42cf2bda 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,11 @@ VuePress documentation repository. +This branch holds a VuePress2 official docs powered by [VuePress Theme Hope](https://theme-hope.vuejs.press). + ## Deployments -- Release deployment: -- Developer deployment: +- Deployment: ## License diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index 67251c43..4bf273ce 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -3,23 +3,14 @@ import process from 'node:process' import { viteBundler } from '@vuepress/bundler-vite' import { webpackBundler } from '@vuepress/bundler-webpack' import { docsearchPlugin } from '@vuepress/plugin-docsearch' -import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics' import { registerComponentsPlugin } from '@vuepress/plugin-register-components' -import { shikiPlugin } from '@vuepress/plugin-shiki' -import { defaultTheme } from '@vuepress/theme-default' import { defineUserConfig } from 'vuepress' import { getDirname, path } from 'vuepress/utils' -import { - head, - navbarEn, - navbarZh, - sidebarEn, - sidebarZh, -} from './configs/index.js' +import { head } from './configs/index.js' +import theme from './theme.js' const __dirname = getDirname(import.meta.url) const require = createRequire(import.meta.url) -const isProd = process.env.NODE_ENV === 'production' export default defineUserConfig({ // set site base to default value @@ -46,72 +37,6 @@ export default defineUserConfig({ bundler: process.env.DOCS_BUNDLER === 'webpack' ? webpackBundler() : viteBundler(), - // configure default theme - theme: defaultTheme({ - hostname: 'https://v2.vuepress.vuejs.org', - logo: '/images/hero.png', - repo: 'vuepress/docs', - docsDir: 'docs', - - // theme-level locales config - locales: { - /** - * English locale config - * - * As the default locale of @vuepress/theme-default is English, - * we don't need to set all of the locale fields - */ - '/': { - // navbar - navbar: navbarEn, - // sidebar - sidebar: sidebarEn, - // page meta - editLinkText: 'Edit this page on GitHub', - }, - - /** - * Chinese locale config - */ - '/zh/': { - // navbar - navbar: navbarZh, - selectLanguageName: '简体中文', - selectLanguageText: '选择语言', - selectLanguageAriaLabel: '选择语言', - // sidebar - sidebar: sidebarZh, - // page meta - editLinkText: '在 GitHub 上编辑此页', - lastUpdatedText: '上次更新', - contributorsText: '贡献者', - // custom containers - tip: '提示', - warning: '注意', - danger: '警告', - // 404 page - notFound: [ - '这里什么都没有', - '我们怎么到这来了?', - '这是一个 404 页面', - '看起来我们进入了错误的链接', - ], - backToHome: '返回首页', - // a11y - openInNewWindow: '在新窗口打开', - toggleColorMode: '切换颜色模式', - toggleSidebar: '切换侧边栏', - }, - }, - - themePlugins: { - // only enable git plugin in production mode - git: isProd, - // use shiki plugin in production mode instead - prismjs: !isProd, - }, - }), - // configure markdown markdown: { importCode: { @@ -132,6 +57,8 @@ export default defineUserConfig({ }, }, + theme, + // use plugins plugins: [ docsearchPlugin({ @@ -185,19 +112,8 @@ export default defineUserConfig({ }, }, }), - googleAnalyticsPlugin({ - // we have multiple deployments, which would use different id - id: process.env.DOCS_GA_ID ?? '', - }), registerComponentsPlugin({ componentsDir: path.resolve(__dirname, './components'), }), - // only enable shiki plugin in production mode - isProd - ? shikiPlugin({ - langs: ['bash', 'diff', 'json', 'md', 'ts', 'vue'], - theme: 'dark-plus', - }) - : [], ], }) diff --git a/docs/.vuepress/configs/navbar/en.ts b/docs/.vuepress/configs/navbar/en.ts index ddcf3035..581eb8fe 100644 --- a/docs/.vuepress/configs/navbar/en.ts +++ b/docs/.vuepress/configs/navbar/en.ts @@ -1,9 +1,10 @@ -import type { NavbarConfig } from '@vuepress/theme-default' +import { navbar } from 'vuepress-theme-hope' import { version } from '../meta.js' -export const navbarEn: NavbarConfig = [ +export const enNavbar = navbar([ { text: 'Guide', + icon: 'fa6-solid:lightbulb', children: [ '/guide/introduction.md', '/guide/getting-started.md', @@ -22,45 +23,48 @@ export const navbarEn: NavbarConfig = [ }, { text: 'Reference', + icon: 'fa6-solid:book', + prefix: '/reference/', children: [ { text: 'VuePress', children: [ { text: 'CLI', - link: '/reference/cli.html', + icon: 'bi:terminal-fill', + link: 'cli.html', }, - '/reference/config.md', - '/reference/frontmatter.md', - '/reference/components.md', - '/reference/plugin-api.md', - '/reference/theme-api.md', - '/reference/client-api.md', - '/reference/node-api.md', + 'config', + 'frontmatter', + 'components', + 'plugin-api', + 'theme-api', + 'client-api', + 'node-api', ], }, { text: 'Bundlers', - children: [ - '/reference/bundler/vite.md', - '/reference/bundler/webpack.md', - ], + prefix: 'bundler/', + children: ['vite', 'webpack'], }, ], }, { text: 'Learn More', + icon: 'fa6-solid:feather', children: [ { text: 'Advanced', + prefix: '/advanced/', children: [ - '/advanced/architecture.md', - '/advanced/plugin.md', - '/advanced/theme.md', + 'architecture', + 'plugin', + 'theme', { text: 'Cookbook', - link: '/advanced/cookbook/', + link: 'cookbook/', }, ], }, @@ -85,19 +89,22 @@ export const navbarEn: NavbarConfig = [ }, { text: `v${version}`, + icon: 'fa6-solid:tag', children: [ { text: 'Changelog', - link: 'https://github.com/vuepress/core/blob/main/CHANGELOG.md', + link: 'https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md', }, { text: 'v1.x', + icon: 'fa6-brands:vuejs', link: 'https://v1.vuepress.vuejs.org', }, { text: 'v0.x', + icon: 'fa6-brands:vuejs', link: 'https://v0.vuepress.vuejs.org', }, ], }, -] +]) diff --git a/docs/.vuepress/configs/navbar/zh.ts b/docs/.vuepress/configs/navbar/zh.ts index 4cb4f7bf..9c0a9cb1 100644 --- a/docs/.vuepress/configs/navbar/zh.ts +++ b/docs/.vuepress/configs/navbar/zh.ts @@ -1,9 +1,10 @@ -import type { NavbarConfig } from '@vuepress/theme-default' +import { navbar } from 'vuepress-theme-hope' import { version } from '../meta.js' -export const navbarZh: NavbarConfig = [ +export const zhNavbar = navbar([ { text: '指南', + icon: 'fa6-solid:lightbulb', children: [ '/zh/guide/introduction.md', '/zh/guide/getting-started.md', @@ -22,41 +23,43 @@ export const navbarZh: NavbarConfig = [ }, { text: '参考', + icon: 'fa6-solid:book', + prefix: '/zh/reference/', children: [ { text: 'VuePress', children: [ - '/zh/reference/cli.md', - '/zh/reference/config.md', - '/zh/reference/frontmatter.md', - '/zh/reference/components.md', - '/zh/reference/plugin-api.md', - '/zh/reference/theme-api.md', - '/zh/reference/client-api.md', - '/zh/reference/node-api.md', + 'cli', + 'config', + 'frontmatter', + 'components', + 'plugin-api', + 'theme-api', + 'client-api', + 'node-api', ], }, { text: '打包工具', - children: [ - '/zh/reference/bundler/vite.md', - '/zh/reference/bundler/webpack.md', - ], + prefix: 'bundler/', + children: ['vite', 'webpack'], }, ], }, { text: '了解更多', + icon: 'fa6-solid:feather', children: [ { text: '深入', + prefix: '/zh/advanced/', children: [ - '/zh/advanced/architecture.md', - '/zh/advanced/plugin.md', - '/zh/advanced/theme.md', + 'architecture', + 'plugin', + 'theme', { text: 'Cookbook', - link: '/zh/advanced/cookbook/', + link: 'cookbook/', }, ], }, @@ -81,19 +84,22 @@ export const navbarZh: NavbarConfig = [ }, { text: `v${version}`, + icon: 'fa6-solid:tag', children: [ { text: '更新日志', - link: 'https://github.com/vuepress/core/blob/main/CHANGELOG.md', + link: 'https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md', }, { text: 'v1.x', + icon: 'fa6-brands:vuejs', link: 'https://v1.vuepress.vuejs.org/zh/', }, { text: 'v0.x', + icon: 'fa6-brands:vuejs', link: 'https://v0.vuepress.vuejs.org/zh/', }, ], }, -] +]) diff --git a/docs/.vuepress/configs/sidebar/en.ts b/docs/.vuepress/configs/sidebar/en.ts index 773711dc..047605ab 100644 --- a/docs/.vuepress/configs/sidebar/en.ts +++ b/docs/.vuepress/configs/sidebar/en.ts @@ -1,6 +1,6 @@ -import type { SidebarConfig } from '@vuepress/theme-default' +import { sidebar } from 'vuepress-theme-hope' -export const sidebarEn: SidebarConfig = { +export const enSidebar = sidebar({ '/guide/': [ { text: 'Guide', @@ -24,47 +24,54 @@ export const sidebarEn: SidebarConfig = { '/advanced/': [ { text: 'Advanced', - children: [ - '/advanced/architecture.md', - '/advanced/plugin.md', - '/advanced/theme.md', - ], + icon: 'fa6-solid:gem', + children: ['architecture', 'plugin', 'theme'], }, { text: 'Cookbook', + icon: 'fa6-solid:signs-post', + prefix: 'cookbook/', children: [ - '/advanced/cookbook/README.md', - '/advanced/cookbook/usage-of-client-config.md', - '/advanced/cookbook/adding-extra-pages.md', - '/advanced/cookbook/making-a-theme-extendable.md', - '/advanced/cookbook/passing-data-to-client-code.md', - '/advanced/cookbook/markdown-and-vue-sfc.md', + '', + 'usage-of-client-config', + 'adding-extra-pages', + 'making-a-theme-extendable', + 'passing-data-to-client-code', + 'markdown-and-vue-sfc', ], }, ], '/reference/': [ { text: 'VuePress Reference', + icon: 'fa6-brands:vuejs', collapsible: true, children: [ - '/reference/cli.md', - '/reference/config.md', - '/reference/frontmatter.md', - '/reference/components.md', - '/reference/plugin-api.md', - '/reference/theme-api.md', - '/reference/client-api.md', - '/reference/node-api.md', + 'cli', + 'config', + 'frontmatter', + 'components', + 'plugin-api', + 'theme-api', + 'client-api', + 'node-api', ], }, { text: 'Bundlers Reference', + icon: 'fa6-solid:boxes-packing', + prefix: 'bundler/', collapsible: true, - children: ['/reference/bundler/vite.md', '/reference/bundler/webpack.md'], + children: ['vite', 'webpack'], }, { text: 'Official Ecosystem', link: 'https://ecosystem.vuejs.press/', }, + { + text: 'VuePress MarketPlace', + icon: 'fa6-solid:cart-shopping', + link: 'https://marketplace.vuejs.press', + }, ], -} +}) diff --git a/docs/.vuepress/configs/sidebar/zh.ts b/docs/.vuepress/configs/sidebar/zh.ts index 492dc240..31ba4217 100644 --- a/docs/.vuepress/configs/sidebar/zh.ts +++ b/docs/.vuepress/configs/sidebar/zh.ts @@ -1,6 +1,6 @@ -import type { SidebarConfig } from '@vuepress/theme-default' +import { sidebar } from 'vuepress-theme-hope' -export const sidebarZh: SidebarConfig = { +export const zhSidebar = sidebar({ '/zh/guide/': [ { text: '指南', @@ -24,50 +24,54 @@ export const sidebarZh: SidebarConfig = { '/zh/advanced/': [ { text: '深入', - children: [ - '/zh/advanced/architecture.md', - '/zh/advanced/plugin.md', - '/zh/advanced/theme.md', - ], + icon: 'fa6-solid:gem', + children: ['architecture', 'plugin', 'theme'], }, { text: 'Cookbook', + icon: 'fa6-solid:signs-post', + prefix: 'cookbook/', children: [ - '/zh/advanced/cookbook/README.md', - '/zh/advanced/cookbook/usage-of-client-config.md', - '/zh/advanced/cookbook/adding-extra-pages.md', - '/zh/advanced/cookbook/making-a-theme-extendable.md', - '/zh/advanced/cookbook/passing-data-to-client-code.md', - '/zh/advanced/cookbook/markdown-and-vue-sfc.md', + '', + 'usage-of-client-config', + 'adding-extra-pages', + 'making-a-theme-extendable', + 'passing-data-to-client-code', + 'markdown-and-vue-sfc', ], }, ], '/zh/reference/': [ { text: 'VuePress 参考', + icon: 'fa6-brands:vuejs', collapsible: true, children: [ - '/zh/reference/cli.md', - '/zh/reference/config.md', - '/zh/reference/frontmatter.md', - '/zh/reference/components.md', - '/zh/reference/plugin-api.md', - '/zh/reference/theme-api.md', - '/zh/reference/client-api.md', - '/zh/reference/node-api.md', + '/zh/reference/cli', + '/zh/reference/config', + '/zh/reference/frontmatter', + '/zh/reference/components', + '/zh/reference/plugin-api', + '/zh/reference/theme-api', + '/zh/reference/client-api', + '/zh/reference/node-api', ], }, { text: '打包工具参考', + icon: 'fa6-solid:boxes-packing', + prefix: 'bundler/', collapsible: true, - children: [ - '/zh/reference/bundler/vite.md', - '/zh/reference/bundler/webpack.md', - ], + children: ['vite', 'webpack'], }, { text: '官方生态系统', link: 'https://ecosystem.vuejs.press/zh/', }, + { + text: 'VuePress 市场', + icon: 'fa6-solid:cart-shopping', + link: 'https://marketplace.vuejs.press/zh/', + }, ], -} +}) diff --git a/docs/.vuepress/theme.ts b/docs/.vuepress/theme.ts new file mode 100644 index 00000000..bad2767a --- /dev/null +++ b/docs/.vuepress/theme.ts @@ -0,0 +1,61 @@ +import { hopeTheme } from 'vuepress-theme-hope' +import { enNavbar, enSidebar, zhNavbar, zhSidebar } from './configs/index.js' + +export default hopeTheme({ + hostname: 'https://vuejs.press', + iconAssets: 'iconify', + + logo: '/images/hero.png', + repo: 'vuepress/docs', + docsDir: 'docs', + + locales: { + '/': { + // navbar + navbar: enNavbar, + + // sidebar + sidebar: enSidebar, + + footer: + 'Theme by VuePress Theme Hope', + + copyright: 'MIT Licensed | Copyright © 2018-present Evan You', + + displayFooter: true, + + metaLocales: { + editLink: 'Edit this page on GitHub', + }, + }, + + /** + * Chinese locale config + */ + '/zh/': { + // navbar + navbar: zhNavbar, + + // sidebar + sidebar: zhSidebar, + + footer: + '主题使用 VuePress Theme Hope', + + copyright: 'MIT 协议 | 版权所有 © 2018-至今 尤雨溪', + + displayFooter: true, + + // page meta + metaLocales: { + editLink: '在 GitHub 上编辑此页', + }, + }, + }, + + plugins: { + mdEnhance: { + codetabs: true, + }, + }, +}) diff --git a/docs/README.md b/docs/README.md index 7dca71b7..6fefcc20 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,7 @@ --- home: true title: Home +icon: fa6-solid:house heroImage: /images/hero.png actions: - text: Get Started @@ -9,18 +10,27 @@ actions: - text: Introduction link: /guide/introduction.html type: secondary + - text: Marketplace + link: https://marketplace.vuejs.press/ + type: secondary features: - title: Simplicity First + icon: fa6-solid:star details: Minimal setup with markdown-centered project structure helps you focus on writing. - title: Vue-Powered + icon: fa6-brands:vuejs details: Enjoy the dev experience of Vue, use Vue components in markdown, and develop custom themes with Vue. - title: Performant + icon: fa6-solid:bolt details: VuePress generates pre-rendered static HTML for each page, and runs as an SPA once a page is loaded. - title: Themes + icon: fa6-solid:palette details: Providing a default theme out of the box. You can also choose a community theme or create your own one. - title: Plugins + icon: fa6-solid:plug details: Flexible plugin API, allowing plugins to provide lots of plug-and-play features for your site. - title: Bundlers + icon: fa6-solid:boxes-packing details: Default bundler is Vite, while Webpack is also supported. Choose the one you like! -footer: MIT Licensed | Copyright © 2018-present VuePress Community +footer: MIT Licensed | Copyright © 2018-present VuePress Community | Theme by vuepress-theme-hope --- diff --git a/docs/advanced/architecture.md b/docs/advanced/architecture.md index 4fe32a04..85addc1f 100644 --- a/docs/advanced/architecture.md +++ b/docs/advanced/architecture.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:folder-tree +--- + # Architecture ## Overview diff --git a/docs/advanced/cookbook/README.md b/docs/advanced/cookbook/README.md index da53257d..171c82cf 100644 --- a/docs/advanced/cookbook/README.md +++ b/docs/advanced/cookbook/README.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:circle-info +--- + # Introduction ## What's the Cookbook for? diff --git a/docs/advanced/cookbook/adding-extra-pages.md b/docs/advanced/cookbook/adding-extra-pages.md index 9dc5ada9..9d667e30 100644 --- a/docs/advanced/cookbook/adding-extra-pages.md +++ b/docs/advanced/cookbook/adding-extra-pages.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:circle-plus +--- + # Adding Extra Pages Sometimes you might want to add some extra pages without creating a markdown file in the source directory. diff --git a/docs/advanced/cookbook/making-a-theme-extendable.md b/docs/advanced/cookbook/making-a-theme-extendable.md index a12737bc..6159309a 100644 --- a/docs/advanced/cookbook/making-a-theme-extendable.md +++ b/docs/advanced/cookbook/making-a-theme-extendable.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:clone +--- + # Making a Theme Extendable Sometimes users might want make some minor changes to a theme, but they don't want to fork and modify the entire project. diff --git a/docs/advanced/cookbook/markdown-and-vue-sfc.md b/docs/advanced/cookbook/markdown-and-vue-sfc.md index 4fec769f..2b590be1 100644 --- a/docs/advanced/cookbook/markdown-and-vue-sfc.md +++ b/docs/advanced/cookbook/markdown-and-vue-sfc.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:vuejs +--- + # Markdown and Vue SFC Each Markdown file is first compiled into HTML, and then converted to a Vue SFC. In other words, you can write a Markdown file like a Vue SFC: diff --git a/docs/advanced/cookbook/passing-data-to-client-code.md b/docs/advanced/cookbook/passing-data-to-client-code.md index 39b919b4..a56b414b 100644 --- a/docs/advanced/cookbook/passing-data-to-client-code.md +++ b/docs/advanced/cookbook/passing-data-to-client-code.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:right-to-bracket +--- + # Passing Data to Client Code As we know, VuePress plugin entries and theme entries are processed in Node side, but sometimes you might need to pass data to client side. For example, you want to generate different data when users use different options. diff --git a/docs/advanced/cookbook/usage-of-client-config.md b/docs/advanced/cookbook/usage-of-client-config.md index 39de1777..3944582a 100644 --- a/docs/advanced/cookbook/usage-of-client-config.md +++ b/docs/advanced/cookbook/usage-of-client-config.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:gear +--- + # Usage of Client Config You can make use of the [client config file](../../guide/configuration.md#client-config-file) directly in your project, or specify the file path in your plugin or theme via [clientConfigFile](../../reference/plugin-api.md#clientconfigfile) hook: diff --git a/docs/advanced/plugin.md b/docs/advanced/plugin.md index c7e3538f..192235f8 100644 --- a/docs/advanced/plugin.md +++ b/docs/advanced/plugin.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:plug +--- + # Writing a Plugin ::: tip diff --git a/docs/advanced/theme.md b/docs/advanced/theme.md index deec6538..23eb0cb8 100644 --- a/docs/advanced/theme.md +++ b/docs/advanced/theme.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:palette +--- + # Writing a Theme ::: tip diff --git a/docs/guide/assets.md b/docs/guide/assets.md index e686d8e1..b07c72e4 100644 --- a/docs/guide/assets.md +++ b/docs/guide/assets.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:photo-film +--- + # Assets ## Relative URLs diff --git a/docs/guide/bundler.md b/docs/guide/bundler.md index 744779f0..d70c6d6b 100644 --- a/docs/guide/bundler.md +++ b/docs/guide/bundler.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:boxes-packing +--- + # Bundler VuePress supports using [Webpack](https://webpack.js.org/) or [Vite](https://vitejs.dev/) to dev and build sites. You can choose which bundler to use according to your preference, and no extra configuration is required. @@ -6,8 +10,9 @@ VuePress supports using [Webpack](https://webpack.js.org/) or [Vite](https://vit When installing the [vuepress](https://www.npmjs.com/package/vuepress) package, no bundlers will be installed. You need to choose a bundler to install. - - +::: code-tabs#shell + +@tab:active pnpm ```bash # install vite bundler @@ -16,9 +21,7 @@ pnpm add -D vuepress@next @vuepress/bundler-vite@next pnpm add -D vuepress@next @vuepress/bundler-webpack@next ``` - - - +@tab yarn ```bash # install vite bundler @@ -27,9 +30,7 @@ yarn add -D vuepress@next @vuepress/bundler-vite@next yarn add -D vuepress@next @vuepress/bundler-webpack@next ``` - - - +@tab npm ```bash # install vite bundler @@ -38,8 +39,7 @@ npm install -D vuepress@next @vuepress/bundler-vite@next npm install -D vuepress@next @vuepress/bundler-webpack@next ``` - - +::: ## Use a Bundler diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md index a750472f..680f55d5 100644 --- a/docs/guide/configuration.md +++ b/docs/guide/configuration.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:gear +--- + # Configuration ## Config File diff --git a/docs/guide/deployment.md b/docs/guide/deployment.md index ec510f1f..2cd94144 100644 --- a/docs/guide/deployment.md +++ b/docs/guide/deployment.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:rocket +--- + # Deployment The following guides are based on some shared assumptions: diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index 6067bacd..9ab49643 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:lightbulb +--- + # Getting Started ::: warning @@ -67,39 +71,36 @@ cd vuepress-starter - Initialize your project - - +::: code-tabs#shell + +@tab:active pnpm ```bash git init pnpm init ``` - - - +@tab yarn ```bash git init yarn init ``` - - - +@tab npm ```bash git init npm init ``` - - +::: - Install VuePress - - +::: code-tabs#shell + +@tab:active pnpm ```bash # install vuepress and vue @@ -108,9 +109,7 @@ pnpm add -D vuepress@next vue pnpm add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` - - - +@tab yarn ```bash # install vuepress @@ -119,9 +118,7 @@ yarn add -D vuepress@next yarn add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` - - - +@tab pnpm ```bash # install vuepress @@ -130,8 +127,7 @@ npm install -D vuepress@next npm install -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` - - +::: - Create `docs` directory and `docs/.vuepress` directory @@ -205,31 +201,27 @@ You can add some [scripts](https://classic.yarnpkg.com/en/docs/package-json#toc- Then, run `docs:dev` script to start the dev server: - - +::: code-tabs#shell + +@tab:active pnpm ```bash pnpm docs:dev ``` - - - +@tab yarn ```bash yarn docs:dev ``` - - - +@tab npm ```bash npm run docs:dev ``` - - +::: VuePress will start a hot-reloading development server at [http://localhost:8080](http://localhost:8080). When you modify your markdown files, the content in the browser will be auto updated. diff --git a/docs/guide/i18n.md b/docs/guide/i18n.md index bf572ef0..b961d5eb 100644 --- a/docs/guide/i18n.md +++ b/docs/guide/i18n.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:language +--- + # I18n ## Site I18n Config diff --git a/docs/guide/introduction.md b/docs/guide/introduction.md index d04f0854..3b40a84a 100644 --- a/docs/guide/introduction.md +++ b/docs/guide/introduction.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:circle-info +--- + # Introduction VuePress is a markdown-centered static site generator. You can write your content (documentations, blogs, etc.) in [Markdown](https://en.wikipedia.org/wiki/Markdown), then VuePress will help you to generate a static site to host them. diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md index 66ed5a94..359fb0c1 100644 --- a/docs/guide/markdown.md +++ b/docs/guide/markdown.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:markdown +--- + # Markdown Make sure you already know Markdown well before reading this section. If not, please learn some [Markdown tutorials](https://commonmark.org/help/) first. diff --git a/docs/guide/migration.md b/docs/guide/migration.md index 431ce31d..88e48e83 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:code-compare +--- + # Migrating from v1 ::: warning diff --git a/docs/guide/page.md b/docs/guide/page.md index f16469fd..1efe095f 100644 --- a/docs/guide/page.md +++ b/docs/guide/page.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:file +--- + # Page VuePress is markdown-centered. Each markdown file inside your project is a standalone page. diff --git a/docs/guide/plugin.md b/docs/guide/plugin.md index 8f55a2a7..d9dd0b03 100644 --- a/docs/guide/plugin.md +++ b/docs/guide/plugin.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:plug +--- + # Plugin With the help of [Plugin API](../reference/plugin-api.md), VuePress plugin can provide different features for you. diff --git a/docs/guide/theme.md b/docs/guide/theme.md index 92ff4fcf..97a6860a 100644 --- a/docs/guide/theme.md +++ b/docs/guide/theme.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:palette +--- + # Theme VuePress theme can provide layouts, styles and many other features for you, helping you to focus on writing Markdown content. diff --git a/docs/reference/bundler/vite.md b/docs/reference/bundler/vite.md index 3a07cb73..f8a1a0ec 100644 --- a/docs/reference/bundler/vite.md +++ b/docs/reference/bundler/vite.md @@ -1,3 +1,7 @@ +--- +icon: simple-icons:vite +--- + # Vite diff --git a/docs/reference/bundler/webpack.md b/docs/reference/bundler/webpack.md index eb30bd70..6eb58e22 100644 --- a/docs/reference/bundler/webpack.md +++ b/docs/reference/bundler/webpack.md @@ -1,3 +1,7 @@ +--- +icon: mdi:webpack +--- + # Webpack diff --git a/docs/reference/cli.md b/docs/reference/cli.md index b1a07e3e..fbd98073 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -1,3 +1,7 @@ +--- +icon: bi:terminal-fill +--- + # Command Line Interface diff --git a/docs/reference/client-api.md b/docs/reference/client-api.md index d0c6a953..865dee3b 100644 --- a/docs/reference/client-api.md +++ b/docs/reference/client-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:chrome +--- + # Client API diff --git a/docs/reference/components.md b/docs/reference/components.md index 8f5584c9..643bc60e 100644 --- a/docs/reference/components.md +++ b/docs/reference/components.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:puzzle-piece +--- + # Built-in Components diff --git a/docs/reference/config.md b/docs/reference/config.md index e30e9887..c0bdc8d6 100644 --- a/docs/reference/config.md +++ b/docs/reference/config.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:gear +--- + # Config diff --git a/docs/reference/frontmatter.md b/docs/reference/frontmatter.md index 01621be3..502a26e6 100644 --- a/docs/reference/frontmatter.md +++ b/docs/reference/frontmatter.md @@ -1,3 +1,7 @@ +--- +icon: fa-solid:bars +--- + # Frontmatter @@ -39,15 +43,15 @@ - Example: -```md ---- -head: - - - meta - - name: foo - content: yaml array syntax - - [meta, { name: bar, content: square brackets syntax }] ---- -``` + ```md + --- + head: + - - meta + - name: foo + content: yaml array syntax + - [meta, { name: bar, content: square brackets syntax }] + --- + ``` Rendered as: @@ -160,12 +164,12 @@ layout: CustomLayout The page frontmatter is: -```md ---- -date: 2021-01-03 -permalinkPattern: :year/:month/:day/:slug.html ---- -``` + ```md + --- + date: 2021-01-03 + permalinkPattern: :year/:month/:day/:slug.html + --- + ``` Then the permalink of the page would be `2021/01/03/foo-bar.html`. @@ -175,11 +179,11 @@ Then the permalink of the page would be `2021/01/03/foo-bar.html`. The page frontmatter is: -```md ---- -permalinkPattern: :year/:month/:day/:slug.html ---- -``` + ```md + --- + permalinkPattern: :year/:month/:day/:slug.html + --- + ``` Then the permalink of the page would be `2021/01/03/bar-baz.html`. diff --git a/docs/reference/node-api.md b/docs/reference/node-api.md index 12a797dd..42106f35 100644 --- a/docs/reference/node-api.md +++ b/docs/reference/node-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:node-js +--- + # Node API diff --git a/docs/reference/plugin-api.md b/docs/reference/plugin-api.md index 8250ee53..f3e4d0ec 100644 --- a/docs/reference/plugin-api.md +++ b/docs/reference/plugin-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:plug +--- + # Plugin API diff --git a/docs/reference/plugin/container.md b/docs/reference/plugin/container.md new file mode 100644 index 00000000..5f245e41 --- /dev/null +++ b/docs/reference/plugin/container.md @@ -0,0 +1,165 @@ +# container + + + +Register markdown custom containers in your VuePress site. + +This plugin simplifies the use of [markdown-it-container](https://github.com/markdown-it/markdown-it-container), but also retains its original capabilities. + +The [Custom Containers](../default-theme/markdown.md#custom-containers) of default theme is powered by this plugin. + +## Usage + +```bash +npm i -D @vuepress/plugin-container@next +``` + +```ts +import { containerPlugin } from '@vuepress/plugin-container' + +export default { + plugins: [ + containerPlugin({ + // options + }), + ], +} +``` + +## Container Syntax + +```md +::: [info] +[content] +::: +``` + +- The `type` is required and should be specified via [type](#type) option. +- The `info` is optional, and the default value can be specified via `defaultInfo` in [locales](#locales) option. +- The `content` can be any valid markdown content. + +::: tip +This plugin can be used multiple times to support different types of containers. +::: + +## Options + +### type + +- Type: `string` + +- Details: + + The type of the container. + + It will be used as the `name` param of [markdown-it-container](https://github.com/markdown-it/markdown-it-container#api). + +### locales + +- Type: `Record` + +- Details: + + The default `info` of the container in different locales. + + If this option is not specified, the default `info` will fallback to the uppercase of the [type](#type) option. + +- Example: + + ```ts + export default { + plugins: [ + containerPlugin({ + type: 'tip', + locales: { + '/': { + defaultInfo: 'TIP', + }, + '/zh/': { + defaultInfo: '提示', + }, + }, + }), + ], + } + ``` + +- Also see: + - [Guide > I18n](../../guide/i18n.md) + +### before + +- Type: `(info: string) => string` + +- Default: + + +```ts +(info: string): string => + `
${info ? `

${info}

` : ''}\n` +``` + + +- Details: + + A function to render the starting tag of the container. + + The first param is the `info` part of [container syntax](#container-syntax). + + This option will not take effect if you don't specify the [after](#after) option. + +### after + +- Type: `(info: string) => string` + +- Default: + + +```ts +(): string => '
\n' +``` + + +- Details: + + A function to render the ending tag of the container. + + The first param is the `info` part of [container syntax](#container-syntax). + + This option will not take effect if you don't specify the [before](#before) option. + +### render + +- Type: + + ```ts + type MarkdownItContainerRenderFunction = ( + tokens: Token[], + index: number, + options: any, + env: MarkdownEnv, + self: Renderer, + ) => string + ``` + +- Details: + + The `render` option of [markdown-it-container](https://github.com/markdown-it/markdown-it-container#api). + + This plugin uses a default `render` function. If you specify this option, the default `render` function will be replaced, and the [locales](#locales), [before](#before) and [after](#after) options will be ignored. + +### validate + +- Type: `(params: string) => boolean` + +- Details: + + The `validate` option of [markdown-it-container](https://github.com/markdown-it/markdown-it-container#api). + +### marker + +- Type: `string` + +- Details: + + The `marker` option of [markdown-it-container](https://github.com/markdown-it/markdown-it-container#api). diff --git a/docs/reference/theme-api.md b/docs/reference/theme-api.md index ed598e9b..6636ab3d 100644 --- a/docs/reference/theme-api.md +++ b/docs/reference/theme-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:palette +--- + # Theme API diff --git a/docs/zh/README.md b/docs/zh/README.md index 1cd2ae1c..375c12c8 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -1,5 +1,6 @@ --- home: true +icon: fa6-solid:house title: 首页 heroImage: /images/hero.png actions: @@ -9,18 +10,27 @@ actions: - text: 项目简介 link: /zh/guide/introduction.html type: secondary + - text: 市场 + link: https://marketplace.vuejs.press/zh/ + type: secondary features: - title: 简洁至上 + icon: fa6-solid:star details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。 - title: Vue 驱动 + icon: fa6-brands:vuejs details: 享受 Vue 的开发体验,可以在 Markdown 中使用 Vue 组件,又可以使用 Vue 来开发自定义主题。 - title: 高性能 + icon: fa6-solid:bolt details: VuePress 会为每个页面预渲染生成静态的 HTML,同时,每个页面被加载的时候,将作为 SPA 运行。 - title: 主题 + icon: fa6-solid:palette details: 提供了一个开箱即用的默认主题。你也可以挑选一个社区主题,或者创建一个你自己的主题。 - title: 插件 + icon: fa6-solid:plug details: 灵活的插件API,使得插件可以为你的站点提供许多即插即用的功能。 - title: 打包工具 + icon: fa6-solid:boxes-packing details: 默认的打包工具是 Vite ,也同样支持 Webpack 。选一个你喜欢的来使用吧! -footer: MIT 协议 | 版权所有 © 2018-至今 VuePress 社区 +footer: MIT 协议 | 版权所有 © 2018-至今 VuePress 社区 | 使用 vuepress-theme-hope 主题 --- diff --git a/docs/zh/advanced/architecture.md b/docs/zh/advanced/architecture.md index 04b73f2d..584d0134 100644 --- a/docs/zh/advanced/architecture.md +++ b/docs/zh/advanced/architecture.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:folder-tree +--- + # 架构 ## 概览 diff --git a/docs/zh/advanced/cookbook/README.md b/docs/zh/advanced/cookbook/README.md index 8c108c03..206fe04c 100644 --- a/docs/zh/advanced/cookbook/README.md +++ b/docs/zh/advanced/cookbook/README.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:circle-info +--- + # 介绍 ## Cookbook 的目的是什么? diff --git a/docs/zh/advanced/cookbook/adding-extra-pages.md b/docs/zh/advanced/cookbook/adding-extra-pages.md index ec7129ad..04f33f5e 100644 --- a/docs/zh/advanced/cookbook/adding-extra-pages.md +++ b/docs/zh/advanced/cookbook/adding-extra-pages.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:circle-plus +--- + # 添加额外页面 有时你可能希望在不创建 Markdown 文件的情况下添加一些额外的页面。 diff --git a/docs/zh/advanced/cookbook/making-a-theme-extendable.md b/docs/zh/advanced/cookbook/making-a-theme-extendable.md index 1de74e6b..df48d406 100644 --- a/docs/zh/advanced/cookbook/making-a-theme-extendable.md +++ b/docs/zh/advanced/cookbook/making-a-theme-extendable.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:clone +--- + # 开发一个可继承的主题 有时用户可能希望对一个主题进行一些小改动,但是又不想 Fork 并修改整个项目。 diff --git a/docs/zh/advanced/cookbook/markdown-and-vue-sfc.md b/docs/zh/advanced/cookbook/markdown-and-vue-sfc.md index 9d88fde1..1ab9db01 100644 --- a/docs/zh/advanced/cookbook/markdown-and-vue-sfc.md +++ b/docs/zh/advanced/cookbook/markdown-and-vue-sfc.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:vuejs +--- + # Markdown 与 Vue SFC 每一个 Markdown 文件,首先都会编译为 HTML ,然后转换为一个 Vue 单文件组件 (SFC) 。换句话说,你可以像写 Vue SFC 一样来写 Markdown 文件: diff --git a/docs/zh/advanced/cookbook/passing-data-to-client-code.md b/docs/zh/advanced/cookbook/passing-data-to-client-code.md index d22dfa47..034c9507 100644 --- a/docs/zh/advanced/cookbook/passing-data-to-client-code.md +++ b/docs/zh/advanced/cookbook/passing-data-to-client-code.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:right-to-bracket +--- + # 向客户端代码传递数据 我们知道,VuePress 插件入口和主题入口是在 Node 端处理的,但有时候你可能需要向客户端动态传递数据。例如,你希望在用户传入不同的选项时生成不同的数据。 diff --git a/docs/zh/advanced/cookbook/usage-of-client-config.md b/docs/zh/advanced/cookbook/usage-of-client-config.md index 25bdc41c..1f49e331 100644 --- a/docs/zh/advanced/cookbook/usage-of-client-config.md +++ b/docs/zh/advanced/cookbook/usage-of-client-config.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:gear +--- + # 客户端配置的使用方法 你可以直接在你的项目中使用 [客户端配置文件](../../guide/configuration.md#客户端配置文件) 。或者,在你的插件或者主题中,使用 [clientConfigFile](../../reference/plugin-api.md#clientconfigfile) Hook 来指定客户端配置文件的路径: diff --git a/docs/zh/advanced/plugin.md b/docs/zh/advanced/plugin.md index 8f53a186..fb30c182 100644 --- a/docs/zh/advanced/plugin.md +++ b/docs/zh/advanced/plugin.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:plug +--- + # 开发插件 ::: tip diff --git a/docs/zh/advanced/theme.md b/docs/zh/advanced/theme.md index fcb3c6d7..ba347106 100644 --- a/docs/zh/advanced/theme.md +++ b/docs/zh/advanced/theme.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:palette +--- + # 开发主题 ::: tip diff --git a/docs/zh/guide/assets.md b/docs/zh/guide/assets.md index 52ee28b2..c4d9bb25 100644 --- a/docs/zh/guide/assets.md +++ b/docs/zh/guide/assets.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:photo-film +--- + # 静态资源 ## 相对路径 diff --git a/docs/zh/guide/bundler.md b/docs/zh/guide/bundler.md index efdcdb28..091edb38 100644 --- a/docs/zh/guide/bundler.md +++ b/docs/zh/guide/bundler.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:boxes-packing +--- + # 打包工具 VuePress 支持使用 [Vite](https://vitejs.dev/) 或 [Webpack](https://webpack.js.org/) 作为打包工具来进行网站的开发和构建。你可以根据自己的喜好来选择使用哪个打包工具,并且不需要进行额外的配置。 @@ -6,8 +10,9 @@ VuePress 支持使用 [Vite](https://vitejs.dev/) 或 [Webpack](https://webpack. 在安装 [vuepress](https://www.npmjs.com/package/vuepress) 包时,并不会自动安装打包工具,你需要选择并安装一个打包工具。 - - +::: code-tabs#shell + +@tab:active pnpm ```bash # 安装 vite 打包工具 @@ -16,9 +21,7 @@ pnpm add -D vuepress@next @vuepress/bundler-vite@next pnpm add -D vuepress@next @vuepress/bundler-webpack@next ``` - - - +@tab yarn ```bash # 安装 vite 打包工具 @@ -27,9 +30,7 @@ yarn add -D vuepress@next @vuepress/bundler-vite@next yarn add -D vuepress@next @vuepress/bundler-webpack@next ``` - - - +@tab pnpm ```bash # 安装 vite 打包工具 @@ -38,8 +39,7 @@ npm install -D vuepress@next @vuepress/bundler-vite@next npm install -D vuepress@next @vuepress/bundler-webpack@next ``` - - +::: ## 使用打包工具 diff --git a/docs/zh/guide/configuration.md b/docs/zh/guide/configuration.md index 21214b21..cfa0016a 100644 --- a/docs/zh/guide/configuration.md +++ b/docs/zh/guide/configuration.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:gear +--- + # 配置 ## 配置文件 diff --git a/docs/zh/guide/deployment.md b/docs/zh/guide/deployment.md index 127f8bd4..ea0861c0 100644 --- a/docs/zh/guide/deployment.md +++ b/docs/zh/guide/deployment.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:rocket +--- + # 部署 下述的指南基于以下条件: diff --git a/docs/zh/guide/getting-started.md b/docs/zh/guide/getting-started.md index 002f7900..a8825cef 100644 --- a/docs/zh/guide/getting-started.md +++ b/docs/zh/guide/getting-started.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:lightbulb +--- + # 快速上手 ::: warning @@ -67,39 +71,34 @@ cd vuepress-starter - 初始化项目 - - +@tab:active pnpm ```bash git init pnpm init ``` - - - +@tab yarn ```bash git init yarn init ``` - - - +@tab pnpm ```bash git init npm init ``` - - +::: - 安装 VuePress - - +::: code-tabs#shell + +@tab:active pnpm ```bash # 安装 vuepress 和 vue @@ -108,9 +107,7 @@ pnpm add -D vuepress@next vue pnpm add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` - - - +@tab yarn ```bash # 安装 vuepress @@ -119,9 +116,7 @@ yarn add -D vuepress@next yarn add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` - - - +@tab pnpm ```bash # 安装 vuepress @@ -205,31 +200,27 @@ echo '# Hello VuePress' > docs/README.md 运行 `docs:dev` 脚本可以启动开发服务器: - - +::: code-tabs#shell + +@tab:active PNPM ```bash pnpm docs:dev ``` - - - +@tab yarn ```bash yarn docs:dev ``` - - - +@tab NPM ```bash npm run docs:dev ``` - - +::: VuePress 会在 [http://localhost:8080](http://localhost:8080) 启动一个热重载的开发服务器。当你修改你的 Markdown 文件时,浏览器中的内容也会自动更新。 @@ -237,31 +228,27 @@ VuePress 会在 [http://localhost:8080](http://localhost:8080) 启动一个热 运行 `docs:build` 脚本可以构建你的网站: - - +::: code-tabs#shell + +@tab:active pnpm ```bash pnpm docs:build ``` - - - +@tab yarn ```bash yarn docs:build ``` - - - +@tab npm ```bash npm run docs:build ``` - - +::: 在 `docs/.vuepress/dist` 目录中可以找到构建生成的静态文件。你可以查看 [部署](./deployment.md) 来了解如何部署你的网站。 diff --git a/docs/zh/guide/i18n.md b/docs/zh/guide/i18n.md index c8ef6173..b6a763f3 100644 --- a/docs/zh/guide/i18n.md +++ b/docs/zh/guide/i18n.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:language +--- + # 多语言支持 ## 站点多语言配置 diff --git a/docs/zh/guide/introduction.md b/docs/zh/guide/introduction.md index 1848728c..f1fc3e79 100644 --- a/docs/zh/guide/introduction.md +++ b/docs/zh/guide/introduction.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:circle-info +--- + # 介绍 VuePress 是一个以 Markdown 为中心的静态网站生成器。你可以使用 [Markdown](https://zh.wikipedia.org/wiki/Markdown) 来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。 diff --git a/docs/zh/guide/markdown.md b/docs/zh/guide/markdown.md index 858f1479..7c5ff412 100644 --- a/docs/zh/guide/markdown.md +++ b/docs/zh/guide/markdown.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:markdown +--- + # Markdown 在阅读本章节之前,请确保你已经对 Markdown 有所了解。如果你还不了解 Markdown ,请先学习一些 [Markdown 教程](https://commonmark.org/help/)。 diff --git a/docs/zh/guide/migration.md b/docs/zh/guide/migration.md index 3a01abc4..94cbac33 100644 --- a/docs/zh/guide/migration.md +++ b/docs/zh/guide/migration.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:code-compare +--- + # 从 v1 迁移 ::: warning diff --git a/docs/zh/guide/page.md b/docs/zh/guide/page.md index 4bd2faf6..66d7172a 100644 --- a/docs/zh/guide/page.md +++ b/docs/zh/guide/page.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:file +--- + # 页面 VuePress 是以 Markdown 为中心的。你项目中的每一个 Markdown 文件都是一个单独的页面。 @@ -52,6 +56,7 @@ description: 页面的描述 同样的,VuePress 有一些内置支持的 Frontmatter 字段,而你使用的主题也可能有它自己的特殊 Frontmatter 。 ::: tip + 前往 [Frontmatter 参考](../reference/frontmatter.md) 查看 VuePress 支持的 Frontmatter 配置。 前往 [默认主题 > Frontmatter 参考](https://ecosystem.vuejs.press/zh/themes/default/frontmatter.html) 查看默认主题的 Frontmatter 配置。 diff --git a/docs/zh/guide/plugin.md b/docs/zh/guide/plugin.md index b7ecc905..5d6b138e 100644 --- a/docs/zh/guide/plugin.md +++ b/docs/zh/guide/plugin.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:plug +--- + # 插件 借助于 [插件 API](../reference/plugin-api.md) , VuePress 插件可以为你提供各种不同的功能。 diff --git a/docs/zh/guide/theme.md b/docs/zh/guide/theme.md index d006e21c..537ea804 100644 --- a/docs/zh/guide/theme.md +++ b/docs/zh/guide/theme.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:palette +--- + # 主题 VuePress 主题为你提供了布局、样式和其他功能,帮助你专注于 Markdown 内容的写作。 diff --git a/docs/zh/reference/bundler/vite.md b/docs/zh/reference/bundler/vite.md index db3d7181..a5f766fd 100644 --- a/docs/zh/reference/bundler/vite.md +++ b/docs/zh/reference/bundler/vite.md @@ -1,3 +1,7 @@ +--- +icon: simple-icons:vite +--- + # Vite diff --git a/docs/zh/reference/bundler/webpack.md b/docs/zh/reference/bundler/webpack.md index 500d3a7f..81a8f0c9 100644 --- a/docs/zh/reference/bundler/webpack.md +++ b/docs/zh/reference/bundler/webpack.md @@ -1,3 +1,7 @@ +--- +icon: mdi:webpack +--- + # Webpack diff --git a/docs/zh/reference/cli.md b/docs/zh/reference/cli.md index bca820c7..07c3fda6 100644 --- a/docs/zh/reference/cli.md +++ b/docs/zh/reference/cli.md @@ -1,3 +1,7 @@ +--- +icon: bi:terminal-fill +--- + # 命令行接口 diff --git a/docs/zh/reference/client-api.md b/docs/zh/reference/client-api.md index 585d6b7a..04a0715d 100644 --- a/docs/zh/reference/client-api.md +++ b/docs/zh/reference/client-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:chrome +--- + # 客户端 API diff --git a/docs/zh/reference/components.md b/docs/zh/reference/components.md index a6218468..983d3b98 100644 --- a/docs/zh/reference/components.md +++ b/docs/zh/reference/components.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:puzzle-piece +--- + # 内置组件 diff --git a/docs/zh/reference/config.md b/docs/zh/reference/config.md index e8fb310c..f19a8c7a 100644 --- a/docs/zh/reference/config.md +++ b/docs/zh/reference/config.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:gear +--- + # 配置 diff --git a/docs/zh/reference/frontmatter.md b/docs/zh/reference/frontmatter.md index 672c58a2..847afe28 100644 --- a/docs/zh/reference/frontmatter.md +++ b/docs/zh/reference/frontmatter.md @@ -1,3 +1,7 @@ +--- +icon: fa-solid:bars +--- + # Frontmatter diff --git a/docs/zh/reference/node-api.md b/docs/zh/reference/node-api.md index bae2c772..e3f3583d 100644 --- a/docs/zh/reference/node-api.md +++ b/docs/zh/reference/node-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-brands:node-js +--- + # Node API diff --git a/docs/zh/reference/plugin-api.md b/docs/zh/reference/plugin-api.md index ec8c2916..74e218f6 100644 --- a/docs/zh/reference/plugin-api.md +++ b/docs/zh/reference/plugin-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:plug +--- + # 插件 API diff --git a/docs/zh/reference/theme-api.md b/docs/zh/reference/theme-api.md index 79012a73..1d5d4681 100644 --- a/docs/zh/reference/theme-api.md +++ b/docs/zh/reference/theme-api.md @@ -1,3 +1,7 @@ +--- +icon: fa6-solid:palette +--- + # 主题 API diff --git a/package.json b/package.json index e0c0ed59..1d3711cd 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,8 @@ "anywhere": "^1.6.0", "sass-loader": "^14.1.0", "vue": "^3.4.15", - "vuepress": "2.0.0-rc.2" + "vuepress": "2.0.0-rc.2", + "vuepress-theme-hope": "2.0.0-rc.19" }, "devDependencies": { "@commitlint/cli": "^18.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34aec34b..c94a1102 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,9 @@ dependencies: vuepress: specifier: 2.0.0-rc.2 version: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-theme-hope: + specifier: 2.0.0-rc.19 + version: 2.0.0-rc.19(@vuepress/plugin-docsearch@2.0.0-rc.3)(@vuepress/plugin-search@2.0.0-rc.3)(markdown-it@14.0.0)(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) devDependencies: '@commitlint/cli': @@ -802,6 +805,16 @@ packages: resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} dev: false + /@lit-labs/ssr-dom-shim@1.2.0: + resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + dev: false + + /@lit/reactive-element@2.0.4: + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + dev: false + /@mdit-vue/plugin-component@2.0.0: resolution: {integrity: sha512-cTRxlocav/+mfgDcp0P2z/gWuWBez+iNuN4D+b74LpX4AR6UAx2ZvWtCrUZ8VXrO4eCt1/G0YC/Af7mpIb3aoQ==} dependencies: @@ -865,6 +878,284 @@ packages: resolution: {integrity: sha512-1BeEB+DbtmDMUAfvbNUj5Hso8cSl2sBVK2iTyOMAqhfDVLdh+/9+D0JmQHaCeUk/vuJoMhOwbweZvh55wHxm4w==} dev: false + /@mdit/plugin-alert@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-mxA/lhOyDDR6/qSAegGG/XZRjUbr1wjwdULudbpkA/CCQi6piW9D0Z8crDQGYz4KPQM9Bgx4Ac81QFSzHOV66Q==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-align@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-OJPYzSdmT0UZj/QTvnKYE4GelAL0OD8bNIPxpidXbFd3IqYv/8+xMjT6XeR+R3oZEvtbYSc2e1MmO5fo3DopJA==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@mdit/plugin-container': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-attrs@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-ewmx5i+b3M4CRJNDpDNBA0YTHa1snn+adDsDDpDtPPSzCH1NhtWXdzwI0TrcCQUnueeSEEWX/wY4ESo+NRkBNQ==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-container@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-uWK3t0CWssintcmT5PTJVhAwbstcD+SrtijQKs6BhLRtGGgHJ9mOf0ybGjlJhn4077yFFTHmaCIT3K+n5ZVjPg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-demo@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-yFRXnp3Lj0g4H9ImzHKQwwgtSykrL/BDNEQzql9fdA9FbSygfu0CIxfm+A8lsVos8cAvdsgxy3gILySxpfR89g==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-figure@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-/o4RoKjnkdWc+K7m6mR7BAu2J79yYE38s8HUc8iKk9v+e9j1E+6LeXcpx1LoPnHzUhT4EO2QmUsv+kAaPFfZYw==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-footnote@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-AaX1rfkJwq9vLX+H/a+XQ3ZxahOXrnMLr5dVZfNdazjqdDEJ7Cc/A7UFtLfOM19F2w3EgvcHR1gbINxIVDn/eg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-img-lazyload@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-Rrlf2FzOxxyszbv3DpkIwEgmYKmtwHdxIO+Whkn0a9QckxnEKkaGl5KARCnM7LqX2fhEyFLgnfkr3onVOJG54g==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-img-mark@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-4P6z2QOfLHLMSXUP4mB/2Rnd6KeHmJBkUXJWJhybcXoIG5S5FDTFHJxOycSP4eGzfdOYAWSlkx6XwXEUGGZz5w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-img-size@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-r+LbAizP/hw5SisY44VbHEnR7XUKpcHM2k2fwu5wb1+V1crxeigG4sa8rzrJEddU+k6uCl27yL5FTGbHjAl82Q==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-include@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-e8Z8q5VkJ6UX04tTgELraupB/MdHio7hkdYT71wBJ6UQuhSmFv/xMOxFfTcGKH5yzsbEM45BtAFHzSXIi3dMCw==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + upath: 2.0.1 + dev: false + + /@mdit/plugin-katex@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-u7CX3Xv5nuc2bu2sHrk1nil83/9ETKTBMmy0icbW8zlqBC0ykLo1xTCEBXmdhXtnJtPi9f/wUZVs6iMZrJzbNg==} + engines: {node: '>= 18'} + peerDependencies: + katex: ^0.16.9 + markdown-it: ^14.0.0 + peerDependenciesMeta: + katex: + optional: true + markdown-it: + optional: true + dependencies: + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@types/katex': 0.16.7 + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-mark@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-1hImu8FskIZ9dumWD2VIyB5USyVGwGY2IuaPxYO25tFvMZkhu4rYBjkSK8x+vXExwp94OLzFUlGgVl94S+nw9w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-mathjax@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-y016KQHa3PoXDUIcQseISMAz5q2mZJ/qocEs2EABT4PjquXPEh/4rw7Ql7KX9gf/SQIUyzj8hYs4bHyRZc6x4w==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + mathjax-full: ^3.2.2 + peerDependenciesMeta: + markdown-it: + optional: true + mathjax-full: + optional: true + dependencies: + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + upath: 2.0.1 + dev: false + + /@mdit/plugin-stylize@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-oNFI3Z7UTxP8CKxS3CIuawLmsyrc0n9jIw9mPzUcPNp+LtYmLktfZc3FIRlqpUUq34YwHTH3yihayBRdSkVV6A==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-sub@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-oqCcmJVJykESgNJ4fFmDKKxRRQddwkXWIT4PjF83XSeXHxTOz8gMfke/V1mE7BAfKKCLP4io8HbrYfvIiOTZ4A==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-sup@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-5/uE2lONNjCgGDXC8jZ265tzefjUNQNakmK4PSCI4D5jD80xFrxc6MKh70VLCOL8Xk6COK/K9f0SAU2lwa97Tg==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-tab@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-SNa1S14Buuy564egiUTkU9HTTNFrEURJZLqA1+jr/2xYCdICPym0FWcB0cLtBl3lrQZkFtbxhzC6ws5JBt/ERQ==} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-tasklist@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-vfOTZdXIL/jk/ConUqCODI5WuqgB9qiBGc+wIa7UMhe73KcpwFeGFJVQZm9AvjhXDDYqznJxSMVRP/TN7TxVVw==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-tex@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-uh4kOhwBVEESz6dMmHk4Hn/AVfVtUhMA1UKpwMc1EL9qelodJ0YzSYfNXp6d/PS+E1l53yp8nMZK90DUO+3vpA==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + + /@mdit/plugin-uml@0.8.0(markdown-it@14.0.0): + resolution: {integrity: sha512-6TOVxLhmdzV7bzjlJCRP5uCFq62Xwk2ZAeYUK3RLx9lgM3s2Mww5ENhdysnQMd7VQlUHsPmp4XIMBZZjPddg3g==} + engines: {node: '>= 18'} + peerDependencies: + markdown-it: ^14.0.0 + peerDependenciesMeta: + markdown-it: + optional: true + dependencies: + '@types/markdown-it': 13.0.7 + markdown-it: 14.0.0 + dev: false + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -999,6 +1290,10 @@ packages: engines: {node: '>=18'} dev: false + /@stackblitz/sdk@1.9.0: + resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==} + dev: false + /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: @@ -1105,6 +1400,10 @@ packages: '@types/node': 20.11.14 dev: false + /@types/katex@0.16.7: + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + dev: false + /@types/linkify-it@3.0.5: resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} dev: false @@ -1210,6 +1509,10 @@ packages: '@types/node': 20.11.14 dev: false + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: false + /@types/web-bluetooth@0.0.20: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} dev: false @@ -1581,6 +1884,21 @@ packages: - typescript dev: false + /@vuepress/helper@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-O4kaFjNqICs4IKxwmyMPGcaDENod7vTqHgMBcR77fKhnGI8YDNOh+x1QA8+ajChqoUQhc96ULwqrpQI/IxBphA==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vue/shared': 3.4.15 + cheerio: 1.0.0-rc.12 + fflate: 0.8.1 + gray-matter: 4.0.3 + vue: 3.4.15(typescript@5.3.3) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/markdown@2.0.0-rc.2: resolution: {integrity: sha512-5/RmJnap+MGKxDhSO+Mv6zB8PoPHhhBujnNKKO3PnyfPrj0LyL0AuTm8m3Ea271wMp9956WINjw8jlpn+Z1sBg==} dependencies: @@ -1617,6 +1935,19 @@ packages: - typescript dev: false + /@vuepress/plugin-active-header-links@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-aSfVP7fb1XxpMjfOZ27FfC2YZ3C7tE4QAoQnH88NeSu4/Vsit7J49Yxl179qSLtEMMMrr6t4oShB7eP8M3JmDA==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + ts-debounce: 4.0.0 + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-back-to-top@2.0.0-rc.3(typescript@5.3.3)(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-VkzRWMLBHcJ+MVCMl+Yd5Z6Uc1LAaSQkoHrwap1xBU3a3Zjgcqf73+fDTgenTF1usANlztDE9F/Jg8YjREJ6yg==} peerDependencies: @@ -1654,6 +1985,35 @@ packages: - typescript dev: false + /@vuepress/plugin-copy-code@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-5FSMTmLU7A5uoGY1gq9mggNGNYxLsZf3FQtNV5FnjIlZwbQQhjtNRw3N/rzEO/veaTORNDpvm/98wGm9Rojx7A==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + vue: 3.4.15(typescript@5.3.3) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /@vuepress/plugin-copyright@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-vFysGEx7TWVEgi/eBICJAqkpU3MJ1yYQac/8r0KPqTKVo7c+8AxGuGV34M9J4LdAEKa9/6CUXrMWMJICJpdPbw==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + /@vuepress/plugin-docsearch@2.0.0-rc.3(@algolia/client-search@4.22.1)(search-insights@2.13.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-3kf05fviNAahFXNLCOcQEgn/cjJLshCEf6oiezA8Jr6ABj6Q38Ky+nFjX/AjCaoWsyiG4BfbRRxuqxYvsDEimQ==} peerDependencies: @@ -1688,6 +2048,17 @@ packages: - typescript dev: false + /@vuepress/plugin-external-link-icon@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-DLqyNneR6HApj8ShwtKt4dzVzRLZGZ8imLFoRHos/yFZ2KQKrEwh7jivhjuzKnQlmM7or2GiLCV8RVWW2AhOTw==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + vue: 3.4.15(typescript@5.3.3) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-git@2.0.0-rc.3(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-BQoDWmksC+aSc5V933OuNeU7mfrP4hryhckIFadAhKLVRl6CSXDb96SGVTBxcO1gIgKzItdE67UzMw4T9JJN6A==} peerDependencies: @@ -1697,6 +2068,15 @@ packages: vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) dev: false + /@vuepress/plugin-git@2.0.0-rc.7(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-OCrgsW5JF/LGYOwQvy+UfoEXGOELumaqwAMoRQL+QKBZzUcTQLUf+WQXR2qe9cMrIr1wTyibdxfOJCyQunFNmw==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + execa: 8.0.1 + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + dev: false + /@vuepress/plugin-google-analytics@2.0.0-rc.3(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-Hp8MxdPX7SwLhoBOQ6D34/5d5DOBGMp2W9bMUlYD2zzUhKOamSleqI4E3KYyq+WkkQmU4naSHxlwJlsjhNwjig==} peerDependencies: @@ -1729,6 +2109,18 @@ packages: - typescript dev: false + /@vuepress/plugin-nprogress@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-raSZ6cKqspsk/l3B3ctq+DSYQ3G2tYH5vbWhCZh46BfRmqD12UVoYl5fEipkWI1XF6+bCSHDa0Iuiv4SG+EdZw==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-palette@2.0.0-rc.3(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-BCP2SMEPmaqg4/oHsfA7lpp79iQDZvgeGQCYyWRP2aB5LZ2IiFdyRfZMFOUVzbetsqX7ciOFX3ELG9U59lCOjw==} peerDependencies: @@ -1747,6 +2139,27 @@ packages: vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) dev: false + /@vuepress/plugin-prismjs@2.0.0-rc.7(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-z70MJ4Bek+d7PO+frLpR8r4atqrfb78FKIwomOl55+ctV7moUKi965i19e5JB6dzfIaIy9cWTPdrrzeui62v+g==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + prismjs: 1.29.0 + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + dev: false + + /@vuepress/plugin-reading-time@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-DXxkNISPGDZR83p3br0Nc0AORXSaI3s5wFF4TyX2+YKx8iN+XiW7s0tWEYqAgr72ZcNLB3bfL1zajRpGxdJmxg==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vue: 3.4.15(typescript@5.3.3) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-register-components@2.0.0-rc.3(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-l7tLwcgjV54T8ObF1cpgg9qWtKuaF9Dru14aHFeXxM2f7I1AjmAGFXHbBEMOb781HMRi32LYCwodsTahAn3uqg==} peerDependencies: @@ -1756,6 +2169,17 @@ packages: vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) dev: false + /@vuepress/plugin-rtl@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-FjhFkLCgZUO38al57+Zs1bnd0Ah/2LjT2PmoMhlPkTml3ZgdWIfJcHihojfGUX82EDF0+ZNhkn7V6U4SDaGSrw==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + vue: 3.4.15(typescript@5.3.3) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-search@2.0.0-rc.3(typescript@5.3.3)(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-dTxOYKPNziWX2vx+RO0PLwj/auABlCCAZT42wQt65R5y5RBA7eptFlqF/jmRXKG+CPvSMUOrIo1FrCTvB3yFig==} peerDependencies: @@ -1780,6 +2204,17 @@ packages: - typescript dev: false + /@vuepress/plugin-seo@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-USE7X+9h5HSTTEIVg9ONcPSOXxrcgZy02PUZky9U3ssI1G6Gn+ywUK3KGd2txqOvc3ZWay6c7gqxQyf64iYL/g==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-shiki@2.0.0-rc.3(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-q6God6sEWr1InLizZHBLXIboEkCVXSOXNeJSoH+buofGrrHXCjA937UVMSUTLP4RZ9b21QXHLsyrRQvoEpa4yQ==} peerDependencies: @@ -1801,6 +2236,18 @@ packages: - typescript dev: false + /@vuepress/plugin-sitemap@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-6zZ3DMw9o+aEPs9IIgnNZb6pL9FKqyfX9WFj7OL8ps66jiIOkbzrjh8mQHkIbGD9pK80QHF5lzrein9rQITCTA==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + sitemap: 7.1.1 + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/plugin-theme-data@2.0.0-rc.3(typescript@5.3.3)(vuepress@2.0.0-rc.2): resolution: {integrity: sha512-Uiso+0b2sIaHtPVftjpCEIT+/T4/E9ZpTCL0fnUEa8APnrP7SiIBqph7+KZENvXGg+0B5+MtZROOfFksFfMyFw==} peerDependencies: @@ -1813,6 +2260,18 @@ packages: - typescript dev: false + /@vuepress/plugin-theme-data@2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-YPvAdDv5Ob4vXKjrtw6pvB7FAE9fbCXD/VnUmck4dUBHZygCdtYqADWnHdSFmPJx9VMX2FV8HRXDk7Wa392clA==} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.15(typescript@5.3.3) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - typescript + dev: false + /@vuepress/shared@2.0.0-rc.2: resolution: {integrity: sha512-2kmm0rw+WalRWrSC5pW0TXRz8Wyuh57XmOZEUOhPOflw4o8Dno+PcaWbdOZ/TLkTgTt3X1n7r1/c1ALtaLta8g==} dependencies: @@ -2318,6 +2777,10 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /balloon-css@1.2.0: + resolution: {integrity: sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==} + dev: false + /base@0.11.2: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} @@ -2335,6 +2798,11 @@ packages: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} dev: false + /bcrypt-ts@5.0.1: + resolution: {integrity: sha512-+Q6wjkT+PO0Da56BIyaYyueMeqAV/zOXqfFIssRgCbQLGwU+YkBJfBpP2Q9Q8hGbpDyDNCrG36npSdE+S9HWUA==} + engines: {node: '>=18'} + dev: false + /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: false @@ -2528,7 +2996,6 @@ packages: /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - dev: true /caniuse-lite@1.0.30001581: resolution: {integrity: sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ==} @@ -2643,6 +3110,14 @@ packages: string-width: 7.1.0 dev: true + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2882,6 +3357,10 @@ packages: typescript: 5.3.3 dev: false + /create-codepen@1.0.1: + resolution: {integrity: sha512-XzSWwGCFNeOnNGp3KdCDGaKq4Cp1SvjzpPGQqO0tj1HT3BhksLdl/xQ2ZEY4+0MQ3m1I/K1Fvpm4GGMthtamyA==} + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -2967,6 +3446,10 @@ packages: engines: {node: '>=8'} dev: true + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3011,7 +3494,6 @@ packages: /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - dev: true /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} @@ -3115,6 +3597,10 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: false + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3235,7 +3721,6 @@ packages: /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -3246,6 +3731,10 @@ packages: engines: {node: '>= 4'} dev: false + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: false + /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -3958,7 +4447,6 @@ packages: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: true /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -4087,7 +4575,6 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} @@ -4146,6 +4633,12 @@ packages: tar: 6.2.0 dev: true + /giscus@1.4.0: + resolution: {integrity: sha512-Pll+pcclTx47NcFDw8nuka2Ja85Gc4XWpzSgL0rszOQaMQRQIV8UMR+zP4a+/N3tV2TXc1SZ537kWlsN6EsAaw==} + dependencies: + lit: 3.1.2 + dev: false + /git-hooks-list@3.1.0: resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==} dev: true @@ -4720,7 +5213,6 @@ packages: /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true /is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} @@ -5079,6 +5571,28 @@ packages: wrap-ansi: 9.0.0 dev: true + /lit-element@4.0.4: + resolution: {integrity: sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==} + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 + lit-html: 3.1.2 + dev: false + + /lit-html@3.1.2: + resolution: {integrity: sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==} + dependencies: + '@types/trusted-types': 2.0.7 + dev: false + + /lit@3.1.2: + resolution: {integrity: sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==} + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.0.4 + lit-html: 3.1.2 + dev: false + /loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -5098,7 +5612,6 @@ packages: engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - dev: true /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -5737,7 +6250,6 @@ packages: engines: {node: '>=6'} dependencies: p-try: 2.2.0 - dev: true /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} @@ -5751,7 +6263,6 @@ packages: engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - dev: true /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} @@ -5771,7 +6282,6 @@ packages: /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - dev: true /param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -5828,7 +6338,6 @@ packages: /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - dev: true /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -5876,6 +6385,11 @@ packages: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} dev: true + /photoswipe@5.4.3: + resolution: {integrity: sha512-9UC6oJBK4oXFZ5HcdlcvGkfEHsVrmE4csUdCQhEjHYb3PvPLO3PG7UhnPuOgjxwmhq5s17Un5NUdum01LgBDng==} + engines: {node: '>= 0.12.0'} + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false @@ -5898,6 +6412,11 @@ packages: pathe: 1.1.2 dev: true + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: false + /posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -6073,6 +6592,17 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: false + /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -6215,12 +6745,15 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false + /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: false @@ -6514,6 +7047,10 @@ packages: - supports-color dev: false + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + /set-function-length@1.2.0: resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} engines: {node: '>= 0.4'} @@ -6846,7 +7383,6 @@ packages: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} @@ -7441,6 +7977,379 @@ packages: typescript: 5.3.3 dev: false + /vuepress-plugin-auto-catalog@2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-T1iKjzpkKADAcakUQSpzlB95Tgn8x322cOeFNPiBq2c1nej6CgkZfIWPfSo+QLttxEaYd+YHHEFVdt0zPuh5Cw==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.2 + peerDependenciesMeta: + sass-loader: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + sass-loader: 14.1.0(webpack@5.90.0) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-plugin-components: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-sass-palette: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - artplayer + - dashjs-pure + - hls.js + - mpegts.js + - plyr + - typescript + - vidstack + dev: false + + /vuepress-plugin-blog2@2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-7XwIA1hiEBzC9M0APW7X+MgmndNYW3IBLyVRkQae7OHaW2/MnVulkReJRDlc/jE1PkDSLvZMhXLtR8CWrFYWMg==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + chokidar: 3.5.3 + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /vuepress-plugin-comment2@2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-NC9/eNea/pHMb3Z3eJDC7YeOn4bU9FBhFFu7i9JdbplIHCM++U0tpq202gBd7yYQrZTTUi9ZEXWlhuWNS46SGQ==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@waline/client': ^2.15.8 || ^3.0.0-alpha.11 + artalk: ^2.7.3 + sass-loader: ^14.0.0 + twikoo: ^1.5.0 + vuepress: 2.0.0-rc.2 + peerDependenciesMeta: + '@waline/client': + optional: true + artalk: + optional: true + sass-loader: + optional: true + twikoo: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + giscus: 1.4.0 + sass-loader: 14.1.0(webpack@5.90.0) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-plugin-sass-palette: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /vuepress-plugin-components@2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-9Uypxdt2pjP5tmwJmzMPHU7awM+BhyPXul6JLHyJM2DnXfGuTVF7tdm7TTu0g0cfCQK5pPU5OlQCMzTLFEcHSA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + artplayer: ^5.0.0 + dashjs-pure: ^1.0.0 + hls.js: ^1.4.12 + mpegts.js: ^1.7.3 + plyr: ^3.7.8 + sass-loader: ^14.0.0 + vidstack: ^1.9.0 + vuepress: 2.0.0-rc.2 + peerDependenciesMeta: + artplayer: + optional: true + dashjs-pure: + optional: true + hls.js: + optional: true + mpegts.js: + optional: true + plyr: + optional: true + sass-loader: + optional: true + vidstack: + optional: true + dependencies: + '@stackblitz/sdk': 1.9.0 + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + balloon-css: 1.2.0 + create-codepen: 1.0.1 + qrcode: 1.5.3 + sass-loader: 14.1.0(webpack@5.90.0) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-plugin-sass-palette: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /vuepress-plugin-md-enhance@2.0.0-rc.19(markdown-it@14.0.0)(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-FoBsdhj+zSWzo2J4jyAVrPx8G05BGo0PLg/RkaRBdlxpgaJqFoiXao44Ugc7KiCn35xrj66DWdVHbvEzj6GLcA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@types/reveal.js': ^4.4.5 + '@vue/repl': ^3.0.0 + chart.js: ^4.0.0 + echarts: ^5.0.0 + flowchart.ts: ^2.0.0 || ^3.0.0 + katex: ^0.16.0 + kotlin-playground: ^1.23.0 + markmap-lib: ^0.15.5 + markmap-toolbar: ^0.15.5 + markmap-view: ^0.15.5 + mathjax-full: ^3.2.2 + mermaid: ^10.6.0 + reveal.js: ^5.0.0 + sandpack-vue3: ^3.0.0 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.2 + peerDependenciesMeta: + '@types/reveal.js': + optional: true + '@vue/repl': + optional: true + chart.js: + optional: true + echarts: + optional: true + flowchart.ts: + optional: true + katex: + optional: true + kotlin-playground: + optional: true + markmap-lib: + optional: true + markmap-toolbar: + optional: true + markmap-view: + optional: true + mathjax-full: + optional: true + mermaid: + optional: true + reveal.js: + optional: true + sandpack-vue3: + optional: true + sass-loader: + optional: true + dependencies: + '@mdit/plugin-alert': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-align': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-attrs': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-container': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-demo': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-figure': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-footnote': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-lazyload': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-mark': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-img-size': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-include': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-katex': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-mark': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-mathjax': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-stylize': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-sub': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-sup': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tab': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tasklist': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-tex': 0.8.0(markdown-it@14.0.0) + '@mdit/plugin-uml': 0.8.0(markdown-it@14.0.0) + '@types/markdown-it': 13.0.7 + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + balloon-css: 1.2.0 + js-yaml: 4.1.0 + sass-loader: 14.1.0(webpack@5.90.0) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-plugin-sass-palette: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - markdown-it + - typescript + dev: false + + /vuepress-plugin-photo-swipe@2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-bd0JTOJOOm78cn7M+MXovOYzJ0K1gTrTxr+4O28KWALS54r5XlET+MBSbiK94Sjl4u8bs/69uDJdw690Gj6gFg==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.2 + peerDependenciesMeta: + sass-loader: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + photoswipe: 5.4.3 + sass-loader: 14.1.0(webpack@5.90.0) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-plugin-sass-palette: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /vuepress-plugin-sass-palette@2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-kkIfvdAYHiTGliFWHI8DV4uTeC0Sa4hRZP5RZJxT9bl9WQJr0E3cFPtdos+CXp6gZJTkEc5oR4kGYPdIW1fAxA==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.2 + peerDependenciesMeta: + sass-loader: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + chokidar: 3.5.3 + sass: 1.70.0 + sass-loader: 14.1.0(webpack@5.90.0) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /vuepress-shared@2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-Y2HNuiEcrkInfwlse0azVA2if9VS2m04/PMk8Aum4j92iHlBmiW+uR7pYkHfaskdDJ1V3iwx6zp89IftD7dXtw==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + vuepress: 2.0.0-rc.2 + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + cheerio: 1.0.0-rc.12 + dayjs: 1.11.10 + execa: 8.0.1 + fflate: 0.8.1 + gray-matter: 4.0.3 + semver: 7.5.4 + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + dev: false + + /vuepress-theme-hope@2.0.0-rc.19(@vuepress/plugin-docsearch@2.0.0-rc.3)(@vuepress/plugin-search@2.0.0-rc.3)(markdown-it@14.0.0)(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2): + resolution: {integrity: sha512-b405apB3aFgw/ggGlSlBz1N+Pj+rGiXLbgIkGhdLyZVSfIUAxFqykbaxywteydKJhXlq8lCdIEM6u2oXdQsdaQ==} + engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} + peerDependencies: + '@vuepress/plugin-docsearch': 2.0.0-rc.7 + '@vuepress/plugin-feed': 2.0.0-rc.7 + '@vuepress/plugin-search': 2.0.0-rc.7 + nodejs-jieba: ^0.1.2 + sass-loader: ^14.0.0 + vuepress: 2.0.0-rc.2 + vuepress-plugin-pwa2: 2.0.0-rc.19 + vuepress-plugin-redirect: 2.0.0-rc.19 + vuepress-plugin-search-pro: 2.0.0-rc.19 + peerDependenciesMeta: + '@vuepress/plugin-docsearch': + optional: true + '@vuepress/plugin-feed': + optional: true + '@vuepress/plugin-search': + optional: true + nodejs-jieba: + optional: true + sass-loader: + optional: true + vuepress-plugin-pwa2: + optional: true + vuepress-plugin-redirect: + optional: true + vuepress-plugin-search-pro: + optional: true + dependencies: + '@vuepress/helper': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-active-header-links': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-copy-code': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-copyright': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-docsearch': 2.0.0-rc.3(@algolia/client-search@4.22.1)(search-insights@2.13.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-external-link-icon': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-git': 2.0.0-rc.7(vuepress@2.0.0-rc.2) + '@vuepress/plugin-nprogress': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-prismjs': 2.0.0-rc.7(vuepress@2.0.0-rc.2) + '@vuepress/plugin-reading-time': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-rtl': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-search': 2.0.0-rc.3(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-seo': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-sitemap': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vuepress/plugin-theme-data': 2.0.0-rc.7(typescript@5.3.3)(vuepress@2.0.0-rc.2) + '@vueuse/core': 10.7.2(vue@3.4.15) + balloon-css: 1.2.0 + bcrypt-ts: 5.0.1 + cheerio: 1.0.0-rc.12 + chokidar: 3.5.3 + gray-matter: 4.0.3 + sass-loader: 14.1.0(webpack@5.90.0) + vue: 3.4.15(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.15) + vuepress: 2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15) + vuepress-plugin-auto-catalog: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-blog2: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-comment2: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-components: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-md-enhance: 2.0.0-rc.19(markdown-it@14.0.0)(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-photo-swipe: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-plugin-sass-palette: 2.0.0-rc.19(sass-loader@14.1.0)(typescript@5.3.3)(vuepress@2.0.0-rc.2) + vuepress-shared: 2.0.0-rc.19(typescript@5.3.3)(vuepress@2.0.0-rc.2) + transitivePeerDependencies: + - '@types/reveal.js' + - '@vue/composition-api' + - '@vue/repl' + - '@waline/client' + - artalk + - artplayer + - chart.js + - dashjs-pure + - echarts + - flowchart.ts + - hls.js + - katex + - kotlin-playground + - markdown-it + - markmap-lib + - markmap-toolbar + - markmap-view + - mathjax-full + - mermaid + - mpegts.js + - plyr + - reveal.js + - sandpack-vue3 + - twikoo + - typescript + - vidstack + dev: false + /vuepress@2.0.0-rc.2(@vuepress/bundler-vite@2.0.0-rc.2)(@vuepress/bundler-webpack@2.0.0-rc.2)(typescript@5.3.3)(vue@3.4.15): resolution: {integrity: sha512-OEHfXx4Q3IzkXqcY9bKZqHXYAnSR82AGrmWYX5R1I3+ntzjaAbUhUKbG/jjMzLg40XqAHS++pM/zzMBNrcY3rg==} engines: {node: '>=18.16.0'} @@ -7643,6 +8552,10 @@ packages: is-symbol: 1.0.4 dev: true + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false + /which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} @@ -7665,6 +8578,15 @@ packages: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} dev: false + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: false + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -7713,6 +8635,10 @@ packages: engines: {node: '>=12'} dev: true + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -7725,6 +8651,14 @@ packages: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} engines: {node: '>= 14'} + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -7735,6 +8669,23 @@ packages: engines: {node: '>=12'} dev: true + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'}