内置链接检查工具
你可以使用 htmltest 来检查 /content/en/
下面的失效链接。这在重构章节内容、移动页面或者重命名文件或页眉时非常有用。
工作原理
htmltest
会扫描 kubernetes website 仓库构建生成的 HTML 文件。通过执行 make
命令进行了下列操作:
- 构建站点并输出 HTML 到本地
kubernetes/website
仓库下的/public
目录中 - 拉取 Docker 镜像
wdjp/htmltest
- 挂载本地
kubernetes/website
仓库到 Docker 容器中 - 扫描
/public
目录下生成的文件并将遇到的失效链接通过命令行打印出来
哪些链接不会检查
该链接检查器扫描生成的 HTML 文件,而非原始的 Markdown. 该 htmltest 工具依赖于一个配置文件,.htmltest.yml
,来决定检查哪些内容。
该链接检查器扫描以下内容:
- 所有由
/content/en/docs
目录下的 Markdown 文件生成的内容,但不包括: - 所有的内部链接,但不包括:
- 空白锚点 (
<a href="#">
或[title](#)
) 以及空白目标地址 (<a href="">
或[title]()
) - 指向图片或其他媒体文件的内部链接
- 空白锚点 (
该链接检查器不会扫描以下内容:
- 包含在顶部和侧边导航栏的链接,以及页脚链接或者页面的
<head>
部分中的链接,例如 CSS 样式表、脚本以及元信息的链接。 - 顶级页面及其子页面,例如:
/training
,/community
,/case-studies/adidas
- 博客文章
- API 参考文档,例如:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/
- 本地化内容
先决条件以及安装说明
必须安装:
运行链接检查器
运行链接检查器需要:
-
进入本地
kubernetes/website
仓库的根目录下。 -
执行如下命令:
make docker-internal-linkcheck
理解输出的内容
如果链接检查器发现了失效链接,则输出内容类似如下:
tasks/access-kubernetes-api/custom-resources/index.html
hash does not exist --- tasks/access-kubernetes-api/custom-resources/index.html --> #preserving-unknown-fields
hash does not exist --- tasks/access-kubernetes-api/custom-resources/index.html --> #preserving-unknown-fields
这是一系列失效链接。该日志附带了每个页面下的失效链接。
在这部分输出中,包含失效链接的文件是 tasks/access-kubernetes-api/custom-resources.md
.
该工具给出了一个理由:hash does not exist
. 在大部分情况下,你可以忽略这个。
目标链接是 #preserving-unknown-fields
.
修复这个问题的一种方式是:
- 转到含有失效链接的 Markdown 文件。
- 使用文本编辑器全文搜索失效链接的 URL(通常使用 Ctrl+F 或 Command+F)
#preserving-unknown-fields
. - 修复该链接。对于一个失效的锚点(或者 anchor )链接,检查该主题是否已更名或者移除。
运行 htmltest 来验证失效链接是否已修复。
最后修改
September 30, 2020 at 2:53 PM PST
: Add zh trans of linkchecker (8c1291f63)