diff --git a/scripts/generate_site.py b/scripts/generate_site.py index 69978167..a2220819 100644 --- a/scripts/generate_site.py +++ b/scripts/generate_site.py @@ -3207,7 +3207,7 @@ SAFE_LINK = "[Is it safe?](../index.md#is-it-safe)" # Under "From your computer": a device with no network installs from the ZIP # (`--from-pack`). The id is the one wiki/installer.md gives its section. OFFLINE_LINE = ("No internet on the device? " - "[Install from the ZIP](../wiki/installer.md#without-a-network).") + "[Install from the ZIP](../wiki/installer.md#without-a-network-offline-install).") # Shown in the "On the device" tab of a guide that has no `terminal:` of its own. DEVICE_TERMINAL_FALLBACK = "Or fill the folder from your computer, with the ZIP." diff --git a/scripts/sitestarlight.py b/scripts/sitestarlight.py index 5623c57b..c6c3b6f3 100644 --- a/scripts/sitestarlight.py +++ b/scripts/sitestarlight.py @@ -319,9 +319,9 @@ OG_DIR = Path(__file__).resolve().parent.parent / "docs_assets" / "og" def og_image(rel: str, level: str) -> str: """The sharing card's address: the page's own when it has one, else its section's.""" - own = re.fullmatch(r"platforms/([a-z0-9_-]+)\.md", rel) - if own and own[1] != "index" and (OG_DIR / "platforms" / f"{own[1]}.png").is_file(): - return f"{SITE_URL}assets/og/platforms/{own[1]}.png" + own = re.fullmatch(r"(platforms|systems)/([a-z0-9_-]+)\.mdx?", rel) + if own and own[2] != "index" and (OG_DIR / own[1] / f"{own[2]}.png").is_file(): + return f"{SITE_URL}assets/og/{own[1]}/{own[2]}.png" return f"{SITE_URL}assets/og/{og_section(rel, level)}.png" diff --git a/tests/test_site_r2_components.py b/tests/test_site_r2_components.py index 449e2142..0d037a22 100644 --- a/tests/test_site_r2_components.py +++ b/tests/test_site_r2_components.py @@ -88,6 +88,8 @@ class TablesStackWhenBuilt(unittest.TestCase): "reference": {"labels": ["A", "B", "C"], "rows": 5, "action": False, "level": "reference"}, # Four columns do not fit a phone column, on any page (round 3). "wide": {"labels": ["File", "Region", "Required", "Hash"], "rows": 105, "action": False, "level": "reference"}, + # A hash never breaks: three columns with one overflow a phone (NetherSX2). + "hashes": {"labels": ["File", "Required", "Hash"], "rows": 40, "action": False, "level": "reference"}, } script = ( f"import {{ stackKind }} from {json.dumps(PLUGIN.as_uri())};" @@ -101,6 +103,7 @@ class TablesStackWhenBuilt(unittest.TestCase): self.assertEqual(json.loads(result.stdout), { "zip-header": "true", "action": "true", "pair": "kv", "short-start": "true", "long-setup": None, "reference": None, "wide": "true", + "hashes": "true", }) diff --git a/tests/test_site_r2_gate.py b/tests/test_site_r2_gate.py index a478877e..2ee703a4 100644 --- a/tests/test_site_r2_gate.py +++ b/tests/test_site_r2_gate.py @@ -45,6 +45,16 @@ _ELEMENT = re.compile(r"<[a-zA-Z][a-zA-Z0-9-]*[\s/>]") _TAGS = re.compile(r"<[^>]+>") _TABLE = re.compile(r"[^>]*)>(?P.*?)", re.S) _CURRENT = re.compile(r']*aria-current="page"[^>]*>(?P