-
Quarkdown은 Markdown의 단순성과 함수, 스크립팅 확장 기능을 결합해, 책, 프레젠테이션 등 다양한 출력물 생성을 지원함
-
Turing-complete한 확장을 통해 조건문, 반복문, 레이아웃 함수를 제공하고, 자신만의 함수와 변수를 정의할 수 있음
-
HTML, PDF(책/슬라이드 포함)와 같은 폭넓은 지원 타겟과 빠른 컴파일, 라이브 프리뷰 기능을 보유함
-
LaTeX, Typst, MDX 등과 비교해 가독성, 문서 제어, 쉬운 러닝커브에서 우수한 경쟁력을 지님
- 사용자는 프로젝트 생성 마법사, REPL, 다양한 CLI 옵션으로 간편하게 입문하고 활용할 수 있음
Quarkdown 개요 및 주요 기능
About
Quarkdown은 현대적인 Markdown 기반 조판 시스템으로, 핵심 개념은 다재다능성임
책, 논문, 프레젠테이션 등 다양한 결과물을 손쉽게 만들 수 있도록 프로젝트를 컴파일함
Markdown을 Turing-complete하게 확장하여, 아이디어가 자연스럽게 문서로 이어지는 경험을 제공함
Quarkdown은 CommonMark, GFM을 확장한 새로운 Flavor로, 함수 및 새로운 구문을 도입함
- 함수 호출 예시:
.somefunction {arg1} {arg2}
Body argument
끊임없이 확장되는 표준 라이브러리에서 레이아웃 빌더, 입출력, 수학 연산, 조건문 및 반복문 등의 기능을 즉시 제공함
부족하다면, 사용자가 직접 함수, 변수를 정의하거나, 재사용 가능한 라이브러리를 만들 수 있음
예시:
.function {greet}
to from:
**Hello, .to** from .from!
.greet {world} from:{iamgio}
결과: Hello, world from iamgio
이처럼 즉시 사용 가능한 스크립팅 지원으로 인해, 기존 Markdown으로는 불가능한 동적이고 복잡한 콘텐츠 작성도 가능함
라이브 프리뷰와 빠른 컴파일 속도와 결합해 효율적인 문서 제작을 지원함
기능 및 언어 구성에 대한 자세한 내용은 wiki 참고
데모 프레젠테이션
-
데모 페이지에서 Quarkdown 기반의 실제 프레젠테이션 확인 가능
- 소스코드는 demo/demo.qmd에서 열람 가능
- 데스크탑 뷰 권장
간단하지만, 복잡한 필요까지 충족
- Quarkdown은 간단한 문서(책, 논문 등)뿐 아니라, 차트와 같은 복잡한 시각 요소도 출력 가능함
지원 대상(타겟)
-
HTML
- 일반 출력(기본값)
- 슬라이드( reveal.js 활용 )
- 책/논문 형태( paged.js 활용, 웹서버 필요 )
-
PDF
- HTML이 지원하는 모든 문서 유형, 기능을 그대로 PDF로 출력 가능
- PDF 출력에 관한 자세한 내용은 wiki 문서 참고
문서 출력 유형은 소스에서 .doctype {slides} 또는 .doctype {paged} 함수 호출로 지정 가능
비교
Quarkdown
Markdown
LaTeX
Typst
AsciiDoc
MDX
간결함·가독성 |
✔ |
✔ |
✗ |
✔ |
✔ |
✔ |
전체 문서 제어 |
✔ |
✗ |
✔ |
✔ |
✗ |
✗ |
스크립팅 기능 |
✔ |
✗ |
일부 지원 |
✔ |
✗ |
✔ |
책/기사 형식 출력 |
✔ |
✗ |
✔ |
✔ |
✔ |
3rd party |
프레젠테이션 출력 |
✔ |
✗ |
✔ |
✔ |
✔ |
3rd party |
러닝 커브 |
초록 |
초록 |
빨강 |
주황 |
초록 |
초록 |
타겟 지원 |
HTML, PDF |
HTML |
PDF, PostScript |
PDF |
HTML, PDF, ePub |
HTML |
문법 예시 비교(Latex vs Quarkdown)
- 예시: 목차, 섹션, 리스트, 센터 정렬, 이미지 행 등 고급 문서 구성도 Quarkdown으로 간결하게 작성 가능함
시작하기
설치(Installation)
- 최신 안정화 릴리즈에서 quarkdown.zip을 다운로드해 압축 해제, 또는 직접 빌드 사용 가능
- Java 17 이상 필요, 모든 주요 OS 지원
프로젝트 생성
-
quarkdown create [directory] 명령으로 프로젝트 생성 마법사 실행, 메타데이터와 초기 콘텐츠 자동 포함
- 직접 .qmd 파일을 생성해 시작할 수도 있음
컴파일(Compiling)
-
quarkdown c file.qmd 명령으로 문서 컴파일, 결과물 저장
-
여러 파일로 구성된 프로젝트는 루트 파일(포함하는 파일)을 지정해야 함
- 인터랙티브 REPL 모드(quarkdown repl)로 실험 가능
주요 옵션
-
-p, --preview : 자동 리로드, (웹서버 미구동시 자동 실행 및 브라우저 오픈)
-
-w, --watch : 소스 파일 변경 시마다 자동 재컴파일
-
조합 사용 시 라이브 프리뷰 제공
-
--pdf : PDF 파일 생성
-
-o <dir>, --output <dir> : 출력 디렉토리 지정
-
-l <dir>, --libs <dir> : 외부 라이브러리 디렉토리 지정
-
-r <renderer>, --render <renderer> : 렌더러 지정(html, html-pdf 등)
-
--server-port <port> : 웹서버 포트 지정(기본 8089)
-
--pretty : 보기 좋은 형태로 출력(디버그용)
-
--clean : 출력 디렉토리 비우고 새로 생성(파괴적)
-
--strict : 오류 발생 시 프로그램 종료
-
--no-media-storage : 미디어 스토리지 시스템 비활성화
-
-Dloglevel=<level> : 로그 레벨 설정
모의(Mock) 문서 예시
-
Mock 문서는 Quarkdown의 시각적 요소 및 주요 기능을 한눈에 체험할 수 있도록 작성됨
- 소스는 mock 디렉토리에서 확인, quarkdown c mock/main.qmd -p로 컴파일 가능
- 다양한 테마 조합 PDF는 generated 브랜치에서 확인 가능
기여(Contributing)
후원자(Sponsors)
- 프로젝트를 후원한 기여자(예: LunaBluee, dcopia)에게 특별히 감사 표시
개념(Concept)
- Quarkdown 로고는 기존 Markdown 아이콘을 바탕으로 기능성과 커스터마이징성을 강조
- 원형을 감싸는 화살표는 풍부한 기능을 시각적으로 상징함
- 실제로는 행성처럼 보일 수 있지만, Quark(쿼크) , 그 중 down quark에서 영감을 얻음
- down quark는 모든 복잡한 구조의 기본 구성 요소이자, 존재하는 가장 가벼운 입자 중 하나임
- Quarkdown 역시 단순함 속의 무한 가능성이라는 철학을 바탕으로 만들어짐