#markdown #markup #markdown-html #broken #html #file-path #link-checker

程序+库 mlc

标记链接检查器(mlc)用于检查标记文件中的断链

58 次发布

0.18.0 2024 年 6 月 30 日
0.17.0 2024 年 5 月 19 日
0.16.3 2023 年 11 月 20 日
0.16.2 2023 年 6 月 15 日
0.1.1 2018 年 6 月 7 日

#77文本处理

Download history 19/week @ 2024-05-03 222/week @ 2024-05-10 275/week @ 2024-05-17 237/week @ 2024-05-24 475/week @ 2024-05-31 385/week @ 2024-06-07 462/week @ 2024-06-14 589/week @ 2024-06-21 297/week @ 2024-06-28 306/week @ 2024-07-05 319/week @ 2024-07-12 287/week @ 2024-07-19 285/week @ 2024-07-26 221/week @ 2024-08-02 159/week @ 2024-08-09 20/week @ 2024-08-16

763 每月下载量

MIT 许可证

79KB
2K SLoC

标记链接检查器

crates.io downloads build status license PRs welcome

asciicast

检查标记文件中的断链。目前支持 htmlmarkdown 文件。标记链接检查器可以轻松集成到您的 CI 流中,以防止标记文档中的断链。

功能

  • markdownhtml 文件中查找和检查链接
  • 支持 markdown 文件中的 HTML 链接和平面 URL
  • 验证绝对和相对文件路径和 URL
  • 用户友好的命令行界面
  • 易于 CI 流集成
  • 使用 async 实现非常快速的执行
  • 有效的链接解析策略,尝试最小化网络负载
  • 节流选项,以防止 429 Too Many Requests 错误
  • 通过配置文件进行配置
  • 通过 GitHub 工作流程命令报告断链

本地安装

安装和使用 mlc 有多种方法。

Cargo

使用 Rust 的包管理器 cargocrates.io 安装 mlc

cargo install mlc

下载二进制文件

要下载 mlc 的编译版二进制文件,请访问 github releases 并下载为 x86_64-unknown-linux-gnux86_64-apple-darwin 编译的二进制文件。

Linux 发行版

Arch Linux

您可以使用 官方仓库 使用 pacman 安装

pacman -S markuplinkchecker

CI 流集成

GitHub Actions

使用Marketplace中的GitHub-Action在GitHub中使用mlc

- name: Markup Link Checker (mlc)
  uses: becheran/[email protected]

使用with参数使用mlc命令行参数。

- name: Markup Link Checker (mlc)
  uses: becheran/[email protected]
  with:
    args: ./README.md

该操作使用GitHub工作流程命令来突出显示损坏的链接。

annotation

二进制文件

要在运行在linux x86_64环境的CI管道中集成mlc,您可以添加以下命令以下载工具。

curl -L https://github.com/becheran/mlc/releases/download/v0.18.0/mlc-x86_64-linux -o mlc
chmod +x mlc

例如,查看使用mlc在CI管道中的ntest存储库

Docker

使用包含mlcDocker Hub中的mlc镜像。

用法

安装mlc后,可以从命令行调用它。以下调用将检查当前文件夹及其所有子目录中找到的标记文件中的所有链接。

mlc

另一个示例是在特定目录或文件上调用mlc

mlc ./docs

或者,您可能希望忽略所有由git当前忽略的文件(需要git二进制文件在$PATH上可用)并设置根目录以设置相对链接。

mlc --gitignore --root-dir .

使用--help标志调用mlc以显示所有可用的命令行参数。

mlc -h

以下参数是可用的

参数 描述
<目录> 仅位置参数。要检查的目录路径,包括所有子目录。也可以是特定要检查的文件名。
--帮助 -h 打印帮助
--调试 -d 显示详细的调试信息
--do-not-warn-for-redirect-to 不要警告重定向到给定URL的链接。允许与--ignore-links相同的链接格式。例如,--do-not-warn-for-redirect-to "http*://crates.io*"将不会警告重定向到crates.io网站。
--offline -o 不要检查任何网络链接。从--no-web-links重命名,它仍然是向下兼容的别名。
--match-file-extension -e 设置标志,如果文件扩展名也应当被检查。例如,以下标记链接[link](dir/file)如果例如dir中存在名为file.md的文件,则匹配,但如果设置了--match-file-extension标志,则会失败。
--version -V 打印mlc的当前版本
--ignore-路径 -p 逗号分隔的目录或文件列表,这些目录或文件应当被忽略。例如
--gitignore -g 忽略git当前忽略的所有文件(需要git二进制文件在$PATH上可用)。
--ignore-links -i 逗号分隔的链接列表,这些链接应当被忽略。使用简单的?*通配符。例如,--ignore-links "http*://crates.io*"将跳过所有链接到crates.io网站。有关更多信息,请参阅使用的库
--markup-types -t 逗号分隔的标记类型列表,这些类型应当被检查 [可能的值:md, html]
--root-dir -r 所有以斜杠开头在Linux上或反斜杠开头在Windows上的文件系统链接都将使用另一个虚拟根目录。例如,文件中的链接 [link](/dir/other/file.md) 与命令行参数 --root-dir /env/another/dir 检查后,将让 mlc 检查 /env/another/dir/dir/other/file.md 的存在。
--throttle -T 在向同一主机发送Web请求之间等待的毫秒数。默认值为零,表示不进行节流。如果您需要减慢Web请求频率以避免 429 - Too Many Requests 响应,请设置此参数。例如,使用 --throttle 15,在每次对同一主机的http检查之间将等待15毫秒。注意,此设置可能会减慢链接检查器。

可以通过命令行传递的所有可选参数也可以通过在启动 mlc 的工作目录中的 .mlc.toml 配置文件来配置

# Print debug information to console
debug = true
# Do not warn for links which redirect to the given URL
do-not-warn-for-redirect-to=["http*://crates.io*"]
# Do not check web links
offline = true
# Check the exact file extension when searching for a file
match-file-extension= true
# List of files and directories which will be ignored
ignore-path=["./ignore-me","./src"]
# Ignore all files ignored by git
gitignore = true
# List of links which will be ignored
ignore-links=["http://ignore-me.de/*","http://*.ignoresub-domain/*"]
# List of markup types which shall be checked
markup-types=["Markdown","Html"]
# Wait time in milliseconds between http request to the same host
throttle= 100
# Path to the root folder used to resolve all relative paths
root-dir="./"

变更日志

查看不同版本之间的更改,请参阅 变更日志文件

许可证

本项目采用 MIT 许可证 - 有关更多详细信息,请参阅 LICENSE 文件

依赖项

~15–32MB
~532K SLoC