fix: keep an initial inside the note sentence

The emulator description taken from the notes cut at the first period followed by a space, so hcl's read "open-source port of E.".
This commit is contained in:
Abdessamad Derraz committed 2026-11-05 19:34:41 +01:00
1 parent 564bfe8b18
commit d63ef4b1cf
2 files changed
+13 -1

No files matched your search

+3 -1
View File
@@ -2547,7 +2547,9 @@ def _emulator_description(markdown: str, key: str, title: str, intro: str) -> st
its profile table when the profile names no system.""" its profile table when the profile names no system."""
notes = re.search(r"<summary>Technical notes</summary>\s*\n\n(.+?)(?:\n\n|$)", markdown, re.S) notes = re.search(r"<summary>Technical notes</summary>\s*\n\n(.+?)(?:\n\n|$)", markdown, re.S)
if not intro and notes: if not intro and notes:
sentence = re.split(r"(?<=\.)\s", _plain_markdown(notes[1]), maxsplit=1)[0] # An initial is no sentence end: hcl's read "open-source port of E."
sentence = re.split(r"(?<![\s(][A-Z]\.)(?<=\.)\s", _plain_markdown(notes[1]),
maxsplit=1)[0]
intro = f"{title}: {sentence[:1].lower()}{sentence[1:]}" intro = f"{title}: {sentence[:1].lower()}{sentence[1:]}"
if not intro: if not intro:
row = {name: _plain_markdown(value) for name, value in re.findall( row = {name: _plain_markdown(value) for name, value in re.findall(
+10
View File
@@ -245,6 +245,16 @@ class Descriptions(unittest.TestCase):
self.assertEqual(gs._page_description(body, key, "DaedalusX64"), self.assertEqual(gs._page_description(body, key, "DaedalusX64"),
"DaedalusX64 emulates Nintendo 64. Every file it reads comes with the app.") "DaedalusX64 emulates Nintendo 64. Every file it reads comes with the app.")
def test_an_initial_does_not_end_the_sentence(self) -> None:
"""hcl's description was "Hydra Castle Labyrinth: open-source port of E."."""
body = ("# Hydra Castle Labyrinth\n\n<details>\n<summary>Technical notes</summary>\n\n"
"Open-source port of E. Hashimoto's 2008 freeware Metroidvania. It reads "
"its data folder.\n\n</details>\n")
text = gs._emulator_description(body, "emulators/hcl.md", "Hydra Castle Labyrinth", "")
self.assertTrue(text.startswith("Hydra Castle Labyrinth: open-source port of E. "
"Hashimoto's 2008 freeware Metroidvania."), text)
self.assertNotIn("It reads", text)
def test_a_platform_page_says_what_it_gives(self) -> None: def test_a_platform_page_says_what_it_gives(self) -> None:
"""All 18 ended on the label of a link a snippet cannot follow, """All 18 ended on the label of a link a snippet cannot follow,
"ROCKNIX website.", and never named the BIOS files or their folder.""" "ROCKNIX website.", and never named the BIOS files or their folder."""