@@ -497,6 +497,42 @@ starts with a number is parsed by MyST in a way that leaves it untranslated, and
497497` check_built_site.py ` now refuses to run when one language build is missing
498498instead of reporting a single-language result as green.
499499
500+ ### Site quality round (2026-10-26, after the owner's "industry best" request)
501+
502+ The site was brought to the shape a mature documentation product is expected to
503+ have, all bilingual and gated in CI:
504+
505+ - ** Structure.** Tutorial, cookbook, task guides, reference, and the explanation
506+ pages (conventions, architecture) plus a glossary now cover the four Diátaxis
507+ quadrants; examples and release notes were added as their own pages.
508+ - ** Reading experience.** Top-right EN / 中文 pill (same page, host-aware),
509+ light/dark switch with no flash before first paint and a remembered choice,
510+ copy button on every code block, Ctrl+K to focus search, skip link, focus
511+ outlines, print stylesheet, "Edit on GitHub" and a version badge.
512+ - ** Discoverability.** Per-language description and Open Graph tags, hreflang
513+ alternates, self-canonical links, ` sitemap.xml ` derived from the deployed
514+ artefact, ` robots.txt ` , a bilingual 404 page and an SVG favicon.
515+ - ** Validity and accessibility.** A Sphinx extension de-duplicates element ids —
516+ Breathe repeated twelve of them across module pages — leaving one ` h1 ` per page,
517+ all inputs with accessible names and no images without ` alt ` . Measured at a
518+ 530 px viewport in both themes: no horizontal overflow, body contrast 10.11:1
519+ (light) and 13.15:1 (dark), code contrast 9.76:1 / 10.56:1.
520+ - ** Gates.** The docs workflow runs the language-switch test and
521+ ` check_built_site.py ` after building both languages, so a broken link, a machine
522+ path or an untranslated/fuzzy entry fails CI. Final counts: `pages=72
523+ broken_links=0 machine_path_pages=0 catalogs=34 entries=3995 translated=3992
524+ untranslated=3 fuzzy=0`; the three remaining entries are the reviewed
525+ ` Subclassed by ` exemption.
526+
527+ Two defaults were corrected along the way and are worth remembering: the site
528+ checker used to point at a ` zh-cn ` build directory while local builds write
529+ ` zh_CN ` (it now auto-detects and refuses to check one language), and the first
530+ canonical link used ` html_baseurl ` from the template context, which can be absent
531+ and silently produced relative hrefs — the checker caught it on twenty pages.
532+
533+ What remains is not a structural gap: the owner creates the single Read the Docs
534+ project, and content keeps being maintained as the library evolves.
535+
500536## 5. P133 — publication: PLATFORM_PENDING
501537
502538Configuration is in the repository and is buildable, but no live site was
0 commit comments