- 开发工具
- DevOps
- 后端
【免费下载链接】renovate
Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io
Renovate 仓库在tools/mkdocs/includes/abbreviations.md中维护了一份按 A-Z 排序的术语缩写表,借助 MkDocs Material 的abbr扩展与pymdownx.snippets自动注入机制,让官网文档中出现的每个缩写(如 PAT、SemVer、mTLS)在鼠标悬停时自动展示完整释义。本文围绕该文件展开,讲解它的条目语法、构建管线接线方式、维护约定,并结合仓库源码说明这些缩写对应的真实技术点在 Renovate 中的落点,帮助读者理解并复用在自建文档站中。
一、这个文件是什么:一份驱动全站 Tooltip 的全局词汇表
tools/mkdocs/includes/abbreviations.md是 Renovate 文档站(基于 MkDocs 与 Material 主题构建)的一份"缩写字典"。文件本身只有 31 条*[缩写]: 完整释义形式的定义,例如:
*[AMI]: Amazon Machine Images *[AUR]: Arch User Repository *[AWS]: Amazon Web Services *[CLI]: Command-Line Interface *[PAT]: Personal Access Token *[SemVer]: Semantic Versioning *[SRI]: Subresource Integrity *[UTC]: Coordinated Universal Time它的作用机制是:当 MkDocs 渲染任意一篇文档页面时,如果正文里出现了与表中缩写完全一致的词汇(如PAT、TLS),abbr扩展会自动把该词包装成<abbr>标签,Material 主题则在该词上显示一个悬停(hover)工具提示,内容即为这里定义的完整释义。读者无需跳转页面即可理解术语,而文档作者也不必在每个页面重复解释同一个缩写。
文件头部注释明确了两条约束:
- 列表必须保持 A-Z 字母序(
Please keep this list sorted from A-Z.),便于维护与查重; - 该机制源自 Material for MkDocs 的 Tooltips 参考文档中的"Adding a glossary"(添加词汇表)用法。
二、构建管线接线:mkdocs.yml 中的两个关键配置
该文件并不是被某篇文档import进来的,而是通过 tools/mkdocs/mkdocs.yml 的两处配置全局生效。
2.1pymdownx.snippets的auto_append:自动注入
markdown_extensions中启用了 Snippets 扩展,并把本文件加入自动追加列表:
- pymdownx.snippets: auto_append: - includes/abbreviations.mdauto_append的含义是:构建时把该文件的内容自动拼接到每一篇文档正文末尾参与解析,而不是要求每篇文档手动--8<--引用。这样全站所有页面共享同一份词汇表,新增缩写只需改一个文件。
2.2abbr扩展:将词汇转换为可悬停的<abbr>标签
同一份配置中还启用了abbr扩展(- abbr)。Snippets 负责"把定义注入进来",abbr负责"把正文中的匹配词变成带 tooltip 的元素",两者配合才形成完整链路。
2.3watch指令:本地预览热更新
mkdocs.yml中还配置了:
watch: - includes注释说明其意图:Watch the includes directory that has the abbreviations.md file. Now the preview will update automatically when the abbreviations file is changed.——即本地mkdocs serve预览时,一旦修改includes目录(含本文件),浏览器预览会自动刷新,免去手动重启。
三、条目语法与内容约定
3.1 语法
每条定义采用 Python-Markdown 的 Abbreviations 语法:
*[缩写]: 完整释义*[ABBR]中的缩写会在文档正文中被匹配并高亮为 tooltip;- 冒号后的文本是悬停时显示的内容;
- 匹配对大小写敏感,因此表中
the Mend Renovate App与The Mend Renovate App是两条独立条目,用于覆盖正文中可能出现的两种大小写写法。
3.2 语义化分类
从 31 条条目看,词汇表覆盖了 Renovate 文档中最高频的几类术语:
| 类别 | 代表条目 | 释义方向 |
|---|---|---|
| 基础设施与平台 | AWS、AMI、GCR、OCI | 云服务、镜像仓库、容器标准 |
| 安全与认证 | CA、GPG、mTLS、PAT、PEM、SSH、SSL、TLS、SRI | 证书、加密、访问令牌、完整性校验 |
| 研发流程 | CI、CD、CLI、DCO、SDK、VM、URL、UTC | 工程化基础概念 |
| 版本与生态 | SemVer、LTS、JDK、JRE、AUR、IaC、IAM、CVE | 版本策略、语言运行时、基础设施即代码 |
其中the Mend Renovate App/The Mend Renovate App两条的释义为 "This means the Mend-hosted GitHub app.",指向 Renovate 的官方托管 GitHub App,是项目特有的品牌术语。
四、仓库证据:这些缩写背后的真实技术落点
词汇表里的缩写并非孤立字符串,在 Renovate 源码与文档中都有真实对应,可加深对每条术语的理解。
4.1 PAT(Personal Access Token)与平台认证
PAT 在平台集成文档中被反复使用,例如 docs/usage/gitlab-bot-security.md 讨论了"以共享用户的个人访问令牌运行"与"按实例 OAuth 令牌"两种 GitLab 机器人安全方案,并指出 GitLab 支持项目/组粒度的细粒度 PAT;docs/usage/golang.md 则明确要求使用具备read_api权限的 PAT 作为密码。
4.2 SemVer(Semantic Versioning)与版本策略
SemVer 是 Renovate 版本管理的核心概念之一。lib/modules/versioning/semver/readme.md 说明 Renovate 的semver版本策略严格实现 SemVer 2.0 规范,且因规范不允许范围表达式而同样不支持范围;需要更宽松语义时应改用semver-coerced。文档侧,docs/usage/bazel.md 与 docs/usage/config-presets.md 也以 SemVer 描述 Git tag 与共享配置的版本引用方式。
4.3 GCR / OCI 与容器生态
gcr.io镜像在 Renovate 的替换规则与预设中真实出现:lib/data/replacements.json 记录了容器镜像仓库迁移(如k8s.gcr.io→registry.k8s.io、OpenSSF Scorecard 镜像从gcr.io/openssf/scorecard迁往ghcr.io/ossf/scorecard);lib/config/presets/internal/workarounds.preset.ts 中也包含gcr.io/bitnami-containers/**这类替换目标。OCI 方面,Docker 数据源的测试覆盖了 OCI manifest 媒体类型(application/vnd.oci.image.manifest.v1+json)下的架构相关 digest 场景,见 lib/modules/datasource/docker/index.spec.ts。
4.4 SRI(Subresource Integrity)与 npm 数据源
npm 数据源在解析 registry 返回的版本信息时,会把dist.integrity字段写入release.newDigest(见 lib/modules/datasource/npm/get.ts),其测试也在校验 integrity 与 tarball 的提取逻辑(lib/modules/datasource/npm/get.spec.ts)。这正是 SRI 在依赖解析层面的实际用途:通过哈希完整性值校验下载内容。
4.5 GPG 与配置解密
GPG 出现在 Renovate 自托管配置解密链路中:lib/config/decrypt 目录下bcpgp.ts与openpgp.ts分别基于 Bouncy Castle 与 OpenPGP.js 实现加密配置解密,配套测试文件bcpgp.spec.ts/openpgp.spec.ts及夹具lib/config/__fixtures__/private-pgp.pem可佐证 PEM 与 GPG 相关术语的实际用法。
五、维护建议与注意事项
- 保持字母序:文件注释明确要求 A-Z 排序,新增条目时插入到对应位置,避免破坏可读性并降低查重成本;
- 一个文件、全站生效:得益于
auto_append,只需维护此单一词汇表即可覆盖所有文档页面,不要在单篇文档里重复定义; - 区分大小写变体:若正文可能以不同大小写出现同一缩写(如
the Mend Renovate App),需为每种写法单列条目; - 本地开发体验:配合
watch: includes,修改词汇表后本地预览即时刷新,适合边写文档边补充术语; - 通用性取舍:本词汇表是文档基础设施的一部分,与 Renovate 的功能代码解耦,可整体迁移到任何基于 MkDocs Material 的项目中复用。
六、总结
tools/mkdocs/includes/abbreviations.md用 31 行声明式语法为 Renovate 全站文档提供了统一的缩写释义层:pymdownx.snippets负责注入、abbr扩展负责匹配生成 tooltip、watch保证本地预览热更新,而词汇表中的每个缩写都能在源码与文档中找到真实落点(PAT 之于平台认证、SemVer 之于版本策略、SRI 之于 npm 完整性校验等)。对于希望为自建 MkDocs 文档站增加"悬停即知术语"体验的团队,这是一份可直接照搬的参考实现。
- 开发工具
- DevOps
- 后端
【免费下载链接】renovate
Home of the Renovate CLI: Cross-platform Dependency Automation by Mend.io
相关推荐
mkdocs-material 指南:用 Tooltips、缩写与词汇表打造全站术语提示系统
mkdocs material 指南:用 Tooltips、缩写与词汇表打造全站术语提示系统 技术文档中充斥着大量缩写和领域术语,对于项目新手而言,这些词常常成
前端文档模板引擎JupyterLab @jupyterlab/tooltip 源码解析:内核驱动的 Notebook 与 Console 悬停提示机制
JupyterLab @jupyterlab/tooltip 源码解析:内核驱动的 Notebook 与 Console 悬停提示机制 @jupyterlab/
前端后端数据科学开发工具Material for MkDocs 脚注(Footnotes)完整指南:定义、引用与悬停提示渲染
Material for MkDocs 脚注(Footnotes)完整指南:定义、引用与悬停提示渲染 导读 脚注(Footnote)是技术文档中用于补充说明某一
前端文档模板引擎
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考