From 39f48dca4ba16d89576a5dfce3c9f8b0fe88cbbd Mon Sep 17 00:00:00 2001 From: gm Date: Fri, 5 Jun 2026 18:26:13 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20extractSectionMarks=EA=B0=80=20collect?= =?UTF-8?q?=20=EB=85=B8=EB=93=9C=20=EC=8A=A4=ED=82=A4=EB=A7=88=20=EC=9E=90?= =?UTF-8?q?=EC=8B=9D=20=EB=A7=88=ED=81=AC=EB=A5=BC=20=EC=84=B9=EC=85=98=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=EC=9E=90=EB=A1=9C=20=ED=8F=AC=ED=95=A8?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 수집 노드의 직접 자식(스키마 inline 마크)은 섹션 경계가 아니므로 sectionMarks에서 제외. parseInstance에서 ✅김양모⌚12시 같은 레코드 데이터가 새 섹션 헤더로 오파싱되던 문제 해결. Co-Authored-By: Claude Sonnet 4.6 --- ui/builder.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ui/builder.html b/ui/builder.html index 64f7c33..d01a469 100644 --- a/ui/builder.html +++ b/ui/builder.html @@ -1519,7 +1519,15 @@ function renderFillerTemplateView(){ // ── 파싱 & 합치기 ────────────────────────────────────── function extractSectionMarks(node){ const marks=new Set(); - function walk(n){ for(const c of n.children??[]){ if(c.type==='SECTION'){ const m=c.attributes?.mark??''; if(m) marks.add(m); walk(c); } } } + function walk(n){ + const parentCollect=n.attributes?.collect==='true'; + for(const c of n.children??[]){ + if(c.type!=='SECTION') continue; + // 수집 노드의 직접 자식은 스키마(inline 마크) — 섹션 구분자로 쓰지 않음 + if(!parentCollect){ const m=c.attributes?.mark??''; if(m) marks.add(m); } + walk(c); + } + } walk(node); return [...marks]; }