← 목록
기타 2026-05-27 4KB 읽기 5분

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~7KBPDF/HTML/Markdown/CSV/CDFv2/SVG/PNG (7개)
최근문서.js~7KB목록/추가/즐겨찾기/삭제/정리/패널렌더링/자동등록 (7개)
autosave.한선~3KB저장로컬/복원/버전목록/지우기/잠금확인/잠금등록/잠금해제
단축키도움말.한선~2KB카테고리만들기/단축키검색/카테고리수/단축키총수
파일-가져오기.한선~3KBCSV파싱/MD변환/형식감지/JSON판별/가져오기통계
파일-내보내기.한선~3KBCSV직렬화/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텍스트 추출만. 레이아웃·배경·이미지·전환효과 미지원
.pdfRaw 바이트 BT/ET 텍스트 블록만. 이미지 기반 PDF 불가. PDF.js 도입 시 해결
DecompressionStreamChrome 80+/Firefox 113+ 필요. 구형 브라우저는 ZIP 비압축 파일만

관련 파일 경로

  • JS 모듈: /Users/ef/CrownyDoc/한선씨/정적/autosave.js 외 4개
  • 한선씨 동반: /Users/ef/CrownyDoc/한선씨/정적/autosave.한선 외 4개
  • index.html: /Users/ef/CrownyDoc/한선씨/정적/index.html

잔여 이슈

  1. index.html 스크립트 태그 — 사용자 검토 후 수동 추가 필요
  2. PDF 고품질 내보내기 — PDF.js(외부) 또는 서버사이드 렌더링 필요 시 별도 세션
  3. docx/xlsx 쓰기(내보내기) — ZIP 생성은 외부 없이 구현 복잡, 별도 세션 검토
  4. 최근문서 패널 — 홈 탭(#file-manager)과 연결 확인 필요 (CrownyFileManager.open 후킹)