fix: [contracts] Markdown ↔ DOCX 동기화 100% 달성
- 분할 문단 원복 (비밀유지서약서, 영업파트너 위촉계약서 2종) - 제목 꺾쇠(< >) 복원 (영업파트너 위촉계약서 2종) - 회사 이메일 누락 복원 (영업파트너 위촉계약서 2종) - sync_check 정규화 개선 (Bold 마커, 리스트 접두사, 빈 테이블 행)
This commit is contained in:
@@ -22,7 +22,8 @@ docx_file: "비밀유지서약서.docx"
|
||||
|
||||
## 제1조 (목적)
|
||||
|
||||
본 서약서는 주식회사 코드브릿지(이하 “회사”)와의 업무 관계에서 알게 된 기밀 정보를 보호하기 위해 작성되었습니다.
|
||||
본 서약서는 주식회사 코드브릿지(이하 “회사”)와의 업무 관계에서 알게 된 기밀 정보를
|
||||
보호하기 위해 작성되었습니다.
|
||||
|
||||
## 제2조 (기밀 정보의 정의)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ date: "2026-02-22"
|
||||
docx_file: "영업파트너 위촉계약서.docx"
|
||||
---
|
||||
|
||||
# 영업파트너 위촉계약서
|
||||
# < 영업파트너 위촉계약서 >
|
||||
|
||||
*Sales Partner Engagement Agreement*
|
||||
|
||||
@@ -13,7 +13,8 @@ docx_file: "영업파트너 위촉계약서.docx"
|
||||
|
||||
## 제1조 (계약의 목적)
|
||||
|
||||
본 계약은 회사와 파트너 간의 영업파트너 위촉 관계를 규정하고, 상호 권리와 의무를 명확히 함을 목적으로 합니다.
|
||||
본 계약은 회사와 파트너 간의 영업파트너 위촉 관계를 규정하고, 상호 권리와 의무를
|
||||
명확히 함을 목적으로 합니다.
|
||||
|
||||
## 제2조 (용어의 정의)
|
||||
|
||||
@@ -236,9 +237,9 @@ docx_file: "영업파트너 위촉계약서.docx"
|
||||
- **대표자**: 이의찬 (인)
|
||||
- **사업자등록번호**: 664-86-03713
|
||||
- **주소**: 서울특별시 강서구 양천로 583, 우림블루나인 B동 1602호
|
||||
- **이메일**:
|
||||
- **이메일**: admin@codebridge-x.com
|
||||
- **전화**: 02-6347-0005
|
||||
- **날짜**:
|
||||
- **날짜**:
|
||||
|
||||
- **[파트너]**
|
||||
- **상호/성명**:
|
||||
|
||||
@@ -5,7 +5,7 @@ date: "2026-02-22"
|
||||
docx_file: "영업파트너 위촉계약서(단체용).docx"
|
||||
---
|
||||
|
||||
# 영업파트너 위촉계약서
|
||||
# < 영업파트너 위촉계약서 >
|
||||
|
||||
*Sales Partner Engagement Agreement*
|
||||
|
||||
@@ -13,7 +13,8 @@ docx_file: "영업파트너 위촉계약서(단체용).docx"
|
||||
|
||||
## 제1조 (계약의 목적)
|
||||
|
||||
본 계약은 회사와 파트너 간의 영업파트너 위촉 관계를 규정하고, 상호 권리와 의무를 명확히 함을 목적으로 합니다.
|
||||
본 계약은 회사와 파트너 간의 영업파트너 위촉 관계를 규정하고, 상호 권리와 의무를
|
||||
명확히 함을 목적으로 합니다.
|
||||
|
||||
## 제2조 (용어의 정의)
|
||||
|
||||
@@ -236,9 +237,9 @@ docx_file: "영업파트너 위촉계약서(단체용).docx"
|
||||
- **대표자**: 이의찬 (인)
|
||||
- **사업자등록번호**: 664-86-03713
|
||||
- **주소**: 서울특별시 강서구 양천로 583, 우림블루나인 B동 1602호
|
||||
- **이메일**:
|
||||
- **이메일**: admin@codebridge-x.com
|
||||
- **전화**: 02-6347-0005
|
||||
- **날짜**:
|
||||
- **날짜**:
|
||||
|
||||
- **[파트너]**
|
||||
- **상호/성명**:
|
||||
|
||||
@@ -70,7 +70,11 @@ def extract_text_from_docx(docx_path):
|
||||
continue
|
||||
|
||||
for row in table.rows:
|
||||
row_text = " | ".join(cell.text.strip() for cell in row.cells)
|
||||
cells = [cell.text.strip() for cell in row.cells]
|
||||
# 빈 셀만 있는 행 건너뛰기
|
||||
if not any(cells):
|
||||
continue
|
||||
row_text = " | ".join(cells)
|
||||
if row_text.strip():
|
||||
lines.append(row_text)
|
||||
|
||||
@@ -142,6 +146,10 @@ def normalize_text(text):
|
||||
text = text.replace("\u3000", " ") # ideographic space
|
||||
# 언더스코어 빈칸 정규화
|
||||
text = re.sub(r"_{3,}", "___", text)
|
||||
# Bold 마크업(**) 제거 (DOCX 텍스트에 리터럴 ** 포함되는 경우)
|
||||
text = re.sub(r"\*\*(.+?)\*\*", r"\1", text)
|
||||
# 선행 리스트 마커 제거 (DOCX 텍스트가 "- "로 시작하는 경우)
|
||||
text = re.sub(r"^-\s+", "", text)
|
||||
return text
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user