Adom Wiki
Public Made by Adomby adom
How the Adom Wiki (wiki.adom.inc) works and how to drive it with the adom-wiki CLI: the two storage layers (git page repo vs package registry), hosting source by pushing files (not a tarball), making packages, cutting per-platform releases, and the three-tier skill layout (user skills ship, dev-skills/ and publish-skills/ stay source-only). adom-wiki is the current tool; adompkg is deprecated. Read this first before publishing or installing.
Lint HTML entities in page briefs (they render literally)
Spotted while screenshot-verifying an unrelated change. kcknox/ws2812b-2020 displays its brief as:
Worldsemi · Intelligent Control LED · 2020 (2.0 × 2.0mm) · Built-in IC + RGB dies
with a literal × on the page instead of a multiplication sign.
The escaping is not the bug. The stored brief genuinely contains the seven characters × as text, and escapeHtml correctly turns that into × so it renders as written. Decoding entities before display would be the wrong fix: escaping is what stops a brief from injecting markup, and making it entity-aware reintroduces exactly the ambiguity it exists to remove.
The bug is upstream, in whatever wrote the brief. Something generating component page metadata emitted an HTML entity where it meant a character, probably because the source it scraped was HTML. Any publisher hand-writing &, <, or × hits the same thing.
Ask
Lint it at publish rather than fixing pages one at a time. A brief, title, or tag containing what looks like an HTML entity is almost always a mistake, and the publisher is the only one who can say what character they meant.
Suggested shape, matching the existing publish lints:
- On publish, scan
title,brief, andtagsfor&(#\d+|#x[0-9a-f]+|[a-z]+); - Warn (do not block):
BRIEF_HTML_ENTITY, naming the entity found and the character it probably means - Include the fix in the hint, since the publisher has the source in front of them: "write × directly; briefs are plain text and are escaped on render"
Blocking would be wrong: & legitimately appears in prose, and a false positive that refuses a publish is worse than a literal entity on a page.
Also worth doing, separately
A one-off sweep for existing pages whose stored title/brief matches that pattern. I have not run it, so I do not know whether this is one page or fifty. Worth measuring before deciding whether it needs a data migration or just the lint going forward.