Refine run-001 toward reference block layout
This commit is contained in:
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 188 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 188 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -10,26 +10,26 @@
|
|||||||
"body": {
|
"body": {
|
||||||
"block_count": 0,
|
"block_count": 0,
|
||||||
"blocks": [],
|
"blocks": [],
|
||||||
"clientHeight": 482,
|
"clientHeight": 477,
|
||||||
"excess_px": 0,
|
"excess_px": 2,
|
||||||
"overflowed": false,
|
"overflowed": false,
|
||||||
"scrollHeight": 482
|
"scrollHeight": 479
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"block_count": 0,
|
"block_count": 0,
|
||||||
"blocks": [],
|
"blocks": [],
|
||||||
"clientHeight": 52,
|
"clientHeight": 58,
|
||||||
"excess_px": 0,
|
"excess_px": 0,
|
||||||
"overflowed": false,
|
"overflowed": false,
|
||||||
"scrollHeight": 52
|
"scrollHeight": 58
|
||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"block_count": 0,
|
"block_count": 0,
|
||||||
"blocks": [],
|
"blocks": [],
|
||||||
"clientHeight": 482,
|
"clientHeight": 477,
|
||||||
"excess_px": 0,
|
"excess_px": 0,
|
||||||
"overflowed": false,
|
"overflowed": false,
|
||||||
"scrollHeight": 482
|
"scrollHeight": 477
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -16,7 +16,7 @@ GIS의 역할 : ...</td></tr>
|
|||||||
</table>
|
</table>
|
||||||
<div style="font-size:13px;font-weight:700;margin-bottom:4px;">팝업</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:600px;">
|
<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><tr><td style="padding:6px 8px;font-weight:700;">혼용 대표 사례</td><td style="padding:6px 8px;font-size:11px;">340자</td></tr>
|
<tr style="background:#1e293b;color:white;"><th style="padding:8px;">title</th><th style="padding:8px;">분량</th></tr><tr><td style="padding:6px 8px;font-weight:700;">혼용 대표 사례</td><td style="padding:6px 8px;font-size:11px;">241자</td></tr>
|
||||||
<tr><td style="padding:6px 8px;font-weight:700;">DX와 BIM의 구분</td><td style="padding:6px 8px;font-size:11px;">1135자</td></tr>
|
<tr><td style="padding:6px 8px;font-weight:700;">DX와 BIM의 구분</td><td style="padding:6px 8px;font-size:11px;">1736자</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</body></html>
|
</body></html>
|
||||||
File diff suppressed because one or more lines are too long
@@ -5,8 +5,8 @@
|
|||||||
<div style="font-size:24px;font-weight:900;color:#16a34a;margin-bottom:12px;">품질 점수: 100</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>
|
<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;">
|
<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;">482px</td><td style="padding:6px 8px;">482px</td><td style="padding:6px 8px;">+0px</td></tr>
|
<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;">477px</td><td style="padding:6px 8px;">479px</td><td style="padding:6px 8px;">+2px</td></tr>
|
||||||
<tr style="background:#f0fdf4;"><td style="padding:6px 8px;">✅ footer</td><td style="padding:6px 8px;">52px</td><td style="padding:6px 8px;">52px</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;">58px</td><td style="padding:6px 8px;">58px</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;">482px</td><td style="padding:6px 8px;">482px</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;">477px</td><td style="padding:6px 8px;">477px</td><td style="padding:6px 8px;">+0px</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</body></html>
|
</body></html>
|
||||||
@@ -8,11 +8,11 @@
|
|||||||
## Validation Summary
|
## Validation Summary
|
||||||
- 실행 경로 검증: 통과
|
- 실행 경로 검증: 통과
|
||||||
- 렌더링/측정 검증: 통과
|
- 렌더링/측정 검증: 통과
|
||||||
- 최종 품질 판정: 통과
|
- 최종 품질 판정: 재작업 필요
|
||||||
|
|
||||||
## Render Gates
|
## Render Gates
|
||||||
- slide overflow: False
|
- slide overflow: False
|
||||||
- body: overflowed=False excess_px=0 block_count=0
|
- body: overflowed=False excess_px=2 block_count=0
|
||||||
- sidebar: overflowed=False excess_px=0 block_count=0
|
- sidebar: overflowed=False excess_px=0 block_count=0
|
||||||
- footer: overflowed=False excess_px=0 block_count=0
|
- footer: overflowed=False excess_px=0 block_count=0
|
||||||
|
|
||||||
@@ -30,36 +30,38 @@
|
|||||||
"body": {
|
"body": {
|
||||||
"block_count": 0,
|
"block_count": 0,
|
||||||
"blocks": [],
|
"blocks": [],
|
||||||
"clientHeight": 482,
|
"clientHeight": 477,
|
||||||
"excess_px": 0,
|
"excess_px": 2,
|
||||||
"overflowed": false,
|
"overflowed": false,
|
||||||
"scrollHeight": 482
|
"scrollHeight": 479
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"block_count": 0,
|
"block_count": 0,
|
||||||
"blocks": [],
|
"blocks": [],
|
||||||
"clientHeight": 52,
|
"clientHeight": 58,
|
||||||
"excess_px": 0,
|
"excess_px": 0,
|
||||||
"overflowed": false,
|
"overflowed": false,
|
||||||
"scrollHeight": 52
|
"scrollHeight": 58
|
||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"block_count": 0,
|
"block_count": 0,
|
||||||
"blocks": [],
|
"blocks": [],
|
||||||
"clientHeight": 482,
|
"clientHeight": 477,
|
||||||
"excess_px": 0,
|
"excess_px": 0,
|
||||||
"overflowed": false,
|
"overflowed": false,
|
||||||
"scrollHeight": 482
|
"scrollHeight": 477
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Final Decision
|
## Final Decision
|
||||||
- 판정: `pass`
|
- 판정: `revise`
|
||||||
|
|
||||||
## Failure Classification
|
## Failure Classification
|
||||||
- 없음
|
- Verify-ComparisonVisible
|
||||||
|
- Verify-DesignStructure
|
||||||
|
|
||||||
## Next Action
|
## Next Action
|
||||||
1. 없음
|
1. 비교 핵심 4축(범위, 프로세스, 성과품, 확장성)을 화면에 바로 보이는 요약 블록으로 강제한다.
|
||||||
|
2. 핵심 관계를 설명하는 시각적 관계도 블록을 본문 중심 구조로 유지한다.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
- iteration 1 기준으로 최종 산출물과 측정 결과를 다시 검증했다.
|
- iteration 1 기준으로 최종 산출물과 측정 결과를 다시 검증했다.
|
||||||
- slide overflow: False
|
- slide overflow: False
|
||||||
- zone overflow: 없음
|
- zone overflow: 없음
|
||||||
- 최종 판정은 `pass`이다.
|
- 최종 판정은 `revise`이다.
|
||||||
|
|
||||||
산출물 경로
|
산출물 경로
|
||||||
- `docs/run-001/06-validation/validation-result.md`
|
- `docs/run-001/06-validation/validation-result.md`
|
||||||
@@ -11,12 +11,13 @@
|
|||||||
- `docs/run-001/05-execution/stage_2_verification.json`
|
- `docs/run-001/05-execution/stage_2_verification.json`
|
||||||
|
|
||||||
KPI / 판정 결과
|
KPI / 판정 결과
|
||||||
- 판정: pass
|
- 판정: revise
|
||||||
- 실패 분류: 없음
|
- 실패 분류: Verify-ComparisonVisible, Verify-DesignStructure
|
||||||
|
|
||||||
수정 액션
|
수정 액션
|
||||||
- 없음
|
- 비교 핵심 4축(범위, 프로세스, 성과품, 확장성)을 화면에 바로 보이는 요약 블록으로 강제한다.
|
||||||
|
- 핵심 관계를 설명하는 시각적 관계도 블록을 본문 중심 구조로 유지한다.
|
||||||
|
|
||||||
다음 단계 전달물
|
다음 단계 전달물
|
||||||
- 최신 validation 기록
|
- 최신 validation 기록
|
||||||
- 다음 iteration 여부: 중단
|
- 다음 iteration 여부: 재실행
|
||||||
|
|||||||
@@ -504,12 +504,12 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
|||||||
comparison_title = comparison_topic.title if comparison_topic and comparison_topic.title else 'Comparison'
|
comparison_title = comparison_topic.title if comparison_topic and comparison_topic.title else 'Comparison'
|
||||||
|
|
||||||
problem_bullets = _problem_bullets_from_raw(raw)[:2]
|
problem_bullets = _problem_bullets_from_raw(raw)[:2]
|
||||||
evidence_bullets = _evidence_bullets_from_raw(raw)[:4]
|
evidence_bullets = _evidence_bullets_from_raw(raw)[:3]
|
||||||
definition_sections = _definition_sections_from_raw(raw)[:3]
|
definition_sections = _definition_sections_from_raw(raw)[:3]
|
||||||
relation_bullets = _relation_bullets_from_raw(raw)[:4]
|
relation_bullets = _relation_bullets_from_raw(raw)[:4]
|
||||||
comparison_rows = _parse_comparison_rows_from_raw(raw)
|
comparison_rows = _parse_comparison_rows_from_raw(raw)
|
||||||
|
|
||||||
preferred_axes = ['\ubc94\uc704', '\ud504\ub85c\uc138\uc2a4', '\uc131\uacfc\ud488', '\ud655\uc7a5\uc131']
|
preferred_axes = ['범위', '프로세스', '성과품', '확장성']
|
||||||
picked_rows = [row for row in comparison_rows if row[0] in preferred_axes]
|
picked_rows = [row for row in comparison_rows if row[0] in preferred_axes]
|
||||||
if len(picked_rows) < 4:
|
if len(picked_rows) < 4:
|
||||||
seen = {row[0] for row in picked_rows}
|
seen = {row[0] for row in picked_rows}
|
||||||
@@ -519,7 +519,7 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
|||||||
seen.add(row[0])
|
seen.add(row[0])
|
||||||
if len(picked_rows) >= 4:
|
if len(picked_rows) >= 4:
|
||||||
break
|
break
|
||||||
picked_rows = picked_rows[:4]
|
picked_rows = picked_rows[:3]
|
||||||
|
|
||||||
image_src = _extract_image_src_from_raw(raw)
|
image_src = _extract_image_src_from_raw(raw)
|
||||||
if image_src and ctx.base_path:
|
if image_src and ctx.base_path:
|
||||||
@@ -531,89 +531,96 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
|||||||
image_caption = _extract_caption_from_raw(raw)
|
image_caption = _extract_caption_from_raw(raw)
|
||||||
conclusion_text = _conclusion_from_raw(raw)
|
conclusion_text = _conclusion_from_raw(raw)
|
||||||
|
|
||||||
intro_len = sum(len(x) for x in problem_bullets + evidence_bullets)
|
|
||||||
defs_len = sum(len(s['body']) for s in definition_sections)
|
|
||||||
relation_len = sum(len(x) for x in relation_bullets)
|
|
||||||
sidebar_width = '34%' if defs_len >= relation_len else '31%'
|
|
||||||
main_width = '66%' if defs_len >= relation_len else '69%'
|
|
||||||
relation_visual_height = '138px' if intro_len > 320 else '152px'
|
|
||||||
|
|
||||||
problem_items_html = ''.join(
|
problem_items_html = ''.join(
|
||||||
f'<li style="margin-left:14px; margin-bottom:3px;">{_trim_visible_copy(item, floor=84, ceiling=180)}</li>'
|
f'<li style="margin-left:14px; margin-bottom:4px;">{_trim_visible_copy(item, floor=100, ceiling=220)}</li>'
|
||||||
for item in problem_bullets
|
for item in problem_bullets
|
||||||
)
|
)
|
||||||
evidence_items_html = ''.join(
|
evidence_items_html = ''.join(
|
||||||
f'<li style="margin-left:14px; margin-bottom:3px;">{_trim_visible_copy(item, floor=72, ceiling=150)}</li>'
|
f'<li style="margin-left:14px; margin-bottom:4px;">{_trim_visible_copy(item, floor=84, ceiling=180)}</li>'
|
||||||
for item in evidence_bullets
|
for item in evidence_bullets
|
||||||
)
|
)
|
||||||
relation_items_html = ''.join(
|
relation_items_html = ''.join(
|
||||||
f'<li style="margin-left:14px; margin-bottom:3px;">{_trim_visible_copy(item, floor=72, ceiling=150)}</li>'
|
f'<li style="margin-left:16px; margin-bottom:5px;">{_trim_visible_copy(item, floor=92, ceiling=210)}</li>'
|
||||||
for item in relation_bullets
|
for item in relation_bullets
|
||||||
)
|
)
|
||||||
|
|
||||||
definition_cards_html = ''
|
definition_cards_html = ''
|
||||||
for section in definition_sections:
|
for idx, section in enumerate(definition_sections, start=1):
|
||||||
definition_cards_html += (
|
definition_cards_html += (
|
||||||
'<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:10px 12px;">'
|
'<div style="background:#ffffff; border:1px solid #d7e2f0; border-radius:14px; padding:12px; display:flex; gap:10px; align-items:flex-start; min-height:96px;">'
|
||||||
f'<div style="font-size:11px; font-weight:800; color:#0f172a; margin-bottom:4px;">{section["title"]}</div>'
|
f'<div style="width:34px; height:34px; border-radius:999px; background:#2563eb; color:#fff; font-size:15px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0;">{idx}</div>'
|
||||||
f'<div style="font-size:9px; line-height:1.55; color:#334155;">{_trim_visible_copy(section["body"], floor=120, ceiling=250)}</div>'
|
'<div style="flex:1;">'
|
||||||
|
f'<div style="font-size:13px; font-weight:800; color:#0f172a; margin-bottom:6px; line-height:1.35;">{section["title"]}</div>'
|
||||||
|
f'<div style="font-size:9.5px; line-height:1.55; color:#334155; word-break:keep-all;">{_trim_visible_copy(section["body"], floor=150, ceiling=330)}</div>'
|
||||||
|
'</div>'
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
comparison_rows_html = ''
|
comparison_rows_html = ''
|
||||||
for axis, dx, bim in picked_rows:
|
for axis, dx, bim in picked_rows:
|
||||||
comparison_rows_html += (
|
comparison_rows_html += (
|
||||||
'<div style="background:#ffffff; border:1px solid #bfdbfe; border-radius:10px; padding:8px 10px; display:flex; flex-direction:column; gap:4px; min-height:52px;">'
|
'<div style="display:grid; grid-template-columns:1fr 86px 1fr; border-top:1px solid #dbe5f2; align-items:stretch;">'
|
||||||
f'<div style="font-size:8px; font-weight:800; color:#1d4ed8;">{axis}</div>'
|
f'<div style="padding:6px 9px; font-size:9.4px; line-height:1.35; color:#1e3a8a; font-weight:600; background:#ffffff;">{_trim_visible_copy(dx, floor=72, ceiling=145)}</div>'
|
||||||
f'<div style="font-size:7.2px; line-height:1.32; color:#1e3a8a;"><span style="font-weight:700;">DX</span> {_trim_visible_copy(dx, floor=48, ceiling=92)}</div>'
|
f'<div style="padding:6px 6px; font-size:9.4px; line-height:1.25; color:#1d4ed8; font-weight:800; text-align:center; background:#eff6ff; border-left:1px solid #dbe5f2; border-right:1px solid #dbe5f2; display:flex; align-items:center; justify-content:center;">{axis}</div>'
|
||||||
f'<div style="font-size:7.2px; line-height:1.32; color:#334155;"><span style="font-weight:700;">BIM</span> {_trim_visible_copy(bim, floor=48, ceiling=92)}</div>'
|
f'<div style="padding:6px 9px; font-size:9.4px; line-height:1.35; color:#475569; text-align:right; background:#ffffff;">{_trim_visible_copy(bim, floor=72, ceiling=145)}</div>'
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
intro_html = (
|
intro_html = (
|
||||||
'<div style="background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%); border:1px solid #fdba74; border-radius:12px; padding:8px 10px; display:grid; grid-template-columns:1fr 1fr; gap:10px;">'
|
'<div style="background:linear-gradient(135deg,#fff5f5 0%,#ffe8e8 100%); border:2px solid #f8a4a4; border-radius:12px; padding:10px 14px;">'
|
||||||
f'<div><div style="font-size:11px; font-weight:800; color:#c2410c; margin-bottom:4px;">{problem_title}</div><ul style="font-size:9px; line-height:1.45; color:#7c2d12; padding-left:0; margin:0; list-style:disc;">{problem_items_html}</ul></div>'
|
'<div style="display:flex; gap:12px; align-items:flex-start;">'
|
||||||
f'<div><div style="font-size:11px; font-weight:800; color:#9a3412; margin-bottom:4px;">{evidence_title}</div><ul style="font-size:8.5px; line-height:1.4; color:#7c2d12; padding-left:0; margin:0; list-style:disc;">{evidence_items_html}</ul></div>'
|
'<div style="font-size:24px; line-height:1; color:#f59e0b; margin-top:2px;">⚠</div>'
|
||||||
|
'<div style="flex:1;">'
|
||||||
|
f'<div style="font-size:12px; font-weight:900; color:#b42318; margin-bottom:5px;">{problem_title}</div>'
|
||||||
|
f'<ul style="font-size:9px; line-height:1.45; color:#7a271a; padding-left:0; margin:0 0 4px 0; list-style:disc;">{problem_items_html}</ul>'
|
||||||
|
f'<div style="font-size:8.5px; line-height:1.38; color:#9a3412; margin-top:2px;"><span style="font-weight:800;">{evidence_title}</span></div>'
|
||||||
|
f'<ul style="font-size:8.5px; line-height:1.38; color:#9a3412; padding-left:0; margin:2px 0 0 0; list-style:disc;">{evidence_items_html}</ul>'
|
||||||
|
'<div style="margin-top:8px; background:#991b1b; color:#ffffff; border-radius:4px; padding:5px 10px; font-size:10px; font-weight:800; word-break:keep-all;">→ 각 용어의 정의, 역할, 상호관계에 대한 체계적 정립 필요</div>'
|
||||||
|
'</div>'
|
||||||
|
'</div>'
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
relation_html = (
|
relation_html = (
|
||||||
f'<div class="relation-diagram-card" style="background:#ffffff; border:1px solid #cbd5e1; border-radius:14px; padding:12px 14px; display:grid; grid-template-columns:250px 1fr; gap:10px;">'
|
'<div style="background:#ffffff; border:1px solid #d6e2ef; border-radius:14px; padding:10px 12px;">'
|
||||||
'<div style="display:flex; flex-direction:column; gap:5px;">'
|
f'<div style="font-size:14px; font-weight:900; color:#1f3b63; margin-bottom:6px;">{relation_title}</div>'
|
||||||
f'{_relation_visual(image_src, image_caption).replace("height:220px", f"height:{relation_visual_height}")}'
|
'<div style="display:grid; grid-template-columns:250px 1fr; gap:14px; align-items:start;">'
|
||||||
f'<div style="font-size:8px; line-height:1.3; color:#166534; background:#dcfce7; border:1px solid #86efac; border-radius:999px; padding:3px 8px; text-align:center;">{image_caption}</div>'
|
'<div>'
|
||||||
|
f'{_relation_visual(image_src, image_caption).replace("height:220px", "height:208px").replace("padding:10px", "padding:12px")}'
|
||||||
|
f'<div style="margin-top:8px; background:#dcfce7; border:1px solid #86efac; color:#166534; font-size:9px; line-height:1.3; border-radius:999px; padding:4px 10px; text-align:center;">{image_caption}</div>'
|
||||||
|
'</div>'
|
||||||
|
'<div style="display:flex; flex-direction:column; gap:8px;">'
|
||||||
|
f'<ul style="font-size:8.8px; line-height:1.42; color:#334155; padding-left:0; margin:0; list-style:disc;">{relation_items_html}</ul>'
|
||||||
|
'<div style="margin-top:4px; border:1px solid #b9d3ff; border-radius:10px; overflow:hidden;">'
|
||||||
|
'<div style="display:grid; grid-template-columns:1fr 86px 1fr; background:linear-gradient(135deg,#0d47a1,#1565c0); color:#fff; font-weight:800; font-size:12px; text-align:center;">'
|
||||||
|
'<div style="padding:7px 10px;">DX</div>'
|
||||||
|
'<div style="padding:7px 6px; background:rgba(0,0,0,0.14); font-size:11px;">\uad6c\ubd84</div>'
|
||||||
|
'<div style="padding:7px 10px;">BIM</div>'
|
||||||
|
'</div>'
|
||||||
|
f'{comparison_rows_html}'
|
||||||
'</div>'
|
'</div>'
|
||||||
'<div style="display:flex; flex-direction:column; gap:6px;">'
|
|
||||||
f'<div style="font-size:11px; font-weight:800; color:#1e40af;">{relation_title}</div>'
|
|
||||||
f'<ul style="font-size:8.5px; line-height:1.42; color:#334155; padding-left:0; margin:0; list-style:disc;">{relation_items_html}</ul>'
|
|
||||||
'</div>'
|
'</div>'
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
|
||||||
|
|
||||||
comparison_html = (
|
|
||||||
'<div class="comparison-summary-card" style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:12px; padding:8px 10px;">'
|
|
||||||
f'<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:6px;">{comparison_title}</div>'
|
|
||||||
f'<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px;">{comparison_rows_html}</div>'
|
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
body_html = (
|
body_html = (
|
||||||
'<div style="width:100%; height:100%; box-sizing:border-box; font-family:\'Segoe UI\',sans-serif; color:#0f172a; display:flex; flex-direction:column; gap:6px;">'
|
'<div style="width:100%; height:100%; box-sizing:border-box; font-family:Segoe UI,sans-serif; color:#0f172a; display:flex; flex-direction:column; gap:6px;">'
|
||||||
f'{intro_html}'
|
f'{intro_html}'
|
||||||
f'{relation_html}'
|
f'{relation_html}'
|
||||||
f'{comparison_html}'
|
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
sidebar_html = (
|
sidebar_html = (
|
||||||
'<div style="width:100%; height:100%; box-sizing:border-box; font-family:\'Segoe UI\',sans-serif; display:flex; flex-direction:column; gap:8px;">'
|
'<div style="width:100%; height:100%; box-sizing:border-box; font-family:Segoe UI,sans-serif; display:flex; flex-direction:column; gap:10px;">'
|
||||||
f'<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:12px; padding:10px 12px;"><div style="font-size:12px; font-weight:800; color:#1e293b; margin-bottom:8px;">{definitions_title}</div><div style="display:flex; flex-direction:column; gap:8px;">{definition_cards_html}</div></div>'
|
f'<div style="font-size:12px; font-weight:800; color:#475569; padding:2px 6px;">{definitions_title}</div>'
|
||||||
|
f'{definition_cards_html}'
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
footer_html = (
|
footer_html = (
|
||||||
'<div style="background:linear-gradient(135deg, #006aff 0%, #00aaff 100%); border-radius:10px; padding:10px 20px; text-align:center; color:#ffffff; width:100%; height:52px; display:flex; align-items:center; justify-content:center; box-sizing:border-box;">'
|
'<div style="background:linear-gradient(135deg, #0b6ef3 0%, #17a6f5 100%); border-radius:10px; padding:10px 20px; text-align:center; color:#ffffff; width:100%; height:58px; display:flex; align-items:center; justify-content:center; box-sizing:border-box;">'
|
||||||
f'<div style="font-size:12px; font-weight:800; line-height:1.35;">{conclusion_text}</div>'
|
f'<div style="font-size:13px; font-weight:900; line-height:1.35;">{conclusion_text}</div>'
|
||||||
'</div>'
|
'</div>'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -621,7 +628,7 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
|||||||
'body_html': body_html,
|
'body_html': body_html,
|
||||||
'sidebar_html': sidebar_html,
|
'sidebar_html': sidebar_html,
|
||||||
'footer_html': footer_html,
|
'footer_html': footer_html,
|
||||||
'reasoning': f"retry regrouping by content importance: intro(problem+evidence), body(relation+comparison), sidebar(definitions), widths {main_width}/{sidebar_width}",
|
'reasoning': 'retry regrouping by content importance: grouped problem+evidence, reference-like relation block, comparison embedded under relation, numbered definition cards',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user