#dot #graphviz #web-apps #graph #interactive #playground #applications

bin+lib dot_ix_playground

交互式 dot 图表 playground 网络应用程序

8 个版本 (重大更新)

0.8.0 2024年8月10日
0.7.0 2024年6月30日
0.6.0 2024年6月9日
0.5.0 2024年3月30日
0.2.0 2024年2月21日

#185 in 可视化

Download history 169/week @ 2024-06-03 32/week @ 2024-06-10 122/week @ 2024-06-24 99/week @ 2024-07-01 45/week @ 2024-07-29 100/week @ 2024-08-05 22/week @ 2024-08-12

每月167次下载

MIT/Apache

250KB
1K SLoC

Rust 1K SLoC // 0.1% comments Handlebars 66 SLoC TypeScript 44 SLoC // 0.6% comments JavaScript 9 SLoC // 0.2% comments Shell 7 SLoC

包含 (WOFF 字体, 23KB) LiberationMono-BoldItalic-webfont.woff, (WOFF 字体, 21KB) LiberationMono-Bold-webfont.woff, (WOFF 字体, 23KB) LiberationMono-Italic-webfont.woff, (WOFF 字体, 21KB) LiberationMono-Regular-webfont.woff

✒️ dot_ix

Crates.io docs.rs CI Coverage Status

🚧 这是一个正在进行中的项目

亲自尝试:(demo_1, demo_2)

示例

原始概念

https://user-images.githubusercontent.com/2993230/253878816-0729970f-651f-45ef-a986-470f383b8018.mp4

用法

将以下内容添加到 Cargo.toml

dot_ix = "0.8.0"

# Enables the `FlexDiag` web component.
dot_ix = { version = "0.8.0", features = ["flex_diag"] }

# Enables server side dot generation.
# Requires graphviz `dot` to be installed server side.
dot_ix = { version = "0.8.0", features = ["server_side_graphviz"] }

开发

cargo install cargo-leptos

# Then, one of:
# * client side rendering -- uses WASM compiled graphviz to generate the graph.
cargo leptos watch
# * server side rendering -- runs `dot` on the server to generate the graph.
#   Requires `graphviz` to be installed.
cargo leptos watch --features "server_side_graphviz" -v

对于服务器端渲染,需要单独传递"server_side_graphviz"功能,因为该功能在lib编译时仍然需要启用,即

  • 服务器端渲染
    • lib功能:"server_side_graphviz"
    • bin功能:"ssr,server_side_graphviz"
  • 客户端渲染
    • lib功能:""
    • bin功能:""

待办事项

🦜 随意完成这些任务——这个项目不是我的主要关注点,但我应该能够响应性地进行审查/合并。

  • 将crate拆分为多个子crate。
  • app::info_graph::InfoGraph拆分为更小的组件。
  • 移除main.scss并替换为tailwind类。
  • 在SVG中内联样式。
  • 在SVG样式中内联字体。
  • rt/into_graphviz_dot_src/info_graph.rs修改为写入缓冲区,而不是单个字符串。
  • 获取带有"type"的每个节点。
  • 获取tailwindcss类以附加到节点类型。
  • 获取主题/与默认主题合并。
  • dot_ix库从Web应用程序中拆分出来,以便可以嵌入其他应用程序。
  • GitHub Actions / 自动测试 / 发布 / 发布。
  • 沙盒:渲染预写的图
    • URL中的图
    • 链接到gist

依赖项

~42–59MB
~1M SLoC