CommitChangelog 组件为您的组件或文件自动生成 Git 提交历史记录,实时展示最近的代码变更和改进。CommitChangelog 组件会根据指定的文件路径,从 GitHub 仓库获取该文件的提交历史,并以时间线形式展示。
在您的 Markdown 文档中使用以下语法:
:commit-changelog
组件会自动根据当前页面路由推断组件名称,并获取对应文件的提交历史。
:commit-changelog{name="Button"}
如果您的文件不在默认的 src 目录,可以自定义路径:
:commit-changelog{commitPath="packages/ui/src" name="Button"}
::commit-changelog
---
commitPath: 'packages/core/src'
prefix: 'components'
suffix: 'ts'
name: 'useUser'
author: 'user@example.com'
---
这将查找 packages/core/src/components/useUser.ts?author=user@example.com 文件的提交历史。
name 属性或当前路由名称推断文件名casing 参数或全局配置控制)
auto(默认):Vue 组件(.vue 后缀)使用 PascalCase,其他文件使用 camelCasekebab:保持 kebab-case 格式(如 use-user → use-user.ts)camel:转换为 camelCase(如 use-user → useUser.ts)pascal:转换为 PascalCase(如 use-user → UseUser.ts)#123)使用此组件需要:
app.config.ts 中配置 GitHub 相关信息(url、branch、commitPath 等)。详见 GitHub 集成配置。.env 文件中配置 GitHub Personal Access Token:NUXT_GITHUB_TOKEN=ghp_your_personal_access_token_here
repo 或 public_repo scope)。您可以在 GitHub Settings > Developer settings > Personal access tokens 创建新的 token。NUXT_GITHUB_TOKEN,组件将不会报错,而是显示 "No recent changes"。per_page: 100 可以显著提升获取速度,减少 API 调用次数。API 会自动分页获取所有数据,不会丢失任何提交记录。since 和 until 参数的时间戳必须在 1970-01-01 到 2099-12-31 之间,否则可能返回异常结果。| Prop | Default | Type |
|---|---|---|
name | stringThe name of the component or file to get the changelog for. | |
commitPath | 'src' | stringThe path to the file in the repository. |
prefix | stringThe prefix for the file path. | |
suffix | 'vue' | stringThe file extension. |
author | stringThe author to filter commits by. | |
casing | 'auto' | "auto" | "kebab" | "camel" | "pascal"The casing format for the file name.
|
:commit-changelog{name="Accordion"}
输出示例:
:commit-changelog{suffix="ts" name="useColorMode"}
通过在 URL 查询参数中添加 author 可以只显示特定作者的提交:
:commit-changelog{author="user@example.com"}
author 参数可以是 GitHub 用户名或邮箱地址。例如:?author=octocat 或 ?author=user@example.com:commit-changelog{commitPath="packages/core/src" prefix="utils" suffix="ts" name="formatter" author="user@example.com"}
这将查找 packages/core/src/utils/formatter.ts?author=user@example.com 的提交历史。
对于使用 kebab-case 命名的 composables 或 utils 文件:
:commit-changelog{suffix="ts" name="use-user" casing="kebab" commitPath="composables"}
这将查找 composables/use-user.ts 的提交历史。
app.config.ts 中全局配置 github.casing: 'kebab',这样就不需要在每个组件中重复指定。在 app.config.ts 中配置默认命名格式:
export default defineAppConfig({
github: {
casing: 'kebab', // 全局默认使用 kebab-case
// 其他配置...
}
})
这样所有 CommitChangelog 组件都会默认使用 kebab-case,除非单独指定 casing 参数覆盖。