这个项目能做什么

D2 是一种用于从文本生成图表的领域特定语言。用户编写 .d2 文件来描述节点、连接、形状和样式,D2 将其渲染成可视化图表。 主要功能包括: - 命令行使用:运行 `d2 --watch in.d2 out.svg` 可在文件更改时生成带有实时重载的 SVG 图表。 - 导出格式:SVG、PNG、GIF、PDF 和 PPTX。 - 布局引擎:包含三种内置引擎——Dagro(默认,分层布局,原生 Go 实现的 Dagre)、ELK(原生 Go 实现,适用于带方向和端口的节点链接图)和 TALA(可选,专为软件架构图设计)。还支持序列图和网格的专用布局。 - 主题:D2 提供多种官方主题以实现开箱即用的样式。 - 字体:自带“Source Sans Pro”;可配置其他字体。 - 语言工具:解析器可报告多个错误,包含自动格式化程序、语法高亮,并计划支持 LSP。提供 VSCode 和 Vim 扩展作为官方插件。 - Go 库:D2 可作为 Go 库用于程序化生成图表。 - 草图模式渲染通过 rough-go(Rough.js 的原生 Go 实现)以及通过 mathjax-go(MathJax 的原生 Go 实现)支持 LaTeX 标签。 安装方式包括安装脚本(`curl -fsSL https://d2lang.com/install.sh | sh -s --`)、Go 源码(`go install github.com/d2lang/d2@latest`)或发布版本构建。也提供卸载选项。 社区插件生态系统广泛,包括与 Obsidian、MdBook、MkDocs、VitePress、Hexo、Pandoc 过滤器、Confluence、Logseq、Zed、Emacs、tree-sitter 语法和 Postgres 模式、MongoDB、Structurizr、AsyncAPI、ROS2 和 CIL 组件的导出器集成。可在 play.d2lang.com 上访问在线游乐场。 D2 被 ElasticSearch、Sourcegraph、Temporal、Tauri、IntelliJ、Coder、UC Berkeley、LocalStack 和 Dagger 等知名开源项目用于文档中。采用 Mozilla 公共许可证 2.0 许可。不收集遥测数据;安装后不会使用互联网连接,仅定期从 GitHub 检查版本更新。