스킬 자체의 표현으로
md-slides는 마크다운 덱을 어떤 브라우저에서도 실행되는 단일 파일 HTML 프레젠테이션으로 변환합니다. 덱은 --- HR 경계나 # H1 헤딩으로 구분된 슬라이드이며, 선택적으로 <!-- notes: ... --> 발표자 노트 블록을 포함할 수 있습니다. 세 개의 표준 라이브러리 Python 스크립트로 파이프라인을 구성합니다: slide_splitter.py, presenter_notes_parser.py, deck_html_renderer.py.
출력물에는 키보드 내비게이션, URL 해시 딥 링크, 진행 바와 슬라이드 카운터, 시계와 다음 슬라이드 미리보기가 있는 발표자 모드, 한 페이지당 한 슬라이드로 PDF를 내보낼 수 있는 인쇄용 스타일시트가 포함됩니다. md-document의 마크다운 파서를 재사용하며 config_loader.py를 통해 디자인 시스템 토큰을 읽습니다. 명확한 슬라이드 경계가 없는 입력, 슬라이드가 1개뿐인 덱, 100줄 미만의 파일, --strict-notes 50% 커버리지를 충족하지 못하는 덱은 거부합니다.
산출물
- 렌더링된 HTML 덱으로, 확인된 기본 출력 디렉터리에 deck-{slug}.html로 작성되며, 충돌 시 -2, -3 등이 뒤에 추가됩니다.
- 분할된 슬라이드를 담은 중간 JSON 파일과, 이후 노트가 첨부된 슬라이드를 담은 JSON 파일.
- 인쇄용 스타일시트를 통해 브라우저에서 인쇄하여 생성되는, 페이지당 한 슬라이드씩 담긴 PDF.
작동 방식
- 01덱을 순서가 있는 슬라이드로 분할하기
slide_splitter.py는 원본 마크다운을 읽고 --- HR 라인이나 H1 헤딩을 기준으로 분할하며, 기본적으로 경계 스타일을 자동으로 감지하여 순서가 있는 슬라이드 목록을 작성합니다.
- 02슬라이드별 발표자 노트 첨부하기
presenter_notes_parser.py는 각 슬라이드에서 노트 블록을 스캔하여 해당 슬라이드에 첨부하므로, 발표자 모드가 오른쪽 패널에 표시할 내용을 갖게 됩니다.
- 03단일 파일 HTML 덱 렌더링하기
deck_html_renderer.py는 슬라이드와 디자인 시스템 토큰을 결합하여 덱을 생성하며, 명령줄에서 제목과 출력 경로를 인자로 받습니다.
- 04디자인 시스템 토큰 적용하기
디자인 시스템에서 열두 개의 브랜드 CSS 커스텀 속성이 제공되며, design_style은 슬라이드 레이아웃의 밀도를 변경합니다.
- 05덱이 아닌 입력은 거부합니다
입력에 명확한 슬라이드 경계가 없거나, 슬라이드가 한 장으로 귀결되거나, --strict-notes 옵션에서 노트 커버리지 게이트를 통과하지 못하면 이 스킬은 변환 대신 종료합니다.