8 个不稳定版本 (3 个破坏性更新)

0.4.0 2024 年 7 月 27 日
0.3.0 2024 年 7 月 16 日
0.2.1 2024 年 7 月 1 日
0.1.3 2024 年 6 月 29 日

#366 in 命令行界面

Download history 125/week @ 2024-06-22 523/week @ 2024-06-29 13/week @ 2024-07-06 105/week @ 2024-07-13 20/week @ 2024-07-20 143/week @ 2024-07-27 2/week @ 2024-08-03

每月下载 270 次
termsnap 中使用

MIT/Apache

38KB
963

Termsnap 📸

从终端输出创建 SVG

MIT/Apache 2.0 Crates.io Docs

此工具提供 ANSI 转义序列终端数据的内存模拟以及将模拟的终端屏幕渲染到 SVG 文件的功能。请参阅 文档 或查看 Termsnap README


lib.rs:

内存模拟 ANSI 转义序列终端数据并将模拟的终端屏幕渲染到 SVG 文件。

use termsnap_lib::{FontMetrics, Term, VoidPtyWriter};

// Create a new terminal emulator and process some bytes.
let mut term = Term::new(24, 80, VoidPtyWriter);
for byte in b"a line of \x1B[32mcolored\x1B[0m terminal data" {
    term.process(*byte);
}

// Create a snapshot of the terminal screen grid.
let screen = term.current_screen();

let text: String = screen.cells().map(|c| c.c).collect();
assert_eq!(text.trim(), "a line of colored terminal data");

assert_eq!(&format!("{}", screen.get(0, 0).unwrap().fg), "#839496");
assert_eq!(&format!("{}", screen.get(0, 10).unwrap().fg), "#859900");

// Render the screen to SVG.
println!("{}", screen.to_svg(&[], FontMetrics::DEFAULT));

依赖关系

~5–15MB
~190K SLoC