Files
C.E.L_Slide_test2/tests/matching/md_to_html.py
T

140 lines
6.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""MD → HTML 변환 (PNG 미리보기 크게 보이게 + 읽기 쉬운 스타일)"""
import markdown
from pathlib import Path
HERE = Path(__file__).parent
CSS = """
<style>
body {
font-family: -apple-system, 'Segoe UI', 'Malgun Gothic', sans-serif;
max-width: 1800px;
margin: 0 auto;
padding: 24px;
line-height: 1.6;
color: #1e293b;
background: #f8fafc;
}
h1 { color: #1e293b; border-bottom: 3px solid #2563eb; padding-bottom: 12px; }
h2 {
color: #1a365d;
background: #e0e7ff;
padding: 10px 16px;
border-radius: 6px;
margin-top: 32px;
}
hr { border: none; border-top: 1px solid #cbd5e1; margin: 24px 0; }
table {
border-collapse: collapse;
width: 100%;
margin: 12px 0 24px;
background: #fff;
box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
th, td {
border: 1px solid #e2e8f0;
padding: 10px;
text-align: left;
vertical-align: top;
}
th {
background: #1e293b;
color: #fff;
font-weight: 700;
text-align: center;
width: 120px;
}
td:first-child {
background: #f1f5f9;
font-weight: 600;
text-align: center;
width: 120px;
}
td img {
max-width: 260px;
height: auto;
display: block;
margin: 0 auto 6px;
border: 1px solid #cbd5e1;
border-radius: 4px;
}
td br + strong { color: #2563eb; }
</style>
"""
def convert(md_path: Path, html_path: Path, title: str):
md_content = md_path.read_text(encoding="utf-8")
html_body = markdown.markdown(md_content, extensions=["tables", "attr_list"])
html = f"""<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>{title}</title>
{CSS}
</head>
<body>
{html_body}
</body>
</html>
"""
html_path.write_text(html, encoding="utf-8")
print(f"생성: {html_path}")
def main():
pairs = [
("MATRIX_CASE1.md", "MATRIX_CASE1.html", "CASE 1 - 원본 텍스트"),
("MATRIX_CASE2.md", "MATRIX_CASE2.html", "CASE 2 - 양쪽 가중"),
("MATRIX_CASE3.md", "MATRIX_CASE3.html", "CASE 3 - 목차만"),
("MATRIX_17.md", "MATRIX_17.html", "MATRIX 17 (기존)"),
("MATRIX.md", "MATRIX.html", "MATRIX (기존 7섹션)"),
("RESULT_BY_SECTION.md", "RESULT_BY_SECTION.html", "결과 by 섹션 (기존)"),
("KEYWORD_REPORT.md", "KEYWORD_REPORT.html", "키워드 전체 리포트"),
("MATRIX_PHASE2.md", "MATRIX_PHASE2.html", "Phase 2 — 7개 방법 (키워드+구조+의미)"),
("MATRIX_PHASE3.md", "MATRIX_PHASE3.html", "Phase 3 — 9개 방법 (의미 5 family)"),
("MATRIX_PHASE4.md", "MATRIX_PHASE4.html", "Phase 4 — 의미 15개 (5 family × 3 전략)"),
("MATRIX_PHASE4_1순위.md", "MATRIX_PHASE4_1순위.html", "Phase 4 — 1순위만 (5 유닛 × 15 방법)"),
("MATRIX_PHASE5.md", "MATRIX_PHASE5.html", "Phase 5 — Case 2 (세부 단위 7개 방법)"),
("MATRIX_PHASE6.md", "MATRIX_PHASE6.html", "Phase 6 — 4개 유닛 × 7개 방법"),
("MATRIX_PHASE7.md", "MATRIX_PHASE7.html", "Phase 7 — 2~3단계 파이프라인 검증"),
("MATRIX_PHASE8.md", "MATRIX_PHASE8.html", "Phase 8 — Distinctive-Kiwi 전처리 강화"),
("MATRIX_PHASE9.md", "MATRIX_PHASE9.html", "Phase 9 — 제목 포함+가중치 후 8개 방법 재평가"),
("MATRIX_PHASE10.md", "MATRIX_PHASE10.html", "Phase 10 — 타이틀 ONLY 매칭"),
("MATRIX_PHASE11.md", "MATRIX_PHASE11.html", "Phase 11 — Asymmetric + Ensemble"),
("MATRIX_PHASE12.md", "MATRIX_PHASE12.html", "Phase 12 — 키워드 수준 매칭 진단"),
("MATRIX_PHASE13.md", "MATRIX_PHASE13.html", "Phase 13 — 방법별 매칭 상세 진단"),
("MATRIX_PHASE14.md", "MATRIX_PHASE14.html", "Phase 14 — 3개 개선 방법 통합표"),
("MATRIX_PHASE14_SAMPLE.md", "MATRIX_PHASE14_SAMPLE.html", "Phase 14 샘플 — AI-Meta 동작 과정"),
("MATRIX_PHASE15.md", "MATRIX_PHASE15.html", "Phase 15 — 키워드 실패 → AI 구조+의미 성공"),
("MATRIX_PHASE16.md", "MATRIX_PHASE16.html", "Phase 16 — 3축 매칭(구조×내용×키워드)"),
("MATRIX_PHASE17.md", "MATRIX_PHASE17.html", "Phase 17 — 32개 analysis.md 전체 3축 매칭"),
("MATRIX_PHASE18.md", "MATRIX_PHASE18.html", "Phase 18 — 키워드만 (baseline)"),
("MATRIX_PHASE19.md", "MATRIX_PHASE19.html", "Phase 19 — synonym + 키워드"),
("MATRIX_PHASE20.md", "MATRIX_PHASE20.html", "Phase 20 — synonym + 키워드 + 내용"),
("MATRIX_PHASE21.md", "MATRIX_PHASE21.html", "Phase 21 — synonym + 키워드 + 내용 + 구조 (old)"),
("MATRIX_PHASE21b.md", "MATRIX_PHASE21b.html", "Phase 21b — ontology 구조축 (tie-breaker)"),
("MATRIX_PHASE22.md", "MATRIX_PHASE22.html", "Phase 22 — 정제 anchor keywords only (baseline)"),
("MATRIX_PHASE23.md", "MATRIX_PHASE23.html", "Phase 23 — anchor + content summary"),
("MATRIX_PHASE24.md", "MATRIX_PHASE24.html", "Phase 24 — anchor + content + legacy structure ontology"),
("MATRIX_PHASE25.md", "MATRIX_PHASE25.html", "Phase 25 — Template-fit-v1 (최종 운영 체계)"),
("MATRIX_PHASE26.md", "MATRIX_PHASE26.html", "Phase 26 — 매칭 방법 비교 종합 + Figma DB 설계 결론"),
("SYNONYMS_REPORT.md", "SYNONYMS_REPORT.html", "Synonym 사전 관리 기준"),
("FIGMA_AUDIT.md", "FIGMA_AUDIT.html", "Figma 32개 구조 검수 리포트"),
("DOMAIN_TERMS_REPORT.md", "DOMAIN_TERMS_REPORT.html", "Domain Terms 검수 리포트 (synonyms 관리 도구)"),
("FIGMA_KEYWORDS_REPORT.md", "FIGMA_KEYWORDS_REPORT.html", "Figma 32 프레임 후보 키워드 검수"),
("BEPS_SUMMARY_REPORT.md", "BEPS_SUMMARY_REPORT.html", "BEPS 기반 통합 정리 (키워드 + 구조 + 프레임)"),
("KEYWORD_BASE_DRAFT.md", "KEYWORD_BASE_DRAFT.html", "Keyword Base 분류 초안 (검수용)"),
("INTENT_DIAGNOSTIC_REPORT.md", "INTENT_DIAGNOSTIC_REPORT.html", "Structure Intent 진단 (점수 통합 전 검수)"),
("CLEAN_ANCHOR_SETS_REPORT.md", "CLEAN_ANCHOR_SETS_REPORT.html", "anchor_sets 정리 리포트 (Milestone 2)"),
]
for md_name, html_name, title in pairs:
md_path = HERE / md_name
if not md_path.exists():
continue
convert(md_path, HERE / html_name, title)
if __name__ == "__main__":
main()