프로젝트 소개

D2는 텍스트로부터 다이어그램을 생성하기 위한 도메인 특화 언어입니다. 사용자는 노드, 연결, 모양, 스타일을 설명하는 .d2 파일을 작성하고, D2는 이를 시각적 다이어그램으로 렌더링합니다. 주요 기능은 다음과 같습니다: - CLI 사용: `d2 --watch in.d2 out.svg`를 실행하여 SVG를 생성하고, 파일 변경 시 브라우저 창에서 실시간으로 새로고침합니다. - 내보내기 형식: SVG, PNG, GIF, PDF, PPTX. - 레이아웃 엔진: 세 가지 내장 엔진 — Dagro(기본값, 계층적/레이어드 레이아웃, Dagre의 네이티브 Go 포트), 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 Public License 2.0 하에 라이선스가 부여되어 있으며, 텔레메트리는 수집되지 않습니다. D2는 설치 후 인터넷 연결을 사용하지 않으며, 주기적인 버전 업데이트 확인을 위해 GitHub에만 연결됩니다.