文章贡献者 v1.0.0-rc.115 +
965字约3分钟
2024-11-07
概述
主题支持为文章添加贡献者信息,以便更好的了解您的文章贡献者。
文章贡献者通过 git 提交记录获取。
该功能由 @vuepress/plugin-git 提供支持。
使用
主题已内置 @vuepress/plugin-git 插件,你无需重新安装即可使用。
在主题配置文件中启用该功能:
.vuepress/config.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'
}
})
})
出于性能考虑,主题默认不会在 开发环境中启用该功能,仅在 生产环境中启用。
配置
mode
类型:
'inline' | 'block'
默认值:
'inline'
描述:
inline
:在文章页底部,与 最后更新时间,并列显示贡献者信息,该模式下仅显示 贡献者名称。block
:在文章内容末尾插入贡献者信息,该模式下包含 贡献者名称、贡献者链接、贡献者头像。 (如当前页面内容结尾所示)
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
export default defineUserConfig({
theme: plumeTheme({
contributors: {
mode: 'block',
},
})
})
info
类型:
ContributorInfo[]
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,由于不能通过用户名直接获取头像和用户地址,请在此 补充完善用户信息。)
Github
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 配置中的用户名
}
]
},
})
})
Gitlab
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',
}
]
},
})
})
Gitee
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',
}
]
},
})
})
Bitbucket
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',
}
]
},
})
})
其它
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[]
interface GitContributor { name: string email: string commits: number // 贡献者提交次数 }
描述:
贡献者转换函数。该函数需要返回新的 贡献者列表。
frontmatter
contributors
类型:
boolean | string[]
描述:
是否显示贡献者信息。
如果您的文章来源于第三方, git 提交不能完整列出所有的作者,您可以在此处补充贡献者。