Skip to content

Webcraft 0.11.0: 페이지로 나눠 쓰고 읽는 문서 편집기 - #45

Merged
dev-goraebap merged 1 commit into
mainfrom
codex/paged-document
Nov 10, 2026
Merged

dev-goraebap merged 1 commit into
mainfrom
codex/paged-document

Conversation

@dev-goraebap

Copy link
Copy Markdown
Owner

무엇을 왜

종이(A4)로 나가는 정의서·보고서·계약서를 쓰고 읽는 화면을 키트와 Playground에 더합니다. 문서 데이터는 페이지를 모르고, 페이지 나누기는 화면의 장식입니다.

  • composites/document: DocumentEditor·DocumentView, 페이지 나누기 확장(pagination.ts), 종이 틀·머리말·바닥글, 문서 설정 칸, 페이지 모양(연한 바탕·구분선), 확대/축소, 내보내기(onSavePdf 주입), 페이지 항목. 모델은 model.ts, 편집과 읽기 공통 연결은 usePagedFrame.
  • composites/editor: 상단 서식 막대(EditorToolbar), RichEditor의 확장·틀·핸들 자리. 명령 목록·블록 메뉴·색 단추가 Astryx 버튼 구조 때문에 깨지던 것을 고칩니다(기존 문서함 견본에도 있던 문제).
  • Playground 문서 편집기와 견본 테스트, 가이드 페이지.
  • 지침(0.11.0): composed-components의 문서 편집기 절, pattern-catalog Playground 17개, print의 페이지로 나눈 문서.

검증

  • npm test(플러그인 10/10), npm run check, npm run package:plugins
  • npm run site:check, npm run site:test(29개 파일, 358개 견본 테스트), npm run site:build
  • 실제 화면: 1440·1600·1760px, 라이트·다크(캡처 비교).

알려진 한계

  • 브라우저 인쇄(PDF)의 페이지 경계는 화면과 다를 수 있습니다(인쇄 글자 폭 차이, 강제 넘김 미적용 사례). 정확한 경계가 필요하면 서버 조판을 씁니다.
  • 지침 글은 글쓰기 역할 agy가 사용량 한도로 실패해 Claude 하위 에이전트(opus)가 썼고, 원문과 대조했습니다.

🤖 Generated with Claude Code

- 키트 composites/document: 편집 DocumentEditor·읽기 DocumentView, 페이지 나누기 확장(블록·목록 항목·표 행·긴 문단 줄, 제목은 다음 블록과 함께, 외톨이 줄 방지), 종이 틀과 머리말·바닥글({page}/{total}), 문서 설정 칸(용지·방향·여백·간격), 페이지 모양(연한 바탕·구분선 4종), 확대/축소, 내보내기(onSavePdf 주입), 상세 정보 칸의 페이지 항목. 모델은 model.ts, 편집과 읽기의 연결은 usePagedFrame.
- 키트 composites/editor: 본문 밖에 두는 상단 서식 막대(EditorToolbar), RichEditor에 확장·틀·핸들을 끼우는 자리. 아이콘 자리 16px 고정과 display: contents 간격 때문에 깨지던 명령 목록·블록 메뉴·색 단추를 고친다.
- Playground 문서 편집기: 전체 페이지 편집(저장 상태·저장·취소·완료), 상세 배치의 읽기, 견본 테스트.
- 지침: composed-components의 문서 편집기 절(본문 칸과 달리 상단 막대를 두는 예외), pattern-catalog의 Playground 17개, print의 페이지로 나눈 문서(브라우저 인쇄 경계는 화면과 다를 수 있음).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dev-goraebap
dev-goraebap merged commit 8338bea into main Nov 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant