오늘 골라본 오픈소스는 코틀린으로 작성된 조판 언어 Quarkdown입니다. 깃허브 별 1만 3천 개를 넘긴 프로젝트인데, 단순히 마크다운을 HTML로 바꿔주는 도구가 아니라 마크다운 자체를 튜링 완전 언어로 확장한 시도라는 점이 인상적이었습니다. CommonMark와 GFM을 그대로 받아들이면서, 그 위에 점 하나로 시작하는 함수 호출 문법을 얹었습니다. 본문 안에서 분기와 반복이 돌고, 사용자가 직접 함수를 정의해 라이브러리처럼 공유할 수 있습니다.
핵심 설계는 doctype 한 줄로 출력을 갈아 끼우는 모델입니다. plain은 Notion·Obsidian처럼 흐르는 문서, paged는 paged.js를 거친 책·논문, slides는 reveal.js 기반 발표 자료, docs는 위키와 기술 문서 사이트입니다. 같은 .qd 소스 파일이 doctype 값에 따라 전혀 다른 산출물로 빌드되고, 모든 출력이 HTML과 PDF로 동시에 떨어집니다. 글쓰기를 빌드 가능한 작업으로 다시 정의한 셈입니다.
README에는 LaTeX, Typst, MDX, AsciiDoc과의 비교표가 직접 들어 있습니다. 저자가 강조하는 차별점은 두 가지입니다. 첫째, LaTeX 수준의 문서 제어권을 마크다운의 가독성과 함께 가져갑니다. 둘째, Typst가 정적 사이트 출력을 실험 단계로 분류하고 MDX가 책·논문 출력을 서드파티에 의존하는 데 반해, Quarkdown은 위키와 책 출력을 모두 일급 기능으로 다룹니다. 강의 자료, 사내 매뉴얼, 위키, PDF 보고서를 한 저장소에서 함께 관리하고 싶은 팀에게는 매력적인 조합입니다.
실제로 손에 쥐어보는 비용도 낮은 편입니다. quarkdown create 명령으로 메타데이터까지 채워진 프로젝트가 만들어지고, -p와 -w 옵션을 함께 주면 라이브 프리뷰가 동작합니다. VS Code 확장과 REPL 모드가 따로 제공되고, Homebrew·Scoop·설치 스크립트, 그리고 GitHub Actions용 setup-quarkdown까지 배포 채널이 잘 정리돼 있습니다. 다만 Java 17이 필요하고, PDF export에는 Node와 Puppeteer가 별도로 붙는다는 점, 그리고 아직 메이저 버전 이전이라 문법과 표준 라이브러리가 흔들릴 여지가 있다는 점은 미리 알고 들어가는 편이 좋습니다.