fix: render a single tab without a tab bar

142 tab bars held one tab, most of them "On the device" under a heading saying so. One item now stands alone, led by its label unless it names the place the text around already gives. The network route drops "Run the command on the computer" under the heading "From your computer", which keeps RetroPie in its word budget.
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 19:46:22 +01:00
1 parent 124e96cd09
commit 32cc1ce4fa
6 files changed
+39 -4

No files matched your search

+1 -1
View File
@@ -4202,7 +4202,7 @@ def _setup_routes(name: str, display: str, page_link: bool = False) -> list[str]
# lines are on the get/ page, the one the command is shared from.
tabs = ("windows",) if page_link else ("windows", "macos", "linux")
computer += [
"Needs the device on your network. Run the command on the computer.",
"Needs the device on your network.",
"",
*terminal_tabs(tabs, args, how=how),
*([f"[Mac or Linux](../{get_page_link(name)}#from-your-computer)", ""]
+6
View File
@@ -454,6 +454,10 @@ def fence(shell: str, command: str, indent: str = "") -> list[str]:
return [f'{indent}```{shell} title="{FENCE_TITLES[shell]}"', f"{indent}{command}", f"{indent}```"]
# Terminals named by where the command runs, not by the system it runs on.
PLACES = ("device", "server")
def terminal_tabs(
tabs: tuple[str, ...], args: dict[str, str], indent: str = "", steps: bool = True,
how: dict[str, str] | None = None,
@@ -465,6 +469,8 @@ def terminal_tabs(
items = []
for key in tabs:
label, shared, shell = TERMINALS[key]
if len(tabs) == 1 and key in PLACES:
label = "" # one place, which the text around already names
text = (how or {}).get(key) or shared
body = [text, ""] if steps else []
items.append((label, body + fence(shell, install_command(shell, args.get(key, "")))))
+10 -1
View File
@@ -139,8 +139,17 @@ def details(kind: str, title: str, body: list[str], indent: str = "", opened: bo
def tabs(items: list[tuple[str, list[str]]], indent: str = "", sync: str = "os") -> list[str]:
"""Content tabs. Tabs that share a label share the reader's choice
across pages."""
across pages.
One item is no choice: 142 bars offered a single tab, most of them
"On the device" under a heading that says so. Its body stands alone,
led by its label when it has one: the RetroPie card is read from Linux
only, and the label is where the page said so."""
lines: list[str] = []
if len(items) == 1:
label, body = items[0]
lead = [f"{indent}**{label}**", ""] if label else []
return [*lead, *_indented(_trim(body), indent), ""]
if _engine == "mkdocs":
for label, body in items:
lines += [f'{indent}=== "{label}"', "", *_indented(_trim(body), indent + " "), ""]
+16
View File
@@ -334,6 +334,22 @@ class NoLevelBadgeOnATabRoot(unittest.TestCase):
self.assertNotIn('class="rb-level ', _title_through_heading(_built(page)))
class OneTabIsNoTabBar(unittest.TestCase):
"""142 tab bars held one tab, most of them "On the device" right under
the heading "On the device"."""
def test_a_single_item_stands_alone(self):
import sitemarkup
import siteguides
self.assertEqual(sitemarkup.tabs([("Linux", ["run it"])]), ["**Linux**", "", "run it", ""])
self.assertEqual(sitemarkup.tabs([("", ["run it"])]), ["run it", ""])
self.assertIn('<Tabs syncKey="os">', sitemarkup.tabs([("A", ["a"]), ("B", ["b"])]))
device = "\n".join(siteguides.terminal_tabs(("device",), {}))
self.assertNotIn("<Tab", device)
self.assertNotIn("On the device", device)
class FooterLicenceMatchesTheLicenceFile(unittest.TestCase):
"""The footer said MIT covers the tooling. LICENSE names the metadata too."""
+3 -1
View File
@@ -404,7 +404,9 @@ class AnAppThatReadsAnyBios(unittest.TestCase):
install = self.page[self.page.index("Install this emulator's files"):]
install = install[:install.index("</details>")]
self.assertRegex(install, r"With [^:]+: the installer finds")
self.assertEqual(set(re.findall(r'<TabItem label="([^"]+)">', install)), {"On the device"})
# One place to run it, so no tab bar (one tab offers no choice).
self.assertNotIn("<Tabs", install)
self.assertIn("curl -fsSL", install)
nether = _pages("nethersx2")["nethersx2"]
if "--emulator nethersx2" in nether:
self.assertIn("With ", nether)
+3 -1
View File
@@ -925,7 +925,9 @@ class ARouteWithoutANetwork(unittest.TestCase):
self.assertEqual(siteguides.GUIDES["retropie"].card_run, ("linux",))
text = _plain_page("platforms/retropie.md")
card = text.split("No network?", 1)[1].split("## On the device", 1)[0]
self.assertEqual(_tab_labels(card), {"Linux"})
# One system, so no tab bar: its label leads the command.
self.assertEqual(_tab_labels(card), set())
self.assertIn("**Linux**", card)
def test_no_zip_is_promised_for_an_unmarked_setup(self):
for name in SETUPS: