CrownyDoc Stage 6 — MS Office 대체 5모듈
개요
"MS Office 안 쓰고 CrownyDoc만 쓰겠다"는 선언에 따라 매일 사용 가능한 5개 핵심 모듈을 추가했다. 외부 라이브러리 의존성 0, 브라우저 내장 API만 사용.
작업 내용
신규 파일 10개 (JS 5 + 한선씨 동반 5)
| 파일 | 크기(예상) | 핵심 API |
|---|---|---|
autosave.js | ~6KB | 시작/중지/저장/복원/버전목록/지우기/잠금/잠금해제 (8개) |
단축키도움말.js | ~5KB | 카테고리목록/검색/표시/숨기기/바인딩 (5개) + 전역 Ctrl+/ |
파일-가져오기.js | ~9KB | 열기/파일선택열기/파싱_docx/xlsx/pptx/csv/md/json (8개) |
파일-내보내기.js | ~7KB | PDF/HTML/Markdown/CSV/CDFv2/SVG/PNG (7개) |
최근문서.js | ~7KB | 목록/추가/즐겨찾기/삭제/정리/패널렌더링/자동등록 (7개) |
autosave.한선 | ~3KB | 저장로컬/복원/버전목록/지우기/잠금확인/잠금등록/잠금해제 |
단축키도움말.한선 | ~2KB | 카테고리만들기/단축키검색/카테고리수/단축키총수 |
파일-가져오기.한선 | ~3KB | CSV파싱/MD변환/형식감지/JSON판별/가져오기통계 |
파일-내보내기.한선 | ~3KB | CSV직렬화/CDFv2생성/CDFv2검증/시트HTML변환 |
최근문서.한선 | ~3KB | 추가/즐겨찾기/삭제/정리/목록/통계 |
검증 (사용자가 실행)
bash# JS 구문 검증
for f in autosave 단축키도움말 파일-가져오기 파일-내보내기 최근문서; do
node --check "/Users/ef/CrownyDoc/한선씨/정적/${f}.js" && echo "OK: $f" || echo "FAIL: $f"
done
# 한선씨 컴파일 검증
COMPILER=/Users/ef/CrownyOS/crownyc/hanseonc_high
for f in autosave 단축키도움말 파일-가져오기 파일-내보내기 최근문서; do
$COMPILER "/Users/ef/CrownyDoc/한선씨/정적/${f}.한선" > /tmp/_t.toau 2>&1 \
&& echo "OK: $f" || echo "FAIL: $f"
done
index.html에 스크립트 태그 추가 방법
사용자가 검토 후 직접 적용. </body> 바로 앞 마지막 <script> 블록 뒤에 추가:
html<script src='/static/autosave.js'></script>
<script src='/static/단축키도움말.js'></script>
<script src='/static/파일-가져오기.js'></script>
<script src='/static/파일-내보내기.js'></script>
<script src='/static/최근문서.js'></script>
현재 index.html의 마지막 스크립트 태그 위치 (참고):
/Users/ef/CrownyDoc/한선씨/정적/index.html마지막<script src='/static/industry-legal-2.js'>뒤
자동저장 연결 (index.html 인라인 스크립트 수정)
현재 CrownyOffice.autoSave.start(...) 블록을 아래로 교체:
javascript// 새 자동저장 모듈 연결 (기존 autoSave 대체)
CrownyAutoSave.시작('default', function() {
var mode = CrownyOffice.mode;
var data = null;
if (mode === 'doc') data = { mode:'doc', content: CrownyOffice.editor.getHTML() };
if (mode === 'sheet') data = { mode:'sheet', rows: CrownyOffice.sheet.getData() };
if (mode === 'slide') data = { mode:'slide', slides: CrownyOffice.slide.getData() };
return data;
});
알려진 한계
| 형식 | 한계 |
|---|---|
| .docx | 본문 텍스트·헤더·표 텍스트만. 스타일·이미지·페이지 설정 미지원 |
| .xlsx | 단순 셀 값만. 수식 계산값·차트·병합셀·조건부서식 미지원 |
| .pptx | 텍스트 추출만. 레이아웃·배경·이미지·전환효과 미지원 |
| Raw 바이트 BT/ET 텍스트 블록만. 이미지 기반 PDF 불가. PDF.js 도입 시 해결 | |
| DecompressionStream | Chrome 80+/Firefox 113+ 필요. 구형 브라우저는 ZIP 비압축 파일만 |
관련 파일 경로
- JS 모듈:
/Users/ef/CrownyDoc/한선씨/정적/autosave.js외 4개 - 한선씨 동반:
/Users/ef/CrownyDoc/한선씨/정적/autosave.한선외 4개 - index.html:
/Users/ef/CrownyDoc/한선씨/정적/index.html
잔여 이슈
- index.html 스크립트 태그 — 사용자 검토 후 수동 추가 필요
- PDF 고품질 내보내기 — PDF.js(외부) 또는 서버사이드 렌더링 필요 시 별도 세션
- docx/xlsx 쓰기(내보내기) — ZIP 생성은 외부 없이 구현 복잡, 별도 세션 검토
- 최근문서 패널 — 홈 탭(
#file-manager)과 연결 확인 필요 (CrownyFileManager.open 후킹)