pulldown-cmark-mdcat
Render pulldown-cmark events to a TTY.
This library backs the mdcat tool, and makes its rendering available to other crates.
It supports:
- All common mark syntax.
- Standard ANSI formatting with OCS-8 hyperlinks.
- Inline images on terminal emulators with either the iTerm2 or the Kitty protocol.
- Footnotes.
- Math events, rendered as PNGs with the iTerm2 or Kitty protocol and as Unicode substitutions otherwise.
- Jump marks in iTerm2.
Math image rendering falls back to Unicode substitutions when the terminal or expression is not supported.
Ratatui
Enable the ratatui feature to render markdown inside a Ratatui widget:
use ;
let mut state = new;
frame.render_stateful_widget;
For direct Text output, use text_from_str or text_from_read. For custom themes, syntax sets,
syntax themes, base directories, or resource access, use Renderer with explicit RenderOptions.
Links are rendered as visible references because Ratatui Text does not carry hyperlink targets.
Image protocol probing is available through MdcatWidgetState::detect_images; call it after
entering the alternate screen if your app wants the widget to render supported image resources.
Run the demo executable with:
cargo run -p pulldown-cmark-mdcat --example ratatui --features ratatui-demo -- README.md
License
Copyright Sebastian Wiesner sebastian@swsnr.de and Mouhieddine Sabir me@mouhieddine.dev
Binaries are subject to the terms of the Mozilla Public License, v. 2.0, see LICENSE.
Most of the source is subject to the terms of the Mozilla Public License, v. 2.0, see LICENSE, unless otherwise noted; some files are subject to the terms of the Apache 2.0 license, see http://www.apache.org/licenses/LICENSE-2.0