parent
7685f24525
commit
08a2d6107f
@ -111,6 +111,8 @@ export const themeGuide = defineNoteConfig({
|
||||
'评论',
|
||||
'公告板',
|
||||
'加密',
|
||||
'文章贡献者',
|
||||
'文章变更历史',
|
||||
'文章水印',
|
||||
'友情链接页',
|
||||
'seo',
|
||||
|
||||
@ -5,8 +5,6 @@ import { enNotes, zhNotes } from './notes/index.js'
|
||||
|
||||
export default defineThemeConfig({
|
||||
logo: '/plume.png',
|
||||
docsRepo: 'https://github.com/pengzhanbo/vuepress-theme-plume',
|
||||
docsDir: 'docs',
|
||||
|
||||
profile: {
|
||||
avatar: '/plume.png',
|
||||
|
||||
BIN
docs/.vuepress/public/images/contributors-block.png
Normal file
BIN
docs/.vuepress/public/images/contributors-block.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/.vuepress/public/images/contributors-inline.png
Normal file
BIN
docs/.vuepress/public/images/contributors-inline.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
@ -4,6 +4,11 @@ import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export const theme: Theme = plumeTheme({
|
||||
hostname: process.env.SITE_HOST || 'https://plume.pengzhanbo.cn',
|
||||
docsRepo: 'https://github.com/pengzhanbo/vuepress-theme-plume',
|
||||
docsDir: 'docs',
|
||||
changelog: true,
|
||||
contributors: { mode: 'block' },
|
||||
|
||||
plugins: {
|
||||
|
||||
shiki: {
|
||||
|
||||
@ -8,6 +8,8 @@ prev: false
|
||||
next: false
|
||||
draft: true
|
||||
externalLinkIcon: false
|
||||
contributors: false
|
||||
changelog: false
|
||||
docs:
|
||||
-
|
||||
name: VuePress Plume
|
||||
|
||||
@ -189,6 +189,16 @@ permalink: /config/frontmatter/basic/
|
||||
|
||||
如果您的文章来源于第三方, git 提交不能完整列出所有的作者,您可以在此处补充贡献者。
|
||||
|
||||
额外信息补充请查看 [contributors](../../guide/功能/文章贡献者.md#info)
|
||||
|
||||
### changelog
|
||||
|
||||
- 类型: `boolean`
|
||||
- 默认值: `false`
|
||||
- 详情:
|
||||
|
||||
当前页面是否显示页面变更历史。
|
||||
|
||||
### editLink
|
||||
|
||||
- 类型: `boolean`
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
---
|
||||
title: 主题配置
|
||||
author: pengzhanbo
|
||||
createTime: 2024/03/02 18:07:03
|
||||
permalink: /config/basic/
|
||||
---
|
||||
@ -28,8 +27,7 @@ permalink: /config/basic/
|
||||
主题使用的插件默认已进行了配置,大多数情况下您不需要进行修改,如果需要使用到细致的定制化,请查阅
|
||||
[此文档](./plugins/README.md)
|
||||
|
||||
::: warning
|
||||
该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
:::
|
||||
|
||||
### hostname
|
||||
@ -42,8 +40,7 @@ permalink: /config/basic/
|
||||
|
||||
当 `hostname` 配置为有效域名时,主题将会生成 `sitemap` 和 `seo` 相关的内容。
|
||||
|
||||
::: warning
|
||||
该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
:::
|
||||
|
||||
### blog
|
||||
@ -262,6 +259,78 @@ interface BlogPostCover {
|
||||
为了使缓存能够生效,您应该 **删除** `package.json` 中 `vuepress dev` 开发服务启动脚本中的 `--clean-cache` 参数。
|
||||
:::
|
||||
|
||||
### docsRepo
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `''`
|
||||
- 详情: 文档仓库配置, 用于生成 `Edit this page` 链接。
|
||||
|
||||
### docsBranch
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `''`
|
||||
- 详情: 文档仓库分支配置,用于生成 `Edit this page` 链接。
|
||||
|
||||
### docsDir
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `''`
|
||||
- 详情: 文档仓库目录配置,用于生成 `Edit this page` 链接。
|
||||
|
||||
### editLink
|
||||
|
||||
- 类型: `boolean`
|
||||
- 默认值: `true`
|
||||
- 详情: 是否启用 编辑链接
|
||||
|
||||
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
:::
|
||||
|
||||
### lastUpdated
|
||||
|
||||
- 类型: `false | LastUpdatedOptions`
|
||||
- 默认值: `{ formatOptions: { dateStyle: 'short', timeStyle: 'short' } }`
|
||||
- 详情: 最后更新时间
|
||||
|
||||
```ts
|
||||
interface LastUpdatedOptions {
|
||||
|
||||
/**
|
||||
* 设置最后更新时间格式的选项。
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options
|
||||
*
|
||||
* @default
|
||||
* { dateStyle: 'short', timeStyle: 'short' }
|
||||
*/
|
||||
formatOptions?: Intl.DateTimeFormatOptions & { forceLocale?: boolean }
|
||||
}
|
||||
```
|
||||
|
||||
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
:::
|
||||
|
||||
### contributors
|
||||
|
||||
- 类型: `boolean | ContributorsOptions`
|
||||
- 默认值: `true`
|
||||
- 详情: 是否显示贡献者
|
||||
|
||||
更多配置请参考 [此文档](../guide/功能/文章贡献者.md)
|
||||
|
||||
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
:::
|
||||
|
||||
### changelog
|
||||
|
||||
- 类型: `boolean | ChangelogOptions`
|
||||
- 默认值: `false`
|
||||
- 详情: 是否显示页面变更历史
|
||||
|
||||
更多配置请参考 [此文档](../guide/功能/文章变更历史.md)
|
||||
|
||||
::: warning 该字段不支持在 [主题配置文件 `plume.config.js`](./配置说明.md#主题配置文件) 中进行配置。
|
||||
:::
|
||||
|
||||
### locales
|
||||
|
||||
- 类型: `Record<string, PlumeThemeLocaleConfig>`
|
||||
@ -717,12 +786,6 @@ interface SidebarItem {
|
||||
|
||||
移动设备下的导航栏中大纲标题的文本
|
||||
|
||||
### editLink
|
||||
|
||||
- 类型: `boolean`
|
||||
- 默认值: `true`
|
||||
- 详情: 是否启用 编辑链接
|
||||
|
||||
### editLinkText
|
||||
|
||||
- 类型: `string`
|
||||
@ -737,55 +800,11 @@ interface SidebarItem {
|
||||
|
||||
示例: `':repo/edit/:branch/:path'`
|
||||
|
||||
### docsRepo
|
||||
### latestUpdatedText
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `''`
|
||||
- 详情: 文档仓库配置, 用于生成 `Edit this page` 链接。
|
||||
|
||||
### docsBranch
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `''`
|
||||
- 详情: 文档仓库分支配置,用于生成 `Edit this page` 链接。
|
||||
|
||||
### docsDir
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `''`
|
||||
- 详情: 文档仓库目录配置,用于生成 `Edit this page` 链接。
|
||||
|
||||
### lastUpdated
|
||||
|
||||
- 类型: `false | LastUpdatedOptions`
|
||||
- 默认值: `{ text: 'Last Updated', formatOptions: { dateStyle: 'short', timeStyle: 'short' } }`
|
||||
- 详情: 最后更新时间
|
||||
|
||||
```ts
|
||||
interface LastUpdatedOptions {
|
||||
/**
|
||||
* 设置 最后更新时间 的文本
|
||||
*
|
||||
* @default 'Last updated'
|
||||
*/
|
||||
text?: string
|
||||
|
||||
/**
|
||||
* 设置最后更新时间格式的选项。
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options
|
||||
*
|
||||
* @default
|
||||
* { dateStyle: 'short', timeStyle: 'short' }
|
||||
*/
|
||||
formatOptions?: Intl.DateTimeFormatOptions & { forceLocale?: boolean }
|
||||
}
|
||||
```
|
||||
|
||||
### contributors
|
||||
|
||||
- 类型: `boolean`
|
||||
- 默认值: `true`
|
||||
- 详情: 是否显示贡献者
|
||||
- 默认值: `'Latest Updated'`
|
||||
- 详情: 最近更新时间 的文本
|
||||
|
||||
### contributorsText
|
||||
|
||||
@ -793,6 +812,24 @@ interface LastUpdatedOptions {
|
||||
- 默认值: `'Contributors'`
|
||||
- 详情: 贡献者的文本
|
||||
|
||||
### changelogText
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `'Changelog'`
|
||||
- 详情: 变更记录的文本
|
||||
|
||||
### changelogOnText
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `'On'`
|
||||
- 详情: 单次变更记录的时间文本
|
||||
|
||||
### changelogButtonText
|
||||
|
||||
- 类型: `string`
|
||||
- 默认值: `'View All Changelog'`
|
||||
- 详情: 变更记录的按钮文本
|
||||
|
||||
### prevPage
|
||||
|
||||
- 类型: `boolean`
|
||||
|
||||
114
docs/notes/theme/guide/功能/文章变更历史.md
Normal file
114
docs/notes/theme/guide/功能/文章变更历史.md
Normal file
@ -0,0 +1,114 @@
|
||||
---
|
||||
title: 文章变更历史
|
||||
icon: radix-icons:activity-log
|
||||
createTime: 2024/11/07 18:16:25
|
||||
permalink: /guide/features/changelog/
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
主题支持为文章添加 文章变更历史,以便更好的了解您的文章修改历史。
|
||||
|
||||
文章变更历史 通过 git 提交记录获取。
|
||||
|
||||
该功能由 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 提供支持。
|
||||
|
||||
## 使用
|
||||
|
||||
主题已内置 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 插件,你无需重新安装即可使用。
|
||||
|
||||
在主题配置文件中启用该功能:
|
||||
|
||||
::: code-tabs
|
||||
@tab .vuepress/config.ts
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
// 默认 不启用,仅当 plugins.git 为 true 时生效
|
||||
// 此配置在 plume.config.ts 中无效
|
||||
changelog: true,
|
||||
|
||||
plugins: {
|
||||
// 如果您在此处直接声明为 true,则表示开发环境和生产环境都启用该功能
|
||||
git: process.env.NODE_ENV === 'production'
|
||||
}
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
::: warning 出于性能考虑,主题默认不会在 开发环境中启用该功能,仅在 生产环境中启用。
|
||||
:::
|
||||
|
||||
## 配置
|
||||
|
||||
```ts
|
||||
interface ChangelogOptions {
|
||||
/**
|
||||
* 最大变更记录条数, 默认获取所有记录
|
||||
*/
|
||||
maxCount?: number
|
||||
/**
|
||||
* git 仓库的访问地址,例如:https://github.com/vuepress/ecosystem
|
||||
*/
|
||||
repoUrl?: string
|
||||
/**
|
||||
* 提交记录访问地址模式
|
||||
*
|
||||
* - `:repo` - git 仓库的访问地址
|
||||
* - `:hash` - 提交记录的 hash
|
||||
*
|
||||
* @default ':repo/commit/:hash'
|
||||
*/
|
||||
commitUrlPattern?: string
|
||||
/**
|
||||
* issue 访问地址模式
|
||||
*
|
||||
* - `:repo` - git 仓库的访问地址
|
||||
* - `:issue` - issue 的 id
|
||||
*
|
||||
* @default ':repo/issues/:issue'
|
||||
*/
|
||||
issueUrlPattern?: string
|
||||
/**
|
||||
* tag 访问地址模式,
|
||||
* 默认值:':repo/releases/tag/:tag'
|
||||
*
|
||||
* - `:repo` - git 仓库的访问地址
|
||||
* - `:tag` - tag 的名称
|
||||
*
|
||||
* @default ':repo/releases/tag/:tag'
|
||||
*/
|
||||
tagUrlPattern?: string
|
||||
}
|
||||
```
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
changelog: {
|
||||
maxCount: 10,
|
||||
repoUrl: 'https://github.com/vuepress/vuepress',
|
||||
commitUrlPattern: ':repo/commit/:hash',
|
||||
issueUrlPattern: ':repo/issues/:issue',
|
||||
tagUrlPattern: ':repo/releases/tag/:tag'
|
||||
},
|
||||
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
::: warning 注意
|
||||
请确保 `changelog.repoUrl` 配置正确, 默认值为 [docsRepo](../../config/主题配置.md#docsrepo)。
|
||||
|
||||
主题默认适配了 `github/gitlab/gitee/bitbucket` git 托管服务的相关访问地址模式。
|
||||
如果您使用的是内建的托管服务或者其他,请自行配置 `commitUrlPattern`、`issueUrlPattern`、`tagUrlPattern`。
|
||||
:::
|
||||
261
docs/notes/theme/guide/功能/文章贡献者.md
Normal file
261
docs/notes/theme/guide/功能/文章贡献者.md
Normal file
@ -0,0 +1,261 @@
|
||||
---
|
||||
title: 文章贡献者
|
||||
icon: simple-icons:contributorcovenant
|
||||
createTime: 2024/11/07 16:26:54
|
||||
permalink: /guide/features/contributors/
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
主题支持为文章添加贡献者信息,以便更好的了解您的文章贡献者。
|
||||
|
||||
文章贡献者通过 git 提交记录获取。
|
||||
|
||||
该功能由 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 提供支持。
|
||||
|
||||
## 使用
|
||||
|
||||
主题已内置 [@vuepress/plugin-git](https://ecosystem.vuejs.press/zh/plugins/development/git.html) 插件,你无需重新安装即可使用。
|
||||
|
||||
在主题配置文件中启用该功能:
|
||||
|
||||
::: code-tabs
|
||||
@tab .vuepress/config.ts
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
// 默认启用,仅当 plugins.git 为 true 时生效
|
||||
// 此配置在 plume.config.ts 中无效
|
||||
contributors: true,
|
||||
|
||||
plugins: {
|
||||
// 如果您在此处直接声明为 true,则表示开发环境和生产环境都启用该功能
|
||||
git: process.env.NODE_ENV === 'production'
|
||||
}
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
::: warning 出于性能考虑,主题默认不会在 开发环境中启用该功能,仅在 生产环境中启用。
|
||||
:::
|
||||
|
||||
## 配置
|
||||
|
||||
### mode
|
||||
|
||||
- 类型:`'inline' | 'block'`
|
||||
- 默认值:`'inline'`
|
||||
- 描述:
|
||||
|
||||
- `inline`:在文章页底部,与 最后更新时间,并列显示贡献者信息,该模式下仅显示 贡献者名称。
|
||||
|
||||

|
||||
|
||||
- `block`:在文章内容末尾插入贡献者信息,该模式下包含 贡献者名称、贡献者链接、贡献者头像。
|
||||
(如当前页面内容结尾所示)
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
contributors: {
|
||||
mode: 'block',
|
||||
},
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
### info
|
||||
|
||||
- 类型:`ContributorInfo[]`
|
||||
|
||||
```ts
|
||||
interface ContributorInfo {
|
||||
/**
|
||||
* 贡献者在 Git 托管服务中的用户名
|
||||
*/
|
||||
username: string
|
||||
/**
|
||||
* 贡献者显示在页面上的名字, 默认为 `username`
|
||||
*/
|
||||
name?: string
|
||||
/**
|
||||
* 贡献者别名, 由于贡献者可能在本地 git 配置中保存的 用户名与 托管服务 用户名不一致,
|
||||
* 这时候可以通过别名映射到真实的用户名
|
||||
*/
|
||||
alias?: string[] | string
|
||||
/**
|
||||
* 贡献者头像地址
|
||||
* 如果 git 托管服务为 `github`,则可以忽略不填,由插件自动填充
|
||||
*/
|
||||
avatar?: string
|
||||
/**
|
||||
* 贡献者访问地址
|
||||
* 如果 git 托管服务为 `github`,则可以忽略不填,由插件自动填充
|
||||
*/
|
||||
url?: string
|
||||
}
|
||||
```
|
||||
|
||||
- 描述:
|
||||
|
||||
贡献者信息列表。
|
||||
|
||||
用户在本地 git 服务中配置的 用户名和邮箱 可能与 git 托管服务(如 github、gitlab、gitee)的用户信息不一致。
|
||||
可以在此预先配置贡献者信息。
|
||||
|
||||
(对于非 github 的其他 git 托管服务,诸如 gitlab、gitee,由于不能通过用户名直接获取头像和用户地址,请在此
|
||||
补充完善用户信息。)
|
||||
|
||||
::: code-tabs
|
||||
|
||||
@tab Github
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
contributors: {
|
||||
mode: 'block',
|
||||
info: [
|
||||
{
|
||||
username: 'pengzhanbo', // github username
|
||||
alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名
|
||||
}
|
||||
]
|
||||
},
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
@tab Gitlab
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
contributors: {
|
||||
mode: 'block',
|
||||
info: [
|
||||
{
|
||||
username: 'pengzhanbo', // gitlab username
|
||||
alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名
|
||||
url: 'https://gitlab.com/pengzhanbo',
|
||||
avatar: 'https://gitlab.com/uploads/-/system/user/avatar/1/avatar.png',
|
||||
}
|
||||
]
|
||||
},
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
@tab Gitee
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
contributors: {
|
||||
mode: 'block',
|
||||
info: [
|
||||
{
|
||||
username: 'pengzhanbo', // gitee username
|
||||
alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名
|
||||
url: 'https://gitee.com/pengzhanbo',
|
||||
avatar: 'https://foruda.gitee.com/avatar/1234455/avatar.png',
|
||||
}
|
||||
]
|
||||
},
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
@tab Bitbucket
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
contributors: {
|
||||
mode: 'block',
|
||||
info: [
|
||||
{
|
||||
username: 'pengzhanbo', // bitbucket username
|
||||
alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名
|
||||
url: 'https://bitbucket.org/pengzhanbo',
|
||||
avatar: 'https://bitbucket.org/pengzhanbo/avatar/1234455/avatar.png',
|
||||
}
|
||||
]
|
||||
},
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
@tab 其它
|
||||
|
||||
```ts
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import { plumeTheme } from 'vuepress-theme-plume'
|
||||
|
||||
export default defineUserConfig({
|
||||
theme: plumeTheme({
|
||||
contributors: {
|
||||
mode: 'block',
|
||||
info: [
|
||||
{
|
||||
username: 'pengzhanbo', // username
|
||||
alias: ['peng_zhan_bo'], // 别名,本地 git 配置中的用户名
|
||||
url: 'https://your-git.com/pengzhanbo',
|
||||
avatar: 'https://your-git.com/avatar.png',
|
||||
}
|
||||
]
|
||||
},
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### transform(contributors)
|
||||
|
||||
- 类型:`(contributors: GitContributor[]) => GitContributor[]`
|
||||
|
||||
```ts
|
||||
interface GitContributor {
|
||||
name: string
|
||||
email: string
|
||||
commits: number // 贡献者提交次数
|
||||
}
|
||||
```
|
||||
|
||||
- 描述:
|
||||
|
||||
贡献者转换函数。该函数需要返回新的 贡献者列表。
|
||||
|
||||
## frontmatter
|
||||
|
||||
### contributors
|
||||
|
||||
- 类型:`boolean | string[]`
|
||||
|
||||
- 描述:
|
||||
|
||||
是否显示贡献者信息。
|
||||
|
||||
如果您的文章来源于第三方, git 提交不能完整列出所有的作者,您可以在此处补充贡献者。
|
||||
@ -6,8 +6,6 @@ createTime: 2024/04/16 12:41:26
|
||||
permalink: /tools/caniuse/
|
||||
readingTime: false
|
||||
editLink: false
|
||||
contributors: false
|
||||
lastUpdated: false
|
||||
---
|
||||
|
||||
::: info 提示
|
||||
|
||||
@ -6,8 +6,6 @@ createTime: 2024/04/15 20:17:42
|
||||
permalink: /tools/home-hero-tint-plate/
|
||||
readingTime: false
|
||||
editLink: false
|
||||
contributors: false
|
||||
lastUpdated: false
|
||||
---
|
||||
|
||||
为了更直观更方便的配置首页 Hero 区域 的 背景色板,主题提供了 色板配置工具,
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
"@mdit/plugin-sup": "^0.13.1",
|
||||
"@mdit/plugin-tab": "^0.13.2",
|
||||
"@mdit/plugin-tasklist": "^0.13.1",
|
||||
"@vuepress/helper": "2.0.0-rc.57",
|
||||
"@vuepress/helper": "2.0.0-rc.60",
|
||||
"@vueuse/core": "^11.2.0",
|
||||
"image-size": "^1.1.1",
|
||||
"local-pkg": "^0.5.0",
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
"vuepress": "2.0.0-rc.18"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vuepress/helper": "2.0.0-rc.57",
|
||||
"@vuepress/helper": "2.0.0-rc.60",
|
||||
"@vueuse/core": "^11.2.0",
|
||||
"@vueuse/integrations": "^11.2.0",
|
||||
"chokidar": "3.6.0",
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
"@shikijs/transformers": "^1.22.2",
|
||||
"@shikijs/twoslash": "^1.22.2",
|
||||
"@types/hast": "^3.0.4",
|
||||
"@vuepress/helper": "2.0.0-rc.57",
|
||||
"@vuepress/helper": "2.0.0-rc.60",
|
||||
"@vueuse/core": "^11.2.0",
|
||||
"fast-glob": "^3.3.2",
|
||||
"floating-vue": "^5.2.2",
|
||||
|
||||
450
pnpm-lock.yaml
generated
450
pnpm-lock.yaml
generated
@ -202,8 +202,8 @@ importers:
|
||||
specifier: ^0.13.1
|
||||
version: 0.13.1(markdown-it@14.1.0)
|
||||
'@vuepress/helper':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core':
|
||||
specifier: ^11.2.0
|
||||
version: 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
@ -245,8 +245,8 @@ importers:
|
||||
plugins/plugin-search:
|
||||
dependencies:
|
||||
'@vuepress/helper':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core':
|
||||
specifier: ^11.2.0
|
||||
version: 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
@ -287,8 +287,8 @@ importers:
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4
|
||||
'@vuepress/helper':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core':
|
||||
specifier: ^11.2.0
|
||||
version: 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
@ -347,47 +347,47 @@ importers:
|
||||
specifier: workspace:*
|
||||
version: link:../plugins/plugin-shikiji
|
||||
'@vuepress/helper':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-cache':
|
||||
specifier: 2.0.0-rc.54
|
||||
version: 2.0.0-rc.54(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-comment':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-docsearch':
|
||||
specifier: 2.0.0-rc.56
|
||||
version: 2.0.0-rc.56(@algolia/client-search@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(@algolia/client-search@5.12.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-git':
|
||||
specifier: 2.0.0-rc.56
|
||||
version: 2.0.0-rc.56(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-markdown-hint':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-markdown-image':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-markdown-math':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-nprogress':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-photo-swipe':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-reading-time':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-seo':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-sitemap':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/plugin-watermark':
|
||||
specifier: 2.0.0-rc.57
|
||||
version: 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
specifier: 2.0.0-rc.60
|
||||
version: 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core':
|
||||
specifier: ^11.2.0
|
||||
version: 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
@ -461,70 +461,77 @@ importers:
|
||||
|
||||
packages:
|
||||
|
||||
'@algolia/autocomplete-core@1.9.3':
|
||||
resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==}
|
||||
'@algolia/autocomplete-core@1.17.6':
|
||||
resolution: {integrity: sha512-lkDoW4I7h2kKlIgf3pUt1LqvxyYKkVyiypoGLlUnhPSnCpmeOwudM6rNq6YYsCmdQtnDQoW5lUNNuj6ASg3qeg==}
|
||||
|
||||
'@algolia/autocomplete-plugin-algolia-insights@1.9.3':
|
||||
resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==}
|
||||
'@algolia/autocomplete-plugin-algolia-insights@1.17.6':
|
||||
resolution: {integrity: sha512-17NnaacuFzSWVuZu4NKzVeaFIe9Abpw8w+/gjc7xhZFtqj+GadufzodIdchwiB2eM2cDdiR3icW7gbNTB3K2YA==}
|
||||
peerDependencies:
|
||||
search-insights: '>= 1 < 3'
|
||||
|
||||
'@algolia/autocomplete-preset-algolia@1.9.3':
|
||||
resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==}
|
||||
'@algolia/autocomplete-preset-algolia@1.17.6':
|
||||
resolution: {integrity: sha512-Cvg5JENdSCMuClwhJ1ON1/jSuojaYMiUW2KePm18IkdCzPJj/NXojaOxw58RFtQFpJgfVW8h2E8mEoDtLlMdeA==}
|
||||
peerDependencies:
|
||||
'@algolia/client-search': '>= 4.9.1 < 6'
|
||||
algoliasearch: '>= 4.9.1 < 6'
|
||||
|
||||
'@algolia/autocomplete-shared@1.9.3':
|
||||
resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==}
|
||||
'@algolia/autocomplete-shared@1.17.6':
|
||||
resolution: {integrity: sha512-aq/3V9E00Tw2GC/PqgyPGXtqJUlVc17v4cn1EUhSc+O/4zd04Uwb3UmPm8KDaYQQOrkt1lwvCj2vG2wRE5IKhw==}
|
||||
peerDependencies:
|
||||
'@algolia/client-search': '>= 4.9.1 < 6'
|
||||
algoliasearch: '>= 4.9.1 < 6'
|
||||
|
||||
'@algolia/cache-browser-local-storage@4.24.0':
|
||||
resolution: {integrity: sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==}
|
||||
'@algolia/client-abtesting@5.12.0':
|
||||
resolution: {integrity: sha512-hx4eVydkm3yrFCFxmcBtSzI/ykt0cZ6sDWch+v3JTgKpD2WtosMJU3Upv1AjQ4B6COSHCOWEX3vfFxW6OoH6aA==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/cache-common@4.24.0':
|
||||
resolution: {integrity: sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==}
|
||||
'@algolia/client-analytics@5.12.0':
|
||||
resolution: {integrity: sha512-EpTsSv6IW8maCfXCDIptgT7+mQJj7pImEkcNUnxR8yUKAHzTogTXv9yGm2WXOZFVuwstd2i0sImhQ1Vz8RH/hA==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/cache-in-memory@4.24.0':
|
||||
resolution: {integrity: sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==}
|
||||
'@algolia/client-common@5.12.0':
|
||||
resolution: {integrity: sha512-od3WmO8qxyfNhKc+K3D17tvun3IMs/xMNmxCG9MiElAkYVbPPTRUYMkRneCpmJyQI0hNx2/EA4kZgzVfQjO86Q==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/client-account@4.24.0':
|
||||
resolution: {integrity: sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==}
|
||||
'@algolia/client-insights@5.12.0':
|
||||
resolution: {integrity: sha512-8alajmsYUd+7vfX5lpRNdxqv3Xx9clIHLUItyQK0Z6gwGMbVEFe6YYhgDtwslMAP0y6b0WeJEIZJMLgT7VYpRw==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/client-analytics@4.24.0':
|
||||
resolution: {integrity: sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==}
|
||||
'@algolia/client-personalization@5.12.0':
|
||||
resolution: {integrity: sha512-bUV9HtfkTBgpoVhxFrMkmVPG03ZN1Rtn51kiaEtukucdk3ggjR9Qu1YUfRSU2lFgxr9qJc8lTxwfvhjCeJRcqw==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/client-common@4.24.0':
|
||||
resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==}
|
||||
'@algolia/client-query-suggestions@5.12.0':
|
||||
resolution: {integrity: sha512-Q5CszzGWfxbIDs9DJ/QJsL7bP6h+lJMg27KxieEnI9KGCu0Jt5iFA3GkREkgRZxRdzlHbZKkrIzhtHVbSHw/rg==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/client-personalization@4.24.0':
|
||||
resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==}
|
||||
'@algolia/client-search@5.12.0':
|
||||
resolution: {integrity: sha512-R3qzEytgVLHOGNri+bpta6NtTt7YtkvUe/QBcAmMDjW4Jk1P0eBYIPfvnzIPbINRsLxIq9fZs9uAYBgsrts4Zg==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/client-search@4.24.0':
|
||||
resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==}
|
||||
'@algolia/ingestion@1.12.0':
|
||||
resolution: {integrity: sha512-zpHo6qhR22tL8FsdSI4DvEraPDi/019HmMrCFB/TUX98yzh5ooAU7sNW0qPL1I7+S++VbBmNzJOEU9VI8tEC8A==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/logger-common@4.24.0':
|
||||
resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==}
|
||||
'@algolia/monitoring@1.12.0':
|
||||
resolution: {integrity: sha512-i2AJZED/zf4uhxezAJUhMKoL5QoepCBp2ynOYol0N76+TSoohaMADdPnWCqOULF4RzOwrG8wWynAwBlXsAI1RQ==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/logger-console@4.24.0':
|
||||
resolution: {integrity: sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==}
|
||||
'@algolia/recommend@5.12.0':
|
||||
resolution: {integrity: sha512-0jmZyKvYnB/Bj5c7WKsKedOUjnr0UtXm0LVFUdQrxXfqOqvWv9n6Vpr65UjdYG4Q49kRQxhlwtal9WJYrYymXg==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/recommend@4.24.0':
|
||||
resolution: {integrity: sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==}
|
||||
'@algolia/requester-browser-xhr@5.12.0':
|
||||
resolution: {integrity: sha512-KxwleraFuVoEGCoeW6Y1RAEbgBMS7SavqeyzWdtkJc6mXeCOJXn1iZitb8Tyn2FcpMNUKlSm0adrUTt7G47+Ow==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/requester-browser-xhr@4.24.0':
|
||||
resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==}
|
||||
'@algolia/requester-fetch@5.12.0':
|
||||
resolution: {integrity: sha512-FuDZXUGU1pAg2HCnrt8+q1VGHKChV/LhvjvZlLOT7e56GJie6p+EuLu4/hMKPOVuQQ8XXtrTHKIU3Lw+7O5/bQ==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@algolia/requester-common@4.24.0':
|
||||
resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==}
|
||||
|
||||
'@algolia/requester-node-http@4.24.0':
|
||||
resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==}
|
||||
|
||||
'@algolia/transporter@4.24.0':
|
||||
resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==}
|
||||
'@algolia/requester-node-http@5.12.0':
|
||||
resolution: {integrity: sha512-ncDDY7CxZhMs6LIoPl+vHFQceIBhYPY5EfuGF1V7beO0U38xfsCYEyutEFB2kRzf4D9Gqppn3iWX71sNtrKcuw==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
'@ampproject/remapping@2.3.0':
|
||||
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
|
||||
@ -765,14 +772,14 @@ packages:
|
||||
peerDependencies:
|
||||
postcss-selector-parser: ^6.1.0
|
||||
|
||||
'@docsearch/css@3.6.2':
|
||||
resolution: {integrity: sha512-vKNZepO2j7MrYBTZIGXvlUOIR+v9KRf70FApRgovWrj3GTs1EITz/Xb0AOlm1xsQBp16clVZj1SY/qaOJbQtZw==}
|
||||
'@docsearch/css@3.7.0':
|
||||
resolution: {integrity: sha512-1OorbTwi1eeDmr0v5t+ckSRlt1zM5GHjm92iIl3kUu7im3GHuP+csf6E0WBg8pdXQczTWP9J9+o9n+Vg6DH5cQ==}
|
||||
|
||||
'@docsearch/js@3.6.2':
|
||||
resolution: {integrity: sha512-pS4YZF+VzUogYrkblCucQ0Oy2m8Wggk8Kk7lECmZM60hTbaydSIhJTTiCrmoxtBqV8wxORnOqcqqOfbmkkQEcA==}
|
||||
'@docsearch/js@3.7.0':
|
||||
resolution: {integrity: sha512-ScfqOIKrSr8SImbpxVaD59xc/bytbL8QEM2GUpe3aICmoICflWp5DyTRzAdFky16HY+yEOAVZXt3COXQ1NOCWw==}
|
||||
|
||||
'@docsearch/react@3.6.2':
|
||||
resolution: {integrity: sha512-rtZce46OOkVflCQH71IdbXSFK+S8iJZlUF56XBW5rIgx/eG5qoomC7Ag3anZson1bBac/JFQn7XOBfved/IMRA==}
|
||||
'@docsearch/react@3.7.0':
|
||||
resolution: {integrity: sha512-8e6tdDfkYoxafEEPuX5eE1h9cTkLvhe4KgoFkO5JCddXSQONnN1FHcDZRI4r8894eMpbYq6rdJF0dVYh8ikwNQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '>= 16.8.0 < 19.0.0'
|
||||
react: '>= 16.8.0 < 19.0.0'
|
||||
@ -2228,8 +2235,8 @@ packages:
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/helper@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-6tJpiVCMdJ5bu5tvH51o+SIDyQG20kqYBvOPeRRsBVGjp8n0rH6KDGY0xDEkd/HF8mJ9UPqNYvqhsQyI3iKKWQ==}
|
||||
'@vuepress/helper@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-WvImKfX+ysLxndtEDaqfZAp72J6VYAzYLRESQ8XiGVLL5A+abeR1+64lQID6Zb1EClqkPt3Rox5EWAXEhY9D5Q==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
@ -2241,8 +2248,8 @@ packages:
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-comment@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-Ched+tAy+WhFU3zI9JE+eP6vG+bmL25wswlqLkjdA6DFdgx7kCfktsTkHaGA9XyzPpzfCUj4T8d8JG3LNlM2+Q==}
|
||||
'@vuepress/plugin-comment@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-t81rIe3NlHFCNbeexa4a1tTg0WB73JFYZtB22NISlyprqDNG1HUpHaWUWvFmBYFaSqJ0I9oZzkJxD11S8wu2nA==}
|
||||
peerDependencies:
|
||||
'@waline/client': ^3.3.1
|
||||
artalk: ^2.9.0
|
||||
@ -2256,28 +2263,28 @@ packages:
|
||||
twikoo:
|
||||
optional: true
|
||||
|
||||
'@vuepress/plugin-docsearch@2.0.0-rc.56':
|
||||
resolution: {integrity: sha512-l5+RP+l3d+WCOnxXVSCRmODYA8a6kyj3WBpjaFubOnVnasreHwKCCCWPInAFdgNsSFzw47SREXYtSSdkmwBf4A==}
|
||||
'@vuepress/plugin-docsearch@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-Nx69POUstOp1IfvM1veB1n6FqTg3pmLF3i9HRhN+gqgEU5v9im3n4gYpWs3hbvh3pnEzYIhbW+pgNpIHet/c1A==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-git@2.0.0-rc.56':
|
||||
resolution: {integrity: sha512-hjIYPYQYC6qK0Zwo5pK4h2CkXcA4LMVx77ErdiVTyLpUOWT7ly0FIspNUiwHUgo4jddzMLFtttW2aEX1Q/2vgg==}
|
||||
'@vuepress/plugin-git@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-Eug3e/KtVcToql70fJmbY/s9d0mzyVku/tDX7Jy+BjjsyBuDQYl0geAJNn2uGDWl/k4QdQH0AqWly6h977m/4g==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-markdown-hint@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-pJNy9N54s/VX1XOxMv43QFVfwBsavbA5P2oyAwzvmKKBeHZ1Tb2yq47ctEMdPXwcfWPQ+7KKO0M5zWFlt2ApbQ==}
|
||||
'@vuepress/plugin-markdown-hint@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-S5lTs1z4atkikul8RxTXR5eeGmjYM23ROhHLC2X4gTvHDbVH4gg+Z3HXbaOMJoafzSjwu4AQX2IRoehhHdsiEw==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-markdown-image@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-1hFh0unC7GLwV7BxHs9/ieVhhv0YaqUNzNU0cXgWKAc1gIasMD0GG4mHiMbpUOMooL3oTimreQ9MCLAyfdI52Q==}
|
||||
'@vuepress/plugin-markdown-image@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-mL6SlBIZGKI9z93Ieg23umV673Keg3hAeB6B6FaF8C7sh6mrJYvWgdG2kasPOOUlzaASzZNbUhY5OZr14OMaYg==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-markdown-math@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-IU/IWJyXRwLWChxf1PBHCL1CQ4X5mA306onnJVCHx5xuNpUce4hLFZWqvavugsY4KV478bznEoSCxxlR6YQNxw==}
|
||||
'@vuepress/plugin-markdown-math@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-RxrGSImeKwZVMNP+eXBaZKtV9P+EeNuS0uSdLne5uXGuNYF/CdRJEPRIdbseQb2KxfvOCHklZoZOxwbZvF0INw==}
|
||||
peerDependencies:
|
||||
katex: ^0.16.10
|
||||
mathjax-full: ^3.2.2
|
||||
@ -2288,18 +2295,18 @@ packages:
|
||||
mathjax-full:
|
||||
optional: true
|
||||
|
||||
'@vuepress/plugin-nprogress@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-Rf/KMx6d2N4ILqmSyo7IvxYx7XgoPk1tG6sAuXq4uir7c2xiwvwerUgMabLTIMt678eOdnVINhoNeOM5kIcDrQ==}
|
||||
'@vuepress/plugin-nprogress@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-dlMvDJQUbw8WNKSJeuzDQ9Hayje29QuFa9d75dLlXqwZUXDHER8Wn4luCPYDBnkIqMEK6jcum0Van7zqT1/udg==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-photo-swipe@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-fiNvYP1LXxOahm7a2P7BRQM6zTrsK4cTGLoJPVSMZxjISyrm+wldcpJ/z3KMRTBmHmOGyHoao1smQDSVEckfwA==}
|
||||
'@vuepress/plugin-photo-swipe@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-JUHmYCp2cduu4UVZ1OneaQQ6ORG6gB9El7n6mCbH0k6nE+cd22OkIggmMOEMSP9EICpnKQe8jfu2No966h+dUg==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-reading-time@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-4xl1F1gEicuzzlPvdEi4MUAR0iFVuqpVSRwqq0+ybqZVFNk3wCM+B+Y8x9vFNrsrrdl3uArQSuMLCTFHOj1MdA==}
|
||||
'@vuepress/plugin-reading-time@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-bon4SiuWNU4+asQWge1rOwiYTNeC5TIyv7Y0sOUoBlSc1WUBLcqHNKre1AXBNfXsCgisqdG32znW+vaGo7uwIQ==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
@ -2318,18 +2325,18 @@ packages:
|
||||
sass-loader:
|
||||
optional: true
|
||||
|
||||
'@vuepress/plugin-seo@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-ngnwk5TEKOeB0BYlWh3wltka6VYhMlP478JChFxxEHc6u9H5iSDRX2bV2+WnCsPYNXnsAAtmy28KpRriMsVQ0g==}
|
||||
'@vuepress/plugin-seo@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-OQU4IFrY5w2MwXPserOlr7L0mNN0SjZ5NWqp3536pFkEpD8gNMjPQ/MogVG/6c36J4GhZKMih28Tgy2cSpV4Nw==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-sitemap@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-rP4zvNgdkwU6z8xRBiCVtijltaAYOyWh3R/iKDXx7G1nbgppZOzY3/gzWj98AMsfy+yoAH/1irW+LS6nokuddw==}
|
||||
'@vuepress/plugin-sitemap@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-dPXK8oEBJ4LLUnOleqtGsODMnF2ROubBsAeTS97GW9TyUVI4DNFmzCUUctzfhHtGjVQOuChfJ+eCcaNEpL9/NQ==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
'@vuepress/plugin-watermark@2.0.0-rc.57':
|
||||
resolution: {integrity: sha512-DdielmdGMX+jTg+yFcCk7jjDNcowFUnMXrtwv0KyC5TT4hJjw+i0mTI5/yOR+Xdb0q03WwJolq25E4QzWg+SOg==}
|
||||
'@vuepress/plugin-watermark@2.0.0-rc.60':
|
||||
resolution: {integrity: sha512-eLtMkjKhJvPbSStSGh7FPRa04/GpwNsk60vGdYNTCQ09ncfbUO17vci0yUryRc48e2RqfWLfyE1Ipt4Vl+iphw==}
|
||||
peerDependencies:
|
||||
vuepress: 2.0.0-rc.18
|
||||
|
||||
@ -2412,8 +2419,9 @@ packages:
|
||||
ajv@8.17.1:
|
||||
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
||||
|
||||
algoliasearch@4.24.0:
|
||||
resolution: {integrity: sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==}
|
||||
algoliasearch@5.12.0:
|
||||
resolution: {integrity: sha512-psGBRYdGgik8I6m28iAB8xpubvjEt7UQU+w5MAJUA2324WHiGoHap5BPkkjB14rMaXeRts6pmOsrVIglGyOVwg==}
|
||||
engines: {node: '>= 14.0.0'}
|
||||
|
||||
ansi-escapes@4.3.2:
|
||||
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
|
||||
@ -6379,109 +6387,110 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)':
|
||||
'@algolia/autocomplete-core@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)':
|
||||
dependencies:
|
||||
'@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)
|
||||
'@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)
|
||||
'@algolia/autocomplete-plugin-algolia-insights': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)
|
||||
'@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)
|
||||
transitivePeerDependencies:
|
||||
- '@algolia/client-search'
|
||||
- algoliasearch
|
||||
- search-insights
|
||||
|
||||
'@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)':
|
||||
'@algolia/autocomplete-plugin-algolia-insights@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)':
|
||||
dependencies:
|
||||
'@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)
|
||||
'@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)
|
||||
search-insights: 2.17.2
|
||||
transitivePeerDependencies:
|
||||
- '@algolia/client-search'
|
||||
- algoliasearch
|
||||
|
||||
'@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)':
|
||||
'@algolia/autocomplete-preset-algolia@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)':
|
||||
dependencies:
|
||||
'@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)
|
||||
'@algolia/client-search': 4.24.0
|
||||
algoliasearch: 4.24.0
|
||||
'@algolia/autocomplete-shared': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)
|
||||
'@algolia/client-search': 5.12.0
|
||||
algoliasearch: 5.12.0
|
||||
|
||||
'@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)':
|
||||
'@algolia/autocomplete-shared@1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)':
|
||||
dependencies:
|
||||
'@algolia/client-search': 4.24.0
|
||||
algoliasearch: 4.24.0
|
||||
'@algolia/client-search': 5.12.0
|
||||
algoliasearch: 5.12.0
|
||||
|
||||
'@algolia/cache-browser-local-storage@4.24.0':
|
||||
'@algolia/client-abtesting@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/cache-common': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/cache-common@4.24.0': {}
|
||||
|
||||
'@algolia/cache-in-memory@4.24.0':
|
||||
'@algolia/client-analytics@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/cache-common': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/client-account@4.24.0':
|
||||
'@algolia/client-common@5.12.0': {}
|
||||
|
||||
'@algolia/client-insights@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/client-common': 4.24.0
|
||||
'@algolia/client-search': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/client-analytics@4.24.0':
|
||||
'@algolia/client-personalization@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/client-common': 4.24.0
|
||||
'@algolia/client-search': 4.24.0
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/client-common@4.24.0':
|
||||
'@algolia/client-query-suggestions@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/client-personalization@4.24.0':
|
||||
'@algolia/client-search@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/client-common': 4.24.0
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/client-search@4.24.0':
|
||||
'@algolia/ingestion@1.12.0':
|
||||
dependencies:
|
||||
'@algolia/client-common': 4.24.0
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/logger-common@4.24.0': {}
|
||||
|
||||
'@algolia/logger-console@4.24.0':
|
||||
'@algolia/monitoring@1.12.0':
|
||||
dependencies:
|
||||
'@algolia/logger-common': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/recommend@4.24.0':
|
||||
'@algolia/recommend@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/cache-browser-local-storage': 4.24.0
|
||||
'@algolia/cache-common': 4.24.0
|
||||
'@algolia/cache-in-memory': 4.24.0
|
||||
'@algolia/client-common': 4.24.0
|
||||
'@algolia/client-search': 4.24.0
|
||||
'@algolia/logger-common': 4.24.0
|
||||
'@algolia/logger-console': 4.24.0
|
||||
'@algolia/requester-browser-xhr': 4.24.0
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/requester-node-http': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
'@algolia/requester-browser-xhr@4.24.0':
|
||||
'@algolia/requester-browser-xhr@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
|
||||
'@algolia/requester-common@4.24.0': {}
|
||||
|
||||
'@algolia/requester-node-http@4.24.0':
|
||||
'@algolia/requester-fetch@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
|
||||
'@algolia/transporter@4.24.0':
|
||||
'@algolia/requester-node-http@5.12.0':
|
||||
dependencies:
|
||||
'@algolia/cache-common': 4.24.0
|
||||
'@algolia/logger-common': 4.24.0
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
|
||||
'@ampproject/remapping@2.3.0':
|
||||
dependencies:
|
||||
@ -6798,11 +6807,11 @@ snapshots:
|
||||
dependencies:
|
||||
postcss-selector-parser: 6.1.2
|
||||
|
||||
'@docsearch/css@3.6.2': {}
|
||||
'@docsearch/css@3.7.0': {}
|
||||
|
||||
'@docsearch/js@3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)':
|
||||
'@docsearch/js@3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2)':
|
||||
dependencies:
|
||||
'@docsearch/react': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)
|
||||
'@docsearch/react': 3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2)
|
||||
preact: 10.24.1
|
||||
transitivePeerDependencies:
|
||||
- '@algolia/client-search'
|
||||
@ -6811,12 +6820,12 @@ snapshots:
|
||||
- react-dom
|
||||
- search-insights
|
||||
|
||||
'@docsearch/react@3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)':
|
||||
'@docsearch/react@3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2)':
|
||||
dependencies:
|
||||
'@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)
|
||||
'@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)
|
||||
'@docsearch/css': 3.6.2
|
||||
algoliasearch: 4.24.0
|
||||
'@algolia/autocomplete-core': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)(search-insights@2.17.2)
|
||||
'@algolia/autocomplete-preset-algolia': 1.17.6(@algolia/client-search@5.12.0)(algoliasearch@5.12.0)
|
||||
'@docsearch/css': 3.7.0
|
||||
algoliasearch: 5.12.0
|
||||
optionalDependencies:
|
||||
search-insights: 2.17.2
|
||||
transitivePeerDependencies:
|
||||
@ -8343,7 +8352,7 @@ snapshots:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/helper@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/helper@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vue/shared': 3.5.12
|
||||
'@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
@ -8356,7 +8365,7 @@ snapshots:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/helper@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/helper@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.5)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vue/shared': 3.5.12
|
||||
'@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
@ -8396,9 +8405,9 @@ snapshots:
|
||||
lru-cache: 10.4.3
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
|
||||
'@vuepress/plugin-comment@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-comment@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
giscus: 1.5.0
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
@ -8406,12 +8415,11 @@ snapshots:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-docsearch@2.0.0-rc.56(@algolia/client-search@4.24.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-docsearch@2.0.0-rc.60(@algolia/client-search@5.12.0)(search-insights@2.17.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@docsearch/css': 3.6.2
|
||||
'@docsearch/js': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)
|
||||
'@docsearch/react': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)
|
||||
'@vuepress/helper': 2.0.0-rc.56(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@docsearch/css': 3.7.0
|
||||
'@docsearch/js': 3.7.0(@algolia/client-search@5.12.0)(search-insights@2.17.2)
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
ts-debounce: 4.0.0
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
@ -8425,17 +8433,17 @@ snapshots:
|
||||
- search-insights
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-git@2.0.0-rc.56(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-git@2.0.0-rc.60(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
execa: 9.5.1
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
|
||||
'@vuepress/plugin-markdown-hint@2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-markdown-hint@2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@mdit/plugin-alert': 0.13.1(markdown-it@14.1.0)
|
||||
'@mdit/plugin-container': 0.13.1(markdown-it@14.1.0)
|
||||
'@types/markdown-it': 14.1.2
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
transitivePeerDependencies:
|
||||
@ -8444,26 +8452,26 @@ snapshots:
|
||||
- typescript
|
||||
- vue
|
||||
|
||||
'@vuepress/plugin-markdown-image@2.0.0-rc.57(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-markdown-image@2.0.0-rc.60(markdown-it@14.1.0)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@mdit/plugin-figure': 0.13.1(markdown-it@14.1.0)
|
||||
'@mdit/plugin-img-lazyload': 0.13.1(markdown-it@14.1.0)
|
||||
'@mdit/plugin-img-mark': 0.13.1(markdown-it@14.1.0)
|
||||
'@mdit/plugin-img-size': 0.13.1(markdown-it@14.1.0)
|
||||
'@types/markdown-it': 14.1.2
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- markdown-it
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-markdown-math@2.0.0-rc.57(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-markdown-math@2.0.0-rc.60(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@mdit/plugin-katex-slim': 0.13.1(katex@0.16.11)(markdown-it@14.1.0)
|
||||
'@mdit/plugin-mathjax-slim': 0.13.1(markdown-it@14.1.0)(mathjax-full@3.2.2)
|
||||
'@types/markdown-it': 14.1.2
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
optionalDependencies:
|
||||
@ -8474,18 +8482,18 @@ snapshots:
|
||||
- markdown-it
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-nprogress@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-nprogress@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-photo-swipe@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-photo-swipe@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vueuse/core': 11.2.0(vue@3.5.12(typescript@5.6.3))
|
||||
photoswipe: 5.4.4
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
@ -8494,9 +8502,9 @@ snapshots:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-reading-time@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-reading-time@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
transitivePeerDependencies:
|
||||
@ -8516,26 +8524,26 @@ snapshots:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-seo@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-seo@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-sitemap@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-sitemap@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
sitemap: 8.0.0
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- typescript
|
||||
|
||||
'@vuepress/plugin-watermark@2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
'@vuepress/plugin-watermark@2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))':
|
||||
dependencies:
|
||||
'@vuepress/helper': 2.0.0-rc.57(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
'@vuepress/helper': 2.0.0-rc.60(typescript@5.6.3)(vuepress@2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3)))
|
||||
vue: 3.5.12(typescript@5.6.3)
|
||||
vuepress: 2.0.0-rc.18(@vuepress/bundler-vite@2.0.0-rc.18(@types/node@20.12.10)(jiti@1.21.6)(sass-embedded@1.80.3)(sass@1.80.3)(typescript@5.6.3)(yaml@2.5.1))(typescript@5.6.3)(vue@3.5.12(typescript@5.6.3))
|
||||
watermark-js-plus: 1.5.7
|
||||
@ -8621,23 +8629,21 @@ snapshots:
|
||||
json-schema-traverse: 1.0.0
|
||||
require-from-string: 2.0.2
|
||||
|
||||
algoliasearch@4.24.0:
|
||||
algoliasearch@5.12.0:
|
||||
dependencies:
|
||||
'@algolia/cache-browser-local-storage': 4.24.0
|
||||
'@algolia/cache-common': 4.24.0
|
||||
'@algolia/cache-in-memory': 4.24.0
|
||||
'@algolia/client-account': 4.24.0
|
||||
'@algolia/client-analytics': 4.24.0
|
||||
'@algolia/client-common': 4.24.0
|
||||
'@algolia/client-personalization': 4.24.0
|
||||
'@algolia/client-search': 4.24.0
|
||||
'@algolia/logger-common': 4.24.0
|
||||
'@algolia/logger-console': 4.24.0
|
||||
'@algolia/recommend': 4.24.0
|
||||
'@algolia/requester-browser-xhr': 4.24.0
|
||||
'@algolia/requester-common': 4.24.0
|
||||
'@algolia/requester-node-http': 4.24.0
|
||||
'@algolia/transporter': 4.24.0
|
||||
'@algolia/client-abtesting': 5.12.0
|
||||
'@algolia/client-analytics': 5.12.0
|
||||
'@algolia/client-common': 5.12.0
|
||||
'@algolia/client-insights': 5.12.0
|
||||
'@algolia/client-personalization': 5.12.0
|
||||
'@algolia/client-query-suggestions': 5.12.0
|
||||
'@algolia/client-search': 5.12.0
|
||||
'@algolia/ingestion': 1.12.0
|
||||
'@algolia/monitoring': 1.12.0
|
||||
'@algolia/recommend': 5.12.0
|
||||
'@algolia/requester-browser-xhr': 5.12.0
|
||||
'@algolia/requester-fetch': 5.12.0
|
||||
'@algolia/requester-node-http': 5.12.0
|
||||
|
||||
ansi-escapes@4.3.2:
|
||||
dependencies:
|
||||
|
||||
@ -98,20 +98,20 @@
|
||||
"@vuepress-plume/plugin-fonts": "workspace:*",
|
||||
"@vuepress-plume/plugin-search": "workspace:*",
|
||||
"@vuepress-plume/plugin-shikiji": "workspace:*",
|
||||
"@vuepress/helper": "2.0.0-rc.57",
|
||||
"@vuepress/helper": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-cache": "2.0.0-rc.54",
|
||||
"@vuepress/plugin-comment": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-docsearch": "2.0.0-rc.56",
|
||||
"@vuepress/plugin-git": "2.0.0-rc.56",
|
||||
"@vuepress/plugin-markdown-hint": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-markdown-image": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-markdown-math": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-nprogress": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-photo-swipe": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-reading-time": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-seo": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-sitemap": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-watermark": "2.0.0-rc.57",
|
||||
"@vuepress/plugin-comment": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-docsearch": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-git": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-markdown-hint": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-markdown-image": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-markdown-math": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-nprogress": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-photo-swipe": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-reading-time": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-seo": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-sitemap": "2.0.0-rc.60",
|
||||
"@vuepress/plugin-watermark": "2.0.0-rc.60",
|
||||
"@vueuse/core": "^11.2.0",
|
||||
"bcrypt-ts": "^5.0.2",
|
||||
"chokidar": "3.6.0",
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
<script setup lang="ts">
|
||||
import VPDocAside from '@theme/VPDocAside.vue'
|
||||
import VPDocBreadcrumbs from '@theme/VPDocBreadcrumbs.vue'
|
||||
import VPDocChangelog from '@theme/VPDocChangelog.vue'
|
||||
import VPDocContributor from '@theme/VPDocContributor.vue'
|
||||
import VPDocFooter from '@theme/VPDocFooter.vue'
|
||||
import VPDocMeta from '@theme/VPDocMeta.vue'
|
||||
import VPEncryptPage from '@theme/VPEncryptPage.vue'
|
||||
@ -120,11 +122,14 @@ watch(
|
||||
<VPDocBreadcrumbs />
|
||||
<VPDocMeta />
|
||||
<VPEncryptPage v-if="!isPageDecrypted" />
|
||||
<Content
|
||||
<div
|
||||
v-else class="vp-doc plume-content"
|
||||
:class="[pageName, enabledExternalLinkIcon && 'external-link-icon-enabled']"
|
||||
vp-content
|
||||
/>
|
||||
:class="[pageName, enabledExternalLinkIcon && 'external-link-icon-enabled']" vp-content
|
||||
>
|
||||
<Content />
|
||||
<VPDocContributor />
|
||||
<VPDocChangelog />
|
||||
</div>
|
||||
</main>
|
||||
<VPDocFooter v-if="isPageDecrypted">
|
||||
<template #doc-footer-before>
|
||||
|
||||
178
theme/src/client/components/VPDocChangelog.vue
Normal file
178
theme/src/client/components/VPDocChangelog.vue
Normal file
@ -0,0 +1,178 @@
|
||||
<script setup lang="ts">
|
||||
import VPLink from '@theme/VPLink.vue'
|
||||
import { computed } from 'vue'
|
||||
import { usePageLang } from 'vuepress/client'
|
||||
import { useData, useLastUpdated, useThemeData } from '../composables/index.js'
|
||||
|
||||
const { theme, frontmatter, page } = useData()
|
||||
const themeData = useThemeData()
|
||||
const lang = usePageLang()
|
||||
const { datetime, lastUpdatedText } = useLastUpdated()
|
||||
|
||||
const list = computed(() => {
|
||||
const list = page.value.git?.changelog || []
|
||||
const formatter = new Intl.DateTimeFormat(lang.value, { dateStyle: 'short' })
|
||||
return list.map(({ date, ...item }) => {
|
||||
const datetime = formatter.format(date)
|
||||
return { datetime, ...item }
|
||||
})
|
||||
})
|
||||
|
||||
const hasChangelog = computed(() =>
|
||||
list.value.length && (frontmatter.value.changelog ?? !!themeData.value.changelog),
|
||||
)
|
||||
|
||||
const header = computed(() => {
|
||||
const outline = frontmatter.value.outline ?? theme.value.outline
|
||||
const level = Array.isArray(outline) ? outline[0] : outline === 'deep' ? 2 : outline || 2
|
||||
return `h${level}`
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="hasChangelog" class="vp-doc-changelog">
|
||||
<component :is="header" id="doc-changelog" tabindex="-1">
|
||||
<a href="#doc-changelog" class="header-anchor">
|
||||
<span>{{ theme.changelogText || 'Changelog' }}</span>
|
||||
</a>
|
||||
</component>
|
||||
<details class="hint-container details">
|
||||
<summary class="changelog-header">
|
||||
<span><span class="vpi-changelog" /><span>{{ lastUpdatedText }}:</span> <span>{{ datetime }}</span></span>
|
||||
<span class="changelog-button"><span class="vpi-menu" /><span>{{ theme.changelogButtonText || 'View All Changelog' }}</span></span>
|
||||
</summary>
|
||||
|
||||
<ul class="changelog-list">
|
||||
<template v-for="item in list" :key="item.hash">
|
||||
<li v-if="item.tag" class="changelog release-tag">
|
||||
<div>
|
||||
<VPLink :href="item.tagUrl" no-icon class="release-tag">
|
||||
<code>{{ item.tag }}</code>
|
||||
</VPLink>
|
||||
<span class="datetime">{{ theme.changelogOnText }} {{ item.datetime }}</span>
|
||||
</div>
|
||||
</li>
|
||||
<li v-else class="changelog commit">
|
||||
<div>
|
||||
<VPLink :href="item.commitUrl" no-icon class="hash">
|
||||
<code>{{ item.hash.slice(0, 5) }}</code>
|
||||
</VPLink>
|
||||
<span class="divider">-</span>
|
||||
</div>
|
||||
<div>
|
||||
<p class="message" v-html="item.message" />
|
||||
<span class="datetime">{{ theme.changelogOnText }} {{ item.datetime }}</span>
|
||||
</div>
|
||||
</li>
|
||||
</template>
|
||||
</ul>
|
||||
</details>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.vp-doc .vp-doc-changelog h2 {
|
||||
border-top: 1px solid var(--vp-c-divider);
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-header {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-header > span {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (min-width: 440px) {
|
||||
.vp-doc-changelog .changelog-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-header [class*="vpi-"] {
|
||||
margin-right: 4px;
|
||||
color: var(--vp-c-text-2);
|
||||
transition: color var(--vp-t-color);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-header .changelog-button:hover,
|
||||
.vp-doc-changelog .changelog-header .changelog-button:hover .vpi-menu {
|
||||
color: var(--vp-c-brand-1);
|
||||
transition: color var(--vp-t-color);
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
padding-left: 20px;
|
||||
transition: color var(--vp-t-color);
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog::before {
|
||||
position: absolute;
|
||||
top: 4px;
|
||||
left: 0;
|
||||
display: inline-block;
|
||||
width: 1.25em;
|
||||
height: 1.25em;
|
||||
color: var(--vp-c-text-3);
|
||||
content: "";
|
||||
background-color: currentcolor;
|
||||
-webkit-mask: var(--icon) no-repeat;
|
||||
mask: var(--icon) no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
transition: color var(--vp-t-color);
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog.commit::before {
|
||||
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 12a3 3 0 1 0 6 0a3 3 0 1 0-6 0m3-9v6m0 6v6'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog.release-tag::before {
|
||||
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3Cpath d='M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592-5.592a2.41 2.41 0 0 0 0-3.408l-7.71-7.71A2 2 0 0 0 11.172 3H6a3 3 0 0 0-3 3'/%3E%3C/g%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .release-tag {
|
||||
margin-right: 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .release-tag code {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .hash {
|
||||
margin-right: 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .divider {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .message {
|
||||
display: inline;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .message :deep(a::after) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vp-doc-changelog .changelog-list .changelog .datetime {
|
||||
font-size: 12px;
|
||||
color: var(--vp-c-text-3);
|
||||
transition: color var(--vp-t-color);
|
||||
}
|
||||
</style>
|
||||
66
theme/src/client/components/VPDocContributor.vue
Normal file
66
theme/src/client/components/VPDocContributor.vue
Normal file
@ -0,0 +1,66 @@
|
||||
<script setup lang="ts">
|
||||
import VPLink from '@theme/VPLink.vue'
|
||||
import { computed } from 'vue'
|
||||
import { useContributors, useData } from '../composables/index.js'
|
||||
|
||||
const { theme, frontmatter } = useData()
|
||||
|
||||
const { contributors, mode } = useContributors()
|
||||
const hasContributors = computed(() => Boolean(contributors.value.length) && mode.value === 'block')
|
||||
|
||||
const header = computed(() => {
|
||||
const outline = frontmatter.value.outline ?? theme.value.outline
|
||||
const level = Array.isArray(outline) ? outline[0] : outline === 'deep' ? 2 : outline || 2
|
||||
return `h${level}`
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="hasContributors" class="vp-doc-contributor">
|
||||
<component :is="header" id="doc-contributors" tabindex="-1">
|
||||
<a href="#doc-contributors" class="header-anchor">
|
||||
<span>{{ theme.contributorsText || 'Contributors' }}</span>
|
||||
</a>
|
||||
</component>
|
||||
|
||||
<ul class="contributor-list">
|
||||
<li v-for="contributor in contributors" :key="contributor.name + contributor.email" class="contributor">
|
||||
<VPLink :href="contributor.url" no-icon>
|
||||
<img v-if="contributor.avatar" :src="contributor.avatar" :alt="contributor.name">
|
||||
<span>{{ contributor.name }}</span>
|
||||
</VPLink>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.vp-doc .vp-doc-contributor h2 {
|
||||
border-top: 1px solid var(--vp-c-divider);
|
||||
}
|
||||
|
||||
.vp-doc-contributor .contributor-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 24px 16px;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
padding-left: 0;
|
||||
margin-top: 32px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.contributor-list .contributor img {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.contributor-list .contributor :deep(.vp-link) {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
@ -7,21 +7,27 @@ import {
|
||||
useEditLink,
|
||||
useLastUpdated,
|
||||
usePrevNext,
|
||||
useThemeData,
|
||||
} from '../composables/index.js'
|
||||
|
||||
const { theme, frontmatter } = useData()
|
||||
const { theme, frontmatter, page } = useData()
|
||||
const themeData = useThemeData()
|
||||
const editLink = useEditLink()
|
||||
const { datetime: lastUpdated, isoDatetime, lastUpdatedText } = useLastUpdated()
|
||||
const contributors = useContributors()
|
||||
const { contributors, mode } = useContributors()
|
||||
const { prev, next } = usePrevNext()
|
||||
|
||||
const hasChangelog = computed(() =>
|
||||
page.value.git?.changelog?.length && (frontmatter.value.changelog ?? !!themeData.value.changelog),
|
||||
)
|
||||
|
||||
const hasEditLink = computed(() =>
|
||||
Boolean(theme.value.editLink && frontmatter.value.editLink !== false && editLink.value),
|
||||
Boolean(themeData.value.editLink && frontmatter.value.editLink !== false && editLink.value),
|
||||
)
|
||||
const hasLastUpdated = computed(() =>
|
||||
Boolean(theme.value.lastUpdated && frontmatter.value.lastUpdated !== false && lastUpdated.value),
|
||||
Boolean(themeData.value.lastUpdated !== false && frontmatter.value.lastUpdated !== false && lastUpdated.value) && !hasChangelog.value,
|
||||
)
|
||||
const hasContributors = computed(() => Boolean(contributors.value.length))
|
||||
const hasContributors = computed(() => Boolean(contributors.value.length) && mode.value === 'inline')
|
||||
|
||||
const showFooter = computed(() => {
|
||||
return hasEditLink.value
|
||||
@ -44,7 +50,7 @@ const showFooter = computed(() => {
|
||||
</VPLink>
|
||||
</div>
|
||||
|
||||
<div v-if="hasLastUpdated" class="last-updated">
|
||||
<div v-if="hasLastUpdated" class="last-updated" aria-label="Last updated">
|
||||
<p class="last-updated-text">
|
||||
{{ lastUpdatedText }}:
|
||||
<time :datetime="isoDatetime" class="last-updated-time">
|
||||
@ -54,14 +60,18 @@ const showFooter = computed(() => {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="hasContributors && contributors?.length" class="contributors">
|
||||
<div
|
||||
v-if="hasContributors && contributors?.length"
|
||||
class="contributors" :class="{ right: hasLastUpdated }"
|
||||
aria-label="Contributors"
|
||||
>
|
||||
<span class="contributors-label">
|
||||
{{ theme.contributorsText || 'Contributors' }}:
|
||||
</span>
|
||||
<span class="contributors-info">
|
||||
<template v-for="(contributor, index) in contributors" :key="contributor">
|
||||
<template v-for="(contributor, index) in contributors" :key="contributor.name + index">
|
||||
<span class="contributor">
|
||||
{{ contributor }}
|
||||
{{ contributor.name }}
|
||||
</span>
|
||||
<template v-if="index !== contributors.length - 1">, </template>
|
||||
</template>
|
||||
@ -155,7 +165,7 @@ const showFooter = computed(() => {
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.contributors {
|
||||
.contributors.right {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,20 +1,32 @@
|
||||
import type { ComputedRef } from 'vue'
|
||||
import type { GitContributor } from '../../shared/index.js'
|
||||
import { computed } from 'vue'
|
||||
import { isPlainObject } from 'vuepress/shared'
|
||||
import { useData } from '../composables/data.js'
|
||||
import { toArray } from '../utils/index.js'
|
||||
import { useThemeData } from './theme-data.js'
|
||||
|
||||
export function useContributors(): ComputedRef<string[]> {
|
||||
const { theme, page, frontmatter } = useData()
|
||||
export function useContributors(): {
|
||||
mode: ComputedRef<'inline' | 'block'>
|
||||
contributors: ComputedRef<GitContributor[]>
|
||||
} {
|
||||
const { page, frontmatter } = useData()
|
||||
const theme = useThemeData()
|
||||
|
||||
return computed(() => {
|
||||
const config = frontmatter.value.contributors ?? theme.value.contributors ?? true
|
||||
const mode = computed(() => {
|
||||
const config = theme.value.contributors
|
||||
if (isPlainObject(config))
|
||||
return config.mode || 'inline'
|
||||
return 'inline'
|
||||
})
|
||||
|
||||
const contributors = computed(() => {
|
||||
const config = frontmatter.value.contributors ?? !!theme.value.contributors
|
||||
|
||||
if (config === false)
|
||||
return []
|
||||
|
||||
const contributors = config === true ? [] : toArray(config)
|
||||
const gitContributors = (page.value.git?.contributors ?? []).map(({ name }) => name)
|
||||
|
||||
return Array.from(new Set([...gitContributors, ...contributors]))
|
||||
return page.value.git?.contributors ?? []
|
||||
})
|
||||
|
||||
return { mode, contributors }
|
||||
}
|
||||
|
||||
@ -3,15 +3,17 @@ import type {
|
||||
NavItemWithLink,
|
||||
} from '../../shared/index.js'
|
||||
import { computed } from 'vue'
|
||||
import { useData } from '../composables/data.js'
|
||||
import { resolveEditLink } from '../utils/index.js'
|
||||
import { useData } from './data.js'
|
||||
import { useThemeData } from './theme-data.js'
|
||||
|
||||
export function useEditLink(): ComputedRef<null | NavItemWithLink> {
|
||||
const { theme, page, frontmatter } = useData()
|
||||
const themeData = useThemeData()
|
||||
|
||||
return computed(() => {
|
||||
const showEditLink
|
||||
= frontmatter.value.editLink ?? theme.value.editLink ?? true
|
||||
= frontmatter.value.editLink ?? themeData.value.editLink ?? true
|
||||
if (!showEditLink)
|
||||
return null
|
||||
|
||||
@ -19,8 +21,8 @@ export function useEditLink(): ComputedRef<null | NavItemWithLink> {
|
||||
docsRepo,
|
||||
docsBranch = 'main',
|
||||
docsDir = '',
|
||||
editLinkText,
|
||||
} = theme.value
|
||||
} = themeData.value
|
||||
const { editLinkText } = theme.value
|
||||
|
||||
if (!docsRepo)
|
||||
return null
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
import { computed, onMounted, ref, watchEffect } from 'vue'
|
||||
import { usePageLang } from 'vuepress/client'
|
||||
import { useData } from './data.js'
|
||||
import { useThemeData } from './theme-data.js'
|
||||
|
||||
export function useLastUpdated() {
|
||||
const { theme, page, frontmatter } = useData()
|
||||
const themeData = useThemeData()
|
||||
const lang = usePageLang()
|
||||
|
||||
const date = computed(() => page.value.git?.updatedTime ? new Date(page.value.git.updatedTime) : null)
|
||||
@ -12,20 +14,20 @@ export function useLastUpdated() {
|
||||
const datetime = ref('')
|
||||
|
||||
const lastUpdatedText = computed(() => {
|
||||
if (theme.value.lastUpdated === false)
|
||||
return
|
||||
return theme.value.lastUpdated?.text || theme.value.lastUpdatedText || 'Last updated'
|
||||
if (themeData.value.lastUpdated === false)
|
||||
return ''
|
||||
return theme.value.lastUpdatedText || 'Last updated'
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
watchEffect(() => {
|
||||
if (frontmatter.value.lastUpdated === false || theme.value.lastUpdated === false)
|
||||
if (frontmatter.value.lastUpdated === false || themeData.value.lastUpdated === false)
|
||||
return
|
||||
|
||||
datetime.value = date.value
|
||||
? new Intl.DateTimeFormat(
|
||||
theme.value.lastUpdated?.formatOptions?.forceLocale ? lang.value : undefined,
|
||||
theme.value.lastUpdated?.formatOptions ?? {
|
||||
themeData.value.lastUpdated?.formatOptions?.forceLocale ? lang.value : undefined,
|
||||
themeData.value.lastUpdated?.formatOptions ?? {
|
||||
dateStyle: 'short',
|
||||
timeStyle: 'short',
|
||||
},
|
||||
|
||||
@ -339,3 +339,8 @@
|
||||
color: currentcolor;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.vp-doc a[href*="://"]:has(img:only-child)::after,
|
||||
.vp-doc a[target=_blank]:has(img:only-child)::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@ -164,3 +164,11 @@
|
||||
.vpi-close {
|
||||
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z'/%3E%3Cpath fill='%23000' d='m12 14.122l5.303 5.303a1.5 1.5 0 0 0 2.122-2.122L14.12 12l5.304-5.303a1.5 1.5 0 1 0-2.122-2.121L12 9.879L6.697 4.576a1.5 1.5 0 1 0-2.122 2.12L9.88 12l-5.304 5.304a1.5 1.5 0 1 0 2.122 2.12z'/%3E%3C/g%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.vpi-changelog {
|
||||
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' d='M2.71 10.96a6.5 6.5 0 1 0-.69-3.53M2 8l1.5-1.5M2 8L.5 6.5m8 2v-4m0 4h3'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.vpi-menu {
|
||||
--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M4 5h0.01'/%3E%3Cpath d='M8 5h12'/%3E%3Cpath d='M4 10h0.01'/%3E%3Cpath d='M8 10h12'/%3E%3Cpath d='M4 15h0.01'/%3E%3Cpath d='M8 15h12'/%3E%3Cpath d='M4 20h0.01'/%3E%3Cpath d='M8 20h12'/%3E%3C/g%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
import type { App } from 'vuepress'
|
||||
import type { PlumeThemeLocaleData, PlumeThemeLocaleOptions } from '../../shared/index.js'
|
||||
import type { PlumeThemeData, PlumeThemeLocaleOptions } from '../../shared/index.js'
|
||||
import { entries, fromEntries, getLocaleConfig } from '@vuepress/helper'
|
||||
import { LOCALE_OPTIONS } from '../locales/index.js'
|
||||
import { THEME_NAME } from '../utils/index.js'
|
||||
|
||||
const FALLBACK_OPTIONS: PlumeThemeLocaleData = {
|
||||
const FALLBACK_OPTIONS: PlumeThemeData = {
|
||||
appearance: true,
|
||||
|
||||
blog: {
|
||||
@ -28,6 +28,8 @@ const FALLBACK_OPTIONS: PlumeThemeLocaleData = {
|
||||
// page meta
|
||||
editLink: true,
|
||||
contributors: true,
|
||||
changelog: false,
|
||||
|
||||
prevPage: true,
|
||||
nextPage: true,
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import type { App } from 'vuepress'
|
||||
import type { NavItem, PlumeThemeLocaleOptions } from '../../shared/index.js'
|
||||
import { entries, getRootLangPath, isPlainObject } from '@vuepress/helper'
|
||||
import { entries, getRootLangPath, isBoolean, isPlainObject } from '@vuepress/helper'
|
||||
import { PRESET_LOCALES } from '../locales/index.js'
|
||||
import { withBase } from '../utils/index.js'
|
||||
|
||||
@ -22,6 +22,12 @@ export function resolveThemeData(app: App, options: PlumeThemeLocaleOptions): Pl
|
||||
themeData.profile ??= options.avatar
|
||||
}
|
||||
|
||||
options.contributors = isPlainObject(options.contributors)
|
||||
? { mode: options.contributors.mode || 'inline' }
|
||||
: isBoolean(options.contributors) ? options.contributors : true
|
||||
|
||||
options.changelog = !!options.changelog
|
||||
|
||||
if (isPlainObject(themeData.bulletin)) {
|
||||
const { enablePage: _, ...opt } = themeData.bulletin
|
||||
themeData.bulletin = opt
|
||||
|
||||
@ -11,9 +11,11 @@ export const enLocale: PlumeThemeLocaleData = {
|
||||
|
||||
editLinkText: 'Edit this page',
|
||||
contributorsText: 'Contributors',
|
||||
lastUpdated: {
|
||||
text: 'Last Updated',
|
||||
},
|
||||
lastUpdatedText: 'Last Updated',
|
||||
|
||||
changelogText: 'Changelog',
|
||||
changelogOnText: 'On',
|
||||
changelogButtonText: 'View All Changelog',
|
||||
|
||||
encryptButtonText: 'Confirm',
|
||||
encryptPlaceholder: 'Enter password',
|
||||
|
||||
@ -16,10 +16,11 @@ export const zhLocale: PlumeThemeLocaleData = {
|
||||
contributorsText: '贡献者',
|
||||
prevPageLabel: '上一页',
|
||||
nextPageLabel: '下一页',
|
||||
lastUpdatedText: '最后更新于',
|
||||
|
||||
lastUpdated: {
|
||||
text: '最后更新于',
|
||||
},
|
||||
changelogText: '变更历史',
|
||||
changelogOnText: '于',
|
||||
changelogButtonText: '查看全部变更历史',
|
||||
|
||||
notFound: {
|
||||
code: '404',
|
||||
|
||||
@ -30,6 +30,10 @@ function cleanPageData(page: Page<PlumeThemePageData>) {
|
||||
}
|
||||
delete page.frontmatter.article
|
||||
|
||||
if (page.headers) {
|
||||
page.data.headers = []
|
||||
}
|
||||
|
||||
if (page.frontmatter.friends) {
|
||||
page.frontmatter.draft = true
|
||||
page.data.type = 'friends'
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import type { App, PluginConfig } from 'vuepress/core'
|
||||
import type { PlumeThemePluginOptions } from '../../shared/index.js'
|
||||
import type { PlumeThemeLocaleOptions, PlumeThemePluginOptions } from '../../shared/index.js'
|
||||
import { isPlainObject } from '@vuepress/helper'
|
||||
import { cachePlugin } from '@vuepress/plugin-cache'
|
||||
import { commentPlugin } from '@vuepress/plugin-comment'
|
||||
@ -30,12 +30,15 @@ export interface SetupPluginOptions {
|
||||
cache?: false | 'memory' | 'filesystem'
|
||||
}
|
||||
|
||||
export function getPlugins({
|
||||
app,
|
||||
pluginOptions,
|
||||
hostname,
|
||||
cache,
|
||||
}: SetupPluginOptions): PluginConfig {
|
||||
export function getPlugins(
|
||||
options: PlumeThemeLocaleOptions,
|
||||
{
|
||||
app,
|
||||
pluginOptions,
|
||||
hostname,
|
||||
cache,
|
||||
}: SetupPluginOptions,
|
||||
): PluginConfig {
|
||||
const isProd = app.env.isBuild
|
||||
|
||||
const plugins: PluginConfig = [
|
||||
@ -61,11 +64,26 @@ export function getPlugins({
|
||||
plugins.push(nprogressPlugin())
|
||||
}
|
||||
|
||||
if (pluginOptions.git ?? isProd) {
|
||||
if (pluginOptions.git !== false) {
|
||||
const excludes = ['home', 'friends', 'page', 'custom', false]
|
||||
const changelogOptions = isPlainObject(options.changelog) ? options.changelog : {}
|
||||
plugins.push(gitPlugin({
|
||||
createdTime: true,
|
||||
updatedTime: true,
|
||||
contributors: true,
|
||||
createdTime: false,
|
||||
updatedTime: options.lastUpdated !== false,
|
||||
contributors: isPlainObject(options.contributors) || options.contributors === true
|
||||
? {
|
||||
avatar: true,
|
||||
...options.contributors === true ? {} : options.contributors,
|
||||
}
|
||||
: false,
|
||||
changelog: options.changelog && (options.docsRepo || changelogOptions.repoUrl)
|
||||
? { repoUrl: options.docsRepo, ...changelogOptions }
|
||||
: false,
|
||||
filter(page) {
|
||||
if (page.frontmatter.home || excludes.includes(page.frontmatter.pageLayout as string))
|
||||
return false
|
||||
return true
|
||||
},
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ export function plumeTheme(options: PlumeThemeOptions = {}): Theme {
|
||||
|
||||
alias: resolveAlias(),
|
||||
|
||||
plugins: getPlugins({ app, pluginOptions, hostname, cache }),
|
||||
plugins: getPlugins(getThemeConfig().localeOptions, { app, pluginOptions, hostname, cache }),
|
||||
|
||||
extendsBundlerOptions,
|
||||
|
||||
|
||||
@ -25,7 +25,12 @@ export interface PlumeThemePageFrontmatter extends PlumeNormalFrontmatter {
|
||||
/**
|
||||
* 是否显示贡献者
|
||||
*/
|
||||
contributors?: boolean | string | string[]
|
||||
contributors?: boolean | string[]
|
||||
|
||||
/**
|
||||
* 是否显示变更历史
|
||||
*/
|
||||
changelog?: boolean
|
||||
/**
|
||||
* 上一篇
|
||||
*/
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import type { ChangelogOptions, ContributorsOptions, GitChangelog, GitContributor } from '@vuepress/plugin-git'
|
||||
import type { LocaleConfig } from 'vuepress/shared'
|
||||
import type { AutoFrontmatter } from '../auto-frontmatter.js'
|
||||
import type { PlumeThemeEncrypt } from './encrypt.js'
|
||||
import type { PlumeThemeLocaleData } from './locale.js'
|
||||
import type { LastUpdatedOptions, PlumeThemeLocaleData } from './locale.js'
|
||||
import type { PlumeThemePluginOptions } from './plugins.js'
|
||||
|
||||
export interface PlumeThemeOptions extends PlumeThemeLocaleOptions {
|
||||
@ -44,16 +45,58 @@ export interface PlumeThemeOptions extends PlumeThemeLocaleOptions {
|
||||
* 自动插入 frontmatter
|
||||
*/
|
||||
autoFrontmatter?: false | Omit<AutoFrontmatter, 'frontmatter'>
|
||||
|
||||
}
|
||||
|
||||
export type PlumeThemeLocaleOptions = PlumeThemeData
|
||||
|
||||
export type PlumeThemeData = PlumeThemeLocaleData & {
|
||||
locales?: LocaleConfig<Omit<PlumeThemeLocaleData, 'blog' | 'article'>>
|
||||
|
||||
/**
|
||||
* 文档仓库配置, 用于生成 Edit this page 链接
|
||||
*/
|
||||
docsRepo?: string
|
||||
|
||||
/**
|
||||
* 文档仓库分支配置,用于生成 `Edit this page` 链接。
|
||||
*/
|
||||
docsBranch?: string
|
||||
|
||||
/**
|
||||
* 文档仓库目录配置,用于生成 `Edit this page` 链接。
|
||||
*/
|
||||
docsDir?: string
|
||||
/**
|
||||
* 是否显示 "编辑此页"
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
editLink?: boolean
|
||||
|
||||
/**
|
||||
* 最后更新时间
|
||||
*
|
||||
* @default { text: 'Last Updated', formatOptions: { dateStyle: 'short', timeStyle: 'short' } }
|
||||
*/
|
||||
lastUpdated?: false | LastUpdatedOptions
|
||||
|
||||
/**
|
||||
* 是否显示贡献者
|
||||
*/
|
||||
contributors?: boolean | ContributorsOptions & { mode?: 'inline' | 'block' }
|
||||
|
||||
/**
|
||||
* 页面变更记录配置
|
||||
*/
|
||||
changelog?: boolean | ChangelogOptions
|
||||
}
|
||||
|
||||
export * from './bulletin.js'
|
||||
export * from './encrypt.js'
|
||||
export * from './locale.js'
|
||||
export * from './plugins.js'
|
||||
|
||||
export {
|
||||
type GitChangelog,
|
||||
type GitContributor,
|
||||
}
|
||||
|
||||
@ -137,13 +137,6 @@ export interface PlumeThemeLocaleData extends LocaleData {
|
||||
*/
|
||||
selectLanguageName?: string
|
||||
|
||||
/**
|
||||
* 是否显示 "编辑此页"
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
editLink?: boolean
|
||||
|
||||
/**
|
||||
* "编辑此页" 的文本
|
||||
*
|
||||
@ -157,45 +150,38 @@ export interface PlumeThemeLocaleData extends LocaleData {
|
||||
* @example ':repo/edit/:branch/:path'
|
||||
*/
|
||||
editLinkPattern?: string
|
||||
/**
|
||||
* 文档仓库配置, 用于生成 Edit this page 链接
|
||||
*/
|
||||
docsRepo?: string
|
||||
|
||||
/**
|
||||
* 文档仓库分支配置,用于生成 `Edit this page` 链接。
|
||||
*/
|
||||
docsBranch?: string
|
||||
|
||||
/**
|
||||
* 文档仓库目录配置,用于生成 `Edit this page` 链接。
|
||||
*/
|
||||
docsDir?: string
|
||||
/**
|
||||
* 最后更新时间
|
||||
*
|
||||
* @default { text: 'Last Updated', formatOptions: { dateStyle: 'short', timeStyle: 'short' } }
|
||||
*/
|
||||
lastUpdated?: false | LastUpdatedOptions
|
||||
|
||||
/**
|
||||
* @deprecated 使用 `lastUpdated.text` 代替.
|
||||
*
|
||||
* "最后更新时间" 的文本
|
||||
*
|
||||
* @default 'Last updated'
|
||||
*/
|
||||
lastUpdatedText?: string
|
||||
|
||||
/**
|
||||
* 是否显示贡献者
|
||||
*/
|
||||
contributors?: boolean
|
||||
/**
|
||||
* 贡献者的文本
|
||||
*/
|
||||
contributorsText?: string
|
||||
|
||||
/**
|
||||
* 变更历史的文本
|
||||
* @default 'Changelog'
|
||||
*/
|
||||
changelogText?: string
|
||||
|
||||
/**
|
||||
* 单次变更记录的时间文本
|
||||
* @default 'On'
|
||||
*/
|
||||
changelogOnText?: string
|
||||
|
||||
/**
|
||||
* 查看完整的变更历史的文本
|
||||
*
|
||||
* @default 'View All Changelog'
|
||||
*/
|
||||
changelogButtonText?: string
|
||||
|
||||
/**
|
||||
* 移动设备下的导航栏中 菜单选项的文字。
|
||||
*
|
||||
@ -350,13 +336,6 @@ export interface PlumeThemeProfile {
|
||||
/** ========================== Page Meta ====================== */
|
||||
|
||||
export interface LastUpdatedOptions {
|
||||
/**
|
||||
* Set custom last updated text.
|
||||
*
|
||||
* @default 'Last updated'
|
||||
*/
|
||||
text?: string
|
||||
|
||||
/**
|
||||
* Set options for last updated time formatting.
|
||||
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user