-
Notifications
You must be signed in to change notification settings - Fork 27
Description
Summary
The current Contributors page (tenzing.md) presents a comprehensive, static list of all FORRT contributors. We want to enhance it by allowing users to filter dynamically by project (e.g., /contributors?project=glossary) and optionally by role (e.g., /contributors?role=project-lead) — without losing search-engine visibility of individual names.
This feature will require adjustments to both the data generation script and the website layout.
Goals / Deliverables
Data generation enhancements
Extend the existing tenzing.py script so that the generated Markdown includes lightweight HTML attributes or data tags per contributor entry:
Ensure each project and role are normalized (lowercase, hyphen-safe) for consistent filtering.
Keep the generated file fully static (for SEO), but semantically structured for client-side filtering.
Website display logic
On page load, check for project and/or role parameters in the URL.
If parameters are present:
Hide the full contributor list.
Dynamically render a focused list of contributors matching the filter, e.g.:
Project: Glossary
Balazs Aczel — Project co-lead
Maria Lopez — Writing
If no parameters are provided, display the full unfiltered overview (contributors → projects → roles), preserving the current hierarchy.
Optional UI features
Add basic dropdowns or buttons for project and role selection that update the URL (?project= / ?role=) without reloading.
Maintain accessibility and crawlability — all data must exist in the static HTML before filtering.
Technical constraints
No reduction in search engine indexability (all names and projects remain visible in the static HTML).
The dynamic filtering is purely client-side (no new API or server-side filtering).
Should work seamlessly with existing Hugo build output and templating.
Deliverables checklist
Updated tenzing.py script outputting data-projects and data-roles attributes.
Modified template (tenzing_template.md) with placeholders ready for those attributes.
JS file for URL parameter parsing and DOM filtering logic.
Verified filtered view layout (project-centric, role-centric).
Maintained full SEO visibility.
Success criteria
Visiting /contributors?project=glossary displays only contributors involved in “Glossary” with clean name–role pairs.
Visiting /contributors?role=project-lead lists all contributors serving as project leads, across projects.
Viewing /contributors without parameters shows the full static list.
Search engines can still index all contributor names and text.