오피스 통합 배선 적용 (DOCX/XLSX 실내보내기 + 마인드맵/플랜 탭 + 학습층)
개요
빌더 3기(export-docx.js/한선, export-xlsx.js/한선, mindmap.js/한선, plan-tab.js/한선, office-learn.js/한선)가 산출한 신규 파일을
/Users/ef/CrownyDoc/한선씨/정적/ 라이브 index.html·file-compat.js에 배선. 정적 파일이라 서버 재기동 불필요, 배선 즉시 반영.
무엇을 했는지
- index.html
-
<script> 로드 순서:
export-docx.js/
export-xlsx.js를
파일-내보내기.js 뒤,
mindmap.js/
plan-tab.js/
office-learn.js를
최근문서.js 뒤에 추가.
- 탭 바에
🧠 마인드맵(data-mode='mind')·
📅 플랜(data-mode='plan') 버튼 추가.
-
#mode-mind(
#mindmap-container)·
#mode-plan(
#plan-container) 패널 div 추가.
CrownyOffice.switchMode()가
mode-<mode> id 컨벤션으로 범용 처리하므로 별도 라우팅 코드 불필요 확인.
- 상태바 라벨(
status-mode) 삼항식에 mind/plan 케이스 추가(코스메틱).
- 크라우니디자인 레지스트리(
crowny-fonts/디자인적용대상.psv)에
오피스 등록 후
crowny-design.sh apply 오피스 실행 →
data-crowny + 중앙 CSS 링크 주입 확인(멱등, 재실행 안전).
- file-compat.js
- 내보내기 다이얼로그(시트 모드)에
📗 XLSX (진짜 엑셀 파일) 버튼 추가 →
_doExport("xlsx").
- 내보내기 다이얼로그(문서 모드)에
📘 DOCX (진짜 워드 파일) 버튼 추가 →
_doExport("docx").
-
_doExport() switch에
case 'docx'(
CrownyDocxExport.exportDocx)·
case 'xlsx'(
CrownyXlsxExport.exportXlsx) 추가,
typeof 가드로 미로드 시 안전 no-op.
- "DOCX/XLSX 완전 호환은 다음 버전에서 지원 예정" 안내 배너 제거(더 이상 사실이 아님 — 실제 OOXML 바이너리 내보내기 완료).
검증 (같은 턴 실측)
curl https://docs.crowny.org/office → 신규 script 태그·탭 마크업 전부 확인.
- 신규 정적 5파일(export-docx.js, export-xlsx.js, mindmap.js, plan-tab.js, office-learn.js) 전부
https://docs.crowny.org/static/* 200 확인.
node --check 전체 통과: file-compat.js, mindmap.js, plan-tab.js, office-learn.js, export-docx.js, export-xlsx.js.
- 라이브 서빙 index.html의 인라인
<script> 블록 추출 → node --check 통과(템플릿 개행 함정 없음 확인).
- 라이브 file-compat.js에서
case 'docx'/case 'xlsx' 스위치 및 안내 배너 제거 확인.
관련 파일
/Users/ef/CrownyDoc/한선씨/정적/index.html
/Users/ef/CrownyDoc/한선씨/정적/file-compat.js
/Users/ef/CrownyDoc/한선씨/정적/export-docx.js (+.한선, 빌더 산출·미수정)
/Users/ef/CrownyDoc/한선씨/정적/export-xlsx.js (+.한선, 빌더 산출·미수정)
/Users/ef/CrownyDoc/한선씨/정적/mindmap.js (+.한선)
/Users/ef/CrownyDoc/한선씨/정적/plan-tab.js (+.한선)
/Users/ef/CrownyDoc/한선씨/정적/office-learn.js (+.한선)
/Users/ef/crowny-fonts/디자인적용대상.psv (오피스 항목 추가)
잔여 이슈 / 편차
- 한선씨 동반: 이번 작업은 배선(마크업 script 태그 삽입·버튼/케이스 추가)만 수행 — 새 연산 로직 없음. index.html에 대한
.한선 동반 파일은 만들지 않음(순수 script 태그 나열에 대응하는 로직이 없어 의미 없는 빈 파일이 됨). 배선 대상 각 신규 기능 자체의 .한선은 빌더가 이미 동반 완료(export-docx.한선 등).
- file-compat.js의
case 'docx'/'xlsx' 분기는 JS 로직이지만 빌더 산출 .한선(export-docx.한선/export-xlsx.한선)이 실제 인코딩 로직을 담당하므로 이 얇은 배선 분기 자체는 기존 .한선 커버리지 내로 판단.