Add projects to shared tag discovery
Deploy production / deploy (push) Successful in 3s

This commit is contained in:
2026-08-11 23:43:41 -07:00
parent ec6e21bb25
commit 14cec442fa
24 changed files with 235 additions and 46 deletions
+20 -9
View File
@@ -144,18 +144,27 @@ entry before its tag record exists. To rename or retire a tag, update every
referencing entry deliberately and verify that no old slug remains before
renaming or removing its record.
`/tags/` lists every approved tag and counts its usage across blog entries and
articles. Dedicated tag URLs list matching entries from both sections. Tag
links are normal links and work without JavaScript. On the Blog and Articles
listing pages, `assets/static/tags.js` progressively adds instant filtering and
keeps the selected filter in the `tag` query parameter.
`/tags/` lists every approved tag and counts its usage across projects, blog
entries, and articles. Dedicated tag URLs combine matching records from all
three sections in one chronological discovery feed. Tag links are normal links
and work without JavaScript. On the Projects, Blog, and Articles listing pages,
`assets/static/tags.js` progressively adds instant filtering and keeps the
selected filter in the `tag` query parameter.
Remote-project languages and declared technologies are normalized to slugs and
matched only against this controlled vocabulary. Their approved matches become
clickable tags and a deduplicated `taxonomy_tags` field used by filters, counts,
and tag pages. A label that has no approved record remains visible and
non-clickable in mustard, produces a build warning, and is excluded from tag
discovery. Remote data never creates a tag record automatically.
After taxonomy or filtering changes:
1. Run `python scripts/build_with_projects.py --output-path build`.
2. Verify `/tags/`, at least one dedicated tag URL, and both section listings.
3. Confirm tag counts cover blog entries and articles and that every entry slug
has a matching tag record.
2. Verify `/tags/`, at least one dedicated tag URL, and all three section listings.
3. Confirm tag counts cover projects, blog entries, and articles; every stored
entry slug has a matching tag record; and unapproved project labels are not
counted.
4. Test filtering with JavaScript enabled and confirm tag links remain usable
without JavaScript.
5. Check keyboard operation plus desktop and narrow layouts.
@@ -225,7 +234,9 @@ revisions, metadata digests, synchronization status, and synchronization time.
The project card combines repository-owned content with public provider and Git
metadata: source and README links, default branch, latest commit, license,
languages, open issues, stars, forks, latest release, imported revision, and
sync time. API metadata failure uses cached metadata and is identified in the
sync time. Approved language and technology labels link into the shared tag
taxonomy, allowing a project to lead visitors to related writing. API metadata
failure uses cached metadata and is identified in the
sync status; it never causes an unvalidated new snapshot to replace a working
one.