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.