mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-26 05:37:20 -05:00
feat: build the site with Astro Starlight
generate_site.py writes the Starlight project in website/ and nothing else: mkdocs.yml, the MkDocs hooks, theme overrides and stylesheet go, and the wiki is written in Starlight's syntax. Both workflows set up Node with the official actions/setup-node pinned by commit, run npm ci from the committed lockfile, build with the strict link validator and check the result with validate_site.py. The search weighs a page by what it answers: Start here pages first, a system page's cards and file names before a guide citing them, deep guides, launchers, aliases and frozen copies after. Status badges, hash blocks and the export change lists leave the index. The ranking sits at the centre of a range where the 13 queries of search_gate.py all answer, in the search box itself. 839 pages, every URL and 45,611 ids match the MkDocs build. The tests read the Starlight content and syntax.
This commit is contained in:
1 parent
abe240073c
commit
123d698e43
64 files changed
+742
-3118
No files matched your search
+19
-3
@@ -287,7 +287,23 @@ The test suite is one layer of verification. The full quality gate is:
|
||||
3. No unexpected CRITICAL entries in the verify output
|
||||
4. Pack file counts match verification file counts (consistency check)
|
||||
5. Pack integrity passes (every declared file extractable with correct hash)
|
||||
6. `mkdocs build --strict` and `python scripts/validate_site.py` pass
|
||||
6. `npm run build --prefix website` and `python scripts/validate_site.py` pass
|
||||
|
||||
A change to the site engine, its version, its search ranking or the page
|
||||
weights is measured on a served build before it lands, with the scripts in
|
||||
`website/tools/` (they need `npm install --no-save playwright-core axe-core
|
||||
lighthouse` and Chrome):
|
||||
|
||||
- `search_gate.py`: the queries a visitor types and the page that must answer
|
||||
each, read from the site's own search box
|
||||
- `lighthouse.py`: Lighthouse mobile on a list of pages, the heaviest ones
|
||||
included
|
||||
- `axe.mjs`: WCAG 2.2 AA in light and dark
|
||||
- `check_tools.mjs`: the hash lookup, the file picker, a hash typed in the
|
||||
search, breadcrumbs, previous and next across tabs, glossary terms, tables
|
||||
on a phone and the 404 page, in a real browser
|
||||
- `serve.mjs`: the build served under /retrobios/ with gzip, as GitHub Pages
|
||||
serves it
|
||||
|
||||
A change that passes the tests but breaks the pipeline is not merged. A new
|
||||
CRITICAL entry in the verify output after a change is explained before the
|
||||
@@ -380,7 +396,7 @@ nav_title: Save files # only when the menu names it otherwise than its headin
|
||||
- `level` picks the tab and the label shown at the top of the page.
|
||||
- `order` sorts the tab. Pages are spaced by ten, so a new page fits between
|
||||
two without renumbering. The generated pages (systems, emulators, the gaps
|
||||
and data pages) hold fixed places among them, set in `generate_mkdocs_nav`.
|
||||
and data pages) hold fixed places among them, set in `generate_nav`.
|
||||
- `nav_title` is the menu label. Without it the menu shows the page's `# `
|
||||
heading. It is not `title`, which both MkDocs and Astro Starlight read as
|
||||
the page's own title.
|
||||
@@ -419,7 +435,7 @@ The `validate.yml` workflow runs `python -m unittest discover -s tests -t . -v`
|
||||
roads into main: every pull request, and every direct push, that touches
|
||||
`bios/`, `platforms/`, `emulators/`, `schemas/`, `scripts/`, `tests/`,
|
||||
`install.py` or an input of the site build such as `wiki/`. The same job then
|
||||
builds the site with `mkdocs build --strict`, so a page that would fail the
|
||||
builds the site with `npm run build --prefix website`, so a page that would fail the
|
||||
deploy fails the pull request. Work reaches main by push as often as by pull request, so a suite
|
||||
wired to pull requests alone would guard the road nobody takes. The test job
|
||||
(`run-tests`) runs in parallel with schema validation, and on a pull request
|
||||
|
||||
Reference in new issue
Block a user