토큰 기반 CSS 체계 구축 + slide-base 스타일 분리

- tokens: typography(35변수), spacing(28변수), colors(41변수) 정의
- slide-base.html: 인라인 style 제거, Jinja include로 토큰/CSS 조립
- slide-base.css: 모든 직접값을 토큰 변수 참조로 전환 (직접값 0)
- block_assembler.py: Template → Environment.from_string (include 지원)
- TOKENS-v1.md: 위계 기준표 초안 + component token 후보
- BLOCK-RULES.md: 블록 작성 규칙 (spacing 문구 실제 토큰과 일치)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-17 13:56:03 +09:00
parent 7a2615fb4b
commit 8e577b3163
8 changed files with 586 additions and 143 deletions

View File

@@ -1688,9 +1688,16 @@ def assemble_slide_html_final(ctx: "PipelineContext", title_text: str = "", meas
"{% block body %}{% endblock %}",
body_html,
)
# Jinja2로 title, footer_text 등 변수만 렌더링
from jinja2 import Template
template = Template(slide_base_raw)
# Jinja2 Environment로 렌더 ({% include %} 지원을 위해)
from jinja2 import Environment, FileSystemLoader, BaseLoader
include_env = Environment(loader=FileSystemLoader(str(templates_dir)))
# slide_base_raw를 문자열 템플릿으로 렌더하되, include는 templates_dir 기준
from jinja2 import DictLoader
combined_loader = FileSystemLoader(str(templates_dir))
include_env = Environment(loader=combined_loader)
# slide-base 내용을 임시 템플릿으로 등록
include_env.loader = FileSystemLoader(str(templates_dir))
template = include_env.from_string(slide_base_raw)
slide_html = template.render(
title=title,
footer_text=conclusion,