Skip to content

Task #661: placement 4모드 IR 매핑 + ParaShape 시험지 표준 + Picture/BinData IR 빌드 #665

@metahan88-droid

Description

@metahan88-droid

배경

#660 본 작업 1 + v2(#660 후속)으로 텍스트 위주 시험지 빌더 골격이 완성되었다. 본 단계는 시각적 정합성을 완성한다.

범위

1. Placement 4모드 IR 매핑

Placement enum이 schema·serde 모델에 이미 정의됨. 본 단계에서 빌더가 IR로 매핑.

Placement IR 매핑
`between` (default) 지문 마지막 paragraph 다음, 선택지 첫 paragraph 앞
`above` 지문 첫 paragraph 앞
`below` 선택지 마지막 paragraph 다음
`inline` stem_block의 image 위치 그대로

2. ParaShape 시험지 표준

현재 모든 문단 default(id=0). 시험지 표준 ParaShape 정의:

  • 지문: 들여쓰기 + line spacing 160% (수능 폰트 정합)
  • 선택지: left margin (~5mm) + 라벨 폭 일정
  • 문제 간 간격: spacing before/after 분리

별도 모듈 `exam_styles.rs` 신설 권장.

3. Picture/BinData IR 빌드

placeholder `[이미지: ]` 텍스트 → 진짜 Picture control + BinData entry. 시각 출력은 #182 의존이므로 본 단계는 IR까지만.

Codex 권고 (#660 마무리 협의 결과)

진입 전 회귀 베이스라인 고정 필수:

  • Picture/BinData를 텍스트 경로와 분리 설계
  • `char_offsets`, `controls` 카운트 회귀 테스트 먼저 추가
  • 텍스트 라운드트립(현재 14/14) 무회귀 보장

의존성

참조

DoD

  • 4 placement 모두 IR 매핑 동작 (회귀 테스트)
  • exam_styles.rs 정의 + 빌더 적용
  • BinData 엔트리 생성 (시각 출력은 #182에서 검증)
  • 본 단계 텍스트 라운드트립 무회귀 (14/14 → +N)

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions