Skip to content

docs(admin): fix quote escapes rendering literally in the callout title - #10

Merged
MrAlders0n merged 8 commits into
mainfrom
docs/fix-admonition-quote-escapes
Aug 2, 2026
Merged

docs(admin): fix quote escapes rendering literally in the callout title#10
MrAlders0n merged 8 commits into
mainfrom
docs/fix-admonition-quote-escapes

Conversation

@MrAlders0n

Copy link
Copy Markdown
Contributor

Spotted on the live site.

MkDocs admonition titles aren't backslash-escaped strings, so \" renders verbatim:

\"Heard\" means an advert, not a wardrive

Swapped to typographic quotes, which need no escaping inside the title's own double quotes:

⚠ “Heard” means an advert, not a wardrive

One line. Only occurrence in docs/ — checked the rest of the tree and no other admonition title nests quotes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA

MrAlders0n and others added 8 commits August 2, 2026 08:28
MkDocs admonition titles are not backslash-escaped strings — the \" in the
"Heard" callout title rendered verbatim on the site as:

  \"Heard\" means an advert, not a wardrive

Swapped to typographic quotes, which need no escaping inside the title's
double quotes. Only occurrence in docs/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
"If repeaters vanish unexpectedly, check the Observers tab first" was
troubleshooting advice wedged into a callout that exists to define one
term. The preceding sentence already establishes that no observer in range
means the repeater ages out.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
"Defaults, for a repeater that stops adverting at day 0" read as a label
rather than a sentence, and left it implicit that the timings only hold if
the region hasn't changed them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
…ctions

The two were interleaved under one "Repeater Lifecycle & Data Cleanup"
heading, so the repeater timeline kept having to caveat itself with what
pings do — the at-a-glance summary carried an orphaned-pings clause that
had nothing to do with the repeater lifecycle it was summarising.

Now two sections that can each be read on their own:

  Repeater Lifecycle & Cleanup — the timeline, stale age, inactive,
  retention, ghosts, pending state, duplicate detection
  Coverage Ping Settings — pending link distance, stale ping cleanup

Multi-region groups promoted alongside them, since it covers both. Anchors
for the moved subsections are unchanged; the two links to the renamed
parent are updated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
…tion

Two changes to the retention setting's copy.

Removed "Recovery is only from a nightly backup" — restorability isn't
something to advertise, and treating deletion as reversible undercuts the
warning it sits inside. It now reads as what it is: permanent, no undo.
Also reworded the example's "recoverable for 60 days", which implied a
deleted row could be brought back when it meant still-on-file.

Removed "most regions should keep it there" — whether to prune is a
region's own call, not a recommendation the docs should make. Reframed as
what the setting is for, leaving the decision with the admin.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
"Ghosts are also removed as soon as the same ID registers as a real
repeater, regardless of the timer" described the bookkeeping instead of
the thing that actually happens, and the example then got the timing
wrong — it claimed the change landed on the next nightly run.

It's immediate. api.php:1201 drops the ghost row the moment the advert is
ingested, logged as ghost_promoted; the nightly GC in repeaters_cleanup.php
is only a safety net for rows that slip past. So the device becomes a
normal repeater on the spot and the standard timers take over from there,
which is what an admin needs to know — "removed from the catalog" tells
them nothing.

Reframed as promotion, with Ghost Retention scoped to what it actually
governs: devices that have never adverted.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
Three paragraphs of setup — how short IDs resolve, what goes wrong, then
finally what the setting does — plus a three-bullet example, to say one
thing: past this distance an admin approves the link.

Now leads with the rule and keeps one sentence on why it exists. Dropped
the example (the rule is the example) and the "affects new pings only"
line, which already sits in the defaults above it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
"Real LoRa long-hauls reach about 220 km" asserted a hard propagation
limit that isn't measured or sourced. Stating it as fact invites arguing
with the number instead of the setting, and the reasoning doesn't need it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KojjSrgSQQJW7Z8b3eakEA
@MrAlders0n
MrAlders0n merged commit aa85e70 into main Aug 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant