diff --git a/ui/builder.html b/ui/builder.html index f3671f3..48fadbe 100644 --- a/ui/builder.html +++ b/ui/builder.html @@ -266,6 +266,13 @@ input,textarea,button{font-family:inherit}
+
+ 한 줄 + + 개  (0 = 제한 없음) +
@@ -319,7 +326,7 @@ input,textarea,button{font-family:inherit} // 상태 // ════════════════════════════════════════════════════════════ let S = { - cfg: { titleMark:'✅', marks:['🔹','🔸'] }, + cfg: { titleMark:'✅', marks:['🔹','🔸'], namesPerLine:0 }, title: '예시 양식', sections: [ { id:id(), lv:1, name:'1번 항목', @@ -351,7 +358,8 @@ function load(){ // 설정 // ════════════════════════════════════════════════════════════ function syncConfig(){ - S.cfg.titleMark = document.getElementById('cfgTitle').value || '✅'; + S.cfg.titleMark = document.getElementById('cfgTitle').value || '✅'; + S.cfg.namesPerLine = Math.max(0, parseInt(document.getElementById('cfgNpl').value)||0); document.getElementById('titleMarkBadge').textContent = S.cfg.titleMark; renderMarks(); renderSections(); @@ -513,6 +521,7 @@ function renderSections(){ renderMarks(); document.getElementById('titleMarkBadge').textContent = S.cfg.titleMark; document.getElementById('cfgTitle').value = S.cfg.titleMark; + document.getElementById('cfgNpl').value = S.cfg.namesPerLine ?? 0; document.getElementById('docTitle').value = S.title; document.getElementById('secList').innerHTML = S.sections.map((s,i)=>renderSec(s,i,S.sections.length)).join(''); } @@ -537,7 +546,13 @@ function toText(){ const ns=parseNames(g.names); if(!ns.length) continue; const pre=g.cat.trim()?`(${g.cat.trim()}) `:''; - lines.push(pre+ns.join(' ')); + const npl=S.cfg.namesPerLine; + if(npl>0){ + for(let i=0;i