文章变更历史 v1.0.0-rc.115 +
878字约3分钟
2024-11-07
概述
主题支持为文章添加 文章变更历史,以便更好的了解您的文章修改历史。
文章变更历史 通过 git 提交记录获取。
该功能由 @vuepress/plugin-git 提供支持。
注意
该功能由于需要通过 git log
命令获取每个 md 文件的提交记录,是一个相对比较耗时的操作,特别是对于大型项目,提交记录数量较多的情况。因此该功能在开发环境中不会启用,仅在生产环境中启用。
但你仍然可以通过设置 theme.plugins.git
为 true
来启用该功能,以便在开发环境中测试。
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
export default defineUserConfig({
theme: plumeTheme({
plugins: { git: true }
})
})
使用
主题已内置 @vuepress/plugin-git 插件,你无需重新安装即可使用。
在主题配置文件中启用该功能:
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'
}
})
})
配置
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
}
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'
},
})
})
注意
请确保 changelog.repoUrl
配置正确, 默认值为 docsRepo。
主题默认适配了 github/gitlab/gitee/bitbucket
git 托管服务的相关访问地址模式。 如果您使用的是内建的托管服务或者其他,请自行配置 commitUrlPattern
、issueUrlPattern
、tagUrlPattern
。
注意
该功能要求你的项目在 Git 仓库 下,这样它才能从提交历史记录中收集信息。
在构建站点时,你应该确保所有的提交记录是可以获取到的。
举例来说, CI 工作流通常会在克隆你的仓库时添加 --depth 1
参数来避免拉取全部的提交记录,因此你需要禁用这个功能,以便该插件在 CI 可以中正常使用。
类似于 github actions
、Netlify
、 Vercel
等服务,默认是不会拉取全部的提交记录的。
在 github actions
中,可以通过添加 --depth 1
参数来使得 github actions
可以正确获取到所有的提交记录。
在 Netlify
、 Vercel
等服务中,处理方法则会相对复杂一些。这时候您可以先在 github actions
完成构建后 输出将产物输出到另一个单独的分支,然后在 Netlify
或者 Vercel
中直接使用该分支进行部署。
相关信息
通过主题的 cli
工具创建的项目,在选择部署方式为 github action
时,构建产物会输出到 gh_pages
分支中, 你可以在此基础上完成 Netlify
或者 Vercel
的部署。