mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-25 13:19:03 -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
+10
-7
@@ -5,18 +5,22 @@ tabs, a button, a card grid) is written through one of these functions, so
|
||||
the generator holds no engine syntax of its own. Bodies are passed without
|
||||
indentation: the function indents them as the engine reads them.
|
||||
|
||||
The engine is Astro Starlight. MkDocs Material is kept while the two builds
|
||||
are compared page by page, selected with set_engine("mkdocs").
|
||||
The site is built with Astro Starlight. The MkDocs Material syntax the site
|
||||
was first written in stays as one thing only: the yardstick of the size
|
||||
budgets that split long pages (system pages, platform sections). Those
|
||||
budgets were set on that Markdown, and measuring it keeps every page cut
|
||||
at the same file, so no card changes address.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import html
|
||||
import re
|
||||
from collections.abc import Iterator
|
||||
from contextlib import contextmanager
|
||||
|
||||
ENGINES = ("mkdocs", "starlight")
|
||||
_engine = "mkdocs"
|
||||
_engine = "starlight"
|
||||
|
||||
# Material's callout kinds, by the role Starlight gives them.
|
||||
ASIDE_ROLES = {
|
||||
@@ -41,10 +45,9 @@ def engine() -> str:
|
||||
|
||||
|
||||
@contextmanager
|
||||
def using(name: str):
|
||||
"""Write in another engine's syntax for a while. A page split by size
|
||||
is measured in the MkDocs Markdown its budgets were tuned on, so both
|
||||
engines cut the same pages at the same files."""
|
||||
def using(name: str) -> Iterator[None]:
|
||||
"""Write in another syntax for a while: a page split by size is
|
||||
measured in the MkDocs Markdown its budgets were set on."""
|
||||
previous = _engine
|
||||
set_engine(name)
|
||||
try:
|
||||
|
||||
Reference in new issue
Block a user