인기 있는 오픈소스 화이트보드 및 다이어그램 도구인 엑스칼리드로우(Excalidraw)가 텍스트 편집기 이맥스(Emacs) 환경으로 이식된 'Excali-mode'가 공개되었습니다. 이는 이맥스 32의 새로운 캔버스(canvas) API와 동적 모듈(dynamic module) 기능을 활용하여 웹 브라우저 없이도 이맥스 내에서 엑스칼리드로우 파일을 직접 열고, 편집하고, 저장할 수 있게 해줍니다. 웹 앱과 동일하게 손으로 그린 듯한 독특한 스타일의 다이어그램을 이맥스 안에서 구현한 것이 특징입니다.
Excali-mode는 사각형, 원, 화살표, 텍스트, 이미지 등 엑스칼리드로우의 모든 핵심 도구를 지원하며, 도형에 붙어 움직이는 화살표, 그룹화, 크기 조절, 정렬, 복사/붙여넣기, 실행 취소/다시 실행 등 다양한 편집 기능을 제공합니다. 특히 주목할 만한 기능은 'Org 보드(Org boards)'와 'Excali DSL'입니다. Org 보드는 이맥스의 Org 모드(Org mode) 파일을 카드 형태로 보드에 배치하여 시각적으로 관리할 수 있게 하며, 원본 Org 파일의 내용이 변경되면 보드에도 실시간으로 반영됩니다. Excali DSL은 텍스트로 다이어그램을 정의할 수 있는 언어로, Org Babel 블록 내에서 다이어그램을 코드로 작성하고 인라인 이미지로 자동 생성할 수 있습니다. 이 모든 기능은 이맥스 32와 C 컴파일러가 필요하며, 카이로(Cairo)와 판고(Pango) 라이브러리를 통해 이맥스의 픽셀 버퍼에 직접 그려집니다.
Excali-mode의 등장은 이맥스 사용자들에게 강력한 시각화 및 생산성 도구를 제공한다는 점에서 의미가 큽니다. 텍스트 기반의 작업 환경을 선호하는 개발자나 연구자들이 별도의 애플리케이션 전환 없이 아이디어를 시각화하고, 프로젝트를 계획하며, 문서에 다이어그램을 삽입하는 과정을 훨씬 효율적으로 만들 수 있습니다. 특히 Org 모드와의 긴밀한 통합은 이맥스를 단순한 텍스트 편집기를 넘어선 통합 작업 환경으로 확장하는 중요한 사례가 될 것입니다. 이는 개발 워크플로우를 개선하고, 복잡한 정보를 직관적으로 이해하는 데 기여하며, 궁극적으로는 이맥스 생태계의 활용도를 한층 더 높일 것으로 기대됩니다.