#dot #render-graph #graphviz #render #svg

app layout-cli

一个图形可视化程序

3个版本

0.1.2 2024年2月28日
0.1.1 2022年10月29日
0.1.0 2022年10月29日

#128 in 可视化

MIT 许可证

415KB
5K SLoC

布局

Layout 是一个 Rust 库和一个独立的实用工具,可以绘制图形。Layout 可以解析 Graphviz dot 文件并将其渲染。

库使用方法

将以下内容添加到 Cargo.toml

layout-rs = "0.1.1" # or
layout-rs = { version = "0.1.1", features = ["log"] }

加载、解析并打印抽象语法树(AST)

use layout::gv;

let contents = "digraph { a -> b [label=\"foo\"]; }";
let mut parser = gv::DotParser::new(&contents);

match parser.process() {
    Ok(g) => gv::dump_ast(&g),
    Err(err) => {
        parser.print_error();
        # #[cfg(feature = "log")]
        log::error!("Error: {}", err);
    }
}

上述示例将打印程序的 AST 或可读的错误消息,例如

digraph {

node [fillcolor="purple"] A B;
node [fillcolor="orange"] Z;
node [fillcolor="green"] G; a = ;
                                ^
Error: Expected an identifier.

命令行使用方法

使用以下命令构建软件包并渲染一些 dot 文件

cargo run --bin run ./inputs/bk.dot -o output.svg

本节展示了从 dot 文件渲染的几个图形

一个简单的图形。

一个包含多个形状和标签的简单图形。

一个具有一些样式属性的图形。

一个演示边交叉消除优化的大型图形。

支持 Unicode、表情符号和从右到左的语言

支持记录(嵌套结构)

调试模式渲染,有助于可视化布局决策

依赖关系

~4–13MB
~127K SLoC