Releases: edwardkim/rhwp
v0.7.11 — 5/10+5/11 사이클 누적 (Skia P8/P9 + HWP3 native + rhwp-studio editor 신규 기능)
v0.7.11 PATCH 릴리즈 (2026-05-11)
5/10 + 5/11 사이클 누적 — 외부 기여자 다수 PR 30+ 머지.
핵심 변경
Skia native raster 단계적 진전 (Issue #536)
- P8 (#761): Layer IR contract hardening (paint::schema + paint::resources blake3)
- P9 (#769): text replay parity (char overlap, tab leader, decoration, shade/shadow, emphasis, vertical rotation, control mark + text_replay.rs 모듈 분리)
HWP3 native 렌더링 (#753)
hwp3-sample10.hwp Oracle 기술 문서 763 페이지 8 단계 정정 — HWP3 외부 file path 그림 IR + 사적 graphic char 매핑 + Hwp3TabDef 필드 순서 bug 정정 + 제목차례 자동 장식 inject + 차례 inline page 번호. Git LFS pdf-large/ 폴더 한정 격리 신규 도입.
페이지네이션 정정
rhwp-studio 인터랙션
- PR #781: scrollbar drag-during-scroll 결함 정정
- PR #786~#788: PR #739 (수식 신규 입력) + PR #745 (NewNumber Page) 후속 결함 정정 — chord 키 Ctrl+N → Ctrl+M (Chrome reserved shortcut 회피) + 한글 IME chord e.code 판별 + 표 셀 pattern_type 가드 + 도구 모음 mousedown preventDefault
rhwp-studio editor 신규 기능
- 표 편집 Undo/Redo (#728) + 표 크기 조절 SnapshotCommand (#748)
- 셀 편집 다수 (블록 합계/평균/곱/숫자 서식/높이·너비 균등화/블록 계산식)
- 다단 설정 dialog (#750) + 새 번호로 시작 dialog (#760)
- Ctrl/Cmd+Arrow / Ctrl/Cmd+O / Ctrl+E (지우기) 단축키
검증
- cargo build/test/clippy --release ALL GREEN
- 광범위 sweep 7 fixture / 170 페이지 회귀 0
- WASM 4.68 MB
- 작업지시자 시각 판정 다수 통과
컨트리뷰터
@oksure, @jangster77, @planet6897, @seo-rii, @postmelee 등 다수.
상세는 mydocs/pr/archives/ 및 rhwp-vscode/CHANGELOG.md 참고.
v0.7.10 — 외부 기여자 7명 + AI/VLM 연동 + CLI 바이너리 릴리즈
v0.7.9 후속 patch 사이클 — 외부 기여자 7명 흡수 (PR 13건 cherry-pick) + AI 파이프라인 / VLM 연동 도입 + CLI 바이너리 릴리즈 파이프라인.
신규 기능
CLI 바이너리 릴리즈 (Issue #608/#612, @almet 의 요청)
4 플랫폼 GitHub Release 자산 첨부 — 직접 빌드하지 않고 다운로드 + 실행 가능:
rhwp-v0.7.10-linux-x86_64.tar.gzrhwp-v0.7.10-macos-x86_64.tar.gzrhwp-v0.7.10-macos-aarch64.tar.gzrhwp-v0.7.10-windows-x86_64.zipSHA256SUMS.txt(체크섬)
각 아카이브 포함: rhwp 실행파일 + LICENSE + README.md + README_EN.md.
PNG raster backend (PR #599, @seo-rii) — render P4
native Skia 기반 PageLayerTree → PNG export. native-skia feature gate (기본 빌드 영향 0).
AI 파이프라인 + VLM (Vision-Language Model) 연동 도입 (메인테이너 후속 정정):
--vlm-target claude(1568 longest edge / 1.15 MP, Claude Vision 정합)--scale <배율>/--max-dimension <픽셀>(자동 scale 계산)export-pngCLI 명령 + 매뉴얼 (한글 + 영문 dual)- 한글 폰트 fallback chain + char 단위 fallback (공백 두부 정정) +
--font-path동적 폰트 로딩
외부 PR cherry-pick (13 PR / 7 컨트리뷰터)
- @planet6897 / Jaeook Ryu — 협업 컨트리뷰터: PR #587/#589/#561/#564/#570/#575/#580/#584/#592/#593/#567
- @oksure (Hyunwoo Park) — PR #600 (closes #513)
- @seo-rii — PR #599 (refs #536)
- @cskwork / @johndoekim / @nameofSEOKWONHONG / @jangster77 — 사이클 누적
후속 이슈
- #613 — VLM 프리셋 확장 (GPT-4V / Gemini / Qwen-VL / LLaVA)
- #614 — DPI 메타데이터 옵션 (
--dpiPNG pHYs chunk) - #615 —
pua_oldhangul.rsU+F53A 한컴 정합 - #598 — rhwp-studio 각주 삭제 기능 (외부 컨트리뷰터 공개)
잔여 PR (v0.7.11 후속 patch 영역)
- PR #601, #602 (@oksure)
- PR #607 (@dicebattle)
- PR #609 (@jangster77, Task #604 Document IR 표준 정합화)
- PR #611 (@kihyunnn)
상세 변경 사항: CHANGELOG.md (한글) / CHANGELOG_EN.md (English).
🤖 Generated with Claude Code
v0.7.9 — Task #501 cell.padding 한컴 방어 로직 + PR cherry-pick 사이클
v0.7.8 후속 패치 사이클.
회귀 정정 (메인테이너)
- Task #501 — mel-001.hwp 2쪽 표 셀 높이 처리 회귀 정정 (closes #501)
- 비정상 큰 cell.padding (1700 HU) > cell.height (1280 HU) 케이스의 한컴 자체 방어 로직 모방 가드 추가
- 트러블슈팅 + 위키 (HWP 셀 Padding 방어 로직) 작성
외부 PR cherry-pick (4 PR / 18 commits)
- PR #428 (@oksure) — 그룹 내 그림(Picture) 직렬화 구현
- PR #494 (@DanMeon) —
Paragraph::utf16_pos_to_char_idx외부 노출 (#484) - PR #478 (@planet6897) — Layout 정합 + 수식 정정 합본
- PR #498 (@seo-rii) — Canvas visual diff 파이프라인 (relates #364)
- rhwp-studio E2E + GitHub Actions Render Diff workflow
분리된 후속 이슈
위키 갱신
- HWP 셀 Padding 방어 로직 (신규)
- 한컴 PDF 환경 의존성 — 정황 IV 추가
검증
- cargo test --lib: 1102 passed
- cargo test --test svg_snapshot: 6/6
- cargo test --test issue_418 / issue_501: PASS
- cargo clippy --lib -- -D warnings: 0건
- WASM 빌드 정합
외부 기여자 감사
본 사이클: @DanMeon, @oksure, @planet6897, @seo-rii
상세 변경: CHANGELOG.md / CHANGELOG_EN.md
v0.7.8 — 외부 컨트리뷰터 다수 + 메인테이너 회귀 정정
v0.7.7 후속 사이클 — 외부 컨트리뷰터 15 PR cherry-pick + 메인테이너 회귀 정정 3건 + 위키/README 정비
주요 변경
외부 PR cherry-pick (15 건)
라이브러리 본질 정정 (조판 / 페이지네이션 / 직렬화):
- PR #391 다단 섹션 누적 공식 회귀 정정 (@planet6897)
- PR #395 그림 밝기/대비 효과 SVG 반영 (@oksure)
- PR #396 수식 렌더링 개선 — TAC 높이 + 한글 이탤릭 (@oksure)
- PR #397 수식 ATOP 파싱 및 렌더링 보정 (@cskwork) — 본 저장소 첫 외부 컨트리뷰터
- PR #400 HWPX 수식 직렬화 보존 (@cskwork)
- PR #401 v2 표 페이지 분할 rowspan>1 셀 분할 단위 (@planet6897)
- PR #406 동일 문단 inline TAC 그림 페이지네이션 정정 (@planet6897)
- PR #408 heading-orphan vpos 기반 보정 (@planet6897)
- PR #410 TopAndBottom Picture vert=Para chart 정정 + atomic TAC top-fit (@planet6897)
- PR #415 dash 시퀀스 Justify 폭 부풀림 정정 (@planet6897)
- PR #424 다단 우측 단 vpos 보정 anchor (@planet6897)
- PR #427 SvgRenderer defs 중복 방지 HashSet 통합 (@oksure)
- PR #434 그림 자동 크롭 공식 교정 + 테두리 inner padding (@planet6897)
API 추가 / 도구:
- PR #405
Paragraph::control_text_positions추가 (@DanMeon) - PR #411
editor.exportHwp()API 추가 (@ggoban) - PR #413 rhwp-studio PWA support (@dyjung150605)
- PR #419 PageLayerTree generation API 도입 (@seo-rii)
메인테이너 작업 (3 건)
- Task #394 셀 진입 시 투명선 자동 ON 로직 비활성화 (한컴 출력 정합)
- Task #416
find_bin_data가드 결함 정정 - Task #418
hwpspec.hwpp20 빈 문단 + TAC Picture 이중 emit 정정
정비 / 문서
- 위키 페이지 한컴 PDF 환경 의존성 보강 (발견 정황 II)
- README.md / README_EN.md 보강 — Contributing 섹션 + 신규 "위키 자료" 서브섹션
- samples 정답지 자료 추가 (한컴 2010/2020/한컴독스 + 복학원서 + synam-001 + atop-equation-01)
- CHANGELOG_EN.md 신규 (영문판, 전체 이전 버전 포함)
검증
cargo test --lib: 1066 passed (1008 → +58, 회귀 0건)cargo test --test svg_snapshot: 6/6 passedcargo test --test issue_418: 1/1 passed (Task #418 회귀 보존)cargo clippy --lib -- -D warnings: 0건- WASM 빌드: 4,182,395 bytes
- 광범위 byte 비교: 10 샘플 / 309 페이지 SVG 회귀 검증
- 작업지시자 SVG + Canvas 양 경로 시각 판정 (한컴 정답지 직접 비교)
외부 기여자 감사
본 사이클 외부 기여자 (가나다순):
@cskwork, @DanMeon, @dyjung150605, @ggoban, @oksure, @planet6897, @seo-rii
특히 @cskwork 님은 본 저장소 첫 외부 컨트리뷰터 로 PR #397 / #400 두 건을 머지하셨고, @planet6897 님은 본 사이클 외부 PR 의 다수 (8 건) 를 진단 + 정정해주셨습니다.
상세 변경: CHANGELOG.md / CHANGELOG_EN.md
v0.7.7 — TypesetEngine 회귀 정정 사이클
v0.7.6 (TypesetEngine default 전환) 후 누락된 Paginator 시멘틱을 복원하여 페이지네이션 회귀를 정정했습니다.
수정
페이지네이션 — TypesetEngine 회귀 정정
- #359 페이지네이션 fit 누적 drift 수정 + 단독 항목 페이지 차단
- typeset 의 fit 판정과 누적 분리 (k-water-rfp LAYOUT_OVERFLOW 73→0)
- #361 TypesetEngine page_num + PartialTable fit 안전마진
- finalize_pages 의 NewNumber 적용 조건 정정 (Paginator 시멘틱 이식)
- PartialTable 직후 fit 안전마진 비활성화
- #362 kps-ai PartialTable + Square wrap 처리 (8 항목 누적)
- wrap-around 메커니즘 (Square wrap) 이식 ★ — 외부 표 옆 paragraph 흡수
- 외부 셀 vpos 가드, PartialTable nested 분할, 잔여 height 정확 계산
- hide_empty_line, vpos-reset 가드 wrap zone 안 무시, 빈 paragraph skip 가드 강화
- kps-ai 88→79 페이지, LAYOUT_OVERFLOW 60→5
보안
검증
cargo test --lib: 1008 passed, 0 failedcargo test --test svg_snapshot: 6/6- WASM 빌드 통과
- 작업지시자 시각 판정 통과 (kps-ai p56, p67
70, p7273, k-water-rfp 전체)
상세는 CHANGELOG.md 참고.
v0.7.6 — 외부 기여자 다수 + 조판 정밀화
v0.7.6 — 외부 기여자 다수 + 조판 정밀화 사이클
라이브러리
- 라이브러리 (Cargo.toml / rhwp-vscode / @rhwp/editor / rhwp-studio): 0.7.3 → 0.7.6
- Firefox 확장 (rhwp-firefox): 0.2.1 → 0.2.2 (AMO 재제출용)
외부 기여 PR (이번 사이클)
| 영역 | 기여자 | PR |
|---|---|---|
replaceOne API (#268) |
@oksure (신규 기여자) | #334 |
| 목차 리더 도트 + 페이지번호 정렬 (#279) | @seanshin | #282 |
| form-002 인너 표 페이지 분할 (#324) | @planet6897 | #327 |
| SVG/HTML draw_image base64 임베딩 | @oksure | #335 |
| Firefox AMO 워닝 해결 (#338) | @postmelee | #339 |
| typeset 경로 정합 (#340) | @planet6897 | #341 |
| Task #321~#332 통합 + 회귀 해소 (#342) | @planet6897 | #343 |
이번 사이클에 기여해주신 분들: @oksure, @planet6897, @postmelee, @seanshin.
주요 개선 영역
- 조판 정밀화: 목차 리더 도트 (한컴 동등), 페이지번호 정렬 (한 자리/두 자리 무관), 셀 padding aim 정책 정합화, 인너 표 페이지 분할 결함 해소
- API 추가:
replaceOne(query, newText, caseSensitive)WASM API - 출력 정합: SVG/HTML 의
draw_image가 placeholder 가 아닌 실제 base64 data URI 임베딩 - Firefox 보안: AMO 검증 워닝 해소 (manifest strict_min_version 142, viewer 번들 보안 sanitize)
검증
cargo test --lib: 1000 passedcargo test --test svg_snapshot: 6/6cargo clippy --lib -- -D warnings: cleancargo check --target wasm32: cleanweb-ext lint --source-dir=rhwp-firefox/dist: errors 0- 7 핵심 샘플 + form-002 시각 검증 통과
후속 (별도 이슈)
- #345: exam_eng.hwp 9 → 8 페이지 회귀 분석 + 수정
상세는 CHANGELOG.md 참조.
v0.7.3 (라이브러리) / v0.2.1 (확장)
v0.7.3 — 라이브러리 / v0.2.1 — 확장
라이브러리 (Cargo, @rhwp/core, @rhwp/editor, rhwp-vscode, rhwp-studio): v0.7.3
확장 (rhwp-chrome / Edge / Safari): v0.2.1
라이브러리와 확장은 별도 버전 정책으로 운영합니다. 본 릴리스는 두 영역의 변경을 함께 묶었습니다.
🎯 사용자 직접 영향 (확장 v0.2.1)
버그 수정
- 일반 파일 다운로드의 "마지막 저장 위치 기억" 동작 복원 — 확장 활성 시 바탕화면으로 떨어지던 문제 (chrome-fd-001 사용자 보고, #198)
- 옵션 페이지 CSP 호환 수정 (#166)
- DEXT5 류 다운로드 핸들러 에서 빈 뷰어 탭 차단 (#198)
- Windows 한글 파일 경로 처리 오류 수정 (PR #152 by @dreamworker0)
- 모바일 드롭다운 메뉴 아이콘/라벨 겹침 (PR #161 by @seunghan91)
- 썸네일 로딩 스피너 + options CSP (PR #168 by @postmelee)
기능 개선
- HWP 파일 Ctrl+S 시 같은 파일에 직접 덮어쓰기 — 저장 다이얼로그 매번 안 뜸 (PR #189 by @ahnbu)
- 회전된 도형 리사이즈 + Flip 처리 개선 (PR #192 by @bapdodi)
- HWPX 파일 열람 시 베타 안내 + 직접 저장 비활성화 — 데이터 손상 방지 (#196)
- HWPX Serializer Document IR → HWPX 저장 (PR #170 by @seunghan91)
- HWP 그림 효과 (그레이스케일/흑백) SVG 정확도 개선 (PR #149 by @marsimon)
- HWPX ZIP 압축 한도 + strikeout shape 화이트리스트 + 도형 리사이즈 클램프 (PR #153, #154, #163 by @seunghan91)
- 제품 정보 다이얼로그의 버전 표시 정상화
🛠 라이브러리 (v0.7.3)
본 릴리스는 다음 npm/마켓 패키지에 동시 배포됩니다:
@rhwp/core— WASM 파서/렌더러@rhwp/editor— iframe 임베드 에디터rhwp-vscode— VS Code Marketplace + Open VSX
라이브러리 측 변경은 본 사이클 외부 기여 기반 안정화가 중심.
⚠️ 알려진 한계
- HWPX 직접 저장은 비활성화 — HWPX→HWP 완전 변환기 (#197) 완성 시까지. HWPX 파일 열람·편집은 정상이지만 저장은 막혀있습니다. 중요 HWPX 문서는 작업 전 백업해주세요.
- 인쇄 미리보기 창 크기 비정상 확대 — 일부 환경 (Chrome about:blank 줌 메모리). Ctrl+0 으로 리셋 가능 (#199).
🙏 외부 기여자
이번 릴리스는 다음 분들의 기여로 완성되었습니다:
- @ahnbu — PR #189
- @bapdodi — PR #192
- @dreamworker0 — PR #152
- @marsimon — PR #149
- @postmelee — PR #168
- @seunghan91 — PR #149, #153, #154, #161, #163, #170
진심으로 감사드립니다 🎉
📦 다운로드 / 설치
| 채널 | 링크 |
|---|---|
| Chrome Web Store | (배포 진행 중) |
| Microsoft Edge Add-ons | (배포 진행 중) |
| VS Code Marketplace | https://marketplace.visualstudio.com/items?itemName=edwardkim.rhwp-vscode |
| Open VSX | https://open-vsx.org/extension/edwardkim/rhwp-vscode |
npm @rhwp/core |
npm install @rhwp/core |
npm @rhwp/editor |
npm install @rhwp/editor |
| Demo (GitHub Pages) | https://edwardkim.github.io/rhwp/ |
🔗 관련 자료
- 전체 변경 이력: README 의 "최근 변경" 섹션
- 후속 이슈: #197 (HWPX 완전 변환기), #199 (인쇄 미리보기 줌)
- 소스 코드: https://github.com/edwardkim/rhwp
- 이슈 보고: https://github.com/edwardkim/rhwp/issues
v0.7.2 — VS Code 컨텍스트 메뉴 + 한컴 단축키 + 커맨드 팔레트 + 양식 컨트롤
주요 변경사항
VS Code 익스텐션 — 컨텍스트 메뉴 (#132)
탐색기/에디터 탭에서 .hwp/.hwpx 파일 우클릭 시 4개 메뉴 추가:
- HWP: 인쇄 — webview
window.print()호출 - HWP: SVG로 내보내기 — 페이지별 SVG 파일 저장 + 진행률 표시
- HWP: 디버그 오버레이 보기 — 문단/표 경계 시각화 (개발자용)
- HWP: 문단 덤프 — ParaShape·LINE_SEG Output 채널 출력 (개발자용)
단축키 호환성 정비 (#131)
- Ctrl+G 계열 보기 메뉴 단축키 완성
- 브라우저 충돌 단축키 재매핑 (
Ctrl+Shift+R/C/D→Alt+Shift+H/C/D) Ctrl+/커맨드 팔레트 — 152개 커맨드 검색 실행 (Notion/Linear 패턴)- 문서 미로드 상태에서
Alt+N새 문서 생성
투명 선 토글 단축키 (#130)
Alt+V, TChord 단축키로 투명 선 토글
양식 컨트롤 지원 (#110-#112)
- HWPX checkBtn / btn / radioBtn / comboBox / edit 파싱
- 양식 컨트롤 셀 커서 진입 + 체크박스 클릭 토글
보안 / 의존성
- CodeQL XSS 경고 제거 — img.src URL 파싱 강화 (#128)
- quick-xml 0.39, zip 8.5, TypeScript ^6.0, vite ^8.0.8
배포 대상
| 패키지 | 버전 |
|---|---|
@rhwp/core |
0.7.2 |
@rhwp/editor |
0.7.2 |
VS Code Marketplace (rhwp-vscode) |
0.7.2 |
Open VSX (rhwp-vscode) |
0.7.2 |
| GitHub Pages | 자동 배포 |
v0.7.0 — 조판 레이아웃 품질 개선 + 브라우저 확장
v0.6.0 — 조판 품질 개선 + 비기능성 기반 구축
"알을 깨고 세상으로"
v0.5.0 이후 조판 버그 14건 수정 + 비기능성 기반 7건 구축.
조판 개선
- 같은 문단 TAC+블록 표 배치 (#41)
- 머리말/꼬리말 Picture 렌더링 (#42)
- 그림 자르기(crop) + 이미지 테두리선 (#43)
- 분할 표 셀 세로 정렬 (#44)
- TAC 표 trailing ls 경계 조건 (#40)
- 통화 기호 렌더링 ₩€£¥ (#39)
- Bold↔Normal 반각/전각 폭 정밀화 (#38)
- 폰트 이름 JSON 이스케이프 (#37)
- 머리말 표 셀 이미지 (#36)
비기능성
- GitHub Actions CI (빌드 + 테스트 + Clippy 엄격 모드)
- GitHub Pages 데모: https://edwardkim.github.io/rhwp/
- README 리뉴얼 (로고, 슬로건, 스크린샷)
- 이슈/PR 템플릿, CHANGELOG.md
- CONTRIBUTING.md 보완
- GitHub Sponsors 활성화
- 한컴 HWP 공개 문서 참고 필수 문구 삽입
수치
- 783+ 테스트 통과
- Clippy 경고 0건