빌드 & CLI
Remarp 파일을 HTML 프레젠테이션으로 빌드하는 방법을 설명합니다.
기본 명령어
build - HTML 생성
단일 파일 또는 프로젝트를 HTML로 빌드합니다:
# 단일 파일 빌드
python3 remarp_to_slides.py build my-talk.md
# 프로젝트 디렉토리 빌드
python3 remarp_to_slides.py build ./my-presentation/
# 출력 디렉토리 지정
python3 remarp_to_slides.py build my-talk.md -o ./output/
sync - 증분 빌드
변경된 블록만 다시 빌드합니다 (멀티파일 프로젝트용):
# 변경된 블록만 빌드
python3 remarp_to_slides.py sync ./my-presentation/
migrate - Marp 변환
기존 Marp 파일을 Remarp 형식으로 변환합니다:
# 단일 파일 변환
python3 remarp_to_slides.py migrate ./old-content.md -o ./my-presentation/
빌드 옵션
| 옵션 | 설명 |
|---|---|
-o, --output | 출력 디렉토리 |
--block | 특정 블록만 빌드 (멀티파일 프로젝트) |
--watch | 파일 변경 감시 모드 |
--format | 출력 형식 (html, pdf) |
멀티파일 프로젝트 구조
30분 이상의 긴 세션은 블록별로 파일을 분리하여 관리합니다:
my-presentation/
├── _presentation.md # 글로벌 설정 (필수)
├── 01-fundamentals.md # Block 1
├── 02-advanced.md # Block 2
├── 03-hands-on.md # Block 3
├── assets/ # 이미지, 다이어그램
│ └── architecture.png
└── build/ # 생성된 HTML
├── index.html # TOC 페이지
├── 01-fundamentals.html
├── 02-advanced.html
└── 03-hands-on.html
.md 확장자를 사용하고 frontmatter에 remarp: true를 추가합니다. .remarp.md 확장자도 하위호환 지원됩니다.
_presentation.md
글로벌 설정만 포함하는 메인 파일:
---
remarp: true
title: "AWS Auto Scaling Deep Dive"
author: "Cloud Architect"
event: "AWS Summit Seoul 2026"
lang: ko
blocks:
- file: 01-fundamentals.md
name: fundamentals
title: "Block 1: Fundamentals"
duration: 25
- file: 02-advanced.md
name: advanced
title: "Block 2: Advanced Patterns"
duration: 30
- file: 03-hands-on.md
name: hands-on
title: "Block 3: Hands-On Lab"
duration: 35
theme:
source: "./company.pptx"
footer: "© 2026, Amazon Web Services, Inc."
---
블록 파일
각 블록 파일은 로컬 frontmatter와 슬라이드를 포함합니다:
---
remarp: true
block: fundamentals
title: "Block 1: Fundamentals"
---
# AWS Auto Scaling Fundamentals
Block 1: Fundamentals (25 min)
:::notes
{timing: 1min}
Welcome!
:::
---
## Why Auto Scaling?
...
빌드 명령어 예제
# 전체 프로젝트 빌드
python3 remarp_to_slides.py build ./my-presentation/
# 특정 블록만 빌드
python3 remarp_to_slides.py build ./my-presentation/ --block 01-fundamentals
# 변경된 블록만 증분 빌드
python3 remarp_to_slides.py sync ./my-presentation/
# 파일 변경 감시 모드
python3 remarp_to_slides.py build ./my-presentation/ --watch
내보내기 옵션
PDF 내보내기
python3 remarp_to_slides.py build my-talk.md --format pdf
또는 브라우저에서 HTML을 열고 ExportUtils.exportPDF() 사용:
// 브라우저 콘솔에서 (또는 TOC 페이지 Export 버튼)
ExportUtils.exportPDF({ title: 'My Presentation' });
PDF 내보내기는 _resolveCommonPath()를 통해 현재 페이지의 CSS 경로를 자동 감지하므로, TOC 페이지(index.html)와 블록 페이지 모두에서 올바르게 동작합니다.
ZIP 내보내기
오프라인 뷰어용 전체 패키지:
// 브라우저에서
ExportUtils.downloadZIP({ slug: 'my-presentation' });
포함 내용:
- HTML 파일들
- CSS/JS 프레임워크 파일
- 이미지, 아이콘
- 테마 파일
PPTX 내보내기
// 브라우저에서
ExportUtils.exportPPTX({ title: 'My Presentation' });
PPTX 내보내기는 각 블록 HTML에 임베드된 window.__remarpTheme에서 테마 색상을 자동 추출하여 슬라이드 배경에 적용합니다. PPTX 테마가 적용된 프레젠테이션에서는 추출된 배경색이 그대로 반영됩니다.
PPTX 내보내기는 정적 슬라이드로 변환됩니다. Canvas 애니메이션, 인터랙티브 요소는 정적 이미지로 대체됩니다.
TOC 페이지
멀티파일 프로젝트를 빌드하면 자동으로 TOC(목차) 페이지가 생성됩니다:
<!-- build/index.html -->
<div class="block-cards">
<a href="01-fundamentals.html" class="block-card">
<div class="block-number">Block 1</div>
<div class="block-title">Fundamentals</div>
<div class="block-duration">25 min</div>
</a>
<a href="02-advanced.html" class="block-card">
<div class="block-number">Block 2</div>
<div class="block-title">Advanced Patterns</div>
<div class="block-duration">30 min</div>
</a>
</div>
<div class="export-toolbar">
<button onclick="ExportUtils.exportPDF({...})">Export PDF</button>
<button onclick="ExportUtils.downloadZIP()">Download ZIP</button>
</div>
GitHub Pages 배포
# build/ 디렉토리를 gh-pages 브랜치로 배포
git subtree push --prefix build origin gh-pages
# 또는 GitHub Actions 사용
빌드된 HTML은 정적 파일이므로 GitHub Pages, Netlify, S3 등 어디에서나 호스팅할 수 있습니다.