The tag cloud buttons were not triggering filters because the event
listener was only attached to the table body. Refactored tag click
handling into a shared function and added a separate listener for the
tag cloud outside the table.
Now clicking any tag (table or cloud) applies the filter correctly.
New features:
- Tag cloud displays 8 most popular languages and 6 most popular categories
- Tags have variable font sizes based on frequency (larger = more common)
- Tags are clickable and trigger the same filtering as table row tags
- Positioned above search input for easy discovery
- Styled with hover effects and responsive layout
- Shows both language and category tags mixed together
The tag cloud helps users quickly discover popular filters without
needing to scroll through the entire table.
README.md: migrated to category-first organization with inline language tags
site/index.html: regenerated with new structure and language filtering
site/projects.csv: updated with language extraction and new schema
All 498 entries reorganized from 14 language-based sections to 18
category-based sections with inline language tags. Multi-language
projects properly tagged and filtered. Website supports language,
category, and source filtering with visual color coding by language.
Language tags now have distinct colors based on their language:
- Python: #306998 on #FFD43B
- R: #276DC3 on white
- Julia, Rust, C++, etc. with official language colors
- Includes custom styling for all supported languages
Improves visual distinction and user recognition at a glance.
Change from data-language (single value) to data-languages (space-separated).
Filter now checks includes() instead of exact match, allowing multi-language
projects to appear in multiple language filters.
Changes:
- Update parse_readme() to extract languages from backtick tags
- Extract languages from inline tags instead of h2 headings
- Add languages column to project data
- Update build_tags_html() to support multiple language tags per entry
- Update generate_html() to use data-languages attribute (space-separated)
- Update languages counting logic to extract from inline tags
Site now correctly displays multi-language projects with proper filtering
support for all languages in the new category-first README structure.
h2 headings are now categories (not languages). Language is extracted
from inline tags like `Python` `Rust` at the start of descriptions.
Changes:
- Add extract_languages() function to parse backtick-delimited language tags
- Update README parsing loop to extract languages from descriptions
- Update Project class to handle multiple languages per entry
- Add 'languages' CSV column with comma-separated language list
- Primary 'language' column contains first language for backward compatibility
The parser now supports category-first README structure with inline
language tags.
- Add site/generate.py: static site with search, filtering, sorting, dark mode
- Add site/static/style.css and main.js for the new frontend
- Extend parse.py: fetch CRAN published dates, PyPI release dates, and
discover GitHub repos from CRAN pages as fallback data sources
- Migrate from Poetry to uv (pyproject.toml + uv.lock)
- Update CI workflow to use uv and generate.py pipeline
- Add CONTRIBUTING.md with entry format guidelines
- Add "Submit a Project" button to site nav
- Update review-pr skill with all accepted entry formats
- Update CLAUDE.md to reflect new architecture
- Remove Quarto files (_quarto.yml, *.qmd, sync-site skill, poetry.lock)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Changed quantlib's project URL and two ports (R and Java) to point to its repositories.
That will make these projects appear in the projects list which shows the date the project was last updated.