diff --git a/docs/architecture/viewer.template.html b/docs/architecture/viewer.template.html index c567495..56605b3 100644 --- a/docs/architecture/viewer.template.html +++ b/docs/architecture/viewer.template.html @@ -190,6 +190,7 @@ ol.steps .ev{display:block;color:var(--dim2);font-size:11.5px;margin-top:3px}

Search

+

Filters

@@ -199,6 +200,7 @@ ol.steps .ev{display:block;color:var(--dim2);font-size:11.5px;margin-top:3px}

Type

+
@@ -379,6 +381,11 @@ const capById = Object.fromEntries(CAPS.capabilities.map(c => [c.id, c])); const BLOCKREASON = new Set(['configuration missing','deployment missing', 'external dependency unavailable','scenario missing']); const dotCls = v => v==='spec-only' ? 'speconly' : v; +// The ledger carries markdown inline code, because docs/spec.md does. Rendering +// it literally puts backticks on screen next to every path. +const md = t => (t||'').replace(/[&<>]/g, m => ({'&':'&','<':'<','>':'>'}[m])) + .replace(/`([^`]+)`/g, '$1') + .replace(/\*\*([^*]+)\*\*/g, '$1'); function capRow(c){ const cls = {'capability missing':'missing','capability exists but unreachable':'unreachable', @@ -436,7 +443,7 @@ function renderCapSide(id){

${c.title}

${c.section} · ${c.domain.join(', ')} · ${c.scope}${ c.implementation.gap_class==='none'?'':' · '+c.implementation.gap_class}
-

${c.state}

+

${md(c.state)}

Implementation

${DIMS.map(d=>{ const v = c.implementation[d]; @@ -449,8 +456,8 @@ function renderCapSide(id){

Definition of done — ${c.criteria.length}

${c.criteria.map(cr=>`
${cr.verified}${cr.reason} -

${cr.text}

- ${cr.detail?`

${cr.detail}

`:''} +

${md(cr.text)}

+ ${cr.detail?`

${md(cr.detail)}

`:''} ${(cr.evidence||[]).length?`

${cr.evidence.join('
')}

`:''}
`).join('')}

Blockers — ${blockers.length}

@@ -659,6 +666,10 @@ document.getElementById('views').innerHTML = VIEWS.map(v=>`