diff --git a/.gitattributes b/.gitattributes index d022441a..9f77618a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,3 +8,5 @@ *.tff binary *.woff binary *.woff2 binary + +docs/.vuepress/** -linguist-documentation diff --git a/.github/workflows/check-docs.yml b/.github/workflows/check-docs.yml index 7714df9f..aba61fae 100644 --- a/.github/workflows/check-docs.yml +++ b/.github/workflows/check-docs.yml @@ -35,6 +35,9 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile + - name: Lint + run: pnpm lint + - name: Build docs with ${{ matrix.bundler }} run: pnpm docs:build env: diff --git a/.prettierignore b/.prettierignore index 94c9f11d..bd5535a6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1 @@ pnpm-lock.yaml -*.html -*.md diff --git a/.vscode/settings.json b/.vscode/settings.json index 967b6652..5d8b1cae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -33,6 +33,7 @@ "preload", "prismjs", "shiki", + "shikiji", "slugify", "unmount", "vuejs", diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts index df0d3f5a..7ccb3582 100644 --- a/docs/.vuepress/config.ts +++ b/docs/.vuepress/config.ts @@ -11,6 +11,7 @@ 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 diff --git a/docs/.vuepress/configs/navbar/en.ts b/docs/.vuepress/configs/navbar/en.ts index d92c5ec7..db2d725c 100644 --- a/docs/.vuepress/configs/navbar/en.ts +++ b/docs/.vuepress/configs/navbar/en.ts @@ -5,7 +5,20 @@ export const enNavbar = navbar([ { text: 'Guide', icon: 'fa6-solid:lightbulb', - link: '/guide/', + children: [ + '/guide/introduction.md', + '/guide/getting-started.md', + '/guide/configuration.md', + '/guide/page.md', + '/guide/markdown.md', + '/guide/assets.md', + '/guide/i18n.md', + '/guide/deployment.md', + '/guide/theme.md', + '/guide/plugin.md', + '/guide/bundler.md', + '/guide/migration.md', + ], }, { text: 'Reference', @@ -111,7 +124,7 @@ export const enNavbar = navbar([ children: [ { text: 'Contributing Guide', - link: 'https://github.com/vuepress/vuepress-next/blob/main/CONTRIBUTING.md', + link: 'https://github.com/vuepress/core/blob/main/CONTRIBUTING.md', }, { text: 'Awesome VuePress', @@ -131,7 +144,6 @@ export const enNavbar = navbar([ children: [ { text: 'Changelog', - icon: 'fa6-solid:clock', link: 'https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md', }, { diff --git a/docs/.vuepress/configs/navbar/zh.ts b/docs/.vuepress/configs/navbar/zh.ts index efcbeee8..16f1f038 100644 --- a/docs/.vuepress/configs/navbar/zh.ts +++ b/docs/.vuepress/configs/navbar/zh.ts @@ -5,7 +5,20 @@ export const zhNavbar = navbar([ { text: '指南', icon: 'fa6-solid:lightbulb', - link: '/zh/guide/', + children: [ + '/zh/guide/introduction.md', + '/zh/guide/getting-started.md', + '/zh/guide/configuration.md', + '/zh/guide/page.md', + '/zh/guide/markdown.md', + '/zh/guide/assets.md', + '/zh/guide/i18n.md', + '/zh/guide/deployment.md', + '/zh/guide/theme.md', + '/zh/guide/plugin.md', + '/zh/guide/bundler.md', + '/zh/guide/migration.md', + ], }, { text: '参考', @@ -107,7 +120,7 @@ export const zhNavbar = navbar([ children: [ { text: '贡献指南', - link: 'https://github.com/vuepress/vuepress-next/blob/main/CONTRIBUTING_zh.md', + link: 'https://github.com/vuepress/core/blob/main/CONTRIBUTING_zh.md', }, { text: 'Awesome VuePress', @@ -127,7 +140,6 @@ export const zhNavbar = navbar([ children: [ { text: '更新日志', - icon: 'fa6-solid:clock', link: 'https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md', }, { diff --git a/docs/.vuepress/configs/sidebar/en.ts b/docs/.vuepress/configs/sidebar/en.ts index e4dad440..1ae27d7f 100644 --- a/docs/.vuepress/configs/sidebar/en.ts +++ b/docs/.vuepress/configs/sidebar/en.ts @@ -2,7 +2,7 @@ import { sidebar } from 'vuepress-theme-hope' export const enSidebar = sidebar({ '/guide/': [ - '', + 'introduction', 'getting-started', 'configuration', 'page', diff --git a/docs/.vuepress/configs/sidebar/zh.ts b/docs/.vuepress/configs/sidebar/zh.ts index 00d65c3d..fcfe38cc 100644 --- a/docs/.vuepress/configs/sidebar/zh.ts +++ b/docs/.vuepress/configs/sidebar/zh.ts @@ -2,7 +2,7 @@ import { sidebar } from 'vuepress-theme-hope' export const zhSidebar = sidebar({ '/zh/guide/': [ - '', + 'introduction', 'getting-started', 'configuration', 'page', diff --git a/docs/.vuepress/public/new.html b/docs/.vuepress/public/new.html index 911989fe..b83ab7cb 100644 --- a/docs/.vuepress/public/new.html +++ b/docs/.vuepress/public/new.html @@ -1 +1,3 @@ - + diff --git a/docs/README.md b/docs/README.md index 48d7b4db..6fefcc20 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,7 +8,7 @@ actions: link: /guide/getting-started.html type: primary - text: Introduction - link: /guide/ + link: /guide/introduction.html type: secondary - text: Marketplace link: https://marketplace.vuejs.press/ diff --git a/docs/advanced/cookbook/adding-extra-pages.md b/docs/advanced/cookbook/adding-extra-pages.md index 7b6f08f3..9d667e30 100644 --- a/docs/advanced/cookbook/adding-extra-pages.md +++ b/docs/advanced/cookbook/adding-extra-pages.md @@ -13,7 +13,7 @@ With the help of [Plugin API](../../reference/plugin-api.md) and [Node API](../. As a theme author, you may not require users to create a `/README.md` file as the homepage, but you want to provide a default one: ```ts -import { createPage } from '@vuepress/core' +import { createPage } from 'vuepress/core' export default { // all pages have been loaded after initialization diff --git a/docs/advanced/cookbook/making-a-theme-extendable.md b/docs/advanced/cookbook/making-a-theme-extendable.md index f04aefd3..bf919f55 100644 --- a/docs/advanced/cookbook/making-a-theme-extendable.md +++ b/docs/advanced/cookbook/making-a-theme-extendable.md @@ -33,8 +33,8 @@ This approach requires you to consider which components of your theme should be First, set `alias` for replaceable components of you theme: ```ts -import type { Theme } from '@vuepress/core' -import { getDirname } from '@vuepress/utils' +import type { Theme } from 'vuepress/core' +import { getDirname } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) diff --git a/docs/advanced/cookbook/markdown-and-vue-sfc.md b/docs/advanced/cookbook/markdown-and-vue-sfc.md index 05dd6163..768a3f21 100644 --- a/docs/advanced/cookbook/markdown-and-vue-sfc.md +++ b/docs/advanced/cookbook/markdown-and-vue-sfc.md @@ -31,13 +31,14 @@ _Current count is: {{ count }}_ diff --git a/docs/advanced/cookbook/passing-data-to-client-code.md b/docs/advanced/cookbook/passing-data-to-client-code.md index f966f562..a56b414b 100644 --- a/docs/advanced/cookbook/passing-data-to-client-code.md +++ b/docs/advanced/cookbook/passing-data-to-client-code.md @@ -47,7 +47,10 @@ First, write a temp file `foo.js`, which will be generated in the [temp](../../r export default (options) => ({ async onPrepared(app) { // write temp file - await app.writeTemp('foo.js', `export const foo = ${JSON.stringify(options.foo)}`) + await app.writeTemp( + 'foo.js', + `export const foo = ${JSON.stringify(options.foo)}`, + ) }, }) ``` diff --git a/docs/advanced/cookbook/usage-of-client-config.md b/docs/advanced/cookbook/usage-of-client-config.md index 215dee80..3944582a 100644 --- a/docs/advanced/cookbook/usage-of-client-config.md +++ b/docs/advanced/cookbook/usage-of-client-config.md @@ -7,7 +7,7 @@ icon: fa6-solid:gear 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: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -16,10 +16,10 @@ const pluginOrTheme = { } ``` -Inside the client config file, `@vuepress/client` package provides a helper function [defineClientConfig](../../reference/client-api.md#defineclientconfig) to help you define the client config: +Inside the client config file, `vuepress/client` provides a helper function [defineClientConfig](../../reference/client-api.md#defineclientconfig) to help you define the client config: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ enhance({ app, router, siteData }) {}, @@ -44,7 +44,7 @@ The `enhance` function will be invoked after the client app is created. It's pos You can register global Vue components via the [app.component](https://vuejs.org/api/application.html#app-component) method: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import MyComponent from './MyComponent.vue' export default defineClientConfig({ @@ -63,7 +63,7 @@ We already provides a [ClientOnly](../../reference/components.md#clientonly) com In the `enhance` function, you can make use of the [`__VUEPRESS_SSR__`](../../reference/client-api.md#ssr) flag for that purpose. ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ async enhance() { @@ -80,7 +80,7 @@ export default defineClientConfig({ You can make use of the [Router Methods](https://router.vuejs.org/api/#router-methods) that provided by vue-router. For example, add navigation guard: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ enhance({ router }) { @@ -110,9 +110,9 @@ The `setup` function would be invoked inside the [setup](https://vuejs.org/api/c You can take the `setup` function as part of the [setup](https://vuejs.org/api/composition-api-setup.html) hook of the root component. Thus, all composition APIs are available here. ```ts -import { defineClientConfig } from '@vuepress/client' import { provide, ref } from 'vue' import { useRoute, useRouter } from 'vue-router' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ setup() { @@ -134,7 +134,7 @@ In the `setup` function, the [`__VUEPRESS_SSR__`](../../reference/client-api.md# Another way to use non-ssr-friendly features is to put them inside the [onMounted](https://vuejs.org/api/composition-api-lifecycle.html#onmounted) hook: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import { onMounted } from 'vue' export default defineClientConfig({ @@ -152,7 +152,7 @@ export default defineClientConfig({ The `layouts` options is to set layout components. After layout components are registered here, users can use it via [layout](../../reference/frontmatter.md#layout) frontmatter. ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import MyLayout from './layouts/MyLayout.vue' export default defineClientConfig({ @@ -169,7 +169,7 @@ The `rootComponents` is a components array to be placed directly into the root n Typical usage of this option is to put some global UI components, like global popup or so: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import GlobalPopup from './components/GlobalPopup.vue' export default defineClientConfig({ diff --git a/docs/advanced/plugin.md b/docs/advanced/plugin.md index 9393376d..192235f8 100644 --- a/docs/advanced/plugin.md +++ b/docs/advanced/plugin.md @@ -10,7 +10,7 @@ Before reading this guide, you'd better learn the VuePress [architecture](./arch ## Create a Plugin -A plugin should be a plain JavaScript object that satisfies the [Plugin API](../reference/plugin-api.md), which is called a *Plugin Object*: +A plugin should be a plain JavaScript object that satisfies the [Plugin API](../reference/plugin-api.md), which is called a _Plugin Object_: ```ts const fooPlugin = { @@ -19,7 +19,7 @@ const fooPlugin = { } ``` -A plugin could also be a function that receives the [app instance](../reference/node-api.md#app) as the param and returns a *Plugin Object*, which is called a *Plugin Function*: +A plugin could also be a function that receives the [app instance](../reference/node-api.md#app) as the param and returns a _Plugin Object_, which is called a _Plugin Function_: ```ts const barPlugin = (app) => { @@ -30,7 +30,7 @@ const barPlugin = (app) => { } ``` -A plugin usually needs to allow user options, so we typically provide users with a function to receive options, and returns a *Plugin Object* or a *Plugin Function*. Then your plugin should be converted like this: +A plugin usually needs to allow user options, so we typically provide users with a function to receive options, and returns a _Plugin Object_ or a _Plugin Function_. Then your plugin should be converted like this: ```ts const fooPlugin = (options) => { @@ -57,11 +57,9 @@ After creating a plugin, you should follow some conventions in the [package.json ```json { "name": "vuepress-plugin-foo", - "keywords": [ - "vuepress-plugin" - ] + "keywords": ["vuepress-plugin"] } ``` -- Set `name` to follow the naming convention, i.e. `vuepress-plugin-xxx` or `@org/vuepress-plugin-xxx`, which should be consistent with the [name](../reference/plugin-api.md#name) field of the *Plugin Object*. +- Set `name` to follow the naming convention, i.e. `vuepress-plugin-xxx` or `@org/vuepress-plugin-xxx`, which should be consistent with the [name](../reference/plugin-api.md#name) field of the _Plugin Object_. - Set `keywords` to include `vuepress-plugin`, so that users can search your plugin on NPM. diff --git a/docs/advanced/theme.md b/docs/advanced/theme.md index 70891bb9..23eb0cb8 100644 --- a/docs/advanced/theme.md +++ b/docs/advanced/theme.md @@ -10,10 +10,10 @@ Before reading this guide, you'd better learn the guide of [Writing a Plugin](./ ## Create a Theme -A VuePress theme is a special plugin, which should satisfy the [Theme API](../reference/theme-api.md). Like plugins, a theme should also be a *Theme Object* or a *Theme Function*, and could be wrapped with a function to receive options: +A VuePress theme is a special plugin, which should satisfy the [Theme API](../reference/theme-api.md). Like plugins, a theme should also be a _Theme Object_ or a _Theme Function_, and could be wrapped with a function to receive options: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -26,7 +26,7 @@ const fooTheme = (options) => { clientConfigFile: path.resolve(__dirname, 'client.js'), // set custom dev / build template - // if the template is not specified, the default template from `@vuepress/client` will be used + // if the template is not specified, the default template templateBuild: path.resolve(__dirname, 'templates/build.html'), templateDev: path.resolve(__dirname, 'templates/dev.html'), @@ -53,7 +53,7 @@ const barTheme = (options) => { Then, create theme's client config file `client.js` : ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import Layout from './layouts/Layout.vue' import NotFound from './layouts/NotFound.vue' @@ -94,11 +94,9 @@ Also, there are some conventions for theme in [package.json](https://docs.npmjs. ```json { "name": "vuepress-theme-foo", - "keywords": [ - "vuepress-theme" - ] + "keywords": ["vuepress-theme"] } ``` -- Set `name` to follow the naming convention: `vuepress-theme-xxx` or `@org/vuepress-theme-xxx`, which should be consistent with the [name](../reference/theme-api.md#name) field of the *Theme Object*. +- Set `name` to follow the naming convention: `vuepress-theme-xxx` or `@org/vuepress-theme-xxx`, which should be consistent with the [name](../reference/theme-api.md#name) field of the _Theme Object_. - Set `keywords` to include `vuepress-theme`, so that users can search your theme on NPM. diff --git a/docs/guide/assets.md b/docs/guide/assets.md index b21245c0..b07c72e4 100644 --- a/docs/guide/assets.md +++ b/docs/guide/assets.md @@ -64,19 +64,24 @@ In most cases, you don't need to worry about the reference path of those public ```md + ![VuePress Logo](/images/hero.png) ``` +::: tip +When using [webpack bundler](../reference/bundler/webpack.md), you need to set [markdown.assets.absolutePathPrependBase](../reference/config.md#markdown-assets) to `true` to automatically prepend base to markdown images. +::: + However, sometimes you may have some dynamical links referencing public files, especially when you are authoring a custom theme. In such case, the `base` could not be handled automatically. To help with that, VuePress provides a [withBase](../reference/client-api.md#withbase) helper to prepend `base` for you: ```vue @@ -105,7 +110,7 @@ Since markdown image syntax regards image links as relative paths by default, yo The path aliases that set in config file are also supported: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) diff --git a/docs/guide/bundler.md b/docs/guide/bundler.md index f4b57ea1..b00ce775 100644 --- a/docs/guide/bundler.md +++ b/docs/guide/bundler.md @@ -4,64 +4,60 @@ icon: fa6-solid:boxes-packing # Bundler -VuePress has been using [Webpack](https://webpack.js.org/) as the bundler to dev and build sites. Since VuePress v2, other bundlers are also supported, and now we are using [Vite](https://vitejs.dev/) as the default bundler. Of course, you can still choose to use Webpack. +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. -## Choose a Bundler +## Install a Bundler -When using the [vuepress](https://www.npmjs.com/package/vuepress) package, Vite bundler is installed and used automatically. - -If you want to use Webpack bundler instead, you can remove it and install the [vuepress-webpack](https://www.npmjs.com/package/vuepress-webpack) package instead: +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 -pnpm remove vuepress -pnpm add -D vuepress-webpack@next +# install vite bundler +pnpm add -D vuepress@next @vuepress/bundler-vite@next +# install webpack bundler +pnpm add -D vuepress@next @vuepress/bundler-webpack@next ``` @tab YARN ```bash -yarn remove vuepress -yarn add -D vuepress-webpack@next +# install vite bundler +yarn add -D vuepress@next @vuepress/bundler-vite@next +# install webpack bundler +yarn add -D vuepress@next @vuepress/bundler-webpack@next ``` @tab NPM ```bash -npm uninstall vuepress -npm install -D vuepress-webpack@next +# install vite bundler +npm install -D vuepress@next @vuepress/bundler-vite@next +# install webpack bundler +npm install -D vuepress@next @vuepress/bundler-webpack@next ``` ::: -::: tip -In fact, the [vuepress](https://www.npmjs.com/package/vuepress) package is just a wrapper of the [vuepress-vite](https://www.npmjs.com/package/vuepress-vite) package. -::: - -## Configure Bundler +## Use a Bundler Generally, you could use a bundler without extra configuration, because we have already configured them properly to work with VuePress. -You can configure bundler for advanced usage via the [bundler](../reference/config.md#bundler) option: +You can use a bundler via the [bundler](../reference/config.md#bundler) option: ```ts -import { viteBundler } from 'vuepress' -// import { webpackBundler } from 'vuepress-webpack' +import { viteBundler } from '@vuepress/bundler-vite' +// import { webpackBundler } from '@vuepress/bundler-webpack' export default { - bundler: viteBundler({ - vuePluginOptions: { - template: { - compilerOptions: { - isCustomElement: (tag) => tag === 'center', - }, - }, - }, - }), + bundler: viteBundler(), + // bundler: webpackBundler(), } ``` -You can refer to [Bundlers > Vite](../reference/bundler/vite.md) and [Bundlers > Webpack](../reference/bundler/webpack.md) to check out all options of the corresponding bundler. +When you need to customize the bundler, you can set the corresponding options: + +- [Bundlers > Vite](../reference/bundler/vite.md) +- [Bundlers > Webpack](../reference/bundler/webpack.md) diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md index f6ec33dc..83b6a790 100644 --- a/docs/guide/configuration.md +++ b/docs/guide/configuration.md @@ -6,17 +6,6 @@ icon: fa6-solid:gear ## Config File -Without any configuration, the VuePress site is pretty minimal. To customize your site, let’s first create a `.vuepress` directory inside your docs directory. This is where all VuePress-specific files will be placed. Your project structure is probably like this: - -``` -├─ docs -│ ├─ .vuepress -│ │ └─ config.js -│ └─ README.md -├─ .gitignore -└─ package.json -``` - The essential file for configuring a VuePress site is `.vuepress/config.js`, while TypeScript config file is also supported. You can use `.vuepress/config.ts` instead to get better types hint for VuePress config. To be more specific, we have a convention for config file paths (in order of precedence): @@ -33,15 +22,20 @@ To be more specific, we have a convention for config file paths (in order of pre You can also specify the config file via `--config` option of [CLI](../reference/cli.md): ```sh -vuepress dev docs --config my-config.js +vuepress dev docs --config my-config.ts ``` A basic config file looks like this: ```ts +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' import { defineUserConfig } from 'vuepress' export default defineUserConfig({ + bundler: viteBundler(), + theme: defaultTheme(), + lang: 'en-US', title: 'Hello VuePress', description: 'Just playing around', @@ -80,7 +74,7 @@ Similarly, we also have a convention for client config file paths (in order of p A basic client config file looks like this: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ enhance({ app, router, siteData }) {}, diff --git a/docs/guide/deployment.md b/docs/guide/deployment.md index a6cd725d..37097ced 100644 --- a/docs/guide/deployment.md +++ b/docs/guide/deployment.md @@ -31,6 +31,7 @@ The following guides are based on some shared assumptions: Create `.github/workflows/docs.yml` to set up the workflow. ::: details Click to expand sample config + ```yaml name: docs @@ -84,6 +85,7 @@ jobs: # @see https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` + ::: ::: tip @@ -101,6 +103,7 @@ Please refer to [GitHub Pages official guide](https://pages.github.com/) for mor 2. Create `.gitlab-ci.yml` to set up [GitLab CI](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/) workflow. ::: details Click to expand sample config + ```yaml # choose a docker image to use image: node:18-buster @@ -132,6 +135,7 @@ pages: paths: - public ``` + ::: ::: tip diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index 55a46c19..af85b03e 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -5,51 +5,63 @@ icon: fa6-solid:lightbulb # Getting Started ::: warning -VuePress v2 is currently in RC (Release Candidate) stage. It's ready to be used for building your site, but the config and API are not stable enough, which is possibly to have minor breaking changes. So make sure to read the [changelog](https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md) carefully each time you upgrade a RC version. +VuePress v2 is currently in RC (Release Candidate) stage. It's ready to be used for building your site, but the config and API are not stable enough, which is possibly to have minor breaking changes. So make sure to read the [changelog](https://github.com/vuepress/core/blob/main/CHANGELOG.md) carefully each time you upgrade a RC version. ::: -## Prerequisites +## Try It Online + +You can try VuePress directly in your browser on [StackBlitz](https://stackblitz.com/fork/vuepress). + +## Installation + +### Prerequisites - [Node.js v18.16.0+](https://nodejs.org/) - Package manager like [pnpm](https://pnpm.io), [yarn](https://classic.yarnpkg.com/en/), [npm](https://www.npmjs.com), etc. ::: tip -- When using [pnpm](https://pnpm.io/), you need to install `vue` and `@vuepress/client` as peer-dependencies. +- When using [pnpm](https://pnpm.io/), you need to install `vue` as peer-dependencies. - When using [yarn 2+](https://yarnpkg.com/), you need to set `nodeLinker: 'node-modules'` in your [`.yarnrc.yml`](https://yarnpkg.com/configuration/yarnrc#nodeLinker) file. ::: -## Manual Installation +### Project Setup + +#### Setup via CLI -This section will help you build a basic VuePress documentation site from ground up. If you already have an existing project and would like to keep documentation inside the project, start from Step 3. +TODO -- **Step 1**: Create and change into a new directory +#### Setup Manually + +This section will help you build a basic VuePress documentation site from ground up. + +- Create and change into a new directory ```bash mkdir vuepress-starter cd vuepress-starter ``` -- **Step 2**: Initialize your project +- Initialize your project ::: code-tabs#shell -@tab:active PNPM +@tab:active pnpm ```bash git init pnpm init ``` -@tab YARN +@tab yarn ```bash git init yarn init ``` -@tab NPM +@tab npm ```bash git init @@ -58,31 +70,99 @@ npm init ::: -- **Step 3**: Install VuePress locally +- Install VuePress ::: code-tabs#shell -@tab:active PNPM +@tab:active pnpm ```bash -pnpm add -D vuepress@next @vuepress/client@next vue +# install vuepress and vue +pnpm add -D vuepress@next vue +# install bundler and theme +pnpm add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` -@tab YARN +@tab yarn ```bash +# install vuepress yarn add -D vuepress@next +# install bundler and theme +yarn add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` -@tab NPM +@tab pnpm ```bash +# install vuepress npm install -D vuepress@next +# install bundler and theme +npm install -D @vuepress/bundler-vite@next @vuepress/theme-default@next +``` + +::: + +- Create `docs` directory and `docs/.vuepress` directory + +```bash +mkdir docs +mkdir docs/.vuepress +``` + +- Create the VuePress config file `docs/.vuepress/config.js` + +```ts +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + bundler: viteBundler(), + theme: defaultTheme(), +}) +``` + +- Create your first document + +```bash +echo '# Hello VuePress' > docs/README.md +``` + +## Directory Structure + +After the setup, the minimal structure of your project should look like this: + +``` +├─ docs +│ ├─ .vuepress +│ │ └─ config.js +│ └─ README.md +└─ package.json +``` + +The `docs` directory is where you put your markdown files, and it will be used as the source directory of VuePress. + +The `docs/.vuepress` directory, i.e. the `.vuepress` directory in the source directory, is where all VuePress-specific files will be placed. Currently there is only one config file in it. By default, the temp, cache and output directory will also be generated inside this directory. It is suggested to add them to your `.gitignore` file. + +::: details Example `.gitignore` file + +``` +# VuePress default temp directory +.vuepress/.temp +# VuePress default cache directory +.vuepress/.cache +# VuePress default build output directory +.vuepress/dist ``` ::: -- **Step 4**: Add some [scripts](https://classic.yarnpkg.com/en/docs/package-json#toc-scripts) to `package.json` +## Work with VuePress + +### Start Dev Server + +You can add some [scripts](https://classic.yarnpkg.com/en/docs/package-json#toc-scripts) to `package.json`: ```json { @@ -93,45 +173,67 @@ npm install -D vuepress@next } ``` -- **Step 5**: Add the default temp and cache directory to `.gitignore` file +Then, run `docs:dev` script to start the dev server: + + + ```bash -echo 'node_modules' >> .gitignore -echo '.temp' >> .gitignore -echo '.cache' >> .gitignore +pnpm docs:dev ``` -- **Step 6**: Create your first document + + + ```bash -mkdir docs -echo '# Hello VuePress' > docs/README.md +yarn docs:dev ``` -- **Step 7**: Serve the documentation site in the local server +@tab NPM -::: code-tabs#shell +```bash +npm run docs:dev +``` -@tab:active PNPM +::: + +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. + +### Build Your Site + +To build your site, run `docs:build` script: + + + ```bash -pnpm docs:dev +pnpm docs:build ``` -@tab YARN + + + ```bash -yarn docs:dev +yarn docs:build ``` -@tab NPM + + + ```bash -npm run docs:dev +npm run docs:build ``` -::: + + -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. +You will see the generated static files in the `docs/.vuepress/dist` directory. You can check out [deployment](./deployment.md) for how to deploy them. + +## Learn More about VuePress + +By now, you should have a basic but functional VuePress site. But you may still need to read the subsequent guide to learn more about VuePress. -By now, you should have a basic but functional VuePress documentation site. Next, learn about the basics of [configuration](./configuration.md) in VuePress. +Next step, learn more about the [configuration](./configuration.md). diff --git a/docs/guide/i18n.md b/docs/guide/i18n.md index 12ebeb19..8cdc221c 100644 --- a/docs/guide/i18n.md +++ b/docs/guide/i18n.md @@ -55,9 +55,10 @@ VuePress does not restrict how themes provide multi-language support, so each th If you are using default theme, the multi-language support is the same as above: ```ts -import { defaultTheme } from 'vuepress' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' -export default { +export default defineUserConfig({ theme: defaultTheme({ locales: { '/': { @@ -68,7 +69,7 @@ export default { }, }, }), -} +}) ``` ::: tip diff --git a/docs/guide/README.md b/docs/guide/introduction.md similarity index 100% rename from docs/guide/README.md rename to docs/guide/introduction.md diff --git a/docs/guide/markdown.md b/docs/guide/markdown.md index 1a28fba7..e29a41a1 100644 --- a/docs/guide/markdown.md +++ b/docs/guide/markdown.md @@ -6,14 +6,14 @@ icon: fa6-brands:markdown Make sure you already know Markdown well before reading this section. If not, please learn some [Markdown tutorials](https://commonmark.org/help/) first. -The Markdown content in VuePress will be parsed by [markdown-it](https://github.com/markdown-it/markdown-it), which supports [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) via markdown-it plugins. - -You can also configure those built-in extensions, load more markdown-it plugins and implement your own extensions via [markdown](../reference/config.md#markdown) option and [extendsMarkdown](../reference/plugin-api.md#extendsmarkdown) option. - ## Syntax Extensions +The Markdown content in VuePress will be parsed by [markdown-it](https://github.com/markdown-it/markdown-it), which supports [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) via markdown-it plugins. + This section will introduce built-in Markdown syntax extensions of VuePress. +You can also configure those built-in extensions, load more markdown-it plugins and implement your own extensions via [markdown](../reference/config.md#markdown) option and [extendsMarkdown](../reference/plugin-api.md#extendsmarkdown) option. + ### Embedded Embedded by markdown-it: @@ -41,8 +41,8 @@ Take our documentation source files as an example: └─ docs ├─ guide │ ├─ getting-started.md - │ ├─ markdown.md # <- Here we are - │ └─ README.md + │ ├─ introduction.md + │ └─ markdown.md # <- Here we are ├─ reference │ └─ config.md └─ README.md @@ -52,14 +52,19 @@ Take our documentation source files as an example: ```md + [Home](../README.md) [Config Reference](../reference/config.md) -[Getting Started](./getting-started.md) +[Getting Started](./getting-started.md) + -[Guide](/guide/README.md) -[Config Reference > markdown.links](/reference/config.md#links) + +[Guide > Introduction](/guide/introduction.md) +[Config Reference > markdown.links](/reference/config.md#links) + -[GitHub](https://github.com) + +[GitHub](https://github.com) ``` **Converted to** @@ -69,9 +74,13 @@ Take our documentation source files as an example: Home Config Reference Getting Started - Guide - Config Reference > markdown.links - GitHub + Guide > Introduction + + Config Reference > markdown.links + + + GitHub + ``` @@ -80,9 +89,9 @@ Take our documentation source files as an example: [Home](../README.md) [Config Reference](../reference/config.md) [Getting Started](./getting-started.md) -[Guide](/guide/README.md) +[Guide > Introduction](/guide/introduction.md) [Config Reference > markdown.links](/reference/config.md#links) -[GitHub](https://github.com) +[GitHub](https://github.com) **Explanation** @@ -158,8 +167,9 @@ You can highlight specified lines of your code blocks by adding line ranges mark **Input** ````md -```ts{1,6-8} -import { defaultTheme, defineUserConfig } from 'vuepress' +```ts{1,7-9} +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ title: 'Hello, VuePress', @@ -173,8 +183,9 @@ export default defineUserConfig({ **Output** -```ts{1,6-8} -import { defaultTheme, defineUserConfig } from 'vuepress' +```ts{1,7-9} +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ title: 'Hello, VuePress', @@ -258,11 +269,13 @@ If you want to make Vue syntax work in those languages anyway, try to disable th ````md ```md + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` ```md:no-v-pre + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` @@ -276,11 +289,13 @@ const onePlusTwoPlusThree = {{ 1 + 2 + 3 }} ```md + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` ```md:no-v-pre + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` @@ -306,6 +321,7 @@ You can import code blocks from files with following syntax: ```md + @[code](../foo.js) ``` @@ -313,6 +329,7 @@ If you want to partially import the file: ```md + @[code{1-10}](../foo.js) ``` @@ -320,6 +337,7 @@ The code language is inferred from the file extension, while it is recommended t ```md + @[code js](../foo.js) ``` @@ -327,6 +345,7 @@ In fact, the second part inside the `[]` will be treated as the mark of the code ```md + @[code js{2,4-5}](../foo.js) ``` @@ -344,7 +363,7 @@ Here is a complex example: Notice that path aliases are not available in import code syntax. You can use following config to handle path alias yourself: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -360,6 +379,7 @@ export default { ```md + @[code](@src/foo.js) ``` @@ -418,10 +438,6 @@ Check out the [Built-in Components](../reference/components.md) for a full list Check out the [Default Theme > Built-in Components](../reference/default-theme/components.md) for a full list of default theme built-in components. ::: -## Custom Markdown Plugins - -Sometimes #940 - ## Cautions ### Non-Standard HTML Tags diff --git a/docs/guide/migration.md b/docs/guide/migration.md index f1394f22..e55534cd 100644 --- a/docs/guide/migration.md +++ b/docs/guide/migration.md @@ -51,7 +51,7 @@ Using a theme via string is not supported. Import the theme directly. - }, - } -+ import { defaultTheme } from 'vuepress' ++ import { defaultTheme } from '@vuepress/theme-default' + export default { + theme: defaultTheme({ + // default theme config diff --git a/docs/guide/page.md b/docs/guide/page.md index 0c839b80..d8164fbb 100644 --- a/docs/guide/page.md +++ b/docs/guide/page.md @@ -24,7 +24,7 @@ Assuming this is the directory structure of your markdown files: Take the `docs` directory as your [sourceDir](../reference/cli.md), e.g. you are running `vuepress dev docs` command. Then the route paths of your markdown files would be: | Relative Path | Route Path | -|-----------------------------|-------------------------------| +| --------------------------- | ----------------------------- | | `/README.md` | `/` | | `/index.md` | `/` | | `/contributing.md` | `/contributing.html` | diff --git a/docs/guide/plugin.md b/docs/guide/plugin.md index 2566197e..b5c4c37f 100644 --- a/docs/guide/plugin.md +++ b/docs/guide/plugin.md @@ -6,11 +6,11 @@ icon: fa6-solid:plug With the help of [Plugin API](../reference/plugin-api.md), VuePress plugin can provide different features for you. -## Community Plugin +## Official Plugin -Community users have created lots of plugins and published them to [NPM](https://www.npmjs.com/search?q=keywords:vuepress-plugin). VuePress team also maintains some official plugins under the [@vuepress](https://www.npmjs.com/search?q=%40vuepress%20keywords%3Aplugin) scope. You should check the plugin's own documentation for detailed guide. +VuePress team provides some official plugins. -In general, you need to import the plugin and use it in your config file via the [plugins](../reference/config.md#plugins) option. For example, use the [@vuepress/plugin-google-analytics](../reference/plugin/google-analytics.md) to integrate Google Analytics: +You need to import and use them in your config file via the [plugins](../reference/config.md#plugins) option. For example, use the [@vuepress/plugin-google-analytics](../reference/plugin/google-analytics.md) to integrate Google Analytics: ```ts import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics' @@ -30,6 +30,12 @@ Most plugins can only be used once. If the same plugin is used multiple times, o However, some plugins can be used multiple times (e.g. [@vuepress/plugin-container](../reference/plugin/container.md)), and you should check the documentation of the plugin itself for detailed guide. ::: +## Community Plugin + +Community users have created lots of plugins and published them to [NPM](https://www.npmjs.com/search?q=keywords:vuepress-plugin). You should check the plugin's own documentation for detailed guide. + +You can explore more plugins in [Awesome VuePress](https://github.com/vuepress/awesome-vuepress) or [VuePress Marketplace](https://marketplace.vuejs.press/). + ## Local Plugin If you want to use your own plugin but don't want to publish it, you can create a local plugin. @@ -42,9 +48,7 @@ But if you have too many things to do in your config file, you can consider to e import myPlugin from './path/to/my-plugin.js' export default { - plugins: [ - myPlugin(), - ], + plugins: [myPlugin()], } ``` diff --git a/docs/guide/theme.md b/docs/guide/theme.md index b7616a95..68921c5f 100644 --- a/docs/guide/theme.md +++ b/docs/guide/theme.md @@ -8,16 +8,15 @@ VuePress theme can provide layouts, styles and many other features for you, help ## Default Theme -VuePress has a default theme out of the box, which is applied to our documentation site you are currently browsing. +VuePress provides a default theme, which is applied to our documentation site you are currently browsing. -If you don't specify the theme to use, the default theme will be used automatically. - -To configure the default theme, you need to import and use it in your config file via the [theme](../reference/config.md#theme) option: +You need to import and use it in your config file via the [theme](../reference/config.md#theme) option: ```ts -import { defaultTheme } from 'vuepress' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' -export default { +export default defineUserConfig({ theme: defaultTheme({ // default theme config navbar: [ @@ -27,7 +26,7 @@ export default { }, ], }), -} +}) ``` The default theme provides basic but useful features for documentation site, you can check out [Default Theme Config Reference](../reference/default-theme/config.md) for a full list of config. @@ -38,6 +37,8 @@ However, you might think it is not good enough. Or, you want to build a differen Community users have created lots of theme and published them to [NPM](https://www.npmjs.com/search?q=keywords:vuepress-theme). You should check the theme's own documentation for detailed guide. +You can explore more themes in [Awesome VuePress](https://github.com/vuepress/awesome-vuepress) or [VuePress Marketplace](https://marketplace.vuejs.press/). + ## Local Theme If you want to use your own custom theme but don't want to publish it, you can create a local theme. Refer to [Advanced > Writing a Theme](../advanced/theme.md) for how to write your own theme. diff --git a/docs/reference/bundler/vite.md b/docs/reference/bundler/vite.md index ade9d3d4..8ecb392d 100644 --- a/docs/reference/bundler/vite.md +++ b/docs/reference/bundler/vite.md @@ -18,7 +18,7 @@ Reference of vite bundler options: ```ts import { viteBundler } from '@vuepress/bundler-vite' -import { defineUserConfig } from '@vuepress/cli' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ bundler: viteBundler({ diff --git a/docs/reference/bundler/webpack.md b/docs/reference/bundler/webpack.md index def4b12b..1fe82f25 100644 --- a/docs/reference/bundler/webpack.md +++ b/docs/reference/bundler/webpack.md @@ -18,7 +18,7 @@ Reference of webpack bundler options: ```ts import { webpackBundler } from '@vuepress/bundler-webpack' -import { defineUserConfig } from '@vuepress/cli' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ bundler: webpackBundler({ diff --git a/docs/reference/cli.md b/docs/reference/cli.md index acedde73..fd023015 100644 --- a/docs/reference/cli.md +++ b/docs/reference/cli.md @@ -25,8 +25,8 @@ For more info, run any command with the `--help` flag: $ vuepress info --help Options: - -v, --version Display version number - -h, --help Display this message + -v, --version Display version number + -h, --help Display this message ``` ::: tip @@ -44,17 +44,17 @@ Usage: $ vuepress dev [sourceDir] Options: - -c, --config Set path to config file - -p, --port Use specified port (default: 8080) - -t, --temp Set the directory of the temporary files - --host Use specified host (default: 0.0.0.0) - --cache Set the directory of the cache files - --clean-temp Clean the temporary files before dev - --clean-cache Clean the cache files before dev - --open Open browser when ready - --debug Enable debug mode + -c, --config Set path to config file + -p, --port Use specified port (default: 8080) + -t, --temp Set the directory of the temporary files + --host Use specified host (default: 0.0.0.0) + --cache Set the directory of the cache files + --clean-temp Clean the temporary files before dev + --clean-cache Clean the cache files before dev + --open Open browser when ready + --debug Enable debug mode --no-watch Disable watching page and config files (default: true) - -v, --version Display version number + -v, --version Display version number -h, --help Display this message ``` @@ -71,14 +71,14 @@ Usage: $ vuepress build [sourceDir] Options: - -c, --config Set path to config file - -d, --dest Set the directory build output (default: .vuepress/dist) - -t, --temp Set the directory of the temporary files - --cache Set the directory of the cache files - --clean-temp Clean the temporary files before build - --clean-cache Clean the cache files before build - --debug Enable debug mode - -v, --version Display version number + -c, --config Set path to config file + -d, --dest Set the directory build output (default: .vuepress/dist) + -t, --temp Set the directory of the temporary files + --cache Set the directory of the cache files + --clean-temp Clean the temporary files before build + --clean-cache Clean the cache files before build + --debug Enable debug mode + -v, --version Display version number -h, --help Display this message ``` diff --git a/docs/reference/client-api.md b/docs/reference/client-api.md index 66d8dc0d..93a48da3 100644 --- a/docs/reference/client-api.md +++ b/docs/reference/client-api.md @@ -6,7 +6,7 @@ icon: fa6-brands:chrome -Client API is provided by [@vuepress/client](https://www.npmjs.com/package/@vuepress/client) package, which is used for developing client files. +Client API is provided by [@vuepress/client](https://www.npmjs.com/package/@vuepress/client) package, which is also available as `vuepress/client`. ## Composition API @@ -155,7 +155,7 @@ To shim the types of these constants in client side code, add `@vuepress/client/ Customizing the format of `` in client config file: ```ts -import { defineClientConfig, resolvers } from '@vuepress/client' +import { defineClientConfig, resolvers } from 'vuepress/client' export default defineClientConfig({ enhance({ app, router, siteData }) { diff --git a/docs/reference/components.md b/docs/reference/components.md index fb6dd487..643bc60e 100644 --- a/docs/reference/components.md +++ b/docs/reference/components.md @@ -28,6 +28,7 @@ icon: fa6-solid:puzzle-piece ## Content - Props: + - pageKey - Type: `string` - Required: `false` diff --git a/docs/reference/default-theme/components.md b/docs/reference/default-theme/components.md index 479e7632..40f16e18 100644 --- a/docs/reference/default-theme/components.md +++ b/docs/reference/default-theme/components.md @@ -9,6 +9,7 @@ icon: fa6-solid:puzzle-piece ## Badge <Badge text="badge" /> - Props: + - type - Type: `'tip' | 'warning' | 'danger'` - Default: `'tip'` @@ -44,6 +45,7 @@ icon: fa6-solid:puzzle-piece ## CodeGroupItem - Props: + - title - Type: `string` - Required: `true` @@ -63,7 +65,7 @@ icon: fa6-solid:puzzle-piece ````md <CodeGroup> - <CodeGroupItem title="PNPM"> + <CodeGroupItem title="pnpm"> ```bash:no-line-numbers pnpm install @@ -71,7 +73,7 @@ pnpm install </CodeGroupItem> - <CodeGroupItem title="YARN"> + <CodeGroupItem title="yarn"> ```bash:no-line-numbers yarn install @@ -79,7 +81,7 @@ yarn install </CodeGroupItem> - <CodeGroupItem title="NPM" active> + <CodeGroupItem title="npm" active> ```bash:no-line-numbers npm install @@ -93,19 +95,19 @@ npm install ::: code-tabs -@tab PNPM +@tab pnpm ```bash:no-line-numbers pnpm install ``` -@tab YARN +@tab yarn ```bash:no-line-numbers yarn install ``` -@tab:active NPM +@tab:active npm ```bash:no-line-numbers npm install diff --git a/docs/reference/default-theme/config.md b/docs/reference/default-theme/config.md index d7f88ed4..04739a44 100644 --- a/docs/reference/default-theme/config.md +++ b/docs/reference/default-theme/config.md @@ -366,7 +366,7 @@ export default { '/guide/': [ { text: 'Guide', - children: ['/guide/README.md', '/guide/getting-started.md'], + children: ['/guide/introduction.md', '/guide/getting-started.md'], }, ], '/reference/': [ diff --git a/docs/reference/default-theme/extending.md b/docs/reference/default-theme/extending.md index 50ca121f..dca7f791 100644 --- a/docs/reference/default-theme/extending.md +++ b/docs/reference/default-theme/extending.md @@ -29,7 +29,7 @@ With the help of them, you can add or replace content easily. Here comes an exam Firstly, create a client config file `.vuepress/client.ts`: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import Layout from './layouts/Layout.vue' export default defineClientConfig({ @@ -74,15 +74,19 @@ Default theme has registered [alias](../plugin-api.md#alias) for every [non-glob Then, if you want to replace the `HomeFooter.vue` component, just override the alias in your config file `.vuepress/config.ts`: ```ts -import { getDirname, path } from '@vuepress/utils' -import { defaultTheme, defineUserConfig } from 'vuepress' +import { defaultTheme } from '@vuepress/theme-default' +import { getDirname, path } from 'vuepress/utils' +import { defineUserConfig } from 'vuepress' const __dirname = getDirname(import.meta.url) export default defineUserConfig({ theme: defaultTheme(), alias: { - '@theme/HomeFooter.vue': path.resolve(__dirname, './components/MyHomeFooter.vue'), + '@theme/HomeFooter.vue': path.resolve( + __dirname, + './components/MyHomeFooter.vue', + ), }, }) ``` @@ -92,9 +96,9 @@ export default defineUserConfig({ Instead of extending the default theme directly in `.vuepress/config.ts` and `.vuepress/client.ts`, you can also develop your own theme extending the default theme: ```ts -import type { Theme } from '@vuepress/core' import { defaultTheme, type DefaultThemeOptions } from '@vuepress/theme-default' -import { getDirname, path } from '@vuepress/utils' +import type { Theme } from 'vuepress/core' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -110,7 +114,10 @@ export const childTheme = (options: DefaultThemeOptions): Theme => { // override component alias alias: { - '@theme/HomeFooter.vue': path.resolve(__dirname, './components/MyHomeFooter.vue'), + '@theme/HomeFooter.vue': path.resolve( + __dirname, + './components/MyHomeFooter.vue', + ), }, } } diff --git a/docs/reference/default-theme/frontmatter.md b/docs/reference/default-theme/frontmatter.md index e3068236..5a93bb81 100644 --- a/docs/reference/default-theme/frontmatter.md +++ b/docs/reference/default-theme/frontmatter.md @@ -192,7 +192,7 @@ actions: link: /guide/getting-started.html type: primary - text: Introduction - link: /guide/ + link: /guide/introduction.html type: secondary --- ``` diff --git a/docs/reference/default-theme/markdown.md b/docs/reference/default-theme/markdown.md index 88b002e4..d8c7a0ed 100644 --- a/docs/reference/default-theme/markdown.md +++ b/docs/reference/default-theme/markdown.md @@ -78,9 +78,11 @@ Danger zone, do not proceed ::: ::: details Click me to view the code + ```ts console.log('Hello, VuePress!') ``` + ::: ```` @@ -91,9 +93,11 @@ Danger zone, do not proceed ::: ::: details Click me to view the code + ```ts console.log('Hello, VuePress!') ``` + ::: - Example 3 (code group alias): @@ -103,29 +107,34 @@ console.log('Hello, VuePress!') ````md :::: code-group ::: code-group-item FOO + ```ts const foo = 'foo' ``` + ::: + ::: code-group-item BAR + ```ts const bar = 'bar' ``` + ::: :::: ```` **Output** -:::: code-tabs - -@tab FOO +:::: code-group +::: code-group-item FOO ```ts const foo = 'foo' ``` -@tab BAR +::: +::: code-group-item BAR ```ts const bar = 'bar' diff --git a/docs/reference/frontmatter.md b/docs/reference/frontmatter.md index 505e9233..502a26e6 100644 --- a/docs/reference/frontmatter.md +++ b/docs/reference/frontmatter.md @@ -49,11 +49,11 @@ icon: fa-solid:bars - - meta - name: foo content: yaml array syntax - - [meta, { name: bar , content: square brackets syntax }] + - [meta, { name: bar, content: square brackets syntax }] --- ``` - Rendered as: +Rendered as: ```html <head> @@ -96,7 +96,7 @@ icon: fa-solid:bars Register a layout component in `.vuepress/client.ts` file: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import CustomLayout from './CustomLayout.vue' export default defineClientConfig({ @@ -143,13 +143,13 @@ layout: CustomLayout - Usage: - | Pattern | Description | - |-----------|-----------------------------| - | `:year` | Year part of created date | - | `:month` | Month part of created date | - | `:day` | Day part of created date | - | `:slug` | Slug of page filename | - | `:raw` | Raw route path | + | Pattern | Description | + | -------- | -------------------------- | + | `:year` | Year part of created date | + | `:month` | Month part of created date | + | `:day` | Day part of created date | + | `:slug` | Slug of page filename | + | `:raw` | Raw route path | The `:year`, `:month` and `:day` patterns are resolved according to the following priority: @@ -171,7 +171,7 @@ layout: CustomLayout --- ``` - Then the permalink of the page would be `2021/01/03/foo-bar.html`. +Then the permalink of the page would be `2021/01/03/foo-bar.html`. - Example 2: @@ -185,7 +185,7 @@ layout: CustomLayout --- ``` - Then the permalink of the page would be `2021/01/03/bar-baz.html`. +Then the permalink of the page would be `2021/01/03/bar-baz.html`. - Also see: - [Config > permalinkPattern](./config.md#permalinkpattern) diff --git a/docs/reference/node-api.md b/docs/reference/node-api.md index c8e87b84..73c15482 100644 --- a/docs/reference/node-api.md +++ b/docs/reference/node-api.md @@ -6,7 +6,7 @@ icon: fa6-brands:node-js <NpmBadge package="@vuepress/core" /> -Node API is provided by [@vuepress/core](https://www.npmjs.com/package/@vuepress/core) package. It is a dependency of the [vuepress](https://www.npmjs.com/package/vuepress) package, and you can also install it separately: +Node API is provided by [@vuepress/core](https://www.npmjs.com/package/@vuepress/core) package, which is also available as `vuepress/core`. ```bash npm i -D @vuepress/core@next @@ -345,7 +345,7 @@ const createPage: (app: App, options: PageOptions) => Promise<Page> - Example: ```ts -import { createPage } from '@vuepress/core' +import { createPage } from 'vuepress/core' export default { // create an extra page in onInitialized hook diff --git a/docs/reference/plugin-api.md b/docs/reference/plugin-api.md index aa1524a7..f3e4d0ec 100644 --- a/docs/reference/plugin-api.md +++ b/docs/reference/plugin-api.md @@ -90,7 +90,7 @@ The following hooks will be processed in dev / build: - Example: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -114,15 +114,12 @@ export default { - Example: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) export default { - clientConfigFile: path.resolve( - __dirname, - './path/to/clientConfig.js', - ), + clientConfigFile: path.resolve(__dirname, './path/to/clientConfig.js'), } ``` @@ -180,11 +177,13 @@ export default { bundlerOptions.vuePluginOptions ??= {} bundlerOptions.vuePluginOptions.template ??= {} bundlerOptions.vuePluginOptions.template.compilerOptions ??= {} - const isCustomElement = bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement - bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement = (tag) => { - if (isCustomElement?.(tag)) return true - if (tag === 'my-custom-element') return true - } + const isCustomElement = + bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement + bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement = + (tag) => { + if (isCustomElement?.(tag)) return true + if (tag === 'my-custom-element') return true + } } // extends options of @vuepress/bundler-webpack @@ -316,7 +315,7 @@ export default { In client component: ```ts -import { usePageData } from '@vuepress/client' +import { usePageData } from 'vuepress/client' export default { setup() { diff --git a/docs/reference/plugin/back-to-top.md b/docs/reference/plugin/back-to-top.md index edb77284..6e959648 100644 --- a/docs/reference/plugin/back-to-top.md +++ b/docs/reference/plugin/back-to-top.md @@ -16,9 +16,7 @@ npm i -D @vuepress/plugin-back-to-top@next import { backToTopPlugin } from '@vuepress/plugin-back-to-top' export default { - plugins: [ - backToTopPlugin(), - ], + plugins: [backToTopPlugin()], } ``` diff --git a/docs/reference/plugin/container.md b/docs/reference/plugin/container.md index 7ce039e2..e37bb44c 100644 --- a/docs/reference/plugin/container.md +++ b/docs/reference/plugin/container.md @@ -93,12 +93,19 @@ This plugin can be used multiple times to support different types of containers. - Default: - ```ts - (info: string): string => - `<div class="custom-container ${type}">${ - info ? `<p class="custom-container-title">${info}</p>` : '' - }\n` - ``` +<!-- prettier-ignore-start --> +```ts +(info: string): string => + `<div class="custom-container ${type}">${info ? `<p class="custom-container-title">${info}</p>` : ''}\n` +``` +<!-- prettier-ignore-end --> + +```ts +;(info: string): string => + `<div class="custom-container ${type}">${ + info ? `<p class="custom-container-title">${info}</p>` : '' + }\n` +``` - Details: @@ -114,9 +121,11 @@ This plugin can be used multiple times to support different types of containers. - Default: +<!-- prettier-ignore-start --> ```ts (): string => '</div>\n' ``` +<!-- prettier-ignore-end --> - Details: diff --git a/docs/reference/plugin/docsearch.md b/docs/reference/plugin/docsearch.md index 39762436..0b437553 100644 --- a/docs/reference/plugin/docsearch.md +++ b/docs/reference/plugin/docsearch.md @@ -328,7 +328,7 @@ export default { The base path of the search index. If you are deploying your site to multiple domains, you don't need to submit all of them to DocSearch and generate search index separately. You could choose one of the domains as the _index domain_, and only submit the _index domain_ to Docsearch for crawling search index. Then, you could reuse the search index across all deployments. - + However, if the [base](../config.md#base) of your deployments are different for different domains, you need to set the option to the [base](../config.md#base) of your _index domain_, so that other deployments could reuse the search index correctly. ### injectStyles diff --git a/docs/reference/plugin/git.md b/docs/reference/plugin/git.md index 742c314a..059c8ab1 100644 --- a/docs/reference/plugin/git.md +++ b/docs/reference/plugin/git.md @@ -95,8 +95,8 @@ This plugin will add a `git` field to page data. After using this plugin, you can get the collected git information in page data: ```ts -import { usePageData } from '@vuepress/client' import type { GitPluginPageData } from '@vuepress/plugin-git' +import { usePageData } from 'vuepress/client' export default { setup() { diff --git a/docs/reference/plugin/medium-zoom.md b/docs/reference/plugin/medium-zoom.md index 1edce76d..362dce25 100644 --- a/docs/reference/plugin/medium-zoom.md +++ b/docs/reference/plugin/medium-zoom.md @@ -90,7 +90,7 @@ export default { const zoom = useMediumZoom() // ... do something to add new images in current page - + // then you may need to call `refresh` manually to make those new images zoomable nextTick(() => { zoom.refresh() diff --git a/docs/reference/plugin/nprogress.md b/docs/reference/plugin/nprogress.md index 6671502f..2f501345 100644 --- a/docs/reference/plugin/nprogress.md +++ b/docs/reference/plugin/nprogress.md @@ -24,9 +24,7 @@ npm i -D @vuepress/plugin-nprogress@next import { nprogressPlugin } from '@vuepress/plugin-nprogress' export default { - plugins: [ - nprogressPlugin(), - ], + plugins: [nprogressPlugin()], } ``` diff --git a/docs/reference/plugin/palette.md b/docs/reference/plugin/palette.md index 5bb01d10..a5a5ecb8 100644 --- a/docs/reference/plugin/palette.md +++ b/docs/reference/plugin/palette.md @@ -41,9 +41,7 @@ Use this plugin in your theme, assuming you are using SASS: ```ts export default { // ... - plugins: [ - palettePlugin({ preset: 'sass' }), - ], + plugins: [palettePlugin({ preset: 'sass' })], } ``` @@ -114,6 +112,7 @@ h1 { - Type: `string` - Default: + - css: `'.vuepress/styles/palette.css'` - sass: `'.vuepress/styles/palette.scss'` - less: `'.vuepress/styles/palette.less'` @@ -132,6 +131,7 @@ h1 { - Type: `string` - Default: + - css: `'styles/palette.css'` - sass: `'styles/palette.scss'` - less: `'styles/palette.less'` @@ -150,6 +150,7 @@ h1 { - Type: `string` - Default: + - css: `'.vuepress/styles/index.css'` - sass: `'.vuepress/styles/index.scss'` - less: `'.vuepress/styles/index.less'` @@ -168,6 +169,7 @@ h1 { - Type: `string` - Default: + - css: `'styles/index.css'` - sass: `'styles/index.scss'` - less: `'styles/index.less'` @@ -186,6 +188,7 @@ h1 { - Type: `(filePath: string) => string` - Default: + - css: `` (filePath) => `@import '${filePath}';\n` `` - sass: `` (filePath) => `@forward 'file:///${filePath}';\n` `` - less: `` (filePath) => `@import '${filePath}';\n` `` diff --git a/docs/reference/plugin/register-components.md b/docs/reference/plugin/register-components.md index 30c7fbf7..45158608 100644 --- a/docs/reference/plugin/register-components.md +++ b/docs/reference/plugin/register-components.md @@ -41,7 +41,7 @@ export default { - Example: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -71,7 +71,7 @@ export default { - Example: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) diff --git a/docs/reference/plugin/shiki.md b/docs/reference/plugin/shiki.md index d9637de5..415952ff 100644 --- a/docs/reference/plugin/shiki.md +++ b/docs/reference/plugin/shiki.md @@ -2,10 +2,10 @@ <NpmBadge package="@vuepress/plugin-shiki" /> -This plugin will enable syntax highlighting for markdown code fence with [Shiki](https://shiki.matsu.io/). +This plugin will enable syntax highlighting for markdown code fence with [Shiki](https://shiki.matsu.io/) ([Shikiji](https://shikiji.netlify.app/)). ::: tip -[Shiki](https://shiki.matsu.io/) is the syntax highlighter being used by VSCode. It has higher fidelity, but it is slower than [Prism.js](https://prismjs.com/). +[Shiki](https://shiki.matsu.io/) is the syntax highlighter being used by VSCode. It has higher fidelity, but it could be slower than [Prism.js](https://prismjs.com/), especially when you have a lot of code blocks. You could consider disabling this plugin in `dev` mode to get better development experience. ::: @@ -23,6 +23,7 @@ export default { plugins: [ shikiPlugin({ // options + langs: ['ts', 'json', 'vue', 'md', 'bash', 'diff'], }), ], } @@ -30,34 +31,47 @@ export default { ## Options +### langs + +- Type: `ShikiLang[]` + +- Details: + + Languages of code blocks to be parsed by shikiji. + + This option will be forwarded to `getHighlighter()` method of shikiji. + + You need to provide the languages list you are using explicitly, otherwise shikiji won't load any languages. + +- Also see: + - [shikiji > Languages](https://shikiji.netlify.app/languages) + ### theme -- Type: `IThemeRegistration` +- Type: `ShikiTheme` - Default: `'nord'` - Details: - Theme of shiki. + Theme of shikiji. - This option will be forwarded to `getHighlighter()` method of shiki. + This option will be forwarded to `codeToHtml()` method of shikiji. - Also see: - - [shiki > themes](https://github.com/shikijs/shiki/blob/master/docs/themes.md) - -### langs + - [shikiji > Themes](https://shikiji.netlify.app/themes) -- Type: `(Lang | ILanguageRegistration)[]` +### themes -- Default: `[]` +- Type: `Record<'dark' | 'light', ShikiTheme>` - Details: - Languages of shiki. + Dark / Light Dual themes of shikiji. This option will be forwarded to `getHighlighter()` method of shiki. If no languages are provided, shiki will load all available languages automatically. - Also see: - - [shiki > languages](https://github.com/shikijs/shiki/blob/master/docs/languages.md) + - [shikiji > Dual Themes](https://shikiji.netlify.app/guide/dual-themes) diff --git a/docs/reference/plugin/theme-data.md b/docs/reference/plugin/theme-data.md index 211216af..ecf2ea5a 100644 --- a/docs/reference/plugin/theme-data.md +++ b/docs/reference/plugin/theme-data.md @@ -70,7 +70,7 @@ The theme data object will be processed by `JSON.stringify()` before forwarding - Details: Returns the theme data ref object. - + The value is provided by [themeData](#themeData) option. - Example: diff --git a/docs/reference/plugin/toc.md b/docs/reference/plugin/toc.md index 21f65f2a..82ffdf85 100644 --- a/docs/reference/plugin/toc.md +++ b/docs/reference/plugin/toc.md @@ -28,6 +28,7 @@ Similar to the [Table of Contents Markdown Syntax](../../guide/markdown.md#table ```md <!-- markdown toc syntax --> + [[toc]] <!-- vue toc component --> @@ -159,7 +160,9 @@ const defaultOptions = { <!-- item --> <li class="vuepress-toc-item"> <!-- link (active) --> - <RouterLink class="vuepress-toc-link active" to="#bar-child">Bar Child</RouterLink> + <RouterLink class="vuepress-toc-link active" to="#bar-child"> + Bar Child + </RouterLink> </li> </ul> </li> diff --git a/docs/reference/theme-api.md b/docs/reference/theme-api.md index 0ed46799..6636ab3d 100644 --- a/docs/reference/theme-api.md +++ b/docs/reference/theme-api.md @@ -50,7 +50,7 @@ VuePress theme also works as a plugin, so Theme API can accept all the options o ```ts import { defaultTheme } from '@vuepress/theme-default' -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) diff --git a/docs/zh/README.md b/docs/zh/README.md index a9655d74..375c12c8 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -8,7 +8,7 @@ actions: link: /zh/guide/getting-started.html type: primary - text: 项目简介 - link: /zh/guide/ + link: /zh/guide/introduction.html type: secondary - text: 市场 link: https://marketplace.vuejs.press/zh/ @@ -32,5 +32,5 @@ features: - title: 打包工具 icon: fa6-solid:boxes-packing details: 默认的打包工具是 Vite ,也同样支持 Webpack 。选一个你喜欢的来使用吧! -footer: MIT 协议 | 版权所有 © 2018-至今 VuePress Community | 使用 <a href="https://theme-hope.vuejs.press/zh/">vuepress-theme-hope</a> 主题 +footer: MIT 协议 | 版权所有 © 2018-至今 VuePress 社区 | 使用 <a href="https://theme-hope.vuejs.press/zh/">vuepress-theme-hope</a> 主题 --- diff --git a/docs/zh/advanced/cookbook/adding-extra-pages.md b/docs/zh/advanced/cookbook/adding-extra-pages.md index a32c4252..04f33f5e 100644 --- a/docs/zh/advanced/cookbook/adding-extra-pages.md +++ b/docs/zh/advanced/cookbook/adding-extra-pages.md @@ -13,7 +13,7 @@ icon: fa6-solid:circle-plus 作为一个主题作者,你可能不想要求用户必须创建一个 `/README.md` 文件来作为主页,但是你希望提供一个默认的主页: ```ts -import { createPage } from '@vuepress/core' +import { createPage } from 'vuepress/core' export default { // 初始化之后,所有的页面已经加载完毕 diff --git a/docs/zh/advanced/cookbook/making-a-theme-extendable.md b/docs/zh/advanced/cookbook/making-a-theme-extendable.md index 09846cc9..fa8192c4 100644 --- a/docs/zh/advanced/cookbook/making-a-theme-extendable.md +++ b/docs/zh/advanced/cookbook/making-a-theme-extendable.md @@ -33,8 +33,8 @@ icon: fa6-solid:clone 首先,为你主题的可替换组件设置 `alias` 别名: ```ts -import type { Theme } from '@vuepress/core' -import { getDirname, path } from '@vuepress/utils' +import type { Theme } from 'vuepress/core' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) 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 38b53266..034c9507 100644 --- a/docs/zh/advanced/cookbook/passing-data-to-client-code.md +++ b/docs/zh/advanced/cookbook/passing-data-to-client-code.md @@ -47,7 +47,10 @@ declare const __OBJ__: { bar: number } export default (options) => ({ async onPrepared(app) { // 写入临时文件 - await app.writeTemp('foo.js', `export const foo = ${JSON.stringify(options.foo)}`) + await app.writeTemp( + 'foo.js', + `export const foo = ${JSON.stringify(options.foo)}`, + ) }, }) ``` diff --git a/docs/zh/advanced/cookbook/usage-of-client-config.md b/docs/zh/advanced/cookbook/usage-of-client-config.md index a8449485..1f49e331 100644 --- a/docs/zh/advanced/cookbook/usage-of-client-config.md +++ b/docs/zh/advanced/cookbook/usage-of-client-config.md @@ -7,7 +7,7 @@ icon: fa6-solid:gear 你可以直接在你的项目中使用 [客户端配置文件](../../guide/configuration.md#客户端配置文件) 。或者,在你的插件或者主题中,使用 [clientConfigFile](../../reference/plugin-api.md#clientconfigfile) Hook 来指定客户端配置文件的路径: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -16,10 +16,10 @@ const pluginOrTheme = { } ``` -在客户端配置文件中,`@vuepress/client` 包提供了一个 [defineClientConfig](../../reference/client-api.md#defineclientconfig) 函数来帮助你定义客户端配置: +在客户端配置文件中,`vuepress/client` 提供了一个 [defineClientConfig](../../reference/client-api.md#defineclientconfig) 函数来帮助你定义客户端配置: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ enhance({ app, router, siteData }) {}, @@ -44,7 +44,7 @@ export default defineClientConfig({ 你可以通过 [app.component](https://staging-cn.vuejs.org/api/application.html#app-component) 方法来注册 Vue 全局组件: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import MyComponent from './MyComponent.vue' export default defineClientConfig({ @@ -63,7 +63,7 @@ VuePress 会在构建过程中生成一个 SSR 应用,用以对页面进行预 在 `enhance` 函数中,你可以使用 [`__VUEPRESS_SSR__`](../../reference/client-api.md#ssr) 标记来处理这种情况。 ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ async enhance() { @@ -80,7 +80,7 @@ export default defineClientConfig({ 你可以使用 vue-router 提供的 [Router 方法](https://router.vuejs.org/zh/api/index.html#router-方法) 。例如,添加导航钩子: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ enhance({ router }) { @@ -110,9 +110,9 @@ export default defineClientConfig({ 你可以把 `setup` 函数当作根组件的 [setup](https://staging-cn.vuejs.org/api/composition-api-setup.html) Hook 中的一部分。因此,所有的组合式 API 都可以在这里使用。 ```ts -import { defineClientConfig } from '@vuepress/client' import { provide, ref } from 'vue' import { useRoute, useRouter } from 'vue-router' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ setup() { @@ -134,7 +134,7 @@ export default defineClientConfig({ 使用不支持 SSR 的功能的另一种方式就是将他们放在 [onMounted](https://staging-cn.vuejs.org/api/composition-api-lifecycle.html#onmounted) Hook 中: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import { onMounted } from 'vue' export default defineClientConfig({ @@ -152,7 +152,7 @@ export default defineClientConfig({ `layouts` 配置项用于设置布局组件。你在此处注册布局后,用户就可以通过 [layout](../../reference/frontmatter.md#layout) frontmatter 来使用它们。 ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import MyLayout from './layouts/MyLayout.vue' export default defineClientConfig({ @@ -169,7 +169,7 @@ export default defineClientConfig({ 该选项的典型使用方式就是放置一些全局的 UI 组件,比如全局弹窗等: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import GlobalPopup from './components/GlobalPopup.vue' export default defineClientConfig({ diff --git a/docs/zh/advanced/plugin.md b/docs/zh/advanced/plugin.md index bfbddcbc..fb30c182 100644 --- a/docs/zh/advanced/plugin.md +++ b/docs/zh/advanced/plugin.md @@ -10,7 +10,7 @@ icon: fa6-solid:plug ## 创建一个插件 -插件是一个符合 [插件 API](../reference/plugin-api.md) 的普通 JavaScript 对象,称之为 *插件对象* : +插件是一个符合 [插件 API](../reference/plugin-api.md) 的普通 JavaScript 对象,称之为 _插件对象_ : ```ts const fooPlugin = { @@ -19,7 +19,7 @@ const fooPlugin = { } ``` -插件还可以是一个接收 [App 实例](../reference/node-api.md#app) 作为参数,且返回值为 *插件对象* 的函数,称之为 *插件函数* : +插件还可以是一个接收 [App 实例](../reference/node-api.md#app) 作为参数,且返回值为 _插件对象_ 的函数,称之为 _插件函数_ : ```ts const barPlugin = (app) => { @@ -30,7 +30,7 @@ const barPlugin = (app) => { } ``` -插件通常需要允许用户传入配置,因此我们一般都会提供给用户一个函数来接收配置,然后将 *插件对象* 或者 *插件函数* 作为返回值。于是,你的插件应该转换成这样的形式: +插件通常需要允许用户传入配置,因此我们一般都会提供给用户一个函数来接收配置,然后将 _插件对象_ 或者 _插件函数_ 作为返回值。于是,你的插件应该转换成这样的形式: ```ts const fooPlugin = (options) => { @@ -57,11 +57,9 @@ const barPlugin = (options) => { ```json { "name": "vuepress-plugin-foo", - "keywords": [ - "vuepress-plugin" - ] + "keywords": ["vuepress-plugin"] } ``` -- 将 `name` 按照约定命名,即 `vuepress-plugin-xxx` 或 `@org/vuepress-plugin-xxx` ,它应该和 *插件对象* 的 [name](../reference/plugin-api.md#name) 字段保持一致。 +- 将 `name` 按照约定命名,即 `vuepress-plugin-xxx` 或 `@org/vuepress-plugin-xxx` ,它应该和 _插件对象_ 的 [name](../reference/plugin-api.md#name) 字段保持一致。 - 在 `keywords` 中包含 `vuepress-plugin` ,这样用户可以在 NPM 上搜索到你的插件。 diff --git a/docs/zh/advanced/theme.md b/docs/zh/advanced/theme.md index c8c12059..ba347106 100644 --- a/docs/zh/advanced/theme.md +++ b/docs/zh/advanced/theme.md @@ -10,10 +10,10 @@ icon: fa6-solid:palette ## 创建一个主题 -VuePress 主题是一个特殊的插件,它应该符合 [主题 API](../reference/theme-api.md) 。和插件一样,主题可以是一个 *主题对象* 或一个 *主题函数* ,并且通常通过一个函数来接收配置项: +VuePress 主题是一个特殊的插件,它应该符合 [主题 API](../reference/theme-api.md) 。和插件一样,主题可以是一个 _主题对象_ 或一个 _主题函数_ ,并且通常通过一个函数来接收配置项: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -26,7 +26,7 @@ const fooTheme = (options) => { clientConfigFile: path.resolve(__dirname, 'client.js'), // 设置自定义 dev / build 模板 - // 如果没有指定模板,将会使用 `@vuepress/client` 提供的默认模板 + // 如果没有指定模板,将会使用默认模板 templateBuild: path.resolve(__dirname, 'templates/build.html'), templateDev: path.resolve(__dirname, 'templates/dev.html'), @@ -53,7 +53,7 @@ const barTheme = (options) => { 然后,创建主题的客户端配置文件 `client.js` : ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import Layout from './layouts/Layout.vue' import NotFound from './layouts/NotFound.vue' @@ -94,11 +94,9 @@ export default defineClientConfig({ ```json { "name": "vuepress-theme-foo", - "keywords": [ - "vuepress-theme" - ] + "keywords": ["vuepress-theme"] } ``` -- 将 `name` 按照约定命名: `vuepress-theme-xxx` 或 `@org/vuepress-theme-xxx` ,它应该和 *主题对象* 的 [name](../reference/theme-api.md#name) 字段保持一致。 +- 将 `name` 按照约定命名: `vuepress-theme-xxx` 或 `@org/vuepress-theme-xxx` ,它应该和 _主题对象_ 的 [name](../reference/theme-api.md#name) 字段保持一致。 - 在 `keywords` 中包含 `vuepress-theme` ,这样用户可以在 NPM 上搜索到你的主题。 diff --git a/docs/zh/guide/assets.md b/docs/zh/guide/assets.md index 1480bbb4..3dfe4275 100644 --- a/docs/zh/guide/assets.md +++ b/docs/zh/guide/assets.md @@ -64,19 +64,24 @@ icon: fa6-solid:photo-film ```md <!-- 你不需要给 `/images/hero.png` 手动添加 `/bar/` 前缀 --> + ![VuePress Logo](/images/hero.png) ``` +::: tip +在使用 [Webpack 打包工具](../reference/bundler/webpack.md) 时,你需要将 [markdown.assets.absolutePathPrependBase](../reference/config.md#markdown-assets) 设置为 `true` 来给 Markdown 图片自动添加 `base` 前缀。 +::: + 然而,有些情况下,你可能会有一些指向 Public 文件的动态路径,尤其是在你开发一个自定义主题的时候。在这种情况下, `base` 无法被自动处理。为了解决这个问题,VuePress 提供了 [withBase](../reference/client-api.md#withbase) 工具函数,它可以帮助你添加 `base` 前缀: ```vue <template> - <img :src="withBase(logoPath)"> + <img :src="withBase(logoPath)" /> </template> <script setup> import { ref } from 'vue' -import { withBase } from '@vuepress/client' +import { withBase } from 'vuepress/client' const logoPath = ref('/images/hero.png') </script> @@ -105,7 +110,7 @@ npm install -D package-name 在配置文件中设置的路径别名也同样支持: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) diff --git a/docs/zh/guide/bundler.md b/docs/zh/guide/bundler.md index 5be6d4ef..775bc636 100644 --- a/docs/zh/guide/bundler.md +++ b/docs/zh/guide/bundler.md @@ -5,63 +5,60 @@ icon: fa6-solid:boxes-packing # 打包工具 VuePress 一直以来都在使用 [Webpack](https://webpack.js.org/) 作为打包工具来进行网站的开发和构建。从 VuePress v2 开始,我们还支持使用其他的打包工具,并且现在使用 [Vite](https://vitejs.dev/) 作为默认的打包工具。当然,你仍然可以选择使用 Webpack 。 +VuePress 支持使用 [Vite](https://vitejs.dev/) 或 [Webpack](https://webpack.js.org/) 作为打包工具来进行网站的开发和构建。你可以根据自己的喜好来选择使用哪个打包工具,并且不需要进行额外的配置。 -## 选择一个打包工具 +## 安装打包工具 -在使用 [vuepress](https://www.npmjs.com/package/vuepress) 包时,会自动安装和使用 Vite 打包工具。 - -如果你想改为使用 Webpack 打包工具,那么你可以移除它,改为安装 [vuepress-webpack](https://www.npmjs.com/package/vuepress-webpack) 包: +在安装 [vuepress](https://www.npmjs.com/package/vuepress) 包时,并不会自动安装打包工具,你需要选择并安装一个打包工具。 ::: code-tabs#shell -@tab:active PNPM +@tab:active pnpm ```bash -pnpm uninstall vuepress -pnpm add -D vuepress-webpack@next +# 安装 vite 打包工具 +pnpm add -D vuepress@next @vuepress/bundler-vite@next +# 安装 webpack 打包工具 +pnpm add -D vuepress@next @vuepress/bundler-webpack@next ``` -@tab YARN +@tab yarn ```bash -yarn remove vuepress -yarn add -D vuepress-webpack@next +# 安装 vite 打包工具 +yarn add -D vuepress@next @vuepress/bundler-vite@next +# 安装 webpack 打包工具 +yarn add -D vuepress@next @vuepress/bundler-webpack@next ``` -@tab NPM +@tab pnpm ```bash -npm uninstall vuepress -npm install -D vuepress-webpack@next +# 安装 vite 打包工具 +npm install -D vuepress@next @vuepress/bundler-vite@next +# 安装 webpack 打包工具 +npm install -D vuepress@next @vuepress/bundler-webpack@next ``` ::: -::: tip -实际上, [vuepress](https://www.npmjs.com/package/vuepress) 包只是 [vuepress-vite](https://www.npmjs.com/package/vuepress-vite) 包的一个封装而已。 -::: - -## 配置打包工具 +## 使用打包工具 一般情况下,你不要任何额外配置就可以使用打包工具,因为我们已经帮你配置好了它们。 -通过 [bundler](../reference/config.md#bundler) 配置项,你可以对打包工具进行进阶配置: +你只需要通过 [bundler](../reference/config.md#bundler) 配置项指定打包工具即可: ```ts -import { viteBundler } from 'vuepress' -// import { webpackBundler } from 'vuepress-webpack' +import { viteBundler } from '@vuepress/bundler-vite' +// import { webpackBundler } from '@vuepress/bundler-webpack' export default { - bundler: viteBundler({ - vuePluginOptions: { - template: { - compilerOptions: { - isCustomElement: (tag) => tag === 'center', - }, - }, - }, - }), + bundler: viteBundler(), + // bundler: webpackBundler(), } ``` -你可以参考 [打包工具 > Vite](../reference/bundler/vite.md) 和 [打包工具 > Webpack](../reference/bundler/webpack.md) 来查看对应打包工具的所有配置项。 +当你需要对打包工具进行进阶配置时,只需要传入对应的配置项即可: + +- [打包工具 > Vite](../reference/bundler/vite.md) +- [打包工具 > Webpack](../reference/bundler/webpack.md) diff --git a/docs/zh/guide/configuration.md b/docs/zh/guide/configuration.md index 6dc85ace..96ad0332 100644 --- a/docs/zh/guide/configuration.md +++ b/docs/zh/guide/configuration.md @@ -6,17 +6,6 @@ icon: fa6-solid:gear ## 配置文件 -如果没有任何配置,你的 VuePress 站点仅有一些最基础的功能。为了更好地自定义你的网站,让我们首先在你的文档目录下创建一个 `.vuepress` 目录,所有 VuePress 相关的文件都将会被放在这里。你的项目结构可能是这样: - -``` -├─ docs -│ ├─ .vuepress -│ │ └─ config.js -│ └─ README.md -├─ .gitignore -└─ package.json -``` - VuePress 站点的基本配置文件是 `.vuepress/config.js` ,但也同样支持 TypeScript 配置文件。你可以使用 `.vuepress/config.ts` 来得到更好的类型提示。 具体而言,我们对于配置文件的路径有着约定(按照优先顺序): @@ -33,15 +22,20 @@ VuePress 站点的基本配置文件是 `.vuepress/config.js` ,但也同样支 你也可以通过 [命令行接口](../reference/cli.md) 的 `--config` 选项来指定配置文件: ```sh -vuepress dev docs --config my-config.js +vuepress dev docs --config my-config.ts ``` 一个基础的配置文件是这样的: ```ts +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' import { defineUserConfig } from 'vuepress' export default defineUserConfig({ + bundler: viteBundler(), + theme: defaultTheme(), + lang: 'zh-CN', title: '你好, VuePress !', description: '这是我的第一个 VuePress 站点', @@ -80,7 +74,7 @@ export default defineUserConfig({ 一个基础的客户端配置文件是这样的: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' export default defineClientConfig({ enhance({ app, router, siteData }) {}, diff --git a/docs/zh/guide/deployment.md b/docs/zh/guide/deployment.md index 71bd9eb7..a533a653 100644 --- a/docs/zh/guide/deployment.md +++ b/docs/zh/guide/deployment.md @@ -32,6 +32,7 @@ icon: fa6-solid:rocket 创建 `.github/workflows/docs.yml` 文件来配置工作流。 ::: details 点击展开配置样例 + ```yaml name: docs @@ -85,6 +86,7 @@ jobs: # @see https://docs.github.com/cn/actions/reference/authentication-in-a-workflow#about-the-github_token-secret GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ``` + ::: ::: tip @@ -102,6 +104,7 @@ jobs: 2. 创建 `.gitlab-ci.yml` 文件来配置 [GitLab CI](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/) 工作流。 ::: details 点击展开配置样例 + ```yaml # 选择你要使用的 docker 镜像 image: node:18-buster @@ -133,6 +136,7 @@ pages: paths: - public ``` + ::: ::: tip diff --git a/docs/zh/guide/getting-started.md b/docs/zh/guide/getting-started.md index 631e4a9a..e91858a7 100644 --- a/docs/zh/guide/getting-started.md +++ b/docs/zh/guide/getting-started.md @@ -5,26 +5,38 @@ icon: fa6-solid:lightbulb # 快速上手 ::: warning -VuePress v2 目前仍处于 RC (Release Candidate) 阶段。你已经可以用它来构建你的站点,但是它的配置和 API 还不够稳定,有可能会发生一些微小的 Breaking Changes 。因此,在每次更新 RC 版本之后,请一定要仔细阅读 [更新日志](https://github.com/vuepress/vuepress-next/blob/main/CHANGELOG.md)。 +VuePress v2 目前仍处于 RC (Release Candidate) 阶段。你已经可以用它来构建你的站点,但是它的配置和 API 还不够稳定,有可能会发生一些微小的 Breaking Changes 。因此,在每次更新 RC 版本之后,请一定要仔细阅读 [更新日志](https://github.com/vuepress/core/blob/main/CHANGELOG.md)。 ::: -## 依赖环境 +## 在线试一试 + +你可以通过 [StackBlitz](https://stackblitz.com/fork/vuepress) 在你的浏览器里直接使用 VuePress 。 + +## 安装 + +### 依赖环境 - [Node.js v18.16.0+](https://nodejs.org/) - 包管理器,如 [pnpm](https://pnpm.io/zh/)、[yarn](https://classic.yarnpkg.com/en/)、[npm](https://www.npmjs.com/) 等。 ::: tip -- 使用 [pnpm](https://pnpm.io/zh/) 时,你需要安装 `vue` 和 `@vuepress/client` 作为 peer-dependencies 。 +- 使用 [pnpm](https://pnpm.io/zh/) 时,你需要安装 `vue` 作为 peer-dependencies 。 - 使用 [yarn 2+](https://yarnpkg.com/) 时,你需要在 [`.yarnrc.yml`](https://yarnpkg.com/configuration/yarnrc#nodeLinker) 文件中设置 `nodeLinker: 'node-modules'` 。 ::: -## 手动安装 +### 创建项目 + +#### 通过命令行创建 + +TODO -这一章节会帮助你从头搭建一个简单的 VuePress 文档网站。如果你想在一个现有项目中使用 VuePress 管理文档,从步骤 3 开始。 +#### 手动创建 -- **步骤 1**: 创建并进入一个新目录 +这一章节会帮助你从头搭建一个简单的 VuePress 文档网站。 + +- 创建并进入一个新目录 ```bash mkdir vuepress-starter @@ -33,23 +45,21 @@ cd vuepress-starter - **步骤 2**: 初始化项目 -::: code-tabs#shell - -@tab:active PNPM +@tab:active pnpm ```bash git init pnpm init ``` -@tab YARN +@tab yarn ```bash git init yarn init ``` -@tab NPM +@tab pnpm ```bash git init @@ -58,31 +68,98 @@ npm init ::: -- **步骤 3**: 将 VuePress 安装为本地依赖 +- 安装 VuePress ::: code-tabs#shell -@tab:active PNPM +@tab:active pnpm ```bash -pnpm add -D vuepress@next @vuepress/client@next vue +# 安装 vuepress 和 vue +pnpm add -D vuepress@next vue +# 安装打包工具和主题 +pnpm add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` -@tab YARN +@tab yarn ```bash +# 安装 vuepress yarn add -D vuepress@next +# 安装打包工具和主题 +yarn add -D @vuepress/bundler-vite@next @vuepress/theme-default@next ``` -@tab NPM +@tab pnpm ```bash +# 安装 vuepress npm install -D vuepress@next +``` + + </CodeGroupItem> +</CodeGroup> + +- 创建 `docs` 目录和 `docs/.vuepress` 目录 + +```bash +mkdir docs +mkdir docs/.vuepress +``` + +- 创建 VuePress 配置文件 `docs/.vuepress/config.js` + +```ts +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + bundler: viteBundler(), + theme: defaultTheme(), +}) +``` + +- 创建你的第一篇文档 + +```bash +echo '# Hello VuePress' > docs/README.md +``` + +## 目录结构 + +创建完成后,你项目的目录结构应该是这样的: + +``` +├─ docs +│ ├─ .vuepress +│ │ └─ config.js +│ └─ README.md +└─ package.json +``` + +`docs` 目录是你放置 Markdown 文件的地方,它同时也会作为 VuePress 的源文件目录。 + +`docs/.vuepress` 目录,即源文件目录下的 `.vuepress` 目录,是放置所有和 VuePress 相关的文件的地方。当前这里只有一个配置文件。默认还会在该目录下生成临时文件、缓存文件和构建输出文件。建议你把它们添加到 `.gitignore` 文件中。 + +::: details 示例 `.gitignore` 文件 + +``` +# VuePress 默认临时文件目录 +.vuepress/.temp +# VuePress 默认缓存目录 +.vuepress/.cache +# VuePress 默认构建生成的静态文件目录 +.vuepress/dist ``` ::: -- **步骤 4**: 在 `package.json` 中添加一些 [scripts](https://classic.yarnpkg.com/zh-Hans/docs/package-json#toc-scripts) +## 开始使用 VuePress + +### 启动开发服务器 + +你可以在 `package.json` 中添加一些 [scripts](https://classic.yarnpkg.com/zh-Hans/docs/package-json#toc-scripts) : ```json { @@ -93,45 +170,64 @@ npm install -D vuepress@next } ``` -- **步骤 5**: 将默认的临时目录和缓存目录添加到 `.gitignore` 文件中 +运行 `docs:dev` 脚本可以启动开发服务器: + +::: code-tabs#shell + +@tab:active PNPM ```bash -echo 'node_modules' >> .gitignore -echo '.temp' >> .gitignore -echo '.cache' >> .gitignore +pnpm docs:dev ``` -- **步骤 6**: 创建你的第一篇文档 + </CodeGroupItem> + + <CodeGroupItem title="YARN"> ```bash -mkdir docs -echo '# Hello VuePress' > docs/README.md +yarn docs:dev ``` -- **步骤 7**: 在本地启动服务器来开发你的文档网站 +@tab NPM + +```bash +npm run docs:dev +``` + +::: + +VuePress 会在 [http://localhost:8080](http://localhost:8080) 启动一个热重载的开发服务器。当你修改你的 Markdown 文件时,浏览器中的内容也会自动更新。 + +### 构建你的网站 + +运行 `docs:build` 脚本可以构建你的网站: ::: code-tabs#shell @tab:active PNPM ```bash -pnpm docs:dev +pnpm docs:build ``` -@tab YARN +@tab yarn ```bash -yarn docs:dev +yarn docs:build ``` -@tab NPM +@tab npm ```bash -npm run docs:dev +npm run docs:build ``` ::: -VuePress 会在 [http://localhost:8080](http://localhost:8080) 启动一个热重载的开发服务器。当你修改你的 Markdown 文件时,浏览器中的内容也会自动更新。 +在 `docs/.vuepress/dist` 目录中可以找到构建生成的静态文件。你可以查看 [部署](./deployment.md) 来了解如何部署你的网站。 + +## 进一步了解 VuePress + +现在,你应该已经有了一个简单可用的 VuePress 网站。但你可能仍需要阅读后续的指南来更加了解 VuePress 。 -现在,你应该已经有了一个简单可用的 VuePress 文档网站。接下来,了解一下 VuePress [配置](./configuration.md) 相关的内容。 +下一步,前往 [配置](./configuration.md) 了解更多配置文件相关的内容。 diff --git a/docs/zh/guide/i18n.md b/docs/zh/guide/i18n.md index c3f2da15..fb680406 100644 --- a/docs/zh/guide/i18n.md +++ b/docs/zh/guide/i18n.md @@ -55,9 +55,10 @@ VuePress 没有限制主题如何提供多语言支持,因此每个主题可 如果你使用的是默认主题,那么它提供多语言支持的方式和上述是一致的: ```ts -import { defaultTheme } from 'vuepress' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' -export default { +export default defineUserConfig({ theme: defaultTheme({ locales: { '/': { @@ -68,7 +69,7 @@ export default { }, }, }), -} +}) ``` ::: tip diff --git a/docs/zh/guide/README.md b/docs/zh/guide/introduction.md similarity index 100% rename from docs/zh/guide/README.md rename to docs/zh/guide/introduction.md diff --git a/docs/zh/guide/markdown.md b/docs/zh/guide/markdown.md index 34b986c2..f5d8ea79 100644 --- a/docs/zh/guide/markdown.md +++ b/docs/zh/guide/markdown.md @@ -42,8 +42,8 @@ VuePress 会使用 [markdown-it](https://github.com/markdown-it/markdown-it) 来 └─ zh ├─ guide │ ├─ getting-started.md - │ ├─ markdown.md # <- 我们在这里 - │ └─ README.md + │ ├─ introduction.md + │ └─ markdown.md # <- 我们在这里 ├─ reference │ └─ config.md └─ README.md @@ -53,14 +53,19 @@ VuePress 会使用 [markdown-it](https://github.com/markdown-it/markdown-it) 来 ```md <!-- 相对路径 --> + [首页](../README.md) [配置参考](../reference/config.md) -[快速上手](./getting-started.md) +[快速上手](./getting-started.md) + <!-- 绝对路径 --> -[指南](/zh/guide/README.md) -[配置参考 > markdown.links](/zh/reference/config.md#links) + +[指南 > 介绍](/zh/guide/introduction.md) +[配置参考 > markdown.links](/zh/reference/config.md#links) + <!-- URL --> -[GitHub](https://github.com) + +[GitHub](https://github.com) ``` **转换为** @@ -70,9 +75,13 @@ VuePress 会使用 [markdown-it](https://github.com/markdown-it/markdown-it) 来 <RouterLink to="/zh/">首页</RouterLink> <RouterLink to="/zh/reference/config.html">配置参考</RouterLink> <RouterLink to="/zh/guide/getting-started.html">快速上手</RouterLink> - <RouterLink to="/zh/guide/">指南</RouterLink> - <RouterLink to="/zh/reference/config.html#links">配置参考 > markdown.links</RouterLink> - <a href="https://github.com" target="_blank" rel="noopener noreferrer">GitHub</a> + <RouterLink to="/zh/guide/introduction.html">指南 > 介绍</RouterLink> + <RouterLink to="/zh/reference/config.html#links"> + 配置参考 > markdown.links + </RouterLink> + <a href="https://github.com" target="_blank" rel="noopener noreferrer"> + GitHub + </a> </template> ``` @@ -81,9 +90,9 @@ VuePress 会使用 [markdown-it](https://github.com/markdown-it/markdown-it) 来 [首页](../README.md) [配置参考](../reference/config.md) [快速上手](./getting-started.md) -[指南](/zh/guide/README.md) +[指南 > 介绍](/zh/guide/introduction.md) [配置参考 > markdown.links](/zh/reference/config.md#links) -[GitHub](https://github.com) +[GitHub](https://github.com) **解释** @@ -145,7 +154,6 @@ Emoji 扩展由 [markdown-it-emoji](https://github.com/markdown-it/markdown-it-e ::: tip 目录扩展由 [@mdit-vue/plugin-toc](https://github.com/mdit-vue/mdit-vue/tree/main/packages/plugin-toc) 支持。 - 配置参考: [markdown.toc](../reference/config.md#markdown-toc) ::: @@ -160,8 +168,9 @@ Emoji 扩展由 [markdown-it-emoji](https://github.com/markdown-it/markdown-it-e **输入** ````md -```ts{1,6-8} -import { defaultTheme, defineUserConfig } from 'vuepress' +```ts{1,7-9} +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ title: '你好, VuePress', @@ -175,8 +184,9 @@ export default defineUserConfig({ **输出** -```ts{1,6-8} -import { defaultTheme, defineUserConfig } from 'vuepress' +```ts{1,7-9} +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ title: '你好, VuePress', @@ -194,7 +204,7 @@ export default defineUserConfig({ - 组合: `{4,7-13,16,23-27,40}` ::: tip -行高亮扩展是由我们的内置插件支持的,该扩展 Fork 并修改自 [markdown-it-highlight-lines](https://github.com/egoist/markdown-it-highlight-lines)。 +行高亮扩展是由我们的内置插件支持的,该扩展 Fork 并修改自 [markdown-it-highlight-lines](https://github.com/egoist/markdown-it-highlight-lines)。 配置参考: [markdown.code.highlightLines](../reference/config.md#markdown-code-highlightlines) ::: @@ -260,11 +270,13 @@ const line3 = 'This is line 3' ````md ```md <!-- 默认情况下,这里会被保持原样 --> + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` ```md:no-v-pre <!-- 这里会被 Vue 编译 --> + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` @@ -278,11 +290,13 @@ const onePlusTwoPlusThree = {{ 1 + 2 + 3 }} ```md <!-- 默认情况下,这里会被保持原样 --> + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` ```md:no-v-pre <!-- 这里会被 Vue 编译 --> + 1 + 2 + 3 = {{ 1 + 2 + 3 }} ``` @@ -308,6 +322,7 @@ v-pre 扩展是由我们的内置插件支持的。 ```md <!-- 最简单的语法 --> + @[code](../foo.js) ``` @@ -315,6 +330,7 @@ v-pre 扩展是由我们的内置插件支持的。 ```md <!-- 仅导入第 1 行至第 10 行 --> + @[code{1-10}](../foo.js) ``` @@ -322,6 +338,7 @@ v-pre 扩展是由我们的内置插件支持的。 ```md <!-- 指定代码语言 --> + @[code js](../foo.js) ``` @@ -329,6 +346,7 @@ v-pre 扩展是由我们的内置插件支持的。 ```md <!-- 行高亮 --> + @[code js{2,4-5}](../foo.js) ``` @@ -346,7 +364,7 @@ v-pre 扩展是由我们的内置插件支持的。 需要注意的是,路径别名在导入代码语法中不会生效。你可以通过下面的配置来自行处理路径别名: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -362,6 +380,7 @@ export default { ```md <!-- 会被解析至 'path/to/src/foo.js' --> + @[code](@src/foo.js) ``` diff --git a/docs/zh/guide/migration.md b/docs/zh/guide/migration.md index e28d6f86..54eedb67 100644 --- a/docs/zh/guide/migration.md +++ b/docs/zh/guide/migration.md @@ -51,7 +51,7 @@ VuePress v2 的核心思想和流程是和 v1 一致的,但 v2 API 经过了 - }, - } -+ import { defaultTheme } from 'vuepress' ++ import { defaultTheme } from '@vuepress/theme-default' + export default { + theme: defaultTheme({ + // 默认主题配置 diff --git a/docs/zh/guide/page.md b/docs/zh/guide/page.md index fb662bb2..ba02136b 100644 --- a/docs/zh/guide/page.md +++ b/docs/zh/guide/page.md @@ -23,8 +23,8 @@ VuePress 是以 Markdown 为中心的。你项目中的每一个 Markdown 文件 将 `docs` 目录作为你的 [sourceDir](../reference/cli.md) ,例如你在运行 `vuepress dev docs` 命令。此时,你的 Markdown 文件对应的路由路径为: -| 相对路径 | 路由路径 | -|-----------------------------|-------------------------------| +| 相对路径 | 路由路径 | +| --------------------------- | ----------------------------- | | `/README.md` | `/` | | `/index.md` | `/` | | `/contributing.md` | `/contributing.html` | diff --git a/docs/zh/guide/plugin.md b/docs/zh/guide/plugin.md index 02e448fe..18f0290a 100644 --- a/docs/zh/guide/plugin.md +++ b/docs/zh/guide/plugin.md @@ -6,11 +6,11 @@ icon: fa6-solid:plug 借助于 [插件 API](../reference/plugin-api.md) , VuePress 插件可以为你提供各种不同的功能。 -## 社区插件 +## 官方插件 -社区用户创建了很多插件,并将它们发布到了 [NPM](https://www.npmjs.com/search?q=keywords:vuepress-plugin) 上。 VuePress 团队也在 [@vuepress](https://www.npmjs.com/search?q=%40vuepress%20keywords%3Aplugin) Scope 下维护了一些官方插件。查看插件本身的文档可以获取更详细的指引。 +VuePress 团队提供了一些官方插件。 -一般而言,你需要导入插件并通过配置文件的 [plugins](../reference/config.md#plugins) 配置项来使用它。举例来说,你可以使用 [@vuepress/plugin-google-analytics](../reference/plugin/google-analytics.md) 来使用 Google Analytics : +你需要在你的配置文件中通过 [plugins](../reference/config.md#plugins) 配置项来使用它们。举例来说,你可以使用 [@vuepress/plugin-google-analytics](../reference/plugin/google-analytics.md) 来使用 Google Analytics : ```ts import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics' @@ -30,6 +30,12 @@ export default { 然而,部分插件是可以被多次使用的(例如 [@vuepress/plugin-container](../reference/plugin/container.md)),你应该查看插件本身的文档来获取详细指引。 ::: +## 社区插件 + +社区用户创建了很多插件,并将它们发布到了 [NPM](https://www.npmjs.com/search?q=keywords:vuepress-plugin) 上。 查看插件本身的文档可以获取更详细的指引。 + +你可以在 [Awesome VuePress](https://github.com/vuepress/awesome-vuepress) 或者 [VuePress Marketplace](https://marketplace.vuejs.press/) 中探索更多插件。 + ## 本地插件 如果你想要使用自己的插件,但是又不想发布它,你可以创建一个本地插件。 @@ -42,9 +48,7 @@ export default { import myPlugin from './path/to/my-plugin.js' export default { - plugins: [ - myPlugin(), - ], + plugins: [myPlugin()], } ``` diff --git a/docs/zh/guide/theme.md b/docs/zh/guide/theme.md index ea7adb45..d3bedfe0 100644 --- a/docs/zh/guide/theme.md +++ b/docs/zh/guide/theme.md @@ -8,16 +8,15 @@ VuePress 主题为你提供了布局、样式和其他功能,帮助你专注 ## 默认主题 -VuePress 有一个开箱即用的默认主题,正使用在你当前正在浏览的文档网站上。 +VuePress 提供了一个默认主题,你当前正在浏览的文档网站就是使用的这个默认主题。 -如果你不指定要使用的主题,那么就会自动使用默认主题。 - -为了配置默认主题,你需要在你的配置文件中通过 [theme](../reference/config.md#theme) 配置项来使用它: +你需要在你的配置文件中通过 [theme](../reference/config.md#theme) 配置项来使用它: ```ts -import { defaultTheme } from 'vuepress' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' -export default { +export default defineUserConfig({ theme: defaultTheme({ // 默认主题配置 navbar: [ @@ -27,7 +26,7 @@ export default { }, ], }), -} +}) ``` 默认主题为文档网站提供了基础且实用的功能,你可以前往 [默认主题配置参考](../reference/default-theme/config.md) 获取全部的配置列表。 @@ -38,6 +37,8 @@ export default { 社区用户创建了很多主题,并将它们发布到了 [NPM](https://www.npmjs.com/search?q=keywords:vuepress-theme) 上。查看主题本身的文档可以获取更详细的指引。 +你可以在 [Awesome VuePress](https://github.com/vuepress/awesome-vuepress) 或者 [VuePress Marketplace](https://marketplace.vuejs.press/) 中探索更多主题。 + ## 本地主题 如果你想要使用自己的自定义主题,但是又不想发布它,你可以创建一个本地主题。前往 [深入 > 开发主题](../advanced/theme.md) 学习如何开发你自己的主题。 diff --git a/docs/zh/reference/bundler/vite.md b/docs/zh/reference/bundler/vite.md index 5d339b38..65a33b9f 100644 --- a/docs/zh/reference/bundler/vite.md +++ b/docs/zh/reference/bundler/vite.md @@ -18,7 +18,7 @@ Vite 打包工具的配置项: ```ts import { viteBundler } from '@vuepress/bundler-vite' -import { defineUserConfig } from '@vuepress/cli' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ bundler: viteBundler({ diff --git a/docs/zh/reference/bundler/webpack.md b/docs/zh/reference/bundler/webpack.md index 5447cc0d..0ea0b4ba 100644 --- a/docs/zh/reference/bundler/webpack.md +++ b/docs/zh/reference/bundler/webpack.md @@ -18,7 +18,7 @@ Webpack 打包工具的配置项: ```ts import { webpackBundler } from '@vuepress/bundler-webpack' -import { defineUserConfig } from '@vuepress/cli' +import { defineUserConfig } from 'vuepress' export default defineUserConfig({ bundler: webpackBundler({ diff --git a/docs/zh/reference/cli.md b/docs/zh/reference/cli.md index b32a4219..21b0dcd2 100644 --- a/docs/zh/reference/cli.md +++ b/docs/zh/reference/cli.md @@ -25,8 +25,8 @@ For more info, run any command with the `--help` flag: $ vuepress info --help Options: - -v, --version Display version number - -h, --help Display this message + -v, --version Display version number + -h, --help Display this message ``` ::: tip @@ -44,17 +44,17 @@ Usage: $ vuepress dev [sourceDir] Options: - -c, --config <config> Set path to config file - -p, --port <port> Use specified port (default: 8080) - -t, --temp <temp> Set the directory of the temporary files - --host <host> Use specified host (default: 0.0.0.0) - --cache <cache> Set the directory of the cache files - --clean-temp Clean the temporary files before dev - --clean-cache Clean the cache files before dev - --open Open browser when ready - --debug Enable debug mode + -c, --config <config> Set path to config file + -p, --port <port> Use specified port (default: 8080) + -t, --temp <temp> Set the directory of the temporary files + --host <host> Use specified host (default: 0.0.0.0) + --cache <cache> Set the directory of the cache files + --clean-temp Clean the temporary files before dev + --clean-cache Clean the cache files before dev + --open Open browser when ready + --debug Enable debug mode --no-watch Disable watching page and config files (default: true) - -v, --version Display version number + -v, --version Display version number -h, --help Display this message ``` @@ -71,14 +71,14 @@ Usage: $ vuepress build [sourceDir] Options: - -c, --config <config> Set path to config file - -d, --dest <dest> Set the directory build output (default: .vuepress/dist) - -t, --temp <temp> Set the directory of the temporary files - --cache <cache> Set the directory of the cache files - --clean-temp Clean the temporary files before build - --clean-cache Clean the cache files before build - --debug Enable debug mode - -v, --version Display version number + -c, --config <config> Set path to config file + -d, --dest <dest> Set the directory build output (default: .vuepress/dist) + -t, --temp <temp> Set the directory of the temporary files + --cache <cache> Set the directory of the cache files + --clean-temp Clean the temporary files before build + --clean-cache Clean the cache files before build + --debug Enable debug mode + -v, --version Display version number -h, --help Display this message ``` diff --git a/docs/zh/reference/client-api.md b/docs/zh/reference/client-api.md index 9e8a48a5..080f4bb0 100644 --- a/docs/zh/reference/client-api.md +++ b/docs/zh/reference/client-api.md @@ -6,7 +6,7 @@ icon: fa6-brands:chrome <NpmBadge package="@vuepress/client" /> -客户端 API 是由 [@vuepress/client](https://www.npmjs.com/package/@vuepress/client) Package 提供的,用于开发客户端文件。 +客户端 API 是由 [@vuepress/client](https://www.npmjs.com/package/@vuepress/client) Package 提供的,同时也可以通过 `vuepress/client` 来引入。 ## Composition API @@ -155,7 +155,7 @@ icon: fa6-brands:chrome 在客户端配置文件中自定义 `<title>` 的格式: ```ts -import { defineClientConfig, resolvers } from '@vuepress/client' +import { defineClientConfig, resolvers } from 'vuepress/client' export default defineClientConfig({ enhance({ app, router, siteData }) { diff --git a/docs/zh/reference/components.md b/docs/zh/reference/components.md index 9a3418d3..983d3b98 100644 --- a/docs/zh/reference/components.md +++ b/docs/zh/reference/components.md @@ -28,6 +28,7 @@ icon: fa6-solid:puzzle-piece ## Content - Props: + - pageKey - 类型: `string` - 是否必须: `false` diff --git a/docs/zh/reference/default-theme/components.md b/docs/zh/reference/default-theme/components.md index 71d82963..3b2e7893 100644 --- a/docs/zh/reference/default-theme/components.md +++ b/docs/zh/reference/default-theme/components.md @@ -9,6 +9,7 @@ icon: fa6-solid:puzzle-piece ## Badge <Badge text="badge" /> - Props: + - type - 类型: `'tip' | 'warning' | 'danger'` - 默认值: `'tip'` @@ -44,6 +45,7 @@ icon: fa6-solid:puzzle-piece ## CodeGroupItem - Props: + - title - 类型: `string` - 是否必需: `true` @@ -63,7 +65,7 @@ icon: fa6-solid:puzzle-piece ````md <CodeGroup> - <CodeGroupItem title="PNPM"> + <CodeGroupItem title="pnpm"> ```bash:no-line-numbers pnpm install @@ -71,7 +73,7 @@ pnpm install </CodeGroupItem> - <CodeGroupItem title="YARN"> + <CodeGroupItem title="yarn"> ```bash:no-line-numbers yarn install @@ -79,7 +81,7 @@ yarn install </CodeGroupItem> - <CodeGroupItem title="NPM" active> + <CodeGroupItem title="npm" active> ```bash:no-line-numbers npm install @@ -93,19 +95,19 @@ npm install ::: code-tabs -@tab PNPM +@tab pnpm ```bash:no-line-numbers pnpm install ``` -@tab YARN +@tab yarn ```bash:no-line-numbers yarn install ``` -@tab:active NPM +@tab:active npm ```bash:no-line-numbers npm install diff --git a/docs/zh/reference/default-theme/config.md b/docs/zh/reference/default-theme/config.md index 9c5f1cf0..5a892c2d 100644 --- a/docs/zh/reference/default-theme/config.md +++ b/docs/zh/reference/default-theme/config.md @@ -366,7 +366,7 @@ export default { '/guide/': [ { text: 'Guide', - children: ['/guide/README.md', '/guide/getting-started.md'], + children: ['/guide/introduction.md', '/guide/getting-started.md'], }, ], '/reference/': [ diff --git a/docs/zh/reference/default-theme/extending.md b/docs/zh/reference/default-theme/extending.md index 4e7a5cd4..d701ccc1 100644 --- a/docs/zh/reference/default-theme/extending.md +++ b/docs/zh/reference/default-theme/extending.md @@ -29,7 +29,7 @@ VuePress 提供了继承主题的基础能力,但不同的主题可能会提 首先,创建一个客户端配置文件 `.vuepress/client.ts` : ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import Layout from './layouts/Layout.vue' export default defineClientConfig({ @@ -74,15 +74,19 @@ import ParentLayout from '@vuepress/theme-default/layouts/Layout.vue' 接下来,如果你想要替换 `HomeFooter.vue` 组件,只需要在配置文件 `.vuepress/config.ts` 中覆盖这个别名即可: ```ts -import { getDirname, path } from '@vuepress/utils' -import { defaultTheme, defineUserConfig } from 'vuepress' +import { defaultTheme } from '@vuepress/theme-default' +import { getDirname, path } from 'vuepress/utils' +import { defineUserConfig } from 'vuepress' const __dirname = getDirname(import.meta.url) export default defineUserConfig({ theme: defaultTheme(), alias: { - '@theme/HomeFooter.vue': path.resolve(__dirname, './components/MyHomeFooter.vue'), + '@theme/HomeFooter.vue': path.resolve( + __dirname, + './components/MyHomeFooter.vue', + ), }, }) ``` @@ -92,9 +96,9 @@ export default defineUserConfig({ 除了在 `.vuepress/config.ts` 和 `.vuepress/client.ts` 中直接扩展默认主题以外,你可以通过继承默认主题来开发一个你自己的主题: ```ts -import type { Theme } from '@vuepress/core' import { defaultTheme, type DefaultThemeOptions } from '@vuepress/theme-default' -import { getDirname, path } from '@vuepress/utils' +import type { Theme } from 'vuepress/core' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -109,7 +113,10 @@ export const childTheme = (options: DefaultThemeOptions): Theme => { // 覆盖组件别名 alias: { - '@theme/HomeFooter.vue': path.resolve(__dirname, './components/MyHomeFooter.vue'), + '@theme/HomeFooter.vue': path.resolve( + __dirname, + './components/MyHomeFooter.vue', + ), }, } } diff --git a/docs/zh/reference/default-theme/frontmatter.md b/docs/zh/reference/default-theme/frontmatter.md index 9877a0f1..a8d81dcf 100644 --- a/docs/zh/reference/default-theme/frontmatter.md +++ b/docs/zh/reference/default-theme/frontmatter.md @@ -192,7 +192,7 @@ actions: link: /zh/guide/getting-started.html type: primary - text: 项目简介 - link: /guide/ + link: /zh/guide/introduction.html type: secondary --- ``` diff --git a/docs/zh/reference/default-theme/markdown.md b/docs/zh/reference/default-theme/markdown.md index 04d9ce7d..f774fdda 100644 --- a/docs/zh/reference/default-theme/markdown.md +++ b/docs/zh/reference/default-theme/markdown.md @@ -78,9 +78,11 @@ icon: fa6-brands:markdown ::: ::: details 点击查看代码 + ```ts console.log('你好,VuePress!') ``` + ::: ```` @@ -91,9 +93,11 @@ console.log('你好,VuePress!') ::: ::: details 点击查看代码 + ```ts console.log('你好,VuePress!') ``` + ::: - 示例 3 (Code Group 别名): @@ -103,29 +107,34 @@ console.log('你好,VuePress!') ````md :::: code-group ::: code-group-item FOO + ```ts const foo = 'foo' ``` + ::: + ::: code-group-item BAR + ```ts const bar = 'bar' ``` + ::: :::: ```` **输出** -:::: code-tabs - -@tab FOO +:::: code-group +::: code-group-item FOO ```ts const foo = 'foo' ``` -@tab BAR +::: +::: code-group-item BAR ```ts const bar = 'bar' diff --git a/docs/zh/reference/frontmatter.md b/docs/zh/reference/frontmatter.md index df53e4b8..847afe28 100644 --- a/docs/zh/reference/frontmatter.md +++ b/docs/zh/reference/frontmatter.md @@ -49,11 +49,11 @@ head: - - meta - name: foo content: yaml 数组语法 - - [meta, { name: bar , content: 方括号语法 }] + - [meta, { name: bar, content: 方括号语法 }] --- ``` - 渲染为: +渲染为: ```html <head> @@ -96,7 +96,7 @@ head: 在 `.vuepress/client.ts` 文件中注册一个布局组件: ```ts -import { defineClientConfig } from '@vuepress/client' +import { defineClientConfig } from 'vuepress/client' import CustomLayout from './CustomLayout.vue' export default defineClientConfig({ @@ -143,13 +143,13 @@ layout: CustomLayout - 使用: - | Pattern | 描述 | - |-----------|-------------------| - | `:year` | 创建日期的 年 部分 | - | `:month` | 创建日期的 月 部分 | - | `:day` | 创建日期的 日 部分 | - | `:slug` | 页面文件名的 Slug | - | `:raw` | 原始路由路径 | + | Pattern | 描述 | + | -------- | ------------------ | + | `:year` | 创建日期的 年 部分 | + | `:month` | 创建日期的 月 部分 | + | `:day` | 创建日期的 日 部分 | + | `:slug` | 页面文件名的 Slug | + | `:raw` | 原始路由路径 | `:year`, `:month` 和 `:day` Pattern 根据如下优先级进行解析: @@ -171,7 +171,7 @@ permalinkPattern: :year/:month/:day/:slug.html --- ``` - 那么页面的永久链接将会是 `2021/01/03/foo-bar.html` 。 +那么页面的永久链接将会是 `2021/01/03/foo-bar.html` 。 - 示例 2 : @@ -185,7 +185,7 @@ permalinkPattern: :year/:month/:day/:slug.html --- ``` - 那么页面的永久链接将会是 `2021/01/03/bar-baz.html` 。 +那么页面的永久链接将会是 `2021/01/03/bar-baz.html` 。 - 参考: - [配置 > permalinkPattern](./config.md#permalinkpattern) diff --git a/docs/zh/reference/node-api.md b/docs/zh/reference/node-api.md index 2078790c..0a2bc669 100644 --- a/docs/zh/reference/node-api.md +++ b/docs/zh/reference/node-api.md @@ -6,7 +6,7 @@ icon: fa6-brands:node-js <NpmBadge package="@vuepress/core" /> -Node API 是由 [@vuepress/core](https://www.npmjs.com/package/@vuepress/core) 包提供的。它是 [vuepress](https://www.npmjs.com/package/vuepress) 包的依赖之一,当然你也可以单独安装它: +Node API 是由 [@vuepress/core](https://www.npmjs.com/package/@vuepress/core) 包提供的,同时也可以通过 `vuepress/core` 来引入。 ```bash npm i -D @vuepress/core@next @@ -28,9 +28,9 @@ const createBuildApp: (config: AppConfig) => BuildApp - 参数: -| 参数 | 类型 | 描述 | -|-----------|-------------|---------------------------| -| config | `AppConfig` | 创建 VuePress App 的选项。 | +| 参数 | 类型 | 描述 | +| ------ | ----------- | -------------------------- | +| config | `AppConfig` | 创建 VuePress App 的选项。 | - 详情: @@ -69,9 +69,9 @@ const createDevApp: (config: AppConfig) => DevApp - 参数: -| 参数 | 类型 | 描述 | -|-----------|-------------|---------------------------| -| config | `AppConfig` | 创建 VuePress App 的选项。 | +| 参数 | 类型 | 描述 | +| ------ | ----------- | -------------------------- | +| config | `AppConfig` | 创建 VuePress App 的选项。 | - 详情: @@ -191,6 +191,7 @@ const dev = async () => { ### dir - 工具函数: + - `dir.cache()`: 解析至缓存目录 - `dir.temp()`: 解析至临时文件目录 - `dir.source()`: 解析至源文件目录 @@ -227,10 +228,10 @@ writeTemp(file: string, content: string): Promise<string> - 参数: -| 参数 | 类型 | 描述 | -|-----------|----------|-------------------------------------------| -| file | `string` | 要写入的临时文件的路径,相对于临时文件目录。 | -| content | `string` | 要写入的临时文件路径的内容。 | +| 参数 | 类型 | 描述 | +| ------- | -------- | -------------------------------------------- | +| file | `string` | 要写入的临时文件的路径,相对于临时文件目录。 | +| content | `string` | 要写入的临时文件路径的内容。 | - 详情: @@ -342,7 +343,7 @@ const createPage: (app: App, options: PageOptions) => Promise<Page> - 示例: ```ts -import { createPage } from '@vuepress/core' +import { createPage } from 'vuepress/core' export default { // 在 onInitialized hook 中创建一个额外页面 @@ -415,6 +416,7 @@ export default { 该 Page 的语言。 - 示例: + - `'en-US'` - `'zh-CN'` @@ -502,6 +504,7 @@ interface PageData { 该 Page 的日期,遵从 'yyyy-MM-dd' 格式。 - 示例: + - `'0000-00-00'` - `'2021-08-16`' @@ -565,6 +568,7 @@ interface MarkdownLink { 如果该 Page 不是来自于 Markdown 源文件,那么该属性会为 `null` 。 - 示例: + - `'/'` - `'/foo.html'` @@ -583,6 +587,7 @@ interface MarkdownLink { 它是根据页面的 Markdown 源文件相对路径、以及用户配置的 `locales` 的键推断得到的。 - 示例: + - `'/'` - `'/en/'` - `'/zh/'` diff --git a/docs/zh/reference/plugin-api.md b/docs/zh/reference/plugin-api.md index 441b5552..74e218f6 100644 --- a/docs/zh/reference/plugin-api.md +++ b/docs/zh/reference/plugin-api.md @@ -90,7 +90,7 @@ icon: fa6-solid:plug - 示例: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -114,7 +114,7 @@ export default { - 示例: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -177,11 +177,13 @@ export default { bundlerOptions.vuePluginOptions ??= {} bundlerOptions.vuePluginOptions.template ??= {} bundlerOptions.vuePluginOptions.template.compilerOptions ??= {} - const isCustomElement = bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement - bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement = (tag) => { - if (isCustomElement?.(tag)) return true - if (tag === 'my-custom-element') return true - } + const isCustomElement = + bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement + bundlerOptions.vuePluginOptions.template.compilerOptions.isCustomElement = + (tag) => { + if (isCustomElement?.(tag)) return true + if (tag === 'my-custom-element') return true + } } // 修改 @vuepress/bundler-webpack 的配置项 @@ -313,7 +315,7 @@ export default { 在客户端组件中: ```ts -import { usePageData } from '@vuepress/client' +import { usePageData } from 'vuepress/client' export default { setup() { diff --git a/docs/zh/reference/plugin/back-to-top.md b/docs/zh/reference/plugin/back-to-top.md index 5c661478..79de8e14 100644 --- a/docs/zh/reference/plugin/back-to-top.md +++ b/docs/zh/reference/plugin/back-to-top.md @@ -16,9 +16,7 @@ npm i -D @vuepress/plugin-back-to-top@next import { backToTopPlugin } from '@vuepress/plugin-back-to-top' export default { - plugins: [ - backToTopPlugin(), - ], + plugins: [backToTopPlugin()], } ``` diff --git a/docs/zh/reference/plugin/container.md b/docs/zh/reference/plugin/container.md index 730fe078..e6d201ba 100644 --- a/docs/zh/reference/plugin/container.md +++ b/docs/zh/reference/plugin/container.md @@ -93,12 +93,14 @@ export default { - 默认值: +<!-- prettier-ignore-start --> ```ts (info: string): string => `<div class="custom-container ${type}">${ info ? `<p class="custom-container-title">${info}</p>` : '' }\n` ``` +<!-- prettier-ignore-end --> - 详情: @@ -114,9 +116,11 @@ export default { - 默认值: +<!-- prettier-ignore-start --> ```ts (): string => '</div>\n' ``` +<!-- prettier-ignore-end --> - 详情: diff --git a/docs/zh/reference/plugin/git.md b/docs/zh/reference/plugin/git.md index fd658561..1419b325 100644 --- a/docs/zh/reference/plugin/git.md +++ b/docs/zh/reference/plugin/git.md @@ -95,8 +95,8 @@ gitInclude: 在使用该插件后,可以在页面数据中获取该插件收集到的 Git 信息: ```ts -import { usePageData } from '@vuepress/client' import type { GitPluginPageData } from '@vuepress/plugin-git' +import { usePageData } from 'vuepress/client' export default { setup() { diff --git a/docs/zh/reference/plugin/nprogress.md b/docs/zh/reference/plugin/nprogress.md index 01e25a30..2e1a600b 100644 --- a/docs/zh/reference/plugin/nprogress.md +++ b/docs/zh/reference/plugin/nprogress.md @@ -24,9 +24,7 @@ npm i -D @vuepress/plugin-nprogress@next import { nprogressPlugin } from '@vuepress/plugin-nprogress' export default { - plugins: [ - nprogressPlugin(), - ], + plugins: [nprogressPlugin()], } ``` diff --git a/docs/zh/reference/plugin/palette.md b/docs/zh/reference/plugin/palette.md index a6e53e0a..3499c994 100644 --- a/docs/zh/reference/plugin/palette.md +++ b/docs/zh/reference/plugin/palette.md @@ -41,9 +41,7 @@ export default { ```ts export default { // ... - plugins: [ - palettePlugin({ preset: 'sass' }), - ], + plugins: [palettePlugin({ preset: 'sass' })], } ``` @@ -114,6 +112,7 @@ h1 { - 类型: `string` - 默认值: + - css: `'.vuepress/styles/palette.css'` - sass: `'.vuepress/styles/palette.scss'` - less: `'.vuepress/styles/palette.less'` @@ -132,6 +131,7 @@ h1 { - 类型: `string` - 默认值: + - css: `'styles/palette.css'` - sass: `'styles/palette.scss'` - less: `'styles/palette.less'` @@ -150,6 +150,7 @@ h1 { - 类型: `string` - 默认值: + - css: `'.vuepress/styles/index.css'` - sass: `'.vuepress/styles/index.scss'` - less: `'.vuepress/styles/index.less'` @@ -168,6 +169,7 @@ h1 { - 类型: `string` - 默认值: + - css: `'styles/index.css'` - sass: `'styles/index.scss'` - less: `'styles/index.less'` @@ -186,6 +188,7 @@ h1 { - 类型: `(filePath: string) => string` - 默认值: + - css: `` (filePath) => `@import '${filePath}';\n` `` - sass: `` (filePath) => `@forward 'file:///${filePath}';\n` `` - less: `` (filePath) => `@import '${filePath}';\n` `` diff --git a/docs/zh/reference/plugin/register-components.md b/docs/zh/reference/plugin/register-components.md index 622158e1..403f2593 100644 --- a/docs/zh/reference/plugin/register-components.md +++ b/docs/zh/reference/plugin/register-components.md @@ -41,7 +41,7 @@ export default { - 示例: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -71,7 +71,7 @@ export default { - 示例: ```ts -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) diff --git a/docs/zh/reference/plugin/shiki.md b/docs/zh/reference/plugin/shiki.md index 1012b3d8..2126a84e 100644 --- a/docs/zh/reference/plugin/shiki.md +++ b/docs/zh/reference/plugin/shiki.md @@ -2,10 +2,10 @@ <NpmBadge package="@vuepress/plugin-shiki" /> -该插件使用 [Shiki](https://shiki.matsu.io/) 来为 Markdown 代码块启用代码高亮。 +该插件使用 [Shiki](https://shiki.matsu.io/) ([Shikiji](https://shikiji.netlify.app/)) 来为 Markdown 代码块启用代码高亮。 ::: tip -[Shiki](https://shiki.matsu.io/) 是 VSCode 正在使用的代码高亮器。它具有更高的保真度,但比 [Prism.js](https://prismjs.com/) 要慢一些,特别是在有大量代码块需要处理的时候。 +[Shiki](https://shiki.matsu.io/) 是 VSCode 正在使用的代码高亮器。它具有更高的保真度,但可能会比 [Prism.js](https://prismjs.com/) 要慢一些,特别是在有大量代码块需要处理的时候。 你可以考虑在 `dev` 模式下禁用该插件来获取更好的开发体验。 ::: @@ -23,6 +23,7 @@ export default { plugins: [ shikiPlugin({ // 配置项 + langs: ['ts', 'json', 'vue', 'md', 'bash', 'diff'], }), ], } @@ -30,34 +31,45 @@ export default { ## 配置项 +### langs + +- 类型: `ShikiLang[]` + +- 详情: + + Shikiji 要解析的代码块的语言。 + + 该配置项会被传递到 Shikiji 的 `getHighlighter()` 方法中。 + + 你需要明确传入所有你使用的语言列表,否则 Shikiji 将不会加载任何语言。 + +- 参考: + - [shikiji > Languages](https://shikiji.netlify.app/languages) + ### theme -- 类型: `IThemeRegistration` +- 类型: `ShikiTheme` - 默认值: `'nord'` - 详情: - Shiki 的主题。 + Shikiji 的主题。 - 该配置项会被传递到 Shiki 的 `getHighlighter()` 方法中。 + 该配置项会被传递到 Shikiji 的 `codeToHtml()` 方法中。 - 参考: - - [shiki > themes](https://github.com/shikijs/shiki/blob/master/docs/themes.md) + - [shikiji > Themes](https://shikiji.netlify.app/themes) -### langs - -- 类型: `(Lang | ILanguageRegistration)[]` +### themes -- 默认值: `[]` +- 类型:`Record<'dark' | 'light', ShikiTheme>` - 详情: - Shiki 的语言。 - - 该配置项会被传递到 Shiki 的 `getHighlighter()` 方法中。 + Shikiji 的暗黑和明亮模式双主题。 - 如果没有传入语言, Shiki 会自动加载所有可用的语言。 + 该配置项会被传递到 Shikiji 的 `codeToHtml()` 方法中。 - 参考: - - [shiki > languages](https://github.com/shikijs/shiki/blob/master/docs/languages.md) + - [shikiji > Dual Themes](https://shikiji.netlify.app/guide/dual-themes) diff --git a/docs/zh/reference/plugin/theme-data.md b/docs/zh/reference/plugin/theme-data.md index bf4e2a25..ed4a3ca6 100644 --- a/docs/zh/reference/plugin/theme-data.md +++ b/docs/zh/reference/plugin/theme-data.md @@ -70,7 +70,7 @@ export default { - 详情: 返回主题数据的 Ref 对象。 - + 数据是通过 [themeData](#themeData) 配置项提供的。 - 示例: diff --git a/docs/zh/reference/plugin/toc.md b/docs/zh/reference/plugin/toc.md index f6ede78d..31c8b6b6 100644 --- a/docs/zh/reference/plugin/toc.md +++ b/docs/zh/reference/plugin/toc.md @@ -28,6 +28,7 @@ export default { ```md <!-- Markdown 目录语法 --> + [[toc]] <!-- Vue 目录组件 --> @@ -159,7 +160,9 @@ const defaultOptions = { <!-- item --> <li class="vuepress-toc-item"> <!-- link (active) --> - <RouterLink class="vuepress-toc-link active" to="#bar-child">Bar Child</RouterLink> + <RouterLink class="vuepress-toc-link active" to="#bar-child"> + Bar Child + </RouterLink> </li> </ul> </li> diff --git a/docs/zh/reference/theme-api.md b/docs/zh/reference/theme-api.md index 2134818d..1d5d4681 100644 --- a/docs/zh/reference/theme-api.md +++ b/docs/zh/reference/theme-api.md @@ -50,7 +50,7 @@ VuePress 主题同样是一个插件,因此主题 API 可以接收 [插件 API ```ts import { defaultTheme } from '@vuepress/theme-default' -import { getDirname, path } from '@vuepress/utils' +import { getDirname, path } from 'vuepress/utils' const __dirname = getDirname(import.meta.url) @@ -86,7 +86,7 @@ export default { ### templateBuildRenderer -- 类型: `TemplateRenderer` from `@vuepress/utils` +- 类型: `TemplateRenderer` - 详情: diff --git a/package.json b/package.json index 4d8eb0e6..3c144b00 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "docs:dev": "vuepress-cli dev docs --clean-cache --clean-temp", "docs:dev-webpack": "DOCS_BUNDLER=webpack pnpm docs:dev", "docs:serve": "anywhere -s -h localhost -d docs/.vuepress/dist", - "docs:lint": "prettier --check --write ." + "format": "prettier --write .", + "lint": "eslint --ext .cjs,.js,.ts,.vue . && prettier --check ." }, "commitlint": { "extends": [ @@ -43,29 +44,28 @@ "@vuepress/plugin-register-components": "2.0.0-rc.0", "@vuepress/plugin-search": "2.0.0-rc.0", "@vuepress/plugin-shiki": "2.0.0-rc.0", - "@vuepress/theme-default": "2.0.0-rc.0", "@vuepress/utils": "2.0.0-rc.0", "anywhere": "^1.6.0", "sass-loader": "^13.3.2", "vue": "^3.3.9", - "vuepress-theme-hope": "2.0.0-rc.2" + "vuepress-theme-hope": "2.0.0-rc.7" }, "devDependencies": { "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", - "eslint": "^8.55.0", - "eslint-config-vuepress": "^4.7.0", - "eslint-config-vuepress-typescript": "^4.7.0", + "eslint": "^8.56.0", + "eslint-config-vuepress": "^4.10.0", + "eslint-config-vuepress-typescript": "^4.10.0", "husky": "^8.0.3", - "lint-staged": "^15.1.0", - "prettier": "^3.1.0", + "lint-staged": "^15.2.0", + "prettier": "^3.1.1", "prettier-config-vuepress": "^4.4.0", "rimraf": "^5.0.5", "sort-package-json": "^2.6.0", "tsconfig-vuepress": "^4.5.0", - "typescript": "^5.3.2" + "typescript": "^5.3.3" }, - "packageManager": "pnpm@8.11.0", + "packageManager": "pnpm@8.13.1", "engines": { "node": ">=18.16.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86dffa15..21bc0bb9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,52 +7,49 @@ settings: dependencies: '@vuepress/bundler-vite': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(@types/node@18.19.1)(typescript@5.3.2) + version: 2.0.0-rc.0(@types/node@18.19.1)(typescript@5.3.3) '@vuepress/bundler-webpack': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/cli': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/client': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/core': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-back-to-top': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-docsearch': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(@algolia/client-search@4.20.0)(search-insights@2.11.0)(typescript@5.3.2) + version: 2.0.0-rc.0(@algolia/client-search@4.20.0)(search-insights@2.11.0)(typescript@5.3.3) '@vuepress/plugin-external-link-icon': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-google-analytics': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-medium-zoom': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-nprogress': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-pwa-popup': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-register-components': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-search': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/plugin-shiki': specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/theme-default': - specifier: 2.0.0-rc.0 - version: 2.0.0-rc.0(sass-loader@13.3.2)(typescript@5.3.2) + version: 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': specifier: 2.0.0-rc.0 version: 2.0.0-rc.0 @@ -64,36 +61,36 @@ dependencies: version: 13.3.2(webpack@5.89.0) vue: specifier: ^3.3.9 - version: 3.3.9(typescript@5.3.2) + version: 3.3.9(typescript@5.3.3) vuepress-theme-hope: - specifier: 2.0.0-rc.2 - version: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) + specifier: 2.0.0-rc.7 + version: 2.0.0-rc.7(markdown-it@13.0.2)(sass-loader@13.3.2)(typescript@5.3.3) devDependencies: '@commitlint/cli': specifier: ^18.4.3 - version: 18.4.3(typescript@5.3.2) + version: 18.4.3(typescript@5.3.3) '@commitlint/config-conventional': specifier: ^18.4.3 version: 18.4.3 eslint: - specifier: ^8.55.0 - version: 8.55.0 + specifier: ^8.56.0 + version: 8.56.0 eslint-config-vuepress: - specifier: ^4.7.0 - version: 4.7.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + specifier: ^4.10.0 + version: 4.10.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) eslint-config-vuepress-typescript: - specifier: ^4.7.0 - version: 4.7.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) + specifier: ^4.10.0 + version: 4.10.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) husky: specifier: ^8.0.3 version: 8.0.3 lint-staged: - specifier: ^15.1.0 - version: 15.1.0 + specifier: ^15.2.0 + version: 15.2.0 prettier: - specifier: ^3.1.0 - version: 3.1.0 + specifier: ^3.1.1 + version: 3.1.1 prettier-config-vuepress: specifier: ^4.4.0 version: 4.4.0 @@ -107,8 +104,8 @@ devDependencies: specifier: ^4.5.0 version: 4.5.0 typescript: - specifier: ^5.3.2 - version: 5.3.2 + specifier: ^5.3.3 + version: 5.3.3 packages: @@ -541,6 +538,14 @@ packages: '@babel/types': 7.23.5 dev: false + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.5 + dev: false + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} @@ -1433,14 +1438,14 @@ packages: to-fast-properties: 2.0.0 dev: false - /@commitlint/cli@18.4.3(typescript@5.3.2): + /@commitlint/cli@18.4.3(typescript@5.3.3): resolution: {integrity: sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==} engines: {node: '>=v18'} hasBin: true dependencies: '@commitlint/format': 18.4.3 '@commitlint/lint': 18.4.3 - '@commitlint/load': 18.4.3(typescript@5.3.2) + '@commitlint/load': 18.4.3(typescript@5.3.3) '@commitlint/read': 18.4.3 '@commitlint/types': 18.4.3 execa: 5.1.1 @@ -1510,7 +1515,7 @@ packages: '@commitlint/types': 18.4.3 dev: true - /@commitlint/load@18.4.3(typescript@5.3.2): + /@commitlint/load@18.4.3(typescript@5.3.3): resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} engines: {node: '>=v18'} dependencies: @@ -1520,8 +1525,8 @@ packages: '@commitlint/types': 18.4.3 '@types/node': 18.19.1 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.2) - cosmiconfig-typescript-loader: 5.0.0(@types/node@18.19.1)(cosmiconfig@8.3.6)(typescript@5.3.2) + cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.19.1)(cosmiconfig@8.3.6)(typescript@5.3.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -1838,13 +1843,13 @@ packages: dev: false optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -1870,8 +1875,8 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1952,8 +1957,8 @@ packages: resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} dev: false - /@lit/reactive-element@1.6.3: - resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} + /@lit/reactive-element@2.0.2: + resolution: {integrity: sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==} dependencies: '@lit-labs/ssr-dom-shim': 1.1.2 dev: false @@ -2021,8 +2026,8 @@ packages: resolution: {integrity: sha512-xeF5+sHLzRNF7plbksywKCph4qli20l72of2fMlZQQ7RECvXYrRkE9+bjRFQCyULC7B8ydUYbpbkux5xJlVWyw==} dev: false - /@mdit/plugin-alert@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-5+xY/F/aY22cqFslFgKXXBGYkjsBjUOpoyTMkW3xSIBa1Vp1t48RoNmsv1CULhJH/hlHhJU0NFSj4xplUbrI+w==} + /@mdit/plugin-alert@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-Z+/bHBDniCz/Q+TMa3M6f47KG4tUKvJI8FHXhDwgbKLzDLn045ZBHcOTeqvuWrrjCIKBEo4fVAlYszYcehxmfg==} peerDependencies: markdown-it: ^13.0.2 peerDependenciesMeta: @@ -2033,8 +2038,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-align@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-Yr1+bh2zeDm/lmeT72+oWD0UsU9rYQQG44gIOT+LaVqNN0Uj5mcFbhHAbgyX3O28yy+i3WpE41orezNzwLaGFg==} + /@mdit/plugin-align@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-NYGrsnX1c84dtY1tugDVX71zxxfcGSIjWANzQ0/od4B0+N31eXkq3SXdAjCXOWUUHSa6phfvtok+x4V9ExQwHA==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2042,13 +2047,13 @@ packages: markdown-it: optional: true dependencies: - '@mdit/plugin-container': 0.7.5(markdown-it@13.0.2) + '@mdit/plugin-container': 0.7.6(markdown-it@13.0.2) '@types/markdown-it': 13.0.7 markdown-it: 13.0.2 dev: false - /@mdit/plugin-attrs@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-sI6xFfpaA3IvX13Vn4jz8nVaiDihiRI9v6ZJCUrUKxuhOSi8L9+Ig77D8XsnN9I50tqNXAdTXIh1zvCd9r+DBA==} + /@mdit/plugin-attrs@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-vTSsqZUXglZRQ4cLNou6N2cTLudHS01Tir+HPtrWkN+VB4VAIRlCKV3hf0vzKRM+HR3DSe+vQMrWzfnQdD0o4A==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2060,8 +2065,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-container@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-2SyaDa/5Ndgbhdg5MOXZs5dUb0g/Kv3bkrwo2Xfk7XIyPFkItMNN3G1atpkmu/iHlEBghM6qTCBz/3H9X+mpjw==} + /@mdit/plugin-container@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-egEYoJLkar4hxrBfFf6tO3IfoLzeUHYChGRI3FA2fxiMwwyclPvBMMQTtG2rY3sjPy497Z86QiqYwjRM0qA8Mw==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2073,8 +2078,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-demo@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-tlfgkT8NTEzK7MyoklwKKgd1244wzyZrkqhLSKq2k8ALDpy9KTa0G/QUlPcxJo9iO9JAAiY1yZrfYfFBLu6bPA==} + /@mdit/plugin-demo@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-pybxLVpIKYlxt7fgjHK4Zd6f/IMCjACB6eZmIIlow0eOnijRnikHdRDVkoyDOxcFuQvP0yvT6LWcQlhHF+CGwQ==} peerDependencies: markdown-it: ^13.0.2 peerDependenciesMeta: @@ -2085,8 +2090,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-figure@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-okCiYXfbxvLIYJIk9/Pe+S+OvbgDEq1GVdPi7yFLXmA3s6YDq89b1GUI7NSo1h+ZdajtIUElhXrll/dkFSJ+8Q==} + /@mdit/plugin-figure@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-ysH5O3WWuDrfxLWQO4wYXYGdo8oi+EbMQFgbaSTxhoPKTFf3HTovCn3RANn7qATBqmGP26zf0hY55mX9BFUu5A==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2098,8 +2103,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-footnote@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-TO4nytkKgX3bKGZ+ViMfCB/4qXi6Za1kgI7KhjFJEolS3lUl+ykW7oxz9KFAh7TxIir6BblBwi9D4Tbap0bWyg==} + /@mdit/plugin-footnote@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-fQvbi3+/Hm+k4GJptXCc5i0n9/+ZpQx4yqpjOTGGSUz1k22XU07YaK3wpL9w+nPAfcBfzD06D72Y+eDIG5wi8w==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2108,8 +2113,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-img-lazyload@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-Cpb4fiJO1zpnEX0nfhizOAZeqRdO7cL11iPz3J5liBmlqkhOpxz1ddAf8kfc4vaLAeNIK6hpgEDVHp/PInImLw==} + /@mdit/plugin-img-lazyload@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-BBgxlXCOO7+9TMHJXtUyvi48jlH4ZYQtC9lNfgu1rvmq56iblZ7etOzg61/CmXmLgMHNvCbb/Kx7gRLkOBhv6A==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2121,8 +2126,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-img-mark@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-X46NDPCC9ZUGXD3+bGvr8jbebazL67pcGeXMA2y9uHhd0gS5yZrZw//P1d10Q+JllH57ccNpFpTdVIPFB0FNWA==} + /@mdit/plugin-img-mark@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-IhbkmTLbxr+c04ZQcSV2IFq8n1GeRFO08qQagkONUijI1O2G/RE2y6QvCVBUy0gB1Hc8c1i9vEyK1F0e4GpheQ==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2134,8 +2139,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-img-size@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-c64l/xSLosjCJvquezhYif7I6Tc2Vnsi8wjuXYhwNYIpdLE0jbQrB6m8Hhw/RMzskm/NhseptIitUnSoDjgweg==} + /@mdit/plugin-img-size@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-GZGEbuR0l4+ENXDG1Y2HsrNO2JuEmjI6PPe7pgsolk5yveWOiqzcEV4ushrWnpvwNal3Acuj+dpFDmZFOtm42g==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2147,8 +2152,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-include@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-U7fivuMk9NBpksD1BSrMFDVJwTVzxGg0GHfnmkJEobT35v6qIa6wvGyz7igHOrXRUF3Jh01sHGR3YGonja+CbQ==} + /@mdit/plugin-include@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-4Pu0SdD2IOONLor/3GtQOYOBDv1xZ1LWByXLhht0kqEioX5D+aDZ5KD5MZ0AxH0xoNUGMynMEn/ak4/D9LLI7Q==} peerDependencies: markdown-it: ^13.0.2 peerDependenciesMeta: @@ -2160,8 +2165,8 @@ packages: upath: 2.0.1 dev: false - /@mdit/plugin-katex@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-6r+A5NesR55g6vITIS7zT/VnH+/mWU4GUlsutZo1DkktkEw4aAnJtkGy/8GAl/AdzDrN6qzwFF0jL1cyEOgh3g==} + /@mdit/plugin-katex@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-ZbPIks1SlgzS5R6YOL5s0J5vk20ROl5hF+Yj9o6CiEljodK2ln0ewpX36qM6POVrS/cu6E4Lx4X0fc5JTI6nAQ==} engines: {node: '>= 18'} peerDependencies: katex: ^0.16.9 @@ -2172,14 +2177,14 @@ packages: markdown-it: optional: true dependencies: - '@mdit/plugin-tex': 0.7.5(markdown-it@13.0.2) + '@mdit/plugin-tex': 0.7.6(markdown-it@13.0.2) '@types/katex': 0.16.7 '@types/markdown-it': 13.0.7 markdown-it: 13.0.2 dev: false - /@mdit/plugin-mark@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-vPiw8Gj3CLg1biwduXAyeDyLzCZ+Sowbee2JRmzK6ZbImRzNK+0p9wjRrLu7yjn2b8bR5n3iKQWZzw9Wh/ACBQ==} + /@mdit/plugin-mark@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-D9gv+ebVORa4r69t0JeJg3NW9gCR/NOGYa1DKYDEQOJoZ1WwjZVuhdxd3wCpLKtqDLnyHTFWd3cnV/HHrmca3w==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2191,8 +2196,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-mathjax@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-9DkfoDm3nbzLaZC5uoCz+fD3g0JVodh8d8xAeN2oa9Z0fw1FS58hJJ0tXh5JSxxbS6EYK8k6m8jujYIsc83fmA==} + /@mdit/plugin-mathjax@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-Sn3nYbkPftAF5tgemIJ1aClxgU4NnElHPV5PIgkMxwusaSsN4RB+GZ1NmTKrPUqVoIZi0pO1oYxy08TlIHcrPg==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2203,14 +2208,14 @@ packages: mathjax-full: optional: true dependencies: - '@mdit/plugin-tex': 0.7.5(markdown-it@13.0.2) + '@mdit/plugin-tex': 0.7.6(markdown-it@13.0.2) '@types/markdown-it': 13.0.7 markdown-it: 13.0.2 upath: 2.0.1 dev: false - /@mdit/plugin-stylize@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-+yJKp6iAdA69lP6MkScaBlowLReqXo0vMsKJ1mfdB6c78604Y8+SMAFhj1d2xmDgiysEFHZfnOR2E+XFOwr/ag==} + /@mdit/plugin-stylize@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-dhhYxo4KdnB66g1080qeuz8X/80q3h4Cpmwnwi2rCbQfl29Nv26H5tz5pp15NKQfdfVgrZnXXLsDskJeg5IcaQ==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2222,8 +2227,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-sub@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-0W/ra3chwbZ9apu/V7pYrr5SZzKSVn/v8cRYWwGwdBTLqtD+i343vkJPvw+BQZlZqVSOTYDmszExt/TAk/9Ehw==} + /@mdit/plugin-sub@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-jo60gUC2KwnG4SqtyrbyI16hOcxb+Y1LwUKxXKfZRbZbcPcOfrzjE8q7XEq4MhmU51mfqY6EvCoB0yo49Zh2QA==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2235,8 +2240,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-sup@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-nVg1JZ1xgv0aUWHZl4AdCVyi9eHeZ11IsiqqaJ4dYvkU/HOKFqP0yO5Gcwj2rMRWVfveAqR0Hvl6I6X11ynmRg==} + /@mdit/plugin-sup@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-bCR1DxNuPAyYOaTtl3VkrRc7dMsJjrqt9HnM9T1ZiprW08uciaT37fLXF7DeUHWhGpcklI9dFtaU5cQkjUosTg==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2248,8 +2253,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-tab@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-hAhp/dj0E67r/aycPcVVAd1Lhr6v/kwd1+kAdxClG1tENneUpl9QrLsJOj5ijrWCWfDpOsNtmK6o3v7Z3Guzgw==} + /@mdit/plugin-tab@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-kWwWmhv+PeeA9aC5InGyY4eJeIsCDDMhi1tbzyKW/wJ1eeFp+rpWpSfWwUe6QyTy/ZOhQ1nGXz0/uXI4xWz4Xw==} peerDependencies: markdown-it: ^13.0.2 peerDependenciesMeta: @@ -2260,8 +2265,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-tasklist@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-kBtHU4pUwwEMtSTdwU1Y+CMAGLLQONcnxoOFFVwW6u8BOTpIFBQR99VX9uBa6pV+JHgqeNYAlzFvkDA49Za4Ag==} + /@mdit/plugin-tasklist@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-ZsPHqQv/Cd9TUG3JfmrPOMRFR/SOG3/menWTz2kwE1HtJ1CUfBmoCRtfq2Sm7Rlqg/P6ZfWAd1t9bOwGkxD/5w==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2273,8 +2278,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-tex@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-76aRjqXZd5F5Xf20Z01uOwH98LkBhlyQqSjhN/BekJt72+iCIEsX8QyPDBtegniSPjA6z9kgb9ks1ap1w1ufGg==} + /@mdit/plugin-tex@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-TZfIJp98n7NI0TxDSxPs4Il1fqyJ/1GE3v8UZHA1DbfAdiVMxno/Dun9381ZxoJYibl+dnX3Kz7Ej3BDOceGGA==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2286,8 +2291,8 @@ packages: markdown-it: 13.0.2 dev: false - /@mdit/plugin-uml@0.7.5(markdown-it@13.0.2): - resolution: {integrity: sha512-xRuBr0mbueVYpV0BvdWO/VmqHbMeKfHflTN5dFazFFclk7a/5XR/XcmCJG0VaFHxDIWkSH7+BxcgjsugbSBcWQ==} + /@mdit/plugin-uml@0.7.6(markdown-it@13.0.2): + resolution: {integrity: sha512-P/aRntMnMfvtAEcLCkg6vhzNFEidj6jIno7VXr3HZNLitonr9ihnksM6jgrqG1rrMo4okBWUGFFGqsR8hHJk6g==} engines: {node: '>= 18'} peerDependencies: markdown-it: ^13.0.2 @@ -2741,8 +2746,8 @@ packages: '@types/node': 20.10.2 dev: false - /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} + /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -2753,25 +2758,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/type-utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} + /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2780,27 +2785,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 - eslint: 8.55.0 - typescript: 5.3.2 + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.13.1: - resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} + /@typescript-eslint/scope-manager@6.16.0: + resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 dev: true - /@typescript-eslint/type-utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} + /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -2809,23 +2814,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.55.0 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.13.1: - resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} + /@typescript-eslint/types@6.16.0: + resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): - resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} + /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): + resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -2833,42 +2838,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/visitor-keys': 6.16.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} + /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - eslint: 8.55.0 + '@typescript-eslint/scope-manager': 6.16.0 + '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.13.1: - resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} + /@typescript-eslint/visitor-keys@6.16.0: + resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/types': 6.16.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2884,7 +2890,7 @@ packages: vue: ^3.2.25 dependencies: vite: 5.0.4(@types/node@18.19.1) - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) dev: false /@vue/compiler-core@3.3.9: @@ -2896,6 +2902,16 @@ packages: source-map-js: 1.0.2 dev: false + /@vue/compiler-core@3.4.0: + resolution: {integrity: sha512-cw4S15PkNGTKkP9OFFl4wnQoJJk+HqaYBafgrpDnSukiQGpcYJeRpzmqnCVCIkl6V6Eqsv58E0OAdl6b592vuA==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.4.0 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: false + /@vue/compiler-dom@3.3.9: resolution: {integrity: sha512-nfWubTtLXuT4iBeDSZ5J3m218MjOy42Vp2pmKVuBKo2/BLcrFUX8nCSr/bKRFiJ32R8qbdnnnBgRn9AdU5v0Sg==} dependencies: @@ -2903,6 +2919,13 @@ packages: '@vue/shared': 3.3.9 dev: false + /@vue/compiler-dom@3.4.0: + resolution: {integrity: sha512-E957uOhpoE48YjZGWeAoLmNYd3UeU4oIP8kJi8Rcsb9l2tV8Z48Jn07Zgq1aW0v3vuhlmydEKkKKbhLpADHXEA==} + dependencies: + '@vue/compiler-core': 3.4.0 + '@vue/shared': 3.4.0 + dev: false + /@vue/compiler-sfc@3.3.9: resolution: {integrity: sha512-wy0CNc8z4ihoDzjASCOCsQuzW0A/HP27+0MDSSICMjVIFzk/rFViezkR3dzH+miS2NDEz8ywMdbjO5ylhOLI2A==} dependencies: @@ -2918,6 +2941,20 @@ packages: source-map-js: 1.0.2 dev: false + /@vue/compiler-sfc@3.4.0: + resolution: {integrity: sha512-PWE0mE2yW7bJS7PmaCrVDEG6KPaDJo0pb4AKnCxJ5lRRDO4IwL/fswBGhCpov+v/c+N/e+hQHpXNwvqU9BtUXg==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/compiler-core': 3.4.0 + '@vue/compiler-dom': 3.4.0 + '@vue/compiler-ssr': 3.4.0 + '@vue/shared': 3.4.0 + estree-walker: 2.0.2 + magic-string: 0.30.5 + postcss: 8.4.32 + source-map-js: 1.0.2 + dev: false + /@vue/compiler-ssr@3.3.9: resolution: {integrity: sha512-NO5oobAw78R0G4SODY5A502MGnDNiDjf6qvhn7zD7TJGc8XDeIEw4fg6JU705jZ/YhuokBKz0A5a/FL/XZU73g==} dependencies: @@ -2925,6 +2962,13 @@ packages: '@vue/shared': 3.3.9 dev: false + /@vue/compiler-ssr@3.4.0: + resolution: {integrity: sha512-+oXKy105g9DIYQKDi3Gwung0xqQX5gJHr0GR+Vf7yK/WkNDM6q61ummcKmKAB85EIst8y3vj2PA9z9YU5Oc4DQ==} + dependencies: + '@vue/compiler-dom': 3.4.0 + '@vue/shared': 3.4.0 + dev: false + /@vue/devtools-api@6.5.1: resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} dev: false @@ -2945,6 +2989,12 @@ packages: '@vue/shared': 3.3.9 dev: false + /@vue/reactivity@3.4.0: + resolution: {integrity: sha512-X6BvQjNcgKKHWPQzlRJjZvIu72Kkn8xJSv6VNptqWh8dToMknD0Hch1l4N7llKgVt6Diq4lMeUnErbZFvuGlAA==} + dependencies: + '@vue/shared': 3.4.0 + dev: false + /@vue/runtime-core@3.3.9: resolution: {integrity: sha512-xxaG9KvPm3GTRuM4ZyU8Tc+pMVzcu6eeoSRQJ9IE7NmCcClW6z4B3Ij6L4EDl80sxe/arTtQ6YmgiO4UZqRc+w==} dependencies: @@ -2952,6 +3002,13 @@ packages: '@vue/shared': 3.3.9 dev: false + /@vue/runtime-core@3.4.0: + resolution: {integrity: sha512-NYrj/JgMMqnSWcIud8lLzDQrBLu+EVEeQ56QE9DYJeKG2eFrnQy8o/h57R9nCprafHs0uImKL3xsdXjHseYVxw==} + dependencies: + '@vue/reactivity': 3.4.0 + '@vue/shared': 3.4.0 + dev: false + /@vue/runtime-dom@3.3.9: resolution: {integrity: sha512-e7LIfcxYSWbV6BK1wQv9qJyxprC75EvSqF/kQKe6bdZEDNValzeRXEVgiX7AHI6hZ59HA4h7WT5CGvm69vzJTQ==} dependencies: @@ -2960,6 +3017,14 @@ packages: csstype: 3.1.2 dev: false + /@vue/runtime-dom@3.4.0: + resolution: {integrity: sha512-1ZoHEsA5l77qbx2F+SWo/hQdBksPuOmww1t/jznidDG+xMB/iidafEFvo2ZTtZii0JfTIrlDhjshfYUvQC17wQ==} + dependencies: + '@vue/runtime-core': 3.4.0 + '@vue/shared': 3.4.0 + csstype: 3.1.3 + dev: false + /@vue/server-renderer@3.3.9(vue@3.3.9): resolution: {integrity: sha512-w0zT/s5l3Oa3ZjtLW88eO4uV6AQFqU8X5GOgzq7SkQQu6vVr+8tfm+OI2kDBplS/W/XgCBuFXiPw6T5EdwXP0A==} peerDependencies: @@ -2967,19 +3032,33 @@ packages: dependencies: '@vue/compiler-ssr': 3.3.9 '@vue/shared': 3.3.9 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) + dev: false + + /@vue/server-renderer@3.4.0(vue@3.4.0): + resolution: {integrity: sha512-GuOVCyLDlWPu8nKo5AUxb8B+iB/Ik4I1WwqAlBqf5+y48z6D6rvKshp7KR3cJea+pte1tdTsb0+Ja82KizMZOw==} + peerDependencies: + vue: 3.4.0 + dependencies: + '@vue/compiler-ssr': 3.4.0 + '@vue/shared': 3.4.0 + vue: 3.4.0(typescript@5.3.3) dev: false /@vue/shared@3.3.9: resolution: {integrity: sha512-ZE0VTIR0LmYgeyhurPTpy4KzKsuDyQbMSdM49eKkMnT5X4VfFBLysMzjIZhLEFQYjjOVVfbvUDHckwjDFiO2eA==} dev: false - /@vuepress/bundler-vite@2.0.0-rc.0(@types/node@18.19.1)(typescript@5.3.2): + /@vue/shared@3.4.0: + resolution: {integrity: sha512-Nhh3ed3G1R6HDAWiG6YYFt0Zmq/To6u5vjzwa9TIquGheCXPY6nEdIAO8ZdlwXsWqC2yNLj700FOvShpYt5CEA==} + dev: false + + /@vuepress/bundler-vite@2.0.0-rc.0(@types/node@18.19.1)(typescript@5.3.3): resolution: {integrity: sha512-rX8S8IYpqqlJfNPstS/joorpxXx/4WuE7+gDM31i2HUrxOKGZVzq8ZsRRRU2UdoTwHZSd3LpUS4sMtxE5xLK1A==} dependencies: '@vitejs/plugin-vue': 4.5.1(vite@5.0.4)(vue@3.3.9) - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 autoprefixer: 10.4.16(postcss@8.4.32) @@ -2988,7 +3067,7 @@ packages: postcss-load-config: 4.0.2(postcss@8.4.32) rollup: 4.6.1 vite: 5.0.4(@types/node@18.19.1) - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) vue-router: 4.2.5(vue@3.3.9) transitivePeerDependencies: - '@types/node' @@ -3004,13 +3083,13 @@ packages: - typescript dev: false - /@vuepress/bundler-webpack@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/bundler-webpack@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-PUbjaQCTE+pwkmHkozT4CCjdEiAEO89XOXKTO/VwEsv6hWNeT97fi7TnScV/x8R/9WeA45QrW3eHipMwkKJ8uQ==} dependencies: '@types/express': 4.17.21 '@types/webpack-env': 1.18.4 - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 autoprefixer: 10.4.16(postcss@8.4.32) @@ -3023,9 +3102,9 @@ packages: mini-css-extract-plugin: 2.7.6(webpack@5.89.0) postcss: 8.4.32 postcss-csso: 6.0.1(postcss@8.4.32) - postcss-loader: 7.3.3(postcss@8.4.32)(typescript@5.3.2)(webpack@5.89.0) + postcss-loader: 7.3.3(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0) style-loader: 3.3.3(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) vue-loader: 17.3.1(vue@3.3.9)(webpack@5.89.0) vue-router: 4.2.5(vue@3.3.9) webpack: 5.89.0 @@ -3046,11 +3125,11 @@ packages: - webpack-cli dev: false - /@vuepress/cli@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/cli@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-XWSIFO9iOR7N4O2lXIwS5vZuLjU9WU/aGAtmhMWEMxrdMx7TQaJbgrfpTUEbHMf+cPI1DXBbUbtmkqIvtfOV0w==} hasBin: true dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 cac: 6.7.14 @@ -3063,27 +3142,27 @@ packages: - typescript dev: false - /@vuepress/client@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/client@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-TwQx8hJgYONYxX+QltZ2aw9O5Ym6SKelfiUduuIRb555B1gece/jSVap3H/ZwyBhpgJMtG4+/Mrmf8nlDSHjvw==} dependencies: '@vue/devtools-api': 6.5.1 '@vuepress/shared': 2.0.0-rc.0 '@vueuse/core': 10.6.1(vue@3.3.9) - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) vue-router: 4.2.5(vue@3.3.9) transitivePeerDependencies: - '@vue/composition-api' - typescript dev: false - /@vuepress/core@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/core@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-uoOaZP1MdxZYJIAJcRcmYKKeCIVnxZeOuLMOOB9CPuAKSalT1RvJ1lztw6RX3q9SPnlqtSZPQXDncPAZivw4pA==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/markdown': 2.0.0-rc.0 '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color @@ -3113,40 +3192,40 @@ packages: - supports-color dev: false - /@vuepress/plugin-active-header-links@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-active-header-links@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-UJdXLYNGL5Wjy5YGY8M2QgqT75bZ95EHebbqGi8twBdIJE9O+bM+dPJyYtAk2PIVqFORiw3Hj+PchsNSxdn9+g==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 ts-debounce: 4.0.0 - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /@vuepress/plugin-back-to-top@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-back-to-top@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-6GPfuzV5lkAnR00BxRUhqMXwMWt741alkq2R6bln4N8BneSOwEpX/7vi19MGf232aKdS/Va4pF5p0/nJ8Sed/g==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 ts-debounce: 4.0.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /@vuepress/plugin-container@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-container@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-b7vrLN11YE7qiUDPfA3N9P7Z8fupe9Wbcr9KAE/bmfZ9VT4d6kzpVyoU7XHi99XngitsmnkaXP4aBvBF1c2AnA==} dependencies: '@types/markdown-it': 13.0.7 - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/markdown': 2.0.0-rc.0 '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 @@ -3158,19 +3237,19 @@ packages: - typescript dev: false - /@vuepress/plugin-docsearch@2.0.0-rc.0(@algolia/client-search@4.20.0)(search-insights@2.11.0)(typescript@5.3.2): + /@vuepress/plugin-docsearch@2.0.0-rc.0(@algolia/client-search@4.20.0)(search-insights@2.11.0)(typescript@5.3.3): resolution: {integrity: sha512-bFbb+RxNyoLVbojv3Fh3UNfMmx9tszdae5ni9nG2xa05giCRwGKT0wFG3Q6n0a9kIQ6V7z3PjCj9x1k4SALPEA==} dependencies: '@docsearch/css': 3.5.2 '@docsearch/js': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.11.0) '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(search-insights@2.11.0) - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 '@vueuse/core': 10.6.1(vue@3.3.9) ts-debounce: 4.0.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) vue-router: 4.2.5(vue@3.3.9) transitivePeerDependencies: - '@algolia/client-search' @@ -3183,25 +3262,25 @@ packages: - typescript dev: false - /@vuepress/plugin-external-link-icon@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-external-link-icon@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-o8bk0oIlj/BkKc02mq91XLDloq1VOz/8iNcRwKAeqBE6svXzdYiyoTGet0J/4iPuAetsCn75S57W6RioDJHMnQ==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/markdown': 2.0.0-rc.0 '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /@vuepress/plugin-git@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-git@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-r7UF77vZxaYeJQLygzodKv+15z3/dTLuGp4VcYO21W6BlJZvd4u9zqgiV7A//bZQvK4+3Hprylr0G3KgXqMewA==} dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 execa: 8.0.1 transitivePeerDependencies: @@ -3210,11 +3289,11 @@ packages: - typescript dev: false - /@vuepress/plugin-google-analytics@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-google-analytics@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-rkYW2LGkLAfRFtaFWVPr1V2mS6hwgYhn2hLeJAF5xHlC3PcjCiSV0cqH7ooeCo+FBJUlCtMQ9N8iSNl63vd7VQ==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 transitivePeerDependencies: - '@vue/composition-api' @@ -3222,27 +3301,27 @@ packages: - typescript dev: false - /@vuepress/plugin-medium-zoom@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-medium-zoom@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-peU1lYKsmKikIe/0pkJuHzD/k6xW2TuqdvKVhV4I//aOE1WxsREKJ4ACcldmoIsnysoDydAUqKT6xDPGyDsH2g==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 medium-zoom: 1.1.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /@vuepress/plugin-nprogress@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-nprogress@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-rI+eK0Pg1KiZE+7hGmDUeSbgdWCid8Vnw0hFKNmjinDzGVmx4m03M6qfvclsI0SryH+lR7itZGLaR4gbTlrz/w==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) vue-router: 4.2.5(vue@3.3.9) transitivePeerDependencies: - '@vue/composition-api' @@ -3250,22 +3329,10 @@ packages: - typescript dev: false - /@vuepress/plugin-palette@2.0.0-rc.0(typescript@5.3.2): - resolution: {integrity: sha512-wW70SCp3/K7s1lln5YQsBGTog2WXaQv5piva5zhXcQ47YGf4aAJpThDa5C/ot4HhkPOKn8Iz5s0ckxXZzW8DIg==} - dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/utils': 2.0.0-rc.0 - chokidar: 3.5.3 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - dev: false - - /@vuepress/plugin-prismjs@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-prismjs@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-c5WRI7+FhVjdbymOKQ8F2KY/Bnv7aQtWScVk8vCMUimNi7v7Wff/A/i3KSFNz/tge3LxiAeH/Dc2WS/OnQXwCg==} dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) prismjs: 1.29.0 transitivePeerDependencies: - '@vue/composition-api' @@ -3273,15 +3340,15 @@ packages: - typescript dev: false - /@vuepress/plugin-pwa-popup@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-pwa-popup@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-Bwanm6M6qJfFpyGgT6V16hJU9+51QVahBROXzVz2ePosgY2/6R2cjzVlQ5zlyISoVmuIwraTwFJ4PGt3hUVWTQ==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-pwa': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-pwa': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) transitivePeerDependencies: - '@types/babel__core' - '@vue/composition-api' @@ -3289,15 +3356,15 @@ packages: - typescript dev: false - /@vuepress/plugin-pwa@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-pwa@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-4ZKNzMH6sEq0RILhWG5fxHAUSVP0iaK7Y355/Rbr4/5YWKNmgbYdLn/6RhdTvFnEI2voL3bVM8ymtrsEwoNkEg==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 mitt: 3.0.1 register-service-worker: 1.7.2 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) workbox-build: 7.0.0 transitivePeerDependencies: - '@types/babel__core' @@ -3306,10 +3373,10 @@ packages: - typescript dev: false - /@vuepress/plugin-register-components@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-register-components@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-yN71x93j8ce99bqOwHn3lVfgiwsfhv21ByW/3em1kGXANjzOOoXOvt7ITbXNa5g6bsfjdJpoeUkUtFPwfK8dNA==} dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/utils': 2.0.0-rc.0 chokidar: 3.5.3 transitivePeerDependencies: @@ -3318,15 +3385,15 @@ packages: - typescript dev: false - /@vuepress/plugin-search@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-search@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-1ikJUgIN+7QrcAftxpWUKTrNVHEN2+k/az0Sjz7Ok7EthMHcG6qQsIb+AoK4WIQMsJkwVPLxwym/M1FbBTZDWQ==} dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 chokidar: 3.5.3 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) vue-router: 4.2.5(vue@3.3.9) transitivePeerDependencies: - '@vue/composition-api' @@ -3334,10 +3401,10 @@ packages: - typescript dev: false - /@vuepress/plugin-shiki@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-shiki@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-K06icizhp0zVUtWa6rqL/SKWzzSP+XgYizRoqwdMsGlYNThLXAf4cIseRjF+I4VOFS5aj5hZs8MnxymKmRrwIQ==} dependencies: - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) shiki: 0.14.5 transitivePeerDependencies: - '@vue/composition-api' @@ -3345,15 +3412,15 @@ packages: - typescript dev: false - /@vuepress/plugin-theme-data@2.0.0-rc.0(typescript@5.3.2): + /@vuepress/plugin-theme-data@2.0.0-rc.0(typescript@5.3.3): resolution: {integrity: sha512-FXY3/Ml+rM6gNKvwdBF6vKAcwnSvtXCzKgQwJAw3ppQTKUkLcbOxqM+h4d8bzHWAAvdnEvQFug5uEZgWllBQbA==} dependencies: '@vue/devtools-api': 6.5.1 - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color @@ -3367,39 +3434,6 @@ packages: '@vue/shared': 3.3.9 dev: false - /@vuepress/theme-default@2.0.0-rc.0(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-I8Y08evDmMuD1jh3NftPpFFSlCWOizQDJLjN7EQwcg7jiAP4A7c2REo6nBN2EmP24Mi7UrRM+RnytHR5V+pElA==} - peerDependencies: - sass-loader: ^13.3.2 - peerDependenciesMeta: - sass-loader: - optional: true - dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-active-header-links': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-back-to-top': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-container': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-external-link-icon': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-git': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-medium-zoom': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-nprogress': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-palette': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-prismjs': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-theme-data': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/shared': 2.0.0-rc.0 - '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) - sass: 1.69.5 - sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - dev: false - /@vuepress/utils@2.0.0-rc.0: resolution: {integrity: sha512-Q1ay/woClDHcW0Qe91KsnHoupdNN0tp/vhjvVLuAYxlv/1Obii7hz9WFcajyyGEhmsYxdvG2sGmcxFA02tuKkw==} dependencies: @@ -3430,10 +3464,26 @@ packages: - vue dev: false + /@vueuse/core@10.7.1(vue@3.4.0): + resolution: {integrity: sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==} + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.7.1 + '@vueuse/shared': 10.7.1(vue@3.4.0) + vue-demi: 0.14.6(vue@3.4.0) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + /@vueuse/metadata@10.6.1: resolution: {integrity: sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==} dev: false + /@vueuse/metadata@10.7.1: + resolution: {integrity: sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==} + dev: false + /@vueuse/shared@10.6.1(vue@3.3.9): resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==} dependencies: @@ -3443,6 +3493,15 @@ packages: - vue dev: false + /@vueuse/shared@10.7.1(vue@3.4.0): + resolution: {integrity: sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==} + dependencies: + vue-demi: 0.14.6(vue@3.4.0) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} dependencies: @@ -3657,11 +3716,11 @@ packages: '@algolia/transporter': 4.20.0 dev: false - /ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} + /ansi-escapes@6.2.0: + resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + engines: {node: '>=14.16'} dependencies: - type-fest: 1.4.0 + type-fest: 3.13.1 dev: true /ansi-html-community@0.0.8: @@ -3837,12 +3896,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /artplayer@5.0.9: - resolution: {integrity: sha512-IM/DShYdmKFEA9jl08LYbTK2Jfz9s7qIjEH0xWjnxvVArUKZZKcoqwr6i54U0c4grtc/Uvb4wtCd78kvtSVlgw==} - dependencies: - option-validator: 2.0.6 - dev: false - /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -4224,12 +4277,12 @@ packages: engines: {node: '>=6'} dev: false - /cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} dependencies: slice-ansi: 5.0.0 - string-width: 5.1.2 + string-width: 7.0.0 dev: true /cliui@6.0.0: @@ -4443,7 +4496,7 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: false - /cosmiconfig-typescript-loader@5.0.0(@types/node@18.19.1)(cosmiconfig@8.3.6)(typescript@5.3.2): + /cosmiconfig-typescript-loader@5.0.0(@types/node@18.19.1)(cosmiconfig@8.3.6)(typescript@5.3.3): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} peerDependencies: @@ -4452,12 +4505,12 @@ packages: typescript: '>=4' dependencies: '@types/node': 18.19.1 - cosmiconfig: 8.3.6(typescript@5.3.2) + cosmiconfig: 8.3.6(typescript@5.3.3) jiti: 1.21.0 - typescript: 5.3.2 + typescript: 5.3.3 dev: true - /cosmiconfig@8.3.6(typescript@5.3.2): + /cosmiconfig@8.3.6(typescript@5.3.3): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -4470,7 +4523,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.3.2 + typescript: 5.3.3 /create-codepen@1.0.1: resolution: {integrity: sha512-XzSWwGCFNeOnNGp3KdCDGaKq4Cp1SvjzpPGQqO0tj1HT3BhksLdl/xQ2ZEY4+0MQ3m1I/K1Fvpm4GGMthtamyA==} @@ -4555,6 +4608,10 @@ packages: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} dev: false + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: false + /dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} @@ -4833,7 +4890,6 @@ packages: /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - dev: false /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5018,25 +5074,40 @@ packages: engines: {node: '>=10'} dev: true - /eslint-compat-utils@0.1.2(eslint@8.55.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-prettier@9.1.0(eslint@8.55.0): + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 + dev: true + + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 + dependencies: + eslint: 8.56.0 + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + eslint-plugin-n: 16.3.1(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5045,20 +5116,20 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true - /eslint-config-vuepress-typescript@4.7.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-cSjq+ExpzUhDPsQqNGf5Doa0ZYwB4gjBUa6G92dvgtrXM/kteK4ZBSfNoueDuZRyYV+kQBEVdnwtGNmwXzRbxQ==} + /eslint-config-vuepress-typescript@4.10.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-fw9IDA51/syi3XDI/kUGrReVdmNjtGdwNyzj3LAzsRUmkqd4JS3U/+qRlN3/ReYhe1mmWCVrvBCrIrHxZsqEhA==} dependencies: - '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-config-vuepress: 4.7.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) - eslint-plugin-vue: 9.19.2(eslint@8.55.0) + '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-config-vuepress: 4.10.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + eslint-plugin-vue: 9.19.2(eslint@8.56.0) transitivePeerDependencies: - eslint - eslint-import-resolver-typescript @@ -5070,14 +5141,14 @@ packages: - typescript dev: true - /eslint-config-vuepress@4.7.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0): - resolution: {integrity: sha512-rbrzR/NFhZganSoAAq6c+IjS+JOrmsDs8z+6Ni7YnhbhmtsP0qRH/BLvfCk0JoQ0pvG3u8DmuZFZKfdRxuZ+iQ==} + /eslint-config-vuepress@4.10.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): + resolution: {integrity: sha512-gFH3sA4AVibyU4WkBs+0bz8IkDJMZ9cW6bSvoKJ9TAzIahKw3KCRNQZXY8xiVpjyAtYFVskZ2gpFoDMrPYV4yA==} dependencies: - eslint-config-prettier: 9.1.0(eslint@8.55.0) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.0(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint @@ -5096,7 +5167,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5117,27 +5188,27 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.5.0(eslint@8.55.0): + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -5147,16 +5218,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -5172,17 +5243,72 @@ packages: - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.55.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-n@16.3.1(eslint@8.56.0): resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + builtins: 5.0.1 + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) + get-tsconfig: 4.7.2 + ignore: 5.3.0 + is-builtin-module: 3.2.1 + is-core-module: 2.13.1 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 7.5.4 + dev: true + + /eslint-plugin-n@16.6.0(eslint@8.56.0): + resolution: {integrity: sha512-Ag3tYFF90lYU8JdHEl9qSSpeLYbVnO+Oj7sgPUarWUacv1mPL3d5h5yG4Bv3tLe71hrcxmgTi7oByYwKXaVatw==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.5.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 + globals: 13.24.0 ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 @@ -5191,28 +5317,28 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.55.0): + /eslint-plugin-promise@6.1.1(eslint@8.56.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-vue@9.19.2(eslint@8.55.0): + /eslint-plugin-vue@9.19.2(eslint@8.56.0): resolution: {integrity: sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - eslint: 8.55.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + eslint: 8.56.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.13 semver: 7.5.4 - vue-eslint-parser: 9.3.2(eslint@8.55.0) + vue-eslint-parser: 9.3.2(eslint@8.56.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -5239,15 +5365,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5702,6 +5828,11 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: true + /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: @@ -5744,10 +5875,10 @@ packages: engines: {node: '>=0.10.0'} dev: false - /giscus@1.3.0: - resolution: {integrity: sha512-A3tVLgSmpnh2sX9uGjo9MbzmTTEJirSyFUPRvkipvy37y9rhxUYDoh9kO37QVrP7Sc7QuJ+gihB6apkO0yDyTw==} + /giscus@1.4.0: + resolution: {integrity: sha512-Pll+pcclTx47NcFDw8nuka2Ja85Gc4XWpzSgL0rszOQaMQRQIV8UMR+zP4a+/N3tV2TXc1SZ537kWlsN6EsAaw==} dependencies: - lit: 2.8.0 + lit: 3.1.0 dev: false /git-hooks-list@3.1.0: @@ -5823,6 +5954,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -6326,6 +6464,13 @@ packages: engines: {node: '>=12'} dev: true + /is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + dependencies: + get-east-asian-width: 1.2.0 + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6666,15 +6811,9 @@ packages: type-check: 0.4.0 dev: true - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - /lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} - dev: false /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -6685,8 +6824,8 @@ packages: uc.micro: 1.0.6 dev: false - /lint-staged@15.1.0: - resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} + /lint-staged@15.2.0: + resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==} engines: {node: '>=18.12.0'} hasBin: true dependencies: @@ -6694,8 +6833,8 @@ packages: commander: 11.1.0 debug: 4.3.4 execa: 8.0.1 - lilconfig: 2.1.0 - listr2: 7.0.2 + lilconfig: 3.0.0 + listr2: 8.0.0 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 @@ -6704,38 +6843,38 @@ packages: - supports-color dev: true - /listr2@7.0.2: - resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} - engines: {node: '>=16.0.0'} + /listr2@8.0.0: + resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} + engines: {node: '>=18.0.0'} dependencies: - cli-truncate: 3.1.0 + cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 5.0.1 + log-update: 6.0.0 rfdc: 1.3.0 - wrap-ansi: 8.1.0 + wrap-ansi: 9.0.0 dev: true - /lit-element@3.3.3: - resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} + /lit-element@4.0.2: + resolution: {integrity: sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==} dependencies: '@lit-labs/ssr-dom-shim': 1.1.2 - '@lit/reactive-element': 1.6.3 - lit-html: 2.8.0 + '@lit/reactive-element': 2.0.2 + lit-html: 3.1.0 dev: false - /lit-html@2.8.0: - resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} + /lit-html@3.1.0: + resolution: {integrity: sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==} dependencies: '@types/trusted-types': 2.0.7 dev: false - /lit@2.8.0: - resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} + /lit@3.1.0: + resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} dependencies: - '@lit/reactive-element': 1.6.3 - lit-element: 3.3.3 - lit-html: 2.8.0 + '@lit/reactive-element': 2.0.2 + lit-element: 4.0.2 + lit-html: 3.1.0 dev: false /loader-runner@4.3.0: @@ -6824,15 +6963,15 @@ packages: is-unicode-supported: 1.3.0 dev: false - /log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + engines: {node: '>=18'} dependencies: - ansi-escapes: 5.0.0 + ansi-escapes: 6.2.0 cli-cursor: 4.0.0 - slice-ansi: 5.0.0 + slice-ansi: 7.1.0 strip-ansi: 7.1.0 - wrap-ansi: 8.1.0 + wrap-ansi: 9.0.0 dev: true /lower-case@2.0.2: @@ -7338,12 +7477,6 @@ packages: is-wsl: 2.2.0 dev: false - /option-validator@2.0.6: - resolution: {integrity: sha512-tmZDan2LRIRQyhUGvkff68/O0R8UmF+Btmiiz0SmSw2ng3CfPZB9wJlIjHpe/MKUZqyIZkVIXCrwr1tIN+0Dzg==} - dependencies: - kind-of: 6.0.3 - dev: false - /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -7557,14 +7690,14 @@ packages: yaml: 2.3.4 dev: false - /postcss-loader@7.3.3(postcss@8.4.32)(typescript@5.3.2)(webpack@5.89.0): + /postcss-loader@7.3.3(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} engines: {node: '>= 14.15.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 dependencies: - cosmiconfig: 8.3.6(typescript@5.3.2) + cosmiconfig: 8.3.6(typescript@5.3.3) jiti: 1.21.0 postcss: 8.4.32 semver: 7.5.4 @@ -7647,8 +7780,8 @@ packages: resolution: {integrity: sha512-jTbs0zkoEHbLJgktcLA4BPJo7+3ipiY4fZcvdDWHkhAq+JhvGBmuoY3VRJcjlSs/7yp0e81oPTp3tl6I9VkpTg==} dev: true - /prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} engines: {node: '>=14'} hasBin: true dev: true @@ -8310,6 +8443,14 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true + /slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + dev: true + /snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -8547,6 +8688,15 @@ packages: strip-ansi: 7.1.0 dev: false + /string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + engines: {node: '>=18'} + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + dev: true + /string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: @@ -8816,13 +8966,13 @@ packages: engines: {node: '>=8'} dev: true - /ts-api-utils@1.0.3(typescript@5.3.2): + /ts-api-utils@1.0.3(typescript@5.3.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true /ts-debounce@4.0.0: @@ -8838,6 +8988,15 @@ packages: strip-bom: 3.0.0 dev: true + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + /tsconfig-vuepress@4.5.0: resolution: {integrity: sha512-edJbEJwTQayS4+q5mIPsVY9UaZfgzJezNX/eO86rRgIIDsJyVdcUahr7WgqQWdYI7MIcdDvMRlSn0+Veznmq5g==} dev: true @@ -8878,9 +9037,9 @@ packages: engines: {node: '>=8'} dev: true - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} dev: true /type-is@1.6.18: @@ -8925,8 +9084,8 @@ packages: for-each: 0.3.3 is-typed-array: 1.1.12 - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true @@ -9128,17 +9287,32 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) + dev: false + + /vue-demi@0.14.6(vue@3.4.0): + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.4.0(typescript@5.3.3) dev: false - /vue-eslint-parser@9.3.2(eslint@8.55.0): + /vue-eslint-parser@9.3.2(eslint@8.56.0): resolution: {integrity: sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 @@ -9163,7 +9337,7 @@ packages: dependencies: chalk: 4.1.2 hash-sum: 2.0.0 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) watchpack: 2.4.0 webpack: 5.89.0 dev: false @@ -9174,10 +9348,19 @@ packages: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.1 - vue: 3.3.9(typescript@5.3.2) + vue: 3.3.9(typescript@5.3.3) + dev: false + + /vue-router@4.2.5(vue@3.4.0): + resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.4.0(typescript@5.3.3) dev: false - /vue@3.3.9(typescript@5.3.2): + /vue@3.3.9(typescript@5.3.3): resolution: {integrity: sha512-sy5sLCTR8m6tvUk1/ijri3Yqzgpdsmxgj6n6yl7GXXCXqVbmW2RCXe9atE4cEI6Iv7L89v5f35fZRRr5dChP9w==} peerDependencies: typescript: '*' @@ -9190,11 +9373,27 @@ packages: '@vue/runtime-dom': 3.3.9 '@vue/server-renderer': 3.3.9(vue@3.3.9) '@vue/shared': 3.3.9 - typescript: 5.3.2 + typescript: 5.3.3 dev: false - /vuepress-plugin-auto-catalog@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-PD/E5f42o2Z1i/g8WTdpFRZWPwAGj/PLkNVsITnyalqgLWFSJ0nYptEbffvLcOq1yJXNwxaAiWx/mZt8xV7nYw==} + /vue@3.4.0(typescript@5.3.3): + resolution: {integrity: sha512-iTE9Ve/7DO/H39+gXHrNkRdnh1jDwPe/fap4brbPKkp1APMkS03OiZ+UY0dwpqtRX0iPWQTkh8Fu3hKgLtaxfA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.0 + '@vue/compiler-sfc': 3.4.0 + '@vue/runtime-dom': 3.4.0 + '@vue/server-renderer': 3.4.0(vue@3.4.0) + '@vue/shared': 3.4.0 + typescript: 5.3.3 + dev: false + + /vuepress-plugin-auto-catalog@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-MM4Y7uf3txqc9TQYZtpaynvGSROtuw2GyHA5l3n5NB8D55tjvq+xpg0KfOfKmApL/yhu37EcUNMRkLlBgmwDJQ==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: sass-loader: ^13.3.2 @@ -9211,19 +9410,20 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-components: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-components: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - - dashjs + - artplayer + - dashjs-pure - hls.js - mpegts.js - plyr @@ -9232,8 +9432,8 @@ packages: - vidstack dev: false - /vuepress-plugin-blog2@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-YzEEAI3hEkuCfWw2x54z11Z180RVAoMxvv5Mc0CgzbAIe9oGjSpbbRq3+PSX8EEEzn1lnHw8E5L9+ix3WI4Szg==} + /vuepress-plugin-blog2@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-fS2EsvzpzxNfI6G8cYHvXqkoo6+1GDFjzL28Kna8EbRrJjd+A+8ciLMkV/JNArj8D6E4DQiHoECwXUMkqnLD4w==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9247,28 +9447,28 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 chokidar: 3.5.3 - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-comment2@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-eREPtXX2JUxjqwWUpx6iJ5bKLEG5BVndhBFOjxm7yeyg0SWLCDHmuv8odZ5DTjL50k5hRuP1jVJkB7Caonkv+Q==} + /vuepress-plugin-comment2@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-bZ5BhJ/dQdc24GDc1T95nRCnkjZZo05wpSSU2pI7sRZSeX6MjbpJLMNJPKH3BIMQQQaQUZUIzKLl4U0ja9B07A==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: - '@waline/client': ^2.15.8 - artalk: ^2.6.4 + '@waline/client': ^2.15.8 || ^3.0.0-alpha.8 + artalk: ^2.7.2 sass-loader: ^13.3.2 - twikoo: ^1.6.26 + twikoo: ^1.5.0 vuepress: 2.0.0-rc.0 vuepress-vite: 2.0.0-rc.0 vuepress-webpack: 2.0.0-rc.0 @@ -9288,36 +9488,39 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - giscus: 1.3.0 + giscus: 1.4.0 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-components@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-ejTbnaOmYvPlX1FwzlD8v/v8/hUGld3QzKfcvFkhHVn4ddhze5/NQj3cqHFfnT7fR23UKs8BI7L1L/0SFZiFGA==} + /vuepress-plugin-components@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-P5X+UXwHFp6G/SXKRcaKpYrXvcPsp5lC1E+bbhrL026IhzUI59sVHrCcoZDwnyOve24BGPZbiACMSzX/Bu2T+g==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: - dashjs: ^4.7.2 + 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: ^13.3.2 - vidstack: ^1.8.1 + vidstack: ^1.9.0 vuepress: 2.0.0-rc.0 vuepress-vite: 2.0.0-rc.0 vuepress-webpack: 2.0.0-rc.0 peerDependenciesMeta: - dashjs: + artplayer: + optional: true + dashjs-pure: optional: true hls.js: optional: true @@ -9337,28 +9540,27 @@ packages: optional: true dependencies: '@stackblitz/sdk': 1.9.0 - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) - artplayer: 5.0.9 + '@vueuse/core': 10.7.1(vue@3.4.0) balloon-css: 1.2.0 create-codepen: 1.0.1 qrcode: 1.5.3 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-reading-time2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-reading-time2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-copy-code2@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-+wvfD54h4CMZPRl5pat5OP8dpl1PlXHYwY7Eba69GYXAtjj55L5IFva+FWWfSgyMFcdzWMkeNxNZK4bIjHqqXw==} + /vuepress-plugin-copy-code2@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-V67QQHGjwOpRscxIyduF1rdAy139g2FwgwbhMcPblwpthd9w7fwDKuBc1VPJPICBasrVLFfOSgD1vtMsHiBx1g==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: sass-loader: ^13.3.2 @@ -9375,24 +9577,24 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) + '@vueuse/core': 10.7.1(vue@3.4.0) balloon-css: 1.2.0 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-copyright2@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-6xJ14bVcaxNciC0UTdvaHg1R/uh5BUUA/UFOBYqYamhzveyQrgSInleghmYcbTH8hTh3+V5PCOLJENhH6wU7zQ==} + /vuepress-plugin-copyright2@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-GiOcz91UBAF4vSvphWphkJeE6kyP9n45DAnvNKBBzeqSJc/pWoOJEMCWMarMR+LmW1YTu/oy5hY2NPZMm9affw==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9406,21 +9608,21 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + '@vueuse/core': 10.7.1(vue@3.4.0) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-feed2@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-xuMi9YAw8i/uRrwvQ+1hIdtVs2NXmi6g6YbCU6wuX1Ig1U/tKGUg4fNzA2M6w3Mg8fpA60fDY4FUpDmN05FpBA==} + /vuepress-plugin-feed2@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-UJuu6u075VlW7bJeQBB8ZulcVsmp9ysifAiTCwVSSQ7MxUwnAGzzN5mG0TVNgObqTz2YnYSS9J9Pdu6Ms9uCpw==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9437,7 +9639,7 @@ packages: '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 cheerio: 1.0.0-rc.12 - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) xml-js: 1.6.11 transitivePeerDependencies: - '@vue/composition-api' @@ -9445,23 +9647,23 @@ packages: - typescript dev: false - /vuepress-plugin-md-enhance@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-5yqU18oyYbn//n/bDSFBa3uLNgnuB3i+0BjcI0pVeV+eejHW31O8cLKKuoYlGiWlQrChiRWfNe/RyAMa9H1lmA==} + /vuepress-plugin-md-enhance@2.0.0-rc.7(markdown-it@13.0.2)(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-UHcsPNbbg9itmIndTKn5nObjy/eVzbNo+6A9P1JaOPfNukkC6H7LaHHgwMlPXNsmaeYZmR18ZA+NCSTGcRDTvQ==} 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.4.0 - echarts: ^5.4.3 - flowchart.ts: ^2.0.0 - katex: ^0.16.9 - kotlin-playground: ^1.29.0 - markmap-lib: ^0.15.7 - markmap-toolbar: ^0.15.6 - markmap-view: ^0.15.6 + 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.1 - reveal.js: ^5.0.2 + mermaid: ^10.6.0 + reveal.js: ^5.0.0 sass-loader: ^13.3.2 vuepress: 2.0.0-rc.0 vuepress-vite: 2.0.0-rc.0 @@ -9502,48 +9704,48 @@ packages: vuepress-webpack: optional: true dependencies: - '@mdit/plugin-alert': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-align': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-attrs': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-container': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-demo': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-figure': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-footnote': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-img-lazyload': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-img-mark': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-img-size': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-include': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-katex': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-mark': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-mathjax': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-stylize': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-sub': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-sup': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-tab': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-tasklist': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-tex': 0.7.5(markdown-it@13.0.2) - '@mdit/plugin-uml': 0.7.5(markdown-it@13.0.2) + '@mdit/plugin-alert': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-align': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-attrs': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-container': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-demo': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-figure': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-footnote': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-img-lazyload': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-img-mark': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-img-size': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-include': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-katex': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-mark': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-mathjax': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-stylize': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-sub': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-sup': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-tab': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-tasklist': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-tex': 0.7.6(markdown-it@13.0.2) + '@mdit/plugin-uml': 0.7.6(markdown-it@13.0.2) '@types/markdown-it': 13.0.7 - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) + '@vueuse/core': 10.7.1(vue@3.4.0) balloon-css: 1.2.0 js-yaml: 4.1.0 - markdown-it: 13.0.2 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' + - markdown-it - supports-color - typescript dev: false - /vuepress-plugin-photo-swipe@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-D2ipqEHsVfU3k4cYIi4CWTZiI+KwnZ1ywfgo55IYV9JmiCBbhhK47iAdq66BbUEyv0y1oKVq7ZlDznFW+KCGDg==} + /vuepress-plugin-photo-swipe@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-kdEVkWddwgWwTMrAOWOMilaUi56t+NcPXZrEyPvNemFykEzkuPHpVREH3X9TsIANDxrgWrigtcnAEGtkBugTtQ==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: sass-loader: ^13.3.2 @@ -9560,24 +9762,24 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) + '@vueuse/core': 10.7.1(vue@3.4.0) photoswipe: 5.4.3 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-pwa2@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-a8XMjR9UOCF1y5eGO3cTfznIDD2PgioreZrgI5FWCJRgZwXwcP1P1LohI3cQq6jXd8L3ZKpDxBSioSQMmBuD8g==} + /vuepress-plugin-pwa2@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-SydLb8UtA9Am24+cMmQIohaeSUh3zlZlB8qFL/rP+H8C5j8x78FCaQd1UrGNBLy7I+y/yCOgJzikNLlm4lMdiw==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: sass-loader: ^13.3.2 @@ -9594,17 +9796,17 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) + '@vueuse/core': 10.7.1(vue@3.4.0) mitt: 3.0.1 register-service-worker: 1.7.2 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) workbox-build: 7.0.0 transitivePeerDependencies: - '@types/babel__core' @@ -9613,8 +9815,8 @@ packages: - typescript dev: false - /vuepress-plugin-reading-time2@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-EuMXOOsZh9YRC4yH7edeoNbCjsc/aekQ24HJ+zgOnDZWpF4HfQ6MYYZTM4KVJDxwCGCF8/o93z0ux8VP0PbJ4A==} + /vuepress-plugin-reading-time2@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-OBFxXNZQGOyhzIx2ZfJ/nPBiFJYRGOCT+1GrZRjeW0cfrdvgYZo6x2jDBDtmrrzT3TlhZRpQDZB6QMbiORQhPQ==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9628,17 +9830,17 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - vue: 3.3.9(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + vue: 3.4.0(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-rtl@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-TUJjnPrOwWLsOYhwhoBUzVKySsB/dUW8pr2Azval96gombpnml3r8xt1b3pF1bV6vDP9o2ZZaYV6YBRe8Zl3YQ==} + /vuepress-plugin-rtl@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-R9VdO8DJE2kPxWYUDV/6erq4wbPC/I98E2fNJuBC8bHEj1IS1DReEP0g8PyBMYT/nozkMWfa6aIZPjkXlaNIiA==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9652,19 +9854,19 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - vue: 3.3.9(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-sass-palette@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-CHPAsn/DfwgQjY6FpuuGZtc0PI3leKnN9yKhMGmwfAyrVuXd1+8IIWosG/6Ob38yLPiybmcp+3DlQNJPBGjxnA==} + /vuepress-plugin-sass-palette@2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-xi8UDaPGS67MVzUDoaQN67dZoTjkW30KpHQJH8R/6DybOz9hC0oVqvkZM9waPPCCdcPytxVUfVDdincARZ4eHw==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: sass-loader: ^13.3.2 @@ -9686,15 +9888,15 @@ packages: chokidar: 3.5.3 sass: 1.69.5 sass-loader: 13.3.2(webpack@5.89.0) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-seo2@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-9L3Te7RQHQIzkhwB26PHa6YmmY+kgL+IPB4529VwL78UwHTQcVVn7YVKGxweybAbf47fcTUCCA5kMkFZYYDl5w==} + /vuepress-plugin-seo2@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-WHn4s1N2cHPQZQh+rZyiH9mDtGYFh9E2F5ZUV3LT2IddGuHluzuwVScIxix9q76AvbdCl4rhg7vr97oc8oPoUA==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9710,15 +9912,15 @@ packages: dependencies: '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-plugin-sitemap2@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-2AwB5vvdjcjkCGiwXYS+elZRDGb3HnkXETPjkp2qZLM5sxlcFJVbEVOf8p1XN2nTReL7tdMT2hoKGrJEwTESeA==} + /vuepress-plugin-sitemap2@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-Vc13ucmamsXu0PD9Gu1lRm0NKOAwV/h3hZA+h2jAnavsiAqkAUF1WmvjNLPMWCVz77lez3knQNpWDoHZVBoxLQ==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9735,15 +9937,15 @@ packages: '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 sitemap: 7.1.1 - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-shared@2.0.0-rc.2(typescript@5.3.2): - resolution: {integrity: sha512-N1R/izhfxCtAWAqTFTcedOj6P4kvHhVKU/XARjeb/F9opU81u7X5jtyTQsOyc8nhdC+BfCV2iD/mnnF/02AL2w==} + /vuepress-shared@2.0.0-rc.7(typescript@5.3.3): + resolution: {integrity: sha512-1EUgbOe8/VK0yuzau2mtL22Av2547zVJP/q2niCoCyBTzMrn0agaWSRIDhhQx+e4xPlE5Mi3FsCHDXTfkWSuIw==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: vuepress: 2.0.0-rc.0 @@ -9757,10 +9959,10 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) + '@vueuse/core': 10.7.1(vue@3.4.0) cheerio: 1.0.0-rc.12 dayjs: 1.11.10 execa: 8.0.1 @@ -9768,16 +9970,16 @@ packages: gray-matter: 4.0.3 semver: 7.5.4 striptags: 3.2.0 - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript dev: false - /vuepress-theme-hope@2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2): - resolution: {integrity: sha512-rrKgxcwLdIdR/57hA9VDacrn+YP2FpMpSWUNwmRzrehj2tq3z0nFYn8bn1+qC0gPUoroVPHULx8MscwA6CyrjQ==} + /vuepress-theme-hope@2.0.0-rc.7(markdown-it@13.0.2)(sass-loader@13.3.2)(typescript@5.3.3): + resolution: {integrity: sha512-dD8UOspS52Jn7IF4kRmWYFLBSV9iILEyat2rFMflu7TrmJ46xwtfkYtqnPce8OKYvN4uqXnzMNmKTrp+Skcqdw==} engines: {node: '>=18.16.0', npm: '>=8', pnpm: '>=7', yarn: '>=2'} peerDependencies: sass-loader: ^13.3.2 @@ -9794,43 +9996,43 @@ packages: vuepress-webpack: optional: true dependencies: - '@vuepress/cli': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/client': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/core': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-active-header-links': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-container': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-external-link-icon': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-git': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-nprogress': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-prismjs': 2.0.0-rc.0(typescript@5.3.2) - '@vuepress/plugin-theme-data': 2.0.0-rc.0(typescript@5.3.2) + '@vuepress/cli': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/client': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/core': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-active-header-links': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-container': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-external-link-icon': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-git': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-nprogress': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-prismjs': 2.0.0-rc.0(typescript@5.3.3) + '@vuepress/plugin-theme-data': 2.0.0-rc.0(typescript@5.3.3) '@vuepress/shared': 2.0.0-rc.0 '@vuepress/utils': 2.0.0-rc.0 - '@vueuse/core': 10.6.1(vue@3.3.9) + '@vueuse/core': 10.7.1(vue@3.4.0) balloon-css: 1.2.0 bcrypt-ts: 5.0.0 cheerio: 1.0.0-rc.12 chokidar: 3.5.3 gray-matter: 4.0.3 sass-loader: 13.3.2(webpack@5.89.0) - vue: 3.3.9(typescript@5.3.2) - vue-router: 4.2.5(vue@3.3.9) - vuepress-plugin-auto-catalog: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-blog2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-comment2: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-components: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-copy-code2: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-copyright2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-feed2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-md-enhance: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-photo-swipe: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-pwa2: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-reading-time2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-rtl: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-sass-palette: 2.0.0-rc.2(sass-loader@13.3.2)(typescript@5.3.2) - vuepress-plugin-seo2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-plugin-sitemap2: 2.0.0-rc.2(typescript@5.3.2) - vuepress-shared: 2.0.0-rc.2(typescript@5.3.2) + vue: 3.4.0(typescript@5.3.3) + vue-router: 4.2.5(vue@3.4.0) + vuepress-plugin-auto-catalog: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-blog2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-comment2: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-components: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-copy-code2: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-copyright2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-feed2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-md-enhance: 2.0.0-rc.7(markdown-it@13.0.2)(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-photo-swipe: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-pwa2: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-reading-time2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-rtl: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-sass-palette: 2.0.0-rc.7(sass-loader@13.3.2)(typescript@5.3.3) + vuepress-plugin-seo2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-plugin-sitemap2: 2.0.0-rc.7(typescript@5.3.3) + vuepress-shared: 2.0.0-rc.7(typescript@5.3.3) transitivePeerDependencies: - '@types/babel__core' - '@types/reveal.js' @@ -9838,13 +10040,15 @@ packages: - '@vue/repl' - '@waline/client' - artalk + - artplayer - chart.js - - dashjs + - dashjs-pure - echarts - flowchart.ts - hls.js - katex - kotlin-playground + - markdown-it - markmap-lib - markmap-toolbar - markmap-view @@ -10240,6 +10444,15 @@ packages: strip-ansi: 7.1.0 dev: true + /wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + dependencies: + ansi-styles: 6.2.1 + string-width: 7.0.0 + strip-ansi: 7.1.0 + dev: true + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}