67 个版本 (14 个稳定版)
2.3.1 | 2024年8月4日 |
---|---|
2.3.0 | 2024年7月28日 |
2.1.2 | 2024年3月11日 |
2.1.0 | 2023年10月16日 |
0.8.0 | 2018年2月15日 |
#75 in 文本处理
每月下载 1,701 次
用于 6 个 crates (5 个直接使用)
440KB
3.5K SLoC
mdcat
Markdown 的“花哨” cat (即,CommonMark)
$ mdcat sample.md
在 WezTerm 中使用 mdcat,带有“One Light (base16)”、“Gruvbox Light”和“Darcula (base16)” (从左到右),并使用 JetBrains Mono 作为字体。
功能
mdcat
在 iTerm2、WezTerm 和 kitty 上表现最佳,并且拥有支持斜体的良好终端字体。然后它
- 优雅地渲染所有基本 CommonMark 语法,
- 使用 syntect 突出显示代码块,
- 显示 链接,并在支持的终端中内联显示图像(见上面,其中“Rust”是一个可点击的链接!),
- 在 iTerm2 中为标题添加跳转标记(使用 ⇧⌘↓ 和 ⇧⌘↑ 向前和向后跳转)。
终端 | 基本语法 | 语法高亮 | 图像 | 跳转标记 |
---|---|---|---|---|
基本 ANSI¹ | ✓ | ✓ | ||
Windows 10 控制台 | ✓ | ✓ | ||
术语 | ✓ | ✓ | ✓ | |
iTerm2 | ✓ | ✓ | ✓³ | ✓ |
kitty | ✓ | ✓ | ✓³ | |
WezTerm | ✓ | ✓ | ✓³ | |
VSCode | ✓ | ✓ | ✓³ |
- mdcat 要求终端支持删除线格式和 内联链接。它不会在不支持这些功能的终端(例如 Linux 文本控制台)上正确渲染删除线文本和链接。
- VTE 是 Gnome 的终端仿真库,被许多流行的 Linux 终端仿真器使用,包括 Gnome 终端、Xfce 终端、Tilix 等。
- 使用 resvg 渲染 SVG 图像,请参阅 SVG 支持。
不支持
- 脚注和表格的 CommonMark 扩展。
用法
尝试 mdcat --help
或阅读 mdcat(1) 手册页。
安装
mdcat
可以链接或复制到mdless
;如果以mdless
的方式调用,它将自动使用分页。
构建
运行cargo build --release
。生成的mdcat
可执行文件链接到系统的SSL库,即Linux上的openssl。
要构建一个独立的可执行文件,使用cargo build --features=static
;生成的可执行文件使用纯Rust SSL实现。然而,它仍然使用系统的CA根。
打包
在打包mdcat
时,您可能希望包括以下额外的工件
-
从
mdless
到mdcat
的符号链接或硬链接(见上文)。 -
在构建后,通过调用
mdcat --completions
为相关shell生成shell完成,例如。$ mdcat --completions fish > /usr/share/fish/vendor_completions.d/mdcat.fish $ mdcat --completions bash > /usr/share/bash-completion/completions/mdcat $ mdcat --completions zsh > /usr/share/zsh/site-functions/_mdcat # Same for mdless if you include it $ mdless --completions fish > /usr/share/fish/vendor_completions.d/mdless.fish $ mdless --completions bash > /usr/share/bash-completion/completions/mdless $ mdless --completions zsh > /usr/share/zsh/site-functions/_mdless
-
使用AsciiDoctor构建man页面的版本
mdcat.1.adoc
。$ asciidoctor -b manpage -a reproducible -o /usr/share/man/man1/mdcat.1 mdcat.1.adoc $ gzip /usr/share/man/man1/mdcat.1 # If you include a mdless as above, you may also want to support man mdless $ ln -s mdcat.1.gz /usr/share/man/man1/mdless.1.gz
故障排除
mdcat
在需要时可以输出大量的跟踪信息。运行mdcat
时,使用$MDCAT_LOG=trace
获取完整的跟踪信息,或使用$MDCAT_LOG=mdcat::render=trace
仅跟踪渲染。
许可证
版权所有 Sebastian Wiesner [email protected]
二进制文件受Mozilla公共许可证第2.0版的约束,请参阅LICENSE。
大部分源代码受Mozilla公共许可证第2.0版的约束,除非另有说明,请参阅LICENSE;一些文件受Apache 2.0许可证的约束,请参阅http://www.apache.org/licenses/LICENSE-2.0
依赖关系
~17–35MB
~610K SLoC