#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 • Rust 包仓库 320/week @ 2024-06-24 • Rust 包仓库 548/week @ 2024-07-01 • Rust 包仓库 142/week @ 2024-07-29 • Rust 包仓库

每月 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