[PR #3107] [MERGED] chore: refine UI, add JSON-LD, polish category SEO #18384

Closed
opened 2026-05-11 15:00:15 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/vinta/awesome-python/pull/3107
Author: @vinta
Created: 5/3/2026
Status: Merged
Merged: 5/3/2026
Merged by: @vinta

Base: masterHead: chore/refine-ui


📝 Commits (10+)

  • 1468ae7 feat(website): show project description as always-visible desc-row on category pages
  • 1afccd8 update description for curses
  • fc8d1ba feat(website): show desc-row on index page when a filter is active
  • 9de86ea feat(website): append #library-index to tag links on non-index pages
  • f3f92c6 feat(website): render subcategory, group, and source tags as anchor elements
  • f57fc44 style: bump tag font size to var(--text-xs) and codify 12px minimum font-size rule
  • 138059f feat(website): add Awesome Python and Sponsorship links to footer
  • b2910d5 feat(website): add homepage JSON-LD with WebSite, CollectionPage, ItemList for SEO/AEO
  • 86d2aa7 feat(website): add CollectionPage JSON-LD to category, group, and subcategory pages
  • 2f398ac fix(seo): align JSON-LD with Yoast/RankMath conventions

📊 Changes

10 files changed (+368 additions, -33 deletions)

View changed files

📝 DESIGN.md (+1 -0)
📝 README.md (+1 -1)
📝 uv.lock (+1 -1)
📝 website/build.py (+94 -0)
📝 website/static/main.js (+26 -7)
📝 website/static/style.css (+61 -4)
📝 website/templates/base.html (+4 -1)
📝 website/templates/category.html (+22 -11)
📝 website/templates/index.html (+19 -6)
📝 website/tests/test_build.py (+139 -2)

📄 Description

Summary

Mix of UI refinement and SEO/AEO work on the static site (no listings change).

SEO / AEO

  • Add homepage JSON-LD: WebSite + CollectionPage with an ItemList of visible projects
  • Extend the same @graph pattern to category, group, and subcategory pages (each CollectionPage is isPartOf the shared WebSite node, Yoast/RankMath style)
  • Lead category meta descriptions with the real category description when present, fall back to count
  • Switch category page title separator from | to -

UI

  • Show project descriptions as always-visible desc rows on category pages, and on the homepage when a filter is active
  • Render subcategory, group, and source tags as real anchors; append #library-index on non-index pages
  • Bump tag font size to var(--text-xs) (12px minimum)
  • Add Awesome Python + Sponsorship links to the footer
  • Tweak description for curses

Test plan

  • make build succeeds (14 groups, 71 categories, 537 entries)
  • uv run pytest website/tests/test_build.py -v — 54 passed
  • Homepage index.html JSON-LD parses, contains WebSite + CollectionPage + ItemList
  • Category page JSON-LD parses, mirrors structure with category-specific URL and description
  • Category page title uses - separator, meta description leads with real description

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/vinta/awesome-python/pull/3107 **Author:** [@vinta](https://github.com/vinta) **Created:** 5/3/2026 **Status:** ✅ Merged **Merged:** 5/3/2026 **Merged by:** [@vinta](https://github.com/vinta) **Base:** `master` ← **Head:** `chore/refine-ui` --- ### 📝 Commits (10+) - [`1468ae7`](https://github.com/vinta/awesome-python/commit/1468ae78ff9c28f68c9e53b6bcef8d5e98383850) feat(website): show project description as always-visible desc-row on category pages - [`1afccd8`](https://github.com/vinta/awesome-python/commit/1afccd8bc9e6b030d8b0c5d3cab9955ae313a1a9) update description for curses - [`fc8d1ba`](https://github.com/vinta/awesome-python/commit/fc8d1ba35ed5042dae7a30fb51fac9e3a490b065) feat(website): show desc-row on index page when a filter is active - [`9de86ea`](https://github.com/vinta/awesome-python/commit/9de86ea7853d500646a5980ed11dfdd8e41732d8) feat(website): append #library-index to tag links on non-index pages - [`f3f92c6`](https://github.com/vinta/awesome-python/commit/f3f92c691a4fb9396dfe43994f5de90638d605b4) feat(website): render subcategory, group, and source tags as anchor elements - [`f57fc44`](https://github.com/vinta/awesome-python/commit/f57fc44295be602222edee1fd433694cffe34811) style: bump tag font size to var(--text-xs) and codify 12px minimum font-size rule - [`138059f`](https://github.com/vinta/awesome-python/commit/138059feeb7f042fa6f84344d22933a1391cd82c) feat(website): add Awesome Python and Sponsorship links to footer - [`b2910d5`](https://github.com/vinta/awesome-python/commit/b2910d59c8d69671830cc5e57730f64309996156) feat(website): add homepage JSON-LD with WebSite, CollectionPage, ItemList for SEO/AEO - [`86d2aa7`](https://github.com/vinta/awesome-python/commit/86d2aa7e0163fd5f868f15a35df08ae0ac4f4715) feat(website): add CollectionPage JSON-LD to category, group, and subcategory pages - [`2f398ac`](https://github.com/vinta/awesome-python/commit/2f398acefbec7753b97d8451263283df2906633a) fix(seo): align JSON-LD with Yoast/RankMath conventions ### 📊 Changes **10 files changed** (+368 additions, -33 deletions) <details> <summary>View changed files</summary> 📝 `DESIGN.md` (+1 -0) 📝 `README.md` (+1 -1) 📝 `uv.lock` (+1 -1) 📝 `website/build.py` (+94 -0) 📝 `website/static/main.js` (+26 -7) 📝 `website/static/style.css` (+61 -4) 📝 `website/templates/base.html` (+4 -1) 📝 `website/templates/category.html` (+22 -11) 📝 `website/templates/index.html` (+19 -6) 📝 `website/tests/test_build.py` (+139 -2) </details> ### 📄 Description ## Summary Mix of UI refinement and SEO/AEO work on the static site (no listings change). **SEO / AEO** - Add homepage JSON-LD: `WebSite` + `CollectionPage` with an `ItemList` of visible projects - Extend the same `@graph` pattern to category, group, and subcategory pages (each `CollectionPage` is `isPartOf` the shared `WebSite` node, Yoast/RankMath style) - Lead category meta descriptions with the real category description when present, fall back to count - Switch category page title separator from `|` to `-` **UI** - Show project descriptions as always-visible desc rows on category pages, and on the homepage when a filter is active - Render subcategory, group, and source tags as real anchors; append `#library-index` on non-index pages - Bump tag font size to `var(--text-xs)` (12px minimum) - Add Awesome Python + Sponsorship links to the footer - Tweak description for `curses` ## Test plan - [x] `make build` succeeds (14 groups, 71 categories, 537 entries) - [x] `uv run pytest website/tests/test_build.py -v` — 54 passed - [x] Homepage `index.html` JSON-LD parses, contains `WebSite` + `CollectionPage` + `ItemList` - [x] Category page JSON-LD parses, mirrors structure with category-specific URL and description - [x] Category page title uses `-` separator, meta description leads with real description 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-11 15:00:15 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/awesome-python#18384