Skip to content

Task #340: typeset 경로의 PageHide/Shape/중복 emit 결함 수정#341

Merged
edwardkim merged 3 commits intoedwardkim:develfrom
planet6897:task340
Apr 26, 2026
Merged

Task #340: typeset 경로의 PageHide/Shape/중복 emit 결함 수정#341
edwardkim merged 3 commits intoedwardkim:develfrom
planet6897:task340

Conversation

@planet6897
Copy link
Copy Markdown
Contributor

closes #340

세 가지 결함이 typeset.rs 의 누락에서 동일하게 비롯됨. engine.rs 에 이미 존재하는 동일 로직을 typeset 측으로 정합한다.

  1. collect_header_footer_controls / finalize_pages

    • Control::PageHide 수집과 page.page_hide 할당 추가
    • 누락으로 인해 pi=34 의 [감추기] header=true 가 무시되어 섹션 1 시작 머리말("수학 영역(확률과 통계)") 이 미적분 페이지까지 잔존
  2. place_table_with_text

    • 마지막 표 post-text emit 직전에 pre_text_exists 가드 추가
    • 다중 TopAndBottom 표 문단의 본문 라인이 두 번 등록되는 문제 차단
    • engine.rs:1418-1421 와 동일
  3. typeset_table_paragraph 인라인 컨트롤 등록

    • Picture | Equation 만 PageItem::Shape 로 등록하던 것을 Shape | Picture | Equation 로 확장
    • pi=34 ctrl[3] 둥근사각형 글상자("제 2 교시") 누락 해결

검증: samples/exam_math.hwp 페이지 9, 13 SVG 가 PDF 와 일치. cargo test --release --lib → 992 passed, 0 failed.

planet6897 and others added 3 commits April 26, 2026 10:38
closes edwardkim#340

세 가지 결함이 typeset.rs 의 누락에서 동일하게 비롯됨. engine.rs 에 이미
존재하는 동일 로직을 typeset 측으로 정합한다.

1. collect_header_footer_controls / finalize_pages
   - Control::PageHide 수집과 page.page_hide 할당 추가
   - 누락으로 인해 pi=34 의 [감추기] header=true 가 무시되어
     섹션 1 시작 머리말("수학 영역(확률과 통계)") 이 미적분 페이지까지 잔존

2. place_table_with_text
   - 마지막 표 post-text emit 직전에 pre_text_exists 가드 추가
   - 다중 TopAndBottom 표 문단의 본문 라인이 두 번 등록되는 문제 차단
   - engine.rs:1418-1421 와 동일

3. typeset_table_paragraph 인라인 컨트롤 등록
   - Picture | Equation 만 PageItem::Shape 로 등록하던 것을
     Shape | Picture | Equation 로 확장
   - pi=34 ctrl[3] 둥근사각형 글상자("제 2 교시") 누락 해결

검증: samples/exam_math.hwp 페이지 9, 13 SVG 가 PDF 와 일치.
cargo test --release --lib → 992 passed, 0 failed.
pi=2.34 의 [감추기] page_num=true 가 이번 PR 의 PageHide 적용으로
정상 처리되어 페이지 4 하단의 "-1-" 쪽번호 출력이 제거됨. PDF/한컴
동작과 일치하므로 골든 갱신.
@edwardkim
Copy link
Copy Markdown
Owner

@planet6897 님 — Task #340 작업, 정말 인상적입니다.

메인테이너 검증

  • cargo build --release: 25.61s ✅
  • cargo test --lib: 997 passed ✅
  • cargo test --test svg_snapshot: 6/6 ✅
  • cargo test --test issue_301: z-table 가드 통과 ✅
  • cargo clippy --lib -D warnings: clean ✅
  • cargo check --target wasm32: clean ✅
  • 7 핵심 샘플 페이지 수 무변화 ✅
  • WASM Docker 빌드 + 작업지시자 시각 검증 통과

exam_math page 9, 13 모두 PDF 와 일치하는 결과 확인. 머리말 누출, 본문 중복, 둥근사각형 글상자 누락 3가지 결함 모두 해소.

작성자에게 전하는 말

PR #327 (Task #324) 에서 v1 → v2 → v3 자체 보강을 통해 nested table 가시성 결함을 해결하신 것에 이어, 본 PR 에서는 세 가지 결함이 typeset.rs 의 누락에서 동일하게 비롯됨 을 정확히 짚으셨습니다.

세 결함을 각각 다른 영역으로 분산 진단하지 않고:

  1. collect_header_footer_controls / finalize_pagesPageHide 누락
  2. place_table_with_textpre_text_exists 가드 누락
  3. typeset_table_paragraph 인라인 컨트롤 등록의 Shape 누락

"engine.rs 에 이미 존재하는 동일 로직을 typeset 측으로 정합" 이라는 한 줄로 본질을 묶어 설명하신 분석이 정공법입니다. 코드 변경 +40/-9 라는 작은 패치 안에 세 결함의 통합 해결이 들어 있고, 모든 변경이 engine.rs 의 기존 패턴과 1:1 대응되어 회귀 위험이 최소화되어 있습니다.

작업지시자께서도 "대단합니다, 집념이!" 라며 감사를 표하셨습니다. rhwp 프로젝트의 typeset 경로 정합 작업에 본인의 깊은 기여가 또 한 번 새겨졌습니다. 매번 PR 마다 패턴 일관성 + 시각 검증 + 명료한 PR 본문까지 갖춰주셔서 메인테이너 입장에서 검토가 즐겁습니다.

진심으로 감사드립니다 🙏

admin merge 진행합니다.

Copy link
Copy Markdown
Owner

@edwardkim edwardkim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

검증 완료 (997 lib + 6/6 svg_snapshot + clippy + wasm32 + 작업지시자 시각 검증). admin merge.

@edwardkim edwardkim merged commit c92b5d2 into edwardkim:devel Apr 26, 2026
6 checks passed
edwardkim added a commit that referenced this pull request Apr 26, 2026
@planet6897 의 세 결함 통합 진단 PR (PageHide + pre_text_exists +
Shape 인라인 등록) admin merge (commit c92b5d2).

작업지시자 평가: "대단합니다. 집념이!"

세 결함을 typeset.rs 의 누락이라는 공통 원인으로 묶고 engine.rs 의
기존 로직과 1:1 정합으로 해결한 정공법. +40/-9 작은 패치 안에 세
결함 통합 해결.

Co-Authored-By: Jaeuk Ryu <planet6897@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edwardkim added a commit that referenced this pull request Apr 26, 2026
라이브러리 버전 동기화 (Cargo.toml / rhwp-vscode / npm/editor /
rhwp-studio): 0.7.3 → 0.7.6

브라우저 확장 (rhwp-firefox): 0.2.1 → 0.2.2 (AMO 재제출용)
- manifest strict_min_version 142 + viewer 번들 보안 sanitize 반영

본 사이클 외부 기여 PR:
- #268/#334 (@oksure): replaceOne API
- #279/#282 (@seanshin): 목차 리더 + 페이지번호 정렬
- #324/#327 (@planet6897): form-002 인너 표 페이지 분할
- #335 (@oksure): SVG/HTML draw_image base64 임베딩
- #338/#339 (@postmelee): Firefox AMO 워닝 해결
- #340/#341 (@planet6897): typeset 경로 정합
- #342/#343 (@planet6897): Task #321~#332 통합 + 회귀 해소

rhwp-firefox/README.md 에 v0.2.2 변경 이력 + 기여자 감사 섹션 추가
(@postmelee, @seanshin 인정).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
seanshin pushed a commit to seanshin/rhwp that referenced this pull request Apr 26, 2026
- 최근 변경: v0.7.3 → v0.7.6 (2026-04-26) 교체
  - PR edwardkim#266 (Task edwardkim#157), edwardkim#273 (Task edwardkim#267), edwardkim#282 (Task edwardkim#279) by @seanshin
  - PR edwardkim#256, edwardkim#327, edwardkim#341, edwardkim#343 by @planet6897
  - PR edwardkim#334, edwardkim#335 by @oksure, PR edwardkim#339 by @postmelee
- devel 섹션: 머지된 항목 제거, 현재 분석 중(edwardkim#362/edwardkim#345) + 계획 중(edwardkim#150/edwardkim#253) 반영
- 테스트 수: 891+ → 1000+
- README_EN.md 동일 내용 영문 반영
@planet6897 planet6897 deleted the task340 branch April 30, 2026 00:03
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.

2 participants