Об этом проекте

D2 — это специализированный язык для генерации диаграмм из текстовых описаний. Пользователи пишут файлы .d2, описывающие узлы, связи, формы и стили, а D2 преобразует их в визуальные диаграммы. Основные возможности: - Использование CLI: Запустите `d2 --watch in.d2 out.svg`, чтобы получать SVG с автоматическим обновлением в браузере при изменении файла. - Форматы экспорта: SVG, PNG, GIF, PDF и PPTX. - Движки компоновки: Три встроенных движка — Dagro (по умолчанию, иерархические/слоистые макеты, порт Dagre на Go), ELK (порт на Go для диаграмм узел-связь с направлением и портами) и TALA (опциональный, для архитектурных диаграмм). Также поддерживаются специализированные макеты для последовательных диаграмм и таблиц. - Темы: В комплект входит множество официальных тем для быстрого стилизованного вывода. - Шрифты: По умолчанию используется “Source Sans Pro”; можно настроить альтернативные шрифты. - Инструменты языка: Парсер сообщает о нескольких ошибках, включает автоформатирование, подсветку синтаксиса и планируемую поддержку LSP. Доступны официальные плагины для VSCode и Vim. - Библиотека Go: D2 можно использовать как библиотеку Go для программной генерации диаграмм. - Рендеринг в режиме эскиза через rough-go (порт Rough.js на Go) и поддержка меток LaTeX через mathjax-go (порт MathJax на Go). Установка возможна через скрипт (`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 используется в документации таких известных open-source проектов, как ElasticSearch, Sourcegraph, Temporal, Tauri, IntelliJ, Coder, UC Berkeley, LocalStack и Dagger. Лицензия — Mozilla Public License 2.0. Телеметрия не собирается; D2 не использует интернет после установки, за исключением периодических проверок обновлений версии на GitHub.