line-level audit checks count constructs inside inline verbatim #1

closed cmc opened this on 2026-08-25 16:23 UTC

Discussion

cmc 2026-08-25 16:23 UTC

The entity check skips =verbatim= and ~code~ spans (without_literal_spans, added in #26) because a name shown inside verbatim is displayed rather than rendered. The other line-level checks in scan_line do not, so any page that documents org syntax reports constructs it does not use.

Reproduction — every mention below is inside verbatim:

#+TITLE: Verbatim mentions

A doc explaining syntax, where every mention is inside verbatim:
=${x^2}$=, ={{{name}}}=, =<<<radio>>>=, =[1/3]=, =CLOCK: [2024-01-01]=.

orgo audit on that reports three constructs that are not used:

OUT  macro call                              1       1  :4
OUT  radio target                            1       1  :4
IN   timestamp                               1       1  :4

This is live in orgo's own documentation. orgo audit docs reports:

OUT  macro call                              1       1  guide/05-org-support.org:186

Line 186 is the table row | Macros ={{{name}}}=, radio targets | Literal text. | — the guide naming the construct in order to say it is unsupported. That is the only non-zero out-of-scope count in orgo's self-audit.

The checks that test a raw line and would want the same treatment:

  • line.contains("{{{") → macro call (src/audit.rs:336)
  • radio target
  • has_timestamp(line) → timestamp
  • latex_inline(line) and line.contains("\\begin{") → LaTeX fragment

without_literal_spans already exists and is the fix; the question is only whether to apply it to each check or to blank the spans once at the top of scan_line. The latter is one change but would also affect the emphasis-pair counts, which currently do see verbatim markers — = is itself one of the emphasis markers scanned, so that needs a decision rather than a blanket call.

Related: #23 was the same defect in the entity check, and the audit's own principle is at src/audit.rs:222 — an audit that overstates a gap argues for work nobody needs.

closed by commit ef9a625b5d by cmc: audit: a construct named inside verbatim is not a use of it (#1)

2026-08-30 06:55 UTC