Generate separate slide outputs for three DX MDX inputs

This commit is contained in:
2026-04-03 16:27:17 +09:00
parent bebb627873
commit e4c90d63b9
119 changed files with 6923 additions and 87 deletions

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>*{margin:0;padding:0;box-sizing:border-box;}body{background:#e5e5e5;padding:10px;font-family:sans-serif;word-break:keep-all;}</style>
</head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:8px;">Stage 0: MDX 정규화</div>
<div style="font-size:12px;color:#555;margin-bottom:12px;">제목: <b>DX의 시행 목표 및 기대효과</b> | 섹션: 2개 | 팝업: 0개 | 이미지: 1개 | 테이블: 0개</div>
<div style="font-size:13px;font-weight:700;margin-bottom:4px;">섹션</div>
<table style="border-collapse:collapse;font-size:12px;width:100%;max-width:900px;margin-bottom:16px;">
<tr style="background:#1e293b;color:white;"><th style="padding:8px;">#</th><th style="padding:8px;">heading</th><th style="padding:8px;">content (미리보기)</th></tr><tr style="background:#f8fafc;"><td style="padding:6px 8px;">1</td><td style="padding:6px 8px;font-weight:700;"></td><td style="padding:6px 8px;font-size:11px;">**안전과 품질**
시설물의 요구 성능을 설계-시공-운영 전 과정에서 **디지털로 검증**하여 **안전성 확보**
Copy & Paste로 하향 평준화된 성과물의 **하자 최소화**로 **고품질 성과물 제공**
**...</td></tr>
<tr style="background:#fff;"><td style="padding:6px 8px;">2</td><td style="padding:6px 8px;font-weight:700;"></td><td style="padding:6px 8px;font-size:11px;">**생산 방식**: 수작업 의존의 반복 업무에서 벗어나, **SW를 활용한 체계화된 방식**으로 전환
**인지·검토**: 2D 도면 해석 중심에서 **3D 모델 기반의 직관적 인지·검토 체계**로 전환
**협업 구조...</td></tr>
</table>
<div style="font-size:13px;font-weight:700;margin-bottom:4px;">팝업</div>
<table style="border-collapse:collapse;font-size:12px;width:100%;max-width:600px;">
<tr style="background:#1e293b;color:white;"><th style="padding:8px;">title</th><th style="padding:8px;">분량</th></tr></table>
</body></html>

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{background:#e5e5e5;padding:10px;font-family:'Pretendard Variable','Noto Sans KR',sans-serif;word-break:keep-all;}
.bl{display:flex;gap:0;margin-bottom:2px;}.bl-m{flex-shrink:0;width:1em;}.bl-t{flex:1;}
</style></head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:4px;">Step 1: 빈 컨테이너 (Stage 1.5a)</div>
<div style="font-size:11px;color:#666;margin-bottom:8px;">비율 100:0</div>
<div style="width:1280px;height:720px;background:white;position:relative;border:1px solid #ccc;">
<div style="position:absolute;left:40px;top:40px;width:1200px;height:66px;background:#f8fafc;border-bottom:3px solid #2563eb;display:flex;align-items:center;padding:0 20px;font-size:22px;font-weight:900;color:#1e293b;">DX의 시행 목표 및 기대효과</div>
<div style="position:absolute;left:40px;top:126px;width:1200px;height:0px;border:2px solid #dc2626;border-radius:6px;background:#dc262608;overflow:hidden;"><div style="text-align:center;margin-top:0px;"><b style="color:#dc2626;font-size:13px;">배경</b><br><span style="color:#888;font-size:10px;">1200x0px / font:12.0px</span></div></div>
<div style="position:absolute;left:40px;top:134px;width:1200px;height:0px;border:2px solid #2563eb;border-radius:6px;background:#2563eb08;overflow:hidden;"><div style="text-align:center;margin-top:0px;"><b style="color:#2563eb;font-size:13px;">본심</b><br><span style="color:#888;font-size:10px;">1200x0px / font:12.0px</span></div></div>
<div style="position:absolute;left:1260px;top:126px;width:0px;height:0px;border:2px solid #16a34a;border-radius:6px;background:#16a34a08;overflow:hidden;"><div style="text-align:center;margin-top:0px;"><b style="color:#16a34a;font-size:13px;">첨부</b><br><span style="color:#888;font-size:10px;">0x0px / font:11.0px</span></div></div>
<div style="position:absolute;left:40px;top:154px;width:1200px;height:0px;border:2px solid #7c3aed;border-radius:6px;background:#7c3aed08;overflow:hidden;"><div style="text-align:center;margin-top:0px;"><b style="color:#7c3aed;font-size:13px;">결론</b><br><span style="color:#888;font-size:10px;">1200x0px / font:14.0px</span></div></div>
</div></body></html>

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{background:#e5e5e5;padding:10px;font-family:'Pretendard Variable','Noto Sans KR',sans-serif;word-break:keep-all;}
.bl{display:flex;gap:0;margin-bottom:2px;}.bl-m{flex-shrink:0;width:1em;}.bl-t{flex:1;}
</style></head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:4px;">Step 1b: 콘텐츠 배치 (꼭지 → 컨테이너)</div>
<div style="font-size:11px;color:#666;margin-bottom:8px;">각 컨테이너에 배정된 꼭지의 source_data</div>
<div style="width:1280px;height:720px;background:white;position:relative;border:1px solid #ccc;">
<div style="position:absolute;left:40px;top:40px;width:1200px;height:66px;background:#f8fafc;border-bottom:3px solid #2563eb;display:flex;align-items:center;padding:0 20px;font-size:22px;font-weight:900;color:#1e293b;">DX의 시행 목표 및 기대효과</div>
<div style="position:absolute;left:40px;top:126px;width:1200px;height:0px;border:2px solid #dc2626;border-radius:6px;background:#dc262608;overflow:hidden;"><div style="padding:6px 10px;overflow:hidden;"><div style="font-size:10px;color:#dc2626;font-weight:700;margin-bottom:4px;">배경</div></div></div>
<div style="position:absolute;left:40px;top:134px;width:1200px;height:0px;border:2px solid #2563eb;border-radius:6px;background:#2563eb08;overflow:hidden;"><div style="padding:6px 10px;overflow:hidden;"><div style="font-size:10px;color:#2563eb;font-weight:700;margin-bottom:4px;">본심</div></div></div>
<div style="position:absolute;left:1260px;top:126px;width:0px;height:0px;border:2px solid #16a34a;border-radius:6px;background:#16a34a08;overflow:hidden;"><div style="padding:6px 10px;overflow:hidden;"><div style="font-size:10px;color:#16a34a;font-weight:700;margin-bottom:4px;">첨부</div></div></div>
<div style="position:absolute;left:40px;top:154px;width:1200px;height:0px;border:2px solid #7c3aed;border-radius:6px;background:#7c3aed08;overflow:hidden;"><div style="padding:6px 10px;overflow:hidden;"><div style="font-size:10px;color:#7c3aed;font-weight:700;margin-bottom:4px;">결론</div></div></div>
</div></body></html>

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{background:#e5e5e5;padding:10px;font-family:'Pretendard Variable','Noto Sans KR',sans-serif;word-break:keep-all;}
.bl{display:flex;gap:0;margin-bottom:2px;}.bl-m{flex-shrink:0;width:1em;}.bl-t{flex:1;}
</style></head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:4px;">Stage 1.5b: 디자인 예산</div>
<div style="font-size:11px;color:#666;margin-bottom:8px;">영역별 available_height/width + fits 여부</div>
<div style="width:1280px;height:720px;background:white;position:relative;border:1px solid #ccc;">
<div style="position:absolute;left:40px;top:40px;width:1200px;height:66px;background:#f8fafc;border-bottom:3px solid #2563eb;display:flex;align-items:center;padding:0 20px;font-size:22px;font-weight:900;color:#1e293b;">DX의 시행 목표 및 기대효과</div>
</div></body></html>

View File

@@ -0,0 +1,16 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>
*{margin:0;padding:0;box-sizing:border-box;}
body{background:#e5e5e5;padding:10px;font-family:'Pretendard Variable','Noto Sans KR',sans-serif;word-break:keep-all;}
.bl{display:flex;gap:0;margin-bottom:2px;}.bl-m{flex-shrink:0;width:1em;}.bl-t{flex:1;}
</style></head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:4px;">Step 2: 블록 선택 (Stage 1.7)</div>
<div style="font-size:11px;color:#666;margin-bottom:8px;">layer 기반 주종 판단. 컨테이너 위에 블록 표시.</div>
<div style="width:1280px;height:720px;background:white;position:relative;border:1px solid #ccc;">
<div style="position:absolute;left:40px;top:40px;width:1200px;height:66px;background:#f8fafc;border-bottom:3px solid #2563eb;display:flex;align-items:center;padding:0 20px;font-size:22px;font-weight:900;color:#1e293b;">DX의 시행 목표 및 기대효과</div>
<div style="position:absolute;left:40px;top:126px;width:1200px;height:0px;border:2px solid #dc2626;border-radius:6px;background:#dc262608;overflow:hidden;"><div style="padding:6px 10px;"><div style="font-size:10px;color:#dc2626;font-weight:700;margin-bottom:4px;">배경 (1200x0px)</div></div></div>
<div style="position:absolute;left:40px;top:134px;width:1200px;height:0px;border:2px solid #2563eb;border-radius:6px;background:#2563eb08;overflow:hidden;"><div style="padding:6px 10px;"><div style="font-size:10px;color:#2563eb;font-weight:700;margin-bottom:4px;">본심 (1200x0px)</div></div></div>
<div style="position:absolute;left:1260px;top:126px;width:0px;height:0px;border:2px solid #16a34a;border-radius:6px;background:#16a34a08;overflow:hidden;"><div style="padding:6px 10px;"><div style="font-size:10px;color:#16a34a;font-weight:700;margin-bottom:4px;">첨부 (0x0px)</div></div></div>
<div style="position:absolute;left:40px;top:154px;width:1200px;height:0px;border:2px solid #7c3aed;border-radius:6px;background:#7c3aed08;overflow:hidden;"><div style="padding:6px 10px;"><div style="font-size:10px;color:#7c3aed;font-weight:700;margin-bottom:4px;">결론 (1200x0px)</div></div></div>
</div></body></html>

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>*{margin:0;padding:0;box-sizing:border-box;}body{background:#e5e5e5;padding:10px;font-family:sans-serif;word-break:keep-all;}</style>
</head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:8px;">Stage 1A/1B: Kei 꼭지 + 영역 배정</div>
<table style="border-collapse:collapse;font-size:12px;width:100%;max-width:900px;">
<tr style="background:#1e293b;color:white;"><th style="padding:8px;">ID</th><th style="padding:8px;">제목</th>
<th style="padding:8px;">purpose</th><th style="padding:8px;">layer</th><th style="padding:8px;">relation_type</th>
<th style="padding:8px;">영역</th></tr><tr style="background:#fff;"><td style="padding:6px 8px;text-align:center;">1</td><td style="padding:6px 8px;font-weight:700;">DX? ??? ??</td><td style="padding:6px 8px;">?? ??</td><td style="padding:6px 8px;">core</td><td style="padding:6px 8px;">goal</td><td style="padding:6px 8px;color:#333;font-weight:700;">?</td></tr>
<tr style="background:#f8fafc;"><td style="padding:6px 8px;text-align:center;">2</td><td style="padding:6px 8px;font-weight:700;">?? ?? ??(Process)? ??</td><td style="padding:6px 8px;">???? ??</td><td style="padding:6px 8px;">core</td><td style="padding:6px 8px;">process</td><td style="padding:6px 8px;color:#333;font-weight:700;">?</td></tr>
<tr style="background:#fff;"><td style="padding:6px 8px;text-align:center;">3</td><td style="padding:6px 8px;font-weight:700;">DX ?? ??? ????</td><td style="padding:6px 8px;">??? ????</td><td style="padding:6px 8px;">supporting</td><td style="padding:6px 8px;">stakeholder_effect</td><td style="padding:6px 8px;color:#333;font-weight:700;">?</td></tr>
<tr style="background:#f8fafc;"><td style="padding:6px 8px;text-align:center;">4</td><td style="padding:6px 8px;font-weight:700;">?? ??</td><td style="padding:6px 8px;">?? ??</td><td style="padding:6px 8px;">conclusion</td><td style="padding:6px 8px;">conclusion</td><td style="padding:6px 8px;color:#333;font-weight:700;">?</td></tr>
</table>
<div style="margin-top:12px;font-size:12px;color:#555;"><b>페이지 구조:</b><br>??: topic_ids=[6], weight=0.1</div></body></html>

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>*{margin:0;padding:0;box-sizing:border-box;}body{background:#e5e5e5;padding:10px;font-family:sans-serif;word-break:keep-all;}</style>
</head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:8px;">Stage 1B: 컨셉 구체화</div>
<div style="font-size:11px;color:#666;margin-bottom:8px;">Stage 1A의 꼭지에 source_data(원본 텍스트)와 summary가 추가됨</div>
<table style="border-collapse:collapse;font-size:12px;width:100%;">
<tr style="background:#1e293b;color:white;"><th style="padding:8px;">ID</th><th style="padding:8px;">제목</th>
<th style="padding:8px;">영역</th><th style="padding:8px;">layer</th>
<th style="padding:8px;">source_data (미리보기)</th><th style="padding:8px;">summary</th></tr><tr style="background:#fff;"><td style="padding:6px 8px;text-align:center;">1</td><td style="padding:6px 8px;font-weight:700;">DX? ??? ??</td><td style="padding:6px 8px;color:#333;">?</td><td style="padding:6px 8px;">core</td><td style="padding:6px 8px;font-size:10px;"></td><td style="padding:6px 8px;font-size:10px;color:#555;"></td></tr>
<tr style="background:#f8fafc;"><td style="padding:6px 8px;text-align:center;">2</td><td style="padding:6px 8px;font-weight:700;">?? ?? ??(Process)? ??</td><td style="padding:6px 8px;color:#333;">?</td><td style="padding:6px 8px;">core</td><td style="padding:6px 8px;font-size:10px;"></td><td style="padding:6px 8px;font-size:10px;color:#555;"></td></tr>
<tr style="background:#fff;"><td style="padding:6px 8px;text-align:center;">3</td><td style="padding:6px 8px;font-weight:700;">DX ?? ??? ????</td><td style="padding:6px 8px;color:#333;">?</td><td style="padding:6px 8px;">supporting</td><td style="padding:6px 8px;font-size:10px;">&lt;DxEffect /> ???? ?? ???? ??</td><td style="padding:6px 8px;font-size:10px;color:#555;"><DxEffect /> ???? ?? ???? ??</td></tr>
<tr style="background:#f8fafc;"><td style="padding:6px 8px;text-align:center;">4</td><td style="padding:6px 8px;font-weight:700;">?? ??</td><td style="padding:6px 8px;color:#333;">?</td><td style="padding:6px 8px;">conclusion</td><td style="padding:6px 8px;font-size:10px;">고품질의 성과품, 비용 절감, 시간 단축, 의사소통에 도움이 안 되면 DX가 아니다.</td><td style="padding:6px 8px;font-size:10px;color:#555;">고품질의 성과품, 비용 절감, 시간 단축, 의사소통에 도움이 안 되면 DX가 아니다.</td></tr>
</table></body></html>

View File

@@ -0,0 +1,9 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>*{margin:0;padding:0;box-sizing:border-box;}
body{background:#e5e5e5;padding:10px;font-family:'Pretendard Variable','Noto Sans KR',sans-serif;word-break:keep-all;}
:root{--radius:6px;--line-height-ko:1.7;--color-accent:#2563eb;--color-primary:#1e293b;}</style>
</head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:4px;">Stage 2: 영역별 HTML 생성 결과 (Sonnet)</div>
<div style="font-size:11px;color:#666;margin-bottom:12px;">각 역할의 Sonnet 출력을 컨테이너 크기에 맞게 실제 렌더링</div>
</body></html>

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>*{margin:0;padding:0;box-sizing:border-box;}
body{background:#e5e5e5;padding:10px;font-family:sans-serif;}</style>
</head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:4px;">Stage 3: 렌더링 조립 결과</div>
<div style="font-size:11px;color:#666;margin-bottom:8px;">Stage 2의 영역별 HTML을 슬라이드 프레임(CSS Grid)에 배치 + 후처리 적용</div>
<p style="margin-bottom:8px;"><a href="stage_3_rendered.html" style="font-size:16px;font-weight:700;">렌더링 결과 보기 (1280×720) →</a></p>
<p><a href="../final.html" style="font-size:14px;">final.html 보기 →</a></p>
<div style="margin-top:16px;font-size:12px;color:#555;">
Stage 3 후처리: sidebar width:100% 조정, 폰트 캡핑 (배경≤12.0px, 첨부≤11.0px), overflow 제거, bold 변환
</div>
</body></html>

View File

@@ -0,0 +1,177 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>DX의 시행 목표 및 기대효과</title>
<style>
/* Design Agent — 디자인 토큰 */
/* CLAUDE.md에 정의된 디자인 원칙을 CSS 변수로 구현 */
:root {
/* 색상 */
--color-primary: #1e293b;
--color-accent: #2563eb;
--color-neutral: #64748b;
--color-bg: #ffffff;
--color-bg-subtle: #f8fafc;
--color-border: #e2e8f0;
--color-danger: #dc2626;
--color-success: #16a34a;
--color-text: #1e293b;
--color-text-secondary: #64748b;
--color-text-light: #94a3b8;
/* 폰트 크기 */
--font-title: 2rem;
--font-subtitle: 1.25rem;
--font-body: 0.95rem;
--font-caption: 0.8rem;
--font-small: 0.7rem;
/* 폰트 두께 */
--weight-normal: 400;
--weight-medium: 500;
--weight-bold: 700;
--weight-black: 900;
/* 여백 */
--spacing-page: 40px;
--spacing-block: 20px;
--spacing-inner: 16px;
--spacing-small: 8px;
/* 기타 */
--radius: 6px;
--border-width: 1px;
--accent-border: 3px;
--line-height-ko: 1.7;
}
/* Design Agent — 기본 슬라이드 스타일 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* 슬라이드 컨테이너: 16:9 고정 비율 */
.slide {
width: 1280px;
height: 720px;
aspect-ratio: 16 / 9;
overflow: hidden;
background: var(--color-bg);
font-family: 'Pretendard Variable', 'Pretendard', 'Noto Sans KR', sans-serif;
color: var(--color-text);
font-size: var(--font-body);
line-height: var(--line-height-ko);
word-break: keep-all;
padding: var(--spacing-page);
display: grid;
gap: var(--spacing-block);
}
/* 슬라이드 제목 */
.slide-title {
font-size: var(--font-title);
font-weight: var(--weight-black);
color: var(--color-primary);
border-bottom: var(--accent-border) solid var(--color-accent);
padding-bottom: var(--spacing-small);
}
/* 섹션 제목 */
.section-title {
font-size: var(--font-subtitle);
font-weight: var(--weight-bold);
color: var(--color-primary);
margin-bottom: var(--spacing-small);
}
/* 본문 */
.body-text {
font-size: var(--font-body);
color: var(--color-text);
line-height: var(--line-height-ko);
}
/* 캡션/출처 */
.caption {
font-size: var(--font-caption);
color: var(--color-text-light);
font-style: italic;
}
/* 강조 텍스트 */
.highlight {
color: var(--color-accent);
font-weight: var(--weight-bold);
}
/* 경고/문제 강조 */
.danger {
color: var(--color-danger);
font-weight: var(--weight-bold);
}
/* ── 컨테이너 레이아웃 ── */
/* grid area: flex 축소 허용. overflow는 프레임(.slide)에서만 hidden. */
/* A-1(Sonnet 디자인 조정)이 텍스트 양에 맞게 CSS를 사전 조정하므로,
area 레벨에서는 overflow: visible로 텍스트 잘림을 방지한다. */
.slide > div {
overflow: visible;
min-height: 0;
min-width: 0;
}
/* area 안에서 flex-column 그룹핑된 블록들의 축소 허용 */
.slide > div > div {
min-height: 0;
flex-shrink: 1;
}
.slide-1 {
grid-template-areas: 'header header' 'body sidebar' 'footer footer';
grid-template-columns: 65fr 35fr;
grid-template-rows: auto auto auto;
}
.slide-1 .area-body { grid-area: body; }
.slide-1 .area-sidebar { grid-area: sidebar; }
.slide-1 .area-footer { grid-area: footer; }
.slide + .slide { margin-top: 40px; }
@media print {
.slide { page-break-after: always; }
.slide + .slide { margin-top: 0; }
}
</style>
</head>
<body>
<div class="slide slide-1">
<div class="slide-title" style="grid-area: header;">DX의 시행 목표 및 기대효과</div>
<div class="area-body" style="overflow:hidden;">
</div>
<div class="area-sidebar" style="overflow:hidden;">
</div>
<div class="area-footer" style="overflow:hidden;">
</div>
</div>
<script>
window.onbeforeprint = function() {
document.querySelectorAll('details').forEach(function(d) { d.open = true; });
};
window.onafterprint = function() {
document.querySelectorAll('details').forEach(function(d) { d.open = false; });
};
</script>
</body>
</html>

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html><html><head><meta charset="UTF-8">
<style>*{margin:0;padding:0;box-sizing:border-box;}body{background:#e5e5e5;padding:10px;font-family:sans-serif;word-break:keep-all;}</style>
</head><body>
<div style="font-size:16px;font-weight:bold;margin-bottom:8px;">Stage 4: 품질 게이트</div>
<div style="font-size:24px;font-weight:900;color:#16a34a;margin-bottom:12px;">품질 점수: 100</div>
<div style="font-size:12px;color:#555;margin-bottom:4px;">슬라이드: clientHeight=720px, scrollHeight=720px, overflow=False</div>
<table style="border-collapse:collapse;font-size:12px;width:100%;max-width:600px;margin-top:8px;">
<tr style="background:#1e293b;color:white;"><th style="padding:8px;">영역</th><th style="padding:8px;">clientH</th><th style="padding:8px;">scrollH</th><th style="padding:8px;">excess</th></tr><tr style="background:#f0fdf4;"><td style="padding:6px 8px;">✅ body</td><td style="padding:6px 8px;">178px</td><td style="padding:6px 8px;">178px</td><td style="padding:6px 8px;">+0px</td></tr>
<tr style="background:#f0fdf4;"><td style="padding:6px 8px;">✅ footer</td><td style="padding:6px 8px;">178px</td><td style="padding:6px 8px;">178px</td><td style="padding:6px 8px;">+0px</td></tr>
<tr style="background:#f0fdf4;"><td style="padding:6px 8px;">✅ sidebar</td><td style="padding:6px 8px;">178px</td><td style="padding:6px 8px;">178px</td><td style="padding:6px 8px;">+0px</td></tr>
</table>
</body></html>