All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- New
for-the-badgestyle - 28px tall, uppercase, bold text (matches shields.io style) - Static SVG badge examples in
src/badges/for editor preview npm run generate:badgesscript to regenerate static SVGs from badge codenpm run check:badgesscript to verify static SVGs match generators (runs on test/deploy)
- Extracted badge generators to
src/badges.jsmodule - Demo now includes custom height documentation (use
<img height="X">)
- BREAKING: Removed
labelquery parameter - badge label is now fixed as "GPG Key"- The badge serves a single purpose; custom labels added unnecessary complexity
- Simplifies API and reduces code surface
- Test suite using Vitest with 33 tests covering username validation, XML escaping, and GPG key detection
- GitHub Actions CI workflow running tests on PRs and pushes to main
.nvmrcand.node-versionfiles pinning Node 20 for development
- Upgraded Tailwind CSS from v3 to v4 in demo app
- Upgraded demo to use
@tailwindcss/viteplugin instead of PostCSS integration - Bumped wrangler to latest version
- Bumped Workers
compatibility_dateto 2026-01-01 - Minimum Node.js version now 20 (Node 18 reached EOL April 2025)
- Extracted utility functions (
escapeXml,isValidUsername,hasUserGpgKey) tosrc/utils.jsfor testability
isValidUsernamenow correctly rejects consecutive hyphens (e.g.,foo--bar)- Demo Tailwind v4 configuration (removed conflicting PostCSS plugin and redundant CSS imports)
- Initial release
- SVG badge generation for GitHub GPG key status
- Four badge styles: split (default), card, flat, flat-square
- Card style with light/dark theme support
- Custom label support
- Demo UI with live preview and URL/Markdown generation
- Cloudflare Workers deployment
- Edge caching with stale-while-revalidate