mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-09 03:23:47 -06: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
@@ -39,7 +39,8 @@ data/ cached data directories (not BIOS, fetched at build)
|
||||
schemas/ JSON schemas for platform and emulator YAML (checked in CI)
|
||||
tests/ test suite with synthetic fixtures
|
||||
wiki/ hand-written documentation sources
|
||||
docs/ generated MkDocs site (gitignored, rebuilt in CI)
|
||||
website/ Astro Starlight project; pages, data and navigation
|
||||
are generated into it (gitignored, rebuilt in CI)
|
||||
_mame_clones.json MAME parent/clone set mappings
|
||||
database.json file index built from bios/ (SHA1 primary key)
|
||||
dist/ generated packs (gitignored)
|
||||
@@ -55,7 +56,8 @@ heading above the match. Every file card is therefore a level 3 heading with
|
||||
the card's anchor, under its console or a Files heading, and every platform
|
||||
system a heading of its own: a file name typed in the search opens that card,
|
||||
not the top of the page. On pages of cards (systems, emulators, platforms) the
|
||||
table of contents stops at level 2 (`scripts/mkdocs_hooks.py`).
|
||||
table of contents stops at level 2, and a page of cards under one or two
|
||||
headings has none (`scripts/sitestarlight.py`).
|
||||
|
||||
The browser downloads and indexes the whole search index before it shows a
|
||||
first result, so the index holds names and prose only. Hashes, lists of other
|
||||
@@ -450,7 +452,7 @@ pattern and how to add a test.
|
||||
|
||||
| Workflow | File | Trigger | Role |
|
||||
|----------|------|---------|------|
|
||||
| Deploy Site | `deploy-site.yml` | push to main on any input of the site build, and manual | validate contracts, generate site, build with MkDocs, validate rendered HTML, deploy to Pages |
|
||||
| Deploy Site | `deploy-site.yml` | push to main on any input of the site build, and manual | validate contracts, generate site, build with Astro Starlight, validate rendered HTML, deploy to Pages |
|
||||
| Validation | `validate.yml` | pull request and push to main on the collection, profiles, schemas, scripts, tests, the installer and every input of the site build | schema check and full test suite on both, BIOS hash validation and auto-label on pull requests |
|
||||
|
||||
Each workflow's `paths:` list is the exact set of files that starts it.
|
||||
|
||||
Reference in new issue
Block a user