📦 Initialize Geulbeot structure and merge Prompts & test projects

This commit is contained in:
2026-03-05 11:32:29 +09:00
commit 555a954458
687 changed files with 205247 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
{
"id": "tpl_1770301063",
"name": "55 양식",
"original_file": "발표자료복사본.hwpx",
"file_type": ".hwpx",
"description": "55에서 추출한 문서 양식",
"features": [
"폰트: 돋움",
"표: 3x3"
],
"created_at": "2026-02-05T23:17:43Z",
"source": "doc_template_analyzer"
}

View File

@@ -0,0 +1,94 @@
{
"version": "1.0",
"table_roles": {
"0": {
"role": "data_table",
"header_row": null,
"col_headers": [],
"row_count": 3,
"col_count": 3
}
},
"body_tables": [
0
],
"title_table": null,
"sections": [
{
"index": 1,
"title": "1. (스마트설계팀) SamanPro(V3.0)",
"pattern_type": "numbered"
}
],
"style_mappings": {
"char_pr": {},
"border_fill": {
"1": {
"css_class": "bf-1",
"bg": "",
"borders": {}
},
"2": {
"css_class": "bf-2",
"bg": "",
"borders": {}
},
"3": {
"css_class": "bf-3",
"bg": "",
"borders": {
"border-left": "0.12mm solid #000000",
"border-right": "0.12mm solid #000000",
"border-top": "0.12mm solid #000000",
"border-bottom": "0.12mm solid #000000"
}
},
"4": {
"css_class": "bf-4",
"bg": "",
"borders": {}
},
"5": {
"css_class": "bf-5",
"bg": "",
"borders": {}
},
"6": {
"css_class": "bf-6",
"bg": "",
"borders": {}
},
"7": {
"css_class": "bf-7",
"bg": "",
"borders": {}
},
"8": {
"css_class": "bf-8",
"bg": "#F3F3F3",
"borders": {}
},
"9": {
"css_class": "bf-9",
"bg": "",
"borders": {}
},
"10": {
"css_class": "bf-10",
"bg": "",
"borders": {}
},
"11": {
"css_class": "bf-11",
"bg": "",
"borders": {}
},
"12": {
"css_class": "bf-12",
"bg": "",
"borders": {}
}
},
"para_pr": {}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,507 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Template</title>
<style>
@page {
size: 210.0mm 297.0mm;
margin: 10.0mm 20.0mm 10.0mm 20.0mm;
}
@media screen {
@page { margin: 0; }
}
body {
font-family: '나눔명조', sans-serif;
font-size: 10.0pt;
line-height: 180%;
color: #000000;
margin: 0; padding: 0;
}
.page {
width: 170mm;
margin: 0 auto;
padding: 10.0mm 20.0mm 10.0mm 20.0mm;
}
/* 헤더/푸터 */
.doc-header { margin-bottom: 4.5mm; }
.doc-footer { margin-top: 6.0mm; }
.doc-header table, .doc-footer table {
width: 100%; border-collapse: collapse;
}
.doc-header td { padding: 2px 4px; vertical-align: middle; }
.doc-footer td { padding: 2px 4px; vertical-align: middle; }
/* 제목 블록 */
.title-block { margin-bottom: 4mm; }
.title-table { width: 100%; border-collapse: collapse; }
.title-block h1 {
font-size: 15pt; font-weight: normal;
text-align: center; margin: 0; padding: 4mm 0;
}
/* 섹션 */
.section-title {
font-size: 13.0pt;
font-weight: normal;
color: #000000;
margin-bottom: 3mm;
}
.section { margin-bottom: 6mm; }
.section-content { text-align: justify; }
/* 이미지/문단 (content_order) */
.img-wrap { text-align: center; margin: 3mm 0; }
.img-wrap img { max-width: 100%; height: auto; }
.img-caption { font-size: 9pt; color: #666; margin-top: 1mm; }
/* 데이터 표 */
.data-table {
width: 100%; border-collapse: collapse; margin: 4mm 0;
}
.data-table th, .data-table td {
border: none;
font-size: 10.0pt;
line-height: 180%;
text-align: justify;
vertical-align: middle;
}
.data-table th {
font-weight: bold; text-align: center;
}
/* borderFill → CSS 클래스 */
.bf-1 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-2 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-3 {
border-left: 0.12mm solid #000000;
border-right: 0.12mm solid #000000;
border-top: 0.12mm solid #000000;
border-bottom: 0.12mm solid #000000;
}
.bf-4 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-5 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-6 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-7 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-8 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
background-color: #F3F3F3;
}
.bf-9 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-10 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-11 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
.bf-12 {
border-left: none;
border-right: none;
border-top: none;
border-bottom: none;
}
/* charPr → CSS 클래스 (글자 모양) */
.cpr-0 {
font-family: '나눔명조', sans-serif;
font-size: 10.0pt;
}
.cpr-1 {
font-family: '맑은 고딕', sans-serif;
font-size: 9.0pt;
letter-spacing: -0.45pt;
transform: scaleX(0.95);
display: inline-block;
}
.cpr-2 {
font-family: '맑은 고딕', sans-serif;
font-size: 8.0pt;
}
.cpr-3 {
font-family: '맑은 고딕', sans-serif;
font-size: 9.0pt;
}
.cpr-4 {
font-family: 'HY헤드라인M', sans-serif;
font-size: 10.0pt;
}
.cpr-5 {
font-family: '나눔명조', sans-serif;
font-size: 9.0pt;
}
.cpr-6 {
font-family: '-윤고딕130', sans-serif;
font-size: 13.0pt;
letter-spacing: -0.65pt;
transform: scaleX(0.98);
display: inline-block;
}
.cpr-7 {
font-family: '한양견명조', sans-serif;
font-size: 16.0pt;
}
.cpr-8 {
font-family: '돋움', sans-serif;
font-size: 11.0pt;
}
.cpr-9 {
font-family: '나눔명조', sans-serif;
font-size: 1.0pt;
font-weight: bold;
}
.cpr-10 {
font-family: '나눔명조', sans-serif;
font-size: 11.0pt;
letter-spacing: -0.55pt;
}
.cpr-11 {
font-family: '나눔명조', sans-serif;
font-size: 11.0pt;
}
.cpr-12 {
font-family: '맑은 고딕', sans-serif;
font-size: 13.0pt;
font-weight: bold;
}
.cpr-13 {
font-family: '맑은 고딕', sans-serif;
font-size: 11.0pt;
}
.cpr-14 {
font-family: '맑은 고딕', sans-serif;
font-size: 11.0pt;
font-weight: bold;
}
.cpr-15 {
font-family: '맑은 고딕', sans-serif;
font-size: 9.0pt;
letter-spacing: -0.18pt;
transform: scaleX(0.95);
display: inline-block;
}
.cpr-16 {
font-family: '맑은 고딕', sans-serif;
font-size: 11.0pt;
letter-spacing: -0.22pt;
transform: scaleX(0.95);
display: inline-block;
}
.cpr-17 {
font-family: '맑은 고딕', sans-serif;
font-size: 11.0pt;
letter-spacing: -0.22pt;
transform: scaleX(0.95);
display: inline-block;
}
.cpr-18 {
font-family: '맑은 고딕', sans-serif;
font-size: 11.0pt;
letter-spacing: -0.44pt;
}
/* paraPr → CSS 클래스 (문단 모양) */
.ppr-0 {
text-align: justify;
line-height: 130%;
text-indent: -4.6mm;
}
.ppr-1 {
text-align: justify;
line-height: 160%;
}
.ppr-2 {
text-align: justify;
line-height: 150%;
}
.ppr-3 {
text-align: justify;
line-height: 180%;
}
.ppr-4 {
text-align: center;
line-height: 180%;
}
.ppr-5 {
text-align: justify;
line-height: 180%;
margin-left: 1.8mm;
margin-right: 1.8mm;
}
.ppr-6 {
text-align: justify;
line-height: 180%;
}
.ppr-7 {
text-align: justify;
line-height: 180%;
margin-left: 1.8mm;
}
.ppr-8 {
text-align: justify;
line-height: 170%;
text-indent: -4.3mm;
margin-left: 1.8mm;
margin-bottom: 1.8mm;
}
.ppr-9 {
text-align: justify;
line-height: 155%;
margin-top: 2.1mm;
}
.ppr-10 {
text-align: justify;
line-height: 140%;
text-indent: -4.9mm;
margin-left: 2.8mm;
margin-bottom: 1.1mm;
}
.ppr-11 {
text-align: justify;
line-height: 140%;
margin-left: 2.8mm;
margin-top: 1.8mm;
margin-bottom: 1.1mm;
}
.ppr-12 {
text-align: justify;
line-height: 160%;
margin-top: 3.5mm;
margin-bottom: 1.8mm;
}
.ppr-13 {
text-align: center;
line-height: 160%;
}
.ppr-14 {
text-align: justify;
line-height: 180%;
margin-bottom: 3.0mm;
}
.ppr-15 {
text-align: justify;
line-height: 140%;
margin-left: 2.8mm;
margin-bottom: 1.8mm;
}
.ppr-16 {
text-align: center;
line-height: 170%;
text-indent: -4.3mm;
margin-left: 1.8mm;
margin-bottom: 1.8mm;
}
.ppr-17 {
text-align: justify;
line-height: 170%;
text-indent: -4.3mm;
margin-left: 1.8mm;
margin-top: 1.8mm;
margin-bottom: 1.8mm;
}
.ppr-18 {
text-align: justify;
line-height: 140%;
margin-left: 2.8mm;
margin-bottom: 1.8mm;
}
.ppr-19 {
text-align: justify;
line-height: 160%;
text-indent: -6.1mm;
margin-left: 2.8mm;
margin-bottom: 1.1mm;
}
.ppr-20 {
text-align: justify;
line-height: 160%;
text-indent: -7.9mm;
margin-left: 2.8mm;
margin-bottom: 1.1mm;
}
.ppr-21 {
text-align: justify;
line-height: 160%;
margin-top: 1.8mm;
margin-bottom: 1.1mm;
}
.ppr-22 {
text-align: justify;
line-height: 160%;
margin-bottom: 1.8mm;
}
/* named styles */
/* .sty-0 '바탕글' = cpr-0 + ppr-3 */
/* .sty-1 '머리말' = cpr-3 + ppr-2 */
/* .sty-2 '쪽 번호' = cpr-2 + ppr-1 */
/* .sty-3 '각주' = cpr-1 + ppr-0 */
/* .sty-4 '미주' = cpr-1 + ppr-0 */
/* .sty-5 '표위' = cpr-4 + ppr-4 */
/* .sty-6 '표옆' = cpr-0 + ppr-5 */
/* .sty-7 '표내용' = cpr-0 + ppr-7 */
/* .sty-8 '주)' = cpr-5 + ppr-6 */
/* .sty-9 '#큰아이콘' = cpr-6 + ppr-9 */
/* .sty-10 '개요1' = cpr-7 + ppr-14 */
/* .sty-11 'xl63' = cpr-8 + ppr-13 */
/* 표 상세 (tools 추출값) */
.tbl-1 col:nth-child(1) { width: 1%; }
.tbl-1 col:nth-child(2) { width: 99%; }
.tbl-1 col:nth-child(3) { width: 1%; }
.tbl-1 td, .tbl-1 th {
padding: 0.6mm 0.0mm 0.0mm 0.0mm;
}
.tbl-1 thead th { height: 1.0mm; }
</style>
</head>
<body>
<div class="page">
<!-- no header -->
<div class="section" data-section="1">
<p class="section-title ppr-22 cpr-12">{{SECTION_1_TITLE}}</p>
<div class="img-wrap ppr-12">
{{IMAGE_1}}
<p class="img-caption">{{IMAGE_1_CAPTION}}</p>
</div>
<div class="img-wrap ppr-8">
{{IMAGE_2}}
<p class="img-caption">{{IMAGE_2_CAPTION}}</p>
</div>
<p class="ppr-15"><span class="cpr-13">{{PARA_1}}</span></p>
<div class="img-wrap ppr-8">
{{IMAGE_3}}
<p class="img-caption">{{IMAGE_3_CAPTION}}</p>
</div>
<p class="ppr-15"><span class="cpr-13">{{PARA_2}}</span></p>
<p class="ppr-19"><span class="cpr-13">{{PARA_3}}</span></p>
<p class="ppr-20"><span class="cpr-13">{{PARA_4}}</span></p>
<p class="ppr-20"><span class="cpr-13">{{PARA_5}}</span></p>
<p class="ppr-10"><span class="cpr-15">{{PARA_6}}</span></p>
<p class="ppr-11"><span class="cpr-16">{{PARA_7_RUN_1}}</span><span class="cpr-17">{{PARA_7_RUN_2}}</span></p>
<p class="ppr-10"><span class="cpr-15">{{PARA_8}}</span></p>
<div class="img-wrap ppr-12">
{{IMAGE_4}}
<p class="img-caption">{{IMAGE_4_CAPTION}}</p>
</div>
<table class="data-table tbl-1">
<colgroup>
<col style="width:1%">
<col style="width:99%">
<col style="width:1%">
</colgroup>
<thead>
<tr>
<th class="bf-4">{{TABLE_1_H_C1}}</th>
<th class="bf-5">{{TABLE_1_H_C2}}</th>
<th class="bf-6">{{TABLE_1_H_C3}}</th>
</tr>
</thead>
<tbody>
{{TABLE_1_BODY}}
</tbody>
</table>
<p class="ppr-10"><span class="cpr-15">{{PARA_9}}</span></p>
<div class="img-wrap ppr-17">
{{IMAGE_5}}
<p class="img-caption">{{IMAGE_5_CAPTION}}</p>
</div>
<p class="ppr-15"><span class="cpr-13">{{PARA_10}}</span></p>
<p class="ppr-15"><span class="cpr-13">{{PARA_11}}</span></p>
<div class="img-wrap ppr-17">
{{IMAGE_6}}
<p class="img-caption">{{IMAGE_6_CAPTION}}</p>
</div>
<p class="ppr-15"><span class="cpr-13">{{PARA_12}}</span></p>
<p class="ppr-18"><span class="cpr-13">{{PARA_13}}</span></p>
<div class="img-wrap ppr-17">
{{IMAGE_7}}
<p class="img-caption">{{IMAGE_7_CAPTION}}</p>
</div>
<p class="ppr-15"><span class="cpr-13">{{PARA_14}}</span></p>
<p class="ppr-15"><span class="cpr-13">{{PARA_15}}</span></p>
<p class="ppr-10"><span class="cpr-15">{{PARA_16}}</span></p>
<p class="ppr-15"><span class="cpr-13">{{PARA_17}}</span></p>
<p class="ppr-15"><span class="cpr-18">{{PARA_18}}</span></p>
</div>
<!-- no footer -->
</div>
</body>
</html>