-
Notifications
You must be signed in to change notification settings - Fork 27
Add URL parameter filtering to Contributors page with full SEO preservation #498
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: LukasWallrich <60155545+LukasWallrich@users.noreply.github.com>
Co-authored-by: LukasWallrich <60155545+LukasWallrich@users.noreply.github.com>
Co-authored-by: LukasWallrich <60155545+LukasWallrich@users.noreply.github.com>
Co-authored-by: LukasWallrich <60155545+LukasWallrich@users.noreply.github.com>
Co-authored-by: LukasWallrich <60155545+LukasWallrich@users.noreply.github.com>
Co-authored-by: LukasWallrich <60155545+LukasWallrich@users.noreply.github.com>
|
👍 All image files/references (if any) are in webp format, in line with our policy. |
|
|
|
|
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
10 similar comments
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
2 similar comments
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
|
This needs local testing - I'm afraid that running data processing on this branch will lead to an artefact that break master deployment? |
|
✅ This PR has been deployed to staging as part of an aggregated deployment. View at: https://staging.forrt.org |
Contributors page now supports dynamic filtering by project (
?project=glossary) and role (?role=project-manager) while keeping all data in static HTML for search engine indexing.Changes
Data generation (
tenzing.py)"Replications & Reversals"→"replications-and-reversals")data-projectsanddata-rolesattributes containing comma-separated normalized valuesTemplate (
tenzing_template.md)<ul id="contributor-list">for JavaScript accessClient-side filtering (
contributor-filter.js)Implementation
All contributor data remains in static HTML before JavaScript executes, ensuring search engines index everything. Filtering is purely additive client-side enhancement.
Usage Examples
Screenshots
Filtered by Project (Glossary)

Combined Filter (Project + Role)

Security
escapeHtml())html.escape())innerHTMLinjection)Documentation
CONTRIBUTORS_FILTERING.md- User guide with normalization rules and examplesscripts/forrt_contribs/README.md- Script usage for regenerating pageIMPLEMENTATION_NOTES.md- Architecture and maintenance notesDeployment
To activate filtering on existing contributors data:
cd scripts/forrt_contribs python3 tenzing.py cp tenzing.md ../../content/contributors/tenzing.mdOriginal prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.