From c886e470b67db9600ec7caf18633f88c4b265a4f Mon Sep 17 00:00:00 2001 From: Vinta Chen Date: Sun, 3 May 2026 19:57:31 +0800 Subject: [PATCH] feat(website): lead category meta description with real description when present, count first as fallback Co-Authored-By: Claude --- website/build.py | 8 ++++++-- website/templates/category.html | 2 +- website/tests/test_build.py | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/website/build.py b/website/build.py index e4310142..db42c176 100644 --- a/website/build.py +++ b/website/build.py @@ -171,8 +171,11 @@ def build_homepage_json_ld(entries: Sequence[TemplateEntry], total_categories: i def category_meta_description(name: str, entry_count: int, description: str) -> str: - suffix = description if description else "Part of the Awesome Python catalog." - return f"Explore {entry_count} curated Python projects in {name}. {suffix}" + count_sentence = f"Explore {entry_count} curated Python projects in {name}." + if description: + lead = description if description.endswith((".", "!", "?")) else f"{description}." + return f"{lead} {count_sentence}" + return f"{count_sentence} Part of the Awesome Python catalog." def build_category_json_ld(name: str, url: str, description: str, entries: Sequence[TemplateEntry]) -> dict: @@ -504,6 +507,7 @@ def build(repo_root: Path) -> None: tpl_category.render( category=category, category_url=category_url, + category_description=category_description, entries=entries, total_categories=len(categories), category_urls=category_urls, diff --git a/website/templates/category.html b/website/templates/category.html index 9ef8e1ce..fe5ba1b2 100644 --- a/website/templates/category.html +++ b/website/templates/category.html @@ -1,6 +1,6 @@ {% extends "base.html" %} {% block title %}{{ category.name }} Python Libraries | Awesome Python{% endblock %} -{% block description %}Explore {{ entries | length }} curated Python projects in {{ category.name }}. {% if category.description %}{{ category.description }}{% else %}Part of the Awesome Python catalog.{% endif %}{% endblock %} +{% block description %}{{ category_description }}{% endblock %} {% block canonical_url %}{{ category_url }}{% endblock %} {% block alternate_links %}{% endblock %} {% block extra_head %} diff --git a/website/tests/test_build.py b/website/tests/test_build.py index da6abfad..0b2d38e4 100644 --- a/website/tests/test_build.py +++ b/website/tests/test_build.py @@ -269,7 +269,7 @@ class TestBuild: assert 'href="/categories/widgets/"' in index_html assert 'data-value="Widgets"' in index_html assert parser.title.strip() == "Widgets Python Libraries | Awesome Python" - assert parser.meta_by_name["description"] == "Explore 2 curated Python projects in Widgets. Widget libraries. Also see awesome-widgets." + assert parser.meta_by_name["description"] == "Widget libraries. Also see awesome-widgets. Explore 2 curated Python projects in Widgets." assert parser.links_by_rel["canonical"] == "https://awesome-python.com/categories/widgets/" assert parser.meta_by_property["og:url"] == "https://awesome-python.com/categories/widgets/" assert '' not in category_html @@ -562,7 +562,7 @@ class TestBuild: assert collection["name"] == "Widgets Python Libraries" assert collection["@id"] == "https://awesome-python.com/categories/widgets/" assert collection["url"] == "https://awesome-python.com/categories/widgets/" - assert collection["description"] == "Explore 2 curated Python projects in Widgets. Widget libraries." + assert collection["description"] == "Widget libraries. Explore 2 curated Python projects in Widgets." assert collection["isPartOf"] == {"@type": "WebSite", "@id": "https://awesome-python.com/#website"} item_list = collection["mainEntity"]