← 목록
기타 2026-05-19 3KB 읽기 3분

CrownyDoc Office Suite 약점 보완 — #34 행/열 숨기기·그룹화, #20 자동 목차 번호매기기

개요

CrownyDoc Office Suite의 약점 2개를 수정했다.
  • #34 행/열 숨기기·그룹화 없음 (스프레드시트, MEDIUM)
  • #20 자동 목차 번호매기기 없음 (워드프로세서, MEDIUM)

무엇을 했는지

#34 행/열 숨기기·그룹화 (CrownyHideGroup)

sheet-format.js 끝에 CrownyHideGroup 객체 추가.

  • hideRows(sheet, startRow, endRow) — 지정 행 숨기기 (TR display:none)
  • showRows(sheet, startRow, endRow) — 숨긴 행 다시 표시
  • hideCols(sheet, startCol, endCol) — 지정 열 숨기기
  • showCols(sheet, startCol, endCol) — 숨긴 열 다시 표시
  • groupRows(sheet, startRow, endRow) — 행 그룹 추가
  • ungroupRows(sheet, startRow, endRow) — 행 그룹 해제
  • groupCols(sheet, startCol, endCol) — 열 그룹 추가
  • ungroupCols(sheet, startCol, endCol) — 열 그룹 해제
  • toggleRowGroup(sheet, groupIdx) — 그룹 접기/펼치기
  • toggleColGroup(sheet, groupIdx) — 열 그룹 접기/펼치기
  • _renderGroupToggles(sheet) — 그룹 +/- 버튼 렌더링
  • _renderHiddenRowIndicator(sheet) — 숨긴 행 경계에 파란 선 표시
  • _renderHiddenColIndicator(sheet) — 숨긴 열 경계에 파란 선 표시
  • _toRanges(sortedArr) — 연속 숫자를 범위 배열로 변환 (내부 유틸)

#20 자동 목차 번호매기기 (CrownyAutoNumber)

editor-findreplace.js 끝에 CrownyAutoNumber 생성자 함수 추가.

  • apply(editorEl) — h1~h6에 자동 번호 부여 (.crowny-autonumber span 삽입)
  • remove(editorEl) — 자동 번호 제거
  • refresh(editorEl) — 내용 변경 시 재적용
  • toggle(editorEl) — 적용/해제 토글
  • _getNumberPrefix(counters, level) — 카운터 배열로 번호 문자열 생성
  • 전역 인스턴스 crownyAutoNumber 노출
번호 형식: h1→1., h2→1.1., h3→1.1.1. (하위 제목 등장 시 상위 유지, 같은 레벨 순증가)

관련 파일 경로

  • /Users/ef/CrownyDoc/한선씨/정적/sheet-format.js — CrownyHideGroup 추가
  • /Users/ef/CrownyDoc/한선씨/정적/editor-findreplace.js — CrownyAutoNumber 추가
  • /Users/ef/CrownyDoc/한선씨/시트/행열관리.한선 — 행/열 관리 한선씨 동반
  • /Users/ef/CrownyDoc/한선씨/편집기/자동번호.한선 — 자동번호 한선씨 동반
  • /Users/ef/CrownyDoc/benchmark-weaknesses.json — #34, #20 status → done

잔여 이슈

  • sheet-core.js의 _renderCell / TR 구조에 따라 data-row 속성이 없을 수 있으므로, 실제 DOM에서 TR 탐색 방식을 sheet-core.js 구조에 맞게 조정 필요
  • CrownyAutoNumber.apply() 호출 시점은 편집기 내용 변경 이벤트와 연결 필요 (editor-core.js에서 crownyAutoNumber.refresh() 호출)