유형 B 파이프라인 연결: block_assembler type B 조립 + zone 기반 전환 시작
- block_assembler: _assemble_slide_html_type_b 추가 (filled/after용 HTML 생성) - fit_verifier: redistribute()가 ROLE_ZONE_MAP 대신 containers zone 사용 - renderer: render_slide_from_html()에 zone 기반 높이 탐색 추가 - pipeline: 팝업 HTML CSS를 콘텐츠 유형별(table/list/text) 분기 - run_from_stage1b: MDX 파일 하드코딩 제거 + layout_template 전달 추가 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -501,10 +501,18 @@ def redistribute(
|
||||
"""부족 영역에 여유 영역의 공간을 재배분.
|
||||
|
||||
같은 zone 내에서만 재배분 가능 (body 안의 배경↔본심).
|
||||
유형 B: containers의 zone 속성에서 동적으로 매핑.
|
||||
"""
|
||||
zone_roles: dict[str, list[str]] = {}
|
||||
for role in analysis.roles:
|
||||
zone = ROLE_ZONE_MAP.get(role, "body")
|
||||
# containers에 zone 정보가 있으면 그걸 사용, 없으면 ROLE_ZONE_MAP fallback
|
||||
ci = containers.get(role)
|
||||
if ci is not None:
|
||||
zone = ci.get("zone") if isinstance(ci, dict) else getattr(ci, "zone", None)
|
||||
else:
|
||||
zone = None
|
||||
if not zone:
|
||||
zone = ROLE_ZONE_MAP.get(role, "body")
|
||||
if zone not in zone_roles:
|
||||
zone_roles[zone] = []
|
||||
zone_roles[zone].append(role)
|
||||
|
||||
Reference in New Issue
Block a user