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 在 文本处理
763 每月下载量
79KB
2K SLoC
标记链接检查器
检查标记文件中的断链。目前支持 html
和 markdown
文件。标记链接检查器可以轻松集成到您的 CI 流中,以防止标记文档中的断链。
功能
- 在
markdown
和html
文件中查找和检查链接 - 支持
markdown
文件中的 HTML 链接和平面 URL - 验证绝对和相对文件路径和 URL
- 用户友好的命令行界面
- 易于 CI 流集成
- 使用 async 实现非常快速的执行
- 有效的链接解析策略,尝试最小化网络负载
- 节流选项,以防止 429 Too Many Requests 错误
- 通过配置文件进行配置
- 通过 GitHub 工作流程命令报告断链
本地安装
安装和使用 mlc 有多种方法。
Cargo
使用 Rust 的包管理器 cargo 从 crates.io 安装 mlc
cargo install mlc
下载二进制文件
要下载 mlc 的编译版二进制文件,请访问 github releases 并下载为 x86_64-unknown-linux-gnu
和 x86_64-apple-darwin
编译的二进制文件。
Linux 发行版
Arch Linux
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工作流程命令来突出显示损坏的链接。
二进制文件
要在运行在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
使用包含mlc的Docker 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