CR-2026-02-25: AsciiDoc Attribute Refactor — Implementation

Conversion Rules

Convert to Attributes

// Prose text
The server at 10.50.1.60
→ The server at \{vault-01-ip}

// Inline code
`vault-01.inside.domusdigitalis.dev`
→ `\{vault-01-hostname}`

// Code blocks - add subs=attributes+
[source,bash,subs=attributes+]

Escape Shell Variables

// In code blocks with subs=attributes+
${HOSTNAME}  →  $\{HOSTNAME\}
${USER}      →  $\{USER\}
%{http_code} →  %\{http_code\}

CLI Mastery: Attribute Verification

Find All Attributes in antora.yml

grep -E "^\s+[a-z]+-[a-z]+:" docs/asciidoc/antora.yml | head -50

Verify Attribute Exists Before Using

grep -i "vault" docs/asciidoc/antora.yml

Find Undefined Attributes in Document

grep -oE '\{[a-z0-9-]+\}' document.adoc | \
  tr -d '{}' | sort -u | while read attr; do
    grep -q "^\s*${attr}:" docs/asciidoc/antora.yml && \
      echo "✓ $attr" || echo "✗ $attr MISSING"
  done

Build and Check for Warnings

make 2>&1 | grep -c "missing attribute"
# Expected: 0