하마성경 본문 리더 고도화 — 딥링크가 실제 성경 본문에 도달
개요
직전 작업(hama↔bible 딥링크 연결)의 한계 — bible은 큐레이션 24구절뿐이라
렌즈/통독 딥링크 대부분이 "신규 본문 카드"(참조만 표시)로 폴백 — 를 해소.
개역한글 전권(66권)을 bible에 탑재하고
본문 읽기 탭(리더)을 추가해,
하마성경월드의 렌즈 구절·통독 범위가
실제 성경 본문 텍스트에 정확히 도달하게 함.
무엇을 했는지
데이터 (per-book lazy-load)
- 소스:
/Users/ef/Downloads/crownybible_study/bible_text_compact.json (4.4MB, 66권 ch[장][절])
- 66권으로 분할 →
crowny-services/public/bible/text/<a>.json + text/index.json 매니페스트
- 최대 264KB(시편), 모바일에서 필요한 책만 fetch. 서버 수정 불필요(serveStatic 하위 자동 서빙)
bible 리더 (public/bible/index.html)
본문 읽기 탭 신규: 책/장 셀렉트 + 이전/다음 장 + 절별 렌더(절번호+본문), 하이라이트/스크롤
parseRef(ref): 책이름 최장일치 → 장:절 / 장범위(1-7) / 편 파싱. 정규식 기반
"로마서 5:8" → 5장 렌더 + 8절 하이라이트
"창세기 1-7장" → 1~7장 연속 렌더(통독)
"데살로니가전서 5:16-18"·"마태복음 25:35,40"·"시편 119편" 모두 처리
loadBook(fetch+캐시)·renderReader·initReader·onBookChange/onChapChange/readStep
applyDeepLink 개편: 매니페스트 로드 후 ref가 실제 책으로 파싱되면 리더로 직행(폴백은 기존 말씀/탭)
리더→필사 연동: readToWrite() + writeSource() 오버라이드(본문 절을 ref와 함께 필사 저장)
리더 CSS(절 레이아웃·하이라이트·장헤더·셀렉트)hama (출발 — crowny-hama)
- reading.js: 통독 본문읽기 →
?tab=read&ref=라벨&from=hama (plan→read)
- library.js: 렌즈 →
?tab=read&ref=구절&from=hama (word→read)
관련 파일
- /Users/ef/crowny-services/public/bible/index.html (리더 탭+엔진+parseRef+딥링크개편)
- /Users/ef/crowny-services/public/bible/text/*.json (66권 + index.json, 신규)
- /Users/ef/crowny-hama/public/js/reading.js, library.js
- 한선씨 동반: /Users/ef/crowny-data/services/성경구절파서.한선 (컴파일·실행, JS parseRef와 1:1)
검증
JS 문법(bible 인라인 + hama 2종) OK
parseRef 전수: 렌즈 12/12 실제 본문 텍스트 도달, 통독 라벨(범위) 정확, 특수형식(범위/다중절/편) 정확
DOM 스텁 E2E(실제 인라인 코드 실행):
?ref=로마서 5:8 → 로마서 5장 21절 렌더 + 8절 하이라이트("우리가 아직 죄인…")
?ref=창세기 1-7장 → 1~7장 184절 연속 렌더(하이라이트 없음=범위모드)
정적 라이브: text/index.json·Jhn.json·Rom.json HTTP 200, 딥링크 HTTP 200
두 서비스 헬스 200, 무재기동 라이브 반영
한선씨 동반 컴파일 OK + 결과 JS와 동일, 학습DB 등록("성경구절참조_파서_책인식_장범위_절")잔여 이슈 / 후보
- 개역한글 단일 역본 — 다른 역본(개역개정/새번역) 추가 시 역본 셀렉트
- 리더 내 절 클릭 → 그 절만 렌즈/필사로 보내기(현재 장 단위 readToWrite)
- 검색(키워드→절) 미구현, KPS 의미 ID(kps_bible_v3.json) 연동 미사용
- 양방향(bible 리더 절 → hama 문화렌즈 역링크)