Skip to content

fix(converter): 테이블 CJK display width 기반 컬럼 폭 계산을 수정합니다#975

Merged
jk-kim0 merged 3 commits intomainfrom
jk/fix-forward-converter-cjk-table-width
Apr 3, 2026
Merged

fix(converter): 테이블 CJK display width 기반 컬럼 폭 계산을 수정합니다#975
jk-kim0 merged 3 commits intomainfrom
jk/fix-forward-converter-cjk-table-width

Conversation

@jk-kim0
Copy link
Copy Markdown
Contributor

@jk-kim0 jk-kim0 commented Apr 3, 2026

Description

  • len()은 CJK 문자를 1칸으로 계산하지만, 터미널/렌더러에서는 2칸을 차지합니다.
  • _display_width() 함수를 추가하여 CJK 전각 문자(East Asian Width F, W)를 2칸으로 계산합니다.
  • _ljust_display() 함수를 추가하여 CJK 표시 폭 기준으로 셀을 좌측 정렬합니다.
  • reverse-sync roundtrip verifier에서는 _normalize_table_cell_padding으로 테이블 셀 패딩 공백 차이를 정규화하여 비교합니다.

Added/updated tests?

  • Yes — test_forward_converter_known_bugs.py CJK display width 테스트 추가

🤖 Generated with Claude Code

- `len()`은 CJK 문자를 1칸으로 계산하지만 실제로는 2칸 차지
- `_display_width()`: CJK 전각 문자(F, W)를 2칸으로 계산
- `_ljust_display()`: CJK 표시 폭 기준 좌측 정렬
- golden file 3건 및 sidecar 3건 재생성

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
querypie-docs Ready Ready Preview, Comment Apr 3, 2026 8:41am

Request Review

- isu_001 (confluence-mdx/bin/converter/core.py:1227): 테이블 패딩 계산을 바꾼 뒤 관련 렌더 골든을 함께 갱신하지 않아 CI가 깨집니다. 현재 변경으로 1454342158, 692355151, 793608206의 expected.mdx 출력이 달라졌지만 대응하는 expected.html은 그대로라서 Test Confluence MDX Converter와 로컬 make -C confluence-mdx/tests test-render-one TEST_ID=<case>가 모두 실패합니다. 영향을 받은 렌더 스냅샷도 같이 재생성해야 합니다.
- isu_003 (confluence-mdx/tests/test_forward_converter_known_bugs.py:3): ConfluenceToMarkdown이 import되었으나 테스트 코드에서 사용되지 않습니다. 불필요한 import를 제거하면 테스트 의도가 명확해집니다.
@jk-kim0
Copy link
Copy Markdown
Contributor Author

jk-kim0 commented Apr 3, 2026

[debate-review][sha:1ec61fb3cf0bd032137a573d0d2bf77d483aa77c] Consensus reached after 4 rounds.

Debate Summary

  • isu_001 [accepted] 테이블 CJK display width 변경 후 렌더 골든 미갱신으로 CI 실패
  • isu_003 [accepted] test_forward_converter_known_bugs.py의 미사용 ConfluenceToMarkdown import
  • isu_002 [withdrawn] roundtrip.json의 html_block→container kind 변경은 PR 범위 외가 아님

Applied Fixes

  • confluence-mdx/bin/converter/core.py:1227 - (reported by codex, applied by codex) 테이블 패딩 계산을 바꾼 뒤 관련 렌더 골든을 함께 갱신하지 않아 CI가 깨집니다. 현재 변경으로 1454342158, 692355151, 793608206의 expected.mdx 출력이 달라졌지만 대응하는 expected.html은 그대로라서 Test Confluence MDX Converter와 로컬 make -C confluence-mdx/tests test-render-one TEST_ID=가 모두 실패합니다. 영향을 받은 렌더 스냅샷도 같이 재생성해야 합니다.
  • confluence-mdx/tests/test_forward_converter_known_bugs.py:3 - (reported by cc, applied by cc) ConfluenceToMarkdown이 import되었으나 테스트 코드에서 사용되지 않습니다. 불필요한 import를 제거하면 테스트 의도가 명확해집니다.

Withdrawn Findings

  • confluence-mdx/tests/testcases/692355151/expected.roundtrip.json:1 - 692355151과 793608206의 expected.roundtrip.json이 테이블 패딩과 무관한 변경(reconstruction kind html_block→container, children 배열 추가, old_plain_text 변경 등)을 대량 포함합니다. CJK display width PR 범위를 넘어서는 사이드카 스키마 재생성이 섞여 있어 리뷰어가 실제 변경 의도를 파악하기 어렵고, 향후 revert/bisect가 복잡해집니다.
    Reason: main의 sidecar.py는 PR #903에서 이미 container kind를 지원하지만, 기존 expected.roundtrip.json은 이전 버전으로 생성된 채 갱신되지 않았습니다. 재생성 시 자연스럽게 발생하는 연쇄 갱신입니다.

@jk-kim0 jk-kim0 merged commit f42f8ab into main Apr 3, 2026
7 checks passed
@jk-kim0 jk-kim0 deleted the jk/fix-forward-converter-cjk-table-width branch April 3, 2026 09:23
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