Quarkdown: 현대적인 Markdown 기반 조판 시스템

1 week ago 4

  • QuarkdownMarkdown의 단순성과 함수, 스크립팅 확장 기능을 결합해, 책, 프레젠테이션 등 다양한 출력물 생성을 지원함
  • 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 역시 단순함 속의 무한 가능성이라는 철학을 바탕으로 만들어짐

Read Entire Article