C.E.L. Slide Pipeline
MDX 기반 콘텐츠를 분석하여 1280×720 슬라이드 HTML로 자동 변환하는 파이프라인입니다.
한 줄 요약
텍스트 콘텐츠를 넣으면, 코드가 구조를 분석하고 디자인을 입혀서 슬라이드로 만들어줍니다.
현재 프로세스 (AS-IS)
현재 수준
| 대상 |
상태 |
| MDX 03 (3개 목표 + 비교표) |
✅ 정상 동작 |
| MDX 02 (목표 + 프로세스 + 상세표) |
△ 구조 동작, 시각 품질 보정 중 |
개선 프로세스 (TO-BE)
AS-IS → TO-BE 핵심 차이
| 항목 |
AS-IS |
TO-BE |
| 꼭지 추출 시점 |
zone 구분 전에 항상 실행 |
미매칭 시에만 (3-2) |
| 디자인 미매칭 |
코드 고정 렌더 1회 |
redesign + 반복 조정 |
| 빈 공간 처리 |
그냥 둠 |
자동 재분배 |
| 검증 |
overflow만 |
시각 품질까지 |
핵심 원칙
| 원칙 |
설명 |
| 콘텐츠가 기준 |
디자인이 콘텐츠에 맞춤 (콘텐츠를 디자인에 맞추지 않음) |
| 코드가 판단 |
AI는 꼭지 추출만, 레이아웃/디자인 선택은 규칙 기반 |
| 기존 디자인 재활용 |
Figma에서 추출한 BEPs 블록을 우선 활용, 없으면 같은 스타일로 생성 |
| 넘치면 분리 |
슬라이드에 안 들어가는 상세 내용은 첨부로 분리 (자세히보기) |
| 통일이 아닌 다양성 |
같은 구조라도 콘텐츠에 따라 다른 표현 가능 (recipe = 표현 범주) |
프로젝트 구조
파이프라인 핵심
| 파일 |
역할 |
src/pipeline.py |
전체 파이프라인 오케스트레이션 |
src/section_parser.py |
중목차 추출, schema 분류, subsection typing |
src/block_reference.py |
BEPs 디자인 매칭 (catalog 검색) |
src/block_assembler.py |
슬라이드 HTML 조립, recipe executor, direct render |
src/space_allocator.py |
zone 크기/비율 계산 |
src/pipeline_context.py |
파이프라인 데이터 모델 (PopupItem 등) |
템플릿 / 카탈로그
| 파일 |
역할 |
templates/catalog.yaml |
BEPs 블록 목록 (when/slots/template) |
templates/blocks/slide-base.html |
슬라이드 기본 틀 (1280×720) |
templates/blocks/new/ |
Figma 추출 블록 (prerequisites-3col 등) |
templates/blocks/redesign/ |
재디자인 블록 (process-product-2col 등) |
검증
| 파일 |
역할 |
src/slide_measurer.py |
Selenium overflow 측정 |
src/step_visualizer.py |
단계별 디버그 보드 생성 |
src/validators.py |
구조 검증 |
산출물
각 실행은 data/runs/{run_id}/ 아래에 저장됩니다.
| 파일 |
내용 |
final.html |
최종 슬라이드 |
final_context.json |
전체 파이프라인 결과 데이터 |
steps/*.html |
단계별 디버그 보드 |
첨부*_상세*.html |
popup 상세 내용 |
향후 개선 방향
- 3-2 입력→조정 반복 구현 — redesign 후 빈 공간/overflow 자동 재분배
- 검증 강화 — overflow뿐 아니라 정렬, 위계, 가독성까지 시각 품질 검증
- BEPs 매칭 범위 확대 — 더 많은 Figma 블록 추출 및 catalog 등록
- 다양한 MDX 확장 — MDX 02, 03 이후 추가 문서 유형 검증