#markdown #terminal #render #themes #stdout #colored

markterm

一个将彩色 Markdown 渲染到终端的 Rust 库

7 个版本

0.3.0 2024 年 7 月 1 日
0.2.5 2024 年 7 月 1 日
0.2.1 2024 年 6 月 25 日

#1367解析器实现

Download history 320/week @ 2024-06-24 548/week @ 2024-07-01 142/week @ 2024-07-29

每月 147 次下载

MIT 许可证

40KB
870

Markterm

Markterm 是一个将彩色 Markdown 渲染到终端的 Rust 库。我想找一个像 Glow 的库,但它是用 Rust 编写的。

为什么要构建这个?

我构建这个库有两个原因

  1. 为了学习 Rust
  2. 我找不到一个开箱即用的 crate 来做这个。

状态

Markterm 目前处于开发中。在接下来的几周内,我将确保它支持 CommonMark 和 Github Flavored Markdown。

MarkTerm 目前不支持以下功能

  1. 表格
  2. 内联 Html
  3. 嵌入代码的语法高亮

用法

使用 cargo 将其添加到任何现有的 Rust 项目中。然后可以使用下面的代码将任何 Markdown 渲染到 stdout。

使用默认主题

use std::path::PathBuf;

fn main() {
    let path = PathBuf::from("./test.md");
    markterm::render_file_to_stdout(&path, None);
}

使用自定义主题

use std::path::PathBuf;
use markterm::{TextStyle, Theme, ElementStyle};

fn main() {
    let path = std::path::PathBuf;
    let theme = Theme {
        header_1: ElementTheme::new(Some("#000"), Some("#500"), TextStyle::Bold),
        .. markterm::get_default_theme()
    };

    markterm::render_file_to_stdout(&path, Some(&theme));
}

路线图

  • 支持所有常见的 mark 元素
  • 使 CLI 功能更全面。
  • 确保它在所有终端中都能工作。

致谢

这个项目离不开 markdown-rs。他们的 ast 解析模块为库提供动力。

依赖项

~7–19MB
~243K SLoC