Sobre o projeto

D2 é uma linguagem específica de domínio usada para gerar diagramas a partir de texto. Os usuários escrevem arquivos .d2 descrevendo nós, conexões, formas e estilos, e o D2 os renderiza em diagramas visuais. Principais recursos incluem: - Uso de CLI: Execute `d2 --watch in.d2 out.svg` para produzir SVGs com recarregamento ao vivo em uma janela do navegador quando os arquivos são alterados. - Formatos de exportação: SVG, PNG, GIF, PDF e PPTX. - Motores de layout: Três motores embutidos — Dagro (padrão, layouts hierárquicos/em camadas, um port nativo de Go do Dagre), ELK (port nativo de Go adequado para diagramas de nós e links com direção e portas) e TALA (opt-in, projetado especificamente para diagramas de arquitetura de software). Layouts especializados para diagramas de sequência e grids também são suportados. - Temas: Uma variedade de temas oficiais é fornecida com o D2 para estilização pronta para uso. - Fontes: Inclui “Source Sans Pro”; fontes alternativas podem ser configuradas. - Ferramentas de linguagem: O analisador relata vários erros, inclui um formatador automático, realce de sintaxe e suporte planejado para LSP. Extensões para VSCode e Vim estão disponíveis como plugins oficiais. - Biblioteca Go: O D2 pode ser usado como uma biblioteca Go para produzir diagramas programaticamente. - Renderização em modo sketch via rough-go (um port nativo de Go do Rough.js) e suporte a rótulos LaTeX via mathjax-go (um port nativo de Go do MathJax). A instalação está disponível via um script de instalação (`curl -fsSL https://d2lang.com/install.sh | sh -s --`), fonte Go (`go install github.com/d2lang/d2@latest`) ou builds de fonte de lançamento. Uma opção de desinstalação também é fornecida. Existe um amplo ecossistema de plugins da comunidade, incluindo integrações para Obsidian, MdBook, MkDocs, VitePress, Hexo, filtros Pandoc, Confluence, Logseq, Zed, Emacs, gramática tree-sitter e exportadores para esquemas Postgres, MongoDB, Structurizr, AsyncAPI, ROS2 e assemblies CIL. Um playground web está disponível em play.d2lang.com. O D2 é usado na documentação de projetos de código aberto notáveis, como ElasticSearch, Sourcegraph, Temporal, Tauri, IntelliJ, Coder, UC Berkeley, LocalStack e Dagger. Ele é licenciado sob a Mozilla Public License 2.0. Nenhuma telemetria é coletada; o D2 não usa conexão com a internet após a instalação, exceto para verificações periódicas de atualização de versão no GitHub.