Skip to content

自动识别 GP / GC 标记并生成对应链接#436

Merged
zkitefly merged 6 commits intoHMCL-dev:mainfrom
neveler:auto-github-link
Apr 18, 2026
Merged

自动识别 GP / GC 标记并生成对应链接#436
zkitefly merged 6 commits intoHMCL-dev:mainfrom
neveler:auto-github-link

Conversation

@neveler
Copy link
Copy Markdown
Contributor

@neveler neveler commented Mar 29, 2026

本插件用于在转换文本时,自动识别 GP-1122 GC-aabb001 此类标记并自动根据标记类别链接到对应目标,例如 <a href="https://github.com/HMCL-dev/HMCL/pull/1122">GP-1122</a>


https://auto-github-link-docs.hmcl.workers.dev/changelog/dev

https://auto-github-link-docs.hmcl.workers.dev/changelog/stable

@zkitefly
Copy link
Copy Markdown
Member

zkitefly commented Mar 29, 2026

我的建议是不修改就日志的 ``,而是适配,例如

<a href="https://github.com/HMCL-dev/HMCL/commit/5fd52bb">GC-`5fd52bb`</a>

GC-5fd52bb

@neveler
Copy link
Copy Markdown
Contributor Author

neveler commented Mar 29, 2026

GC-5fd52bb

适配这个会增加代码复杂度,由于仓库同时存在 GC-aabb001GC-`aabb001` 两种写法,我认为统一使用 GC-aabb001 这种写法性价比更高。

@neveler neveler marked this pull request as draft April 6, 2026 09:53
@neveler neveler marked this pull request as ready for review April 16, 2026 07:52
@neveler neveler marked this pull request as draft April 16, 2026 08:07
@neveler neveler marked this pull request as ready for review April 16, 2026 12:41
@zkitefly
Copy link
Copy Markdown
Member

要检查 PR #436 (自动识别 GP / GC 标记并生成对应链接) 的代码是否存在问题,我需要查看具体的变更内容。接下来我会拉取此 PR 的代码 diff 并为你分析其中可能存在的问题,包括实现逻辑、代码风格、潜在 bug 以及易读性等方面。请稍等片刻。PR #436 主要修改了 changelog 文件的格式(将 GC/GP 的标记由 `GC-xxxxx` 替代 `GC-`xxxxx`),并在 _plugins/kramdown_enhancer.rb 新增了自动识别 GP/GC 标记并生成链接的功能。代码实现如下关键点:

1. **新功能**
   - 正则 `GITHUB_LINK_REGEX = /\b(GP-\d+|GC-[0-9a-f]{7})\b/` 用于识别 changelog 文本中的 GP/GC 标记。
   - `convert_text` 方法自动将 GP-1234 识别为 PR 链接、GC-abcdefg 识别为 commit 链接,支持自动跳转。
   - blockquote 类型常量提取为 `BLOCKQUOTE_TYPES`,提升可维护性。

2. **潜在问题审查**
   - `convert_text` 方法中,各分支处理逻辑清晰,无显著语法/拼写/正则误用问题。
   - 新增正则表达式能准确区分 GP-数字 和 GC-7位数commit。
   - 旧的 `blockquote_types` 方法已移除,BLOCKQUOTE_TYPE 替换无副作用。
   - 自动生成 markdown 链接封装为 Kramdown 元素,未直接拼接 HTML,兼容 kramdown 的 AST。
   - 兼容“GP-”、“GC-”以空格或标点分隔。

3. **建议**
   - 如 changelog 内容不规范或有拼写错误可能导致无法正常生成链接,可考虑增强正则容错性。
   - 若有极端情况(如多行内含多个 GP/GC 标记),建议补充单元测试。

### 总结

- 本 PR 的 Ruby 代码实现方式正确,无明显 bug 或不合理之处。
- 改动安全、作用范围明确,符合 changelog 自动链接需求,如需更详细的测试建议可继续补充。

如果需要详细代码行点评,或关注某一具体行为,请回复说明。

@neveler
Copy link
Copy Markdown
Contributor Author

neveler commented Apr 18, 2026

  • 如 changelog 内容不规范或有拼写错误可能导致无法正常生成链接,可考虑增强正则容错性。

当前正则足以用于文本匹配,无需增强。

  • 若有极端情况(如多行内含多个 GP/GC 标记),建议补充单元测试。

没有这个必要吧,且目前正则并不会产生这样的问题。

@zkitefly zkitefly merged commit 8b05643 into HMCL-dev:main Apr 18, 2026
6 checks passed
@neveler neveler deleted the auto-github-link branch April 19, 2026 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants