CommitChangelog

自动生成组件或文件的 Git 提交历史。

概述

根据指定文件路径,从 GitHub 仓库获取提交历史,以时间线形式展示。

前置要求

  • GitHub 配置:在 app/app.config.ts 中配置 GitHub 相关信息。详见 GitHub 集成配置
  • 环境变量:在 .env 文件中配置 GitHub Token:
    NUXT_GITHUB_TOKEN=ghp_your_personal_access_token_here
    
GitHub Token 需要具有读取仓库提交历史的权限(repopublic_repo scope)。您可以在 GitHub Settings > Developer settings > Personal access tokens 创建新的 token。
如果未配置 NUXT_GITHUB_TOKEN,组件将不会报错,而是显示 "No recent changes"。

用法

基本用法

在您的 Markdown 文档中使用以下语法:

md
:commit-changelog

组件会自动根据当前页面路由推断组件名称,并获取对应文件的提交历史。

显示 Vue 组件的提交历史

md
:commit-changelog{name="Accordion"}

输出示例:

  • a1b2c — fix: 修复折叠动画延迟问题 #45
  • d4e5f — feat: 添加 disabled 属性支持

显示 TypeScript 文件的提交历史

md
:commit-changelog{suffix="ts" name="useColorMode"}

按作者过滤提交

通过在 URL 查询参数中添加 author 可以只显示特定作者的提交:

md
:commit-changelog{author="user@example.com"}
author 参数可以是 GitHub 用户名或邮箱地址。例如:?author=octocat?author=user@example.com

使用 kebab-case 命名的文件

对于使用 kebab-case 命名的 composablesutils 文件:

md
:commit-changelog{suffix="ts" name="use-user" casing="kebab" commitPath="composables"}

这将查找 composables/use-user.ts 的提交历史。

如果项目中的文件统一使用 kebab-case 命名,建议在 app/app.config.ts 中全局配置 github.casing: 'kebab',这样就不需要在每个组件中重复指定。
app/app.config.ts
export default defineAppConfig({
  github: {
    casing: 'kebab', // 全局默认使用 kebab-case
    // 其他配置...
  }
})

完整配置示例

md
::commit-changelog
---
commitPath: 'packages/core/src'
prefix: 'components'
suffix: 'ts'
name: 'useUser'
author: 'user@example.com'
---

API

Props

Prop Default Type
namestring

要获取更新日志的组件或文件名

commitPath'src'string

仓库中的文件路径

prefixstring

文件路径的前缀

suffix'vue'string

文件扩展名

authorstring

按作者筛选提交

casing'auto'"auto" | "kebab" | "camel" | "pascal"

文件名的命名格式

  • 'auto': Vue 文件使用 PascalCase,其他使用 camelCase(默认)
  • 'kebab': 保持 kebab-case(如 use-user.ts)
  • 'camel': 转换为 camelCase(如 useUser.ts)
  • 'pascal': 转换为 PascalCase(如 UseUser.ts)

Changelog

4e45d — refactor: 重构组件结构和优化代码组织

e61d5 — feat: 添加文件命名格式配置支持

5a468 — feat: 增强主题定制系统并优化 UI 组件

a87b3 — feat: 增强 GitHub 提交 API 支持更多过滤和分页参数

b4084 — feat: 新增 CommitChangelog 组件

Copyright © 2024 - 2026