Skip to main content

· One min read
chris48s

We recently shipped a feature which allows you to pass an arbitrary filter to the GitHub tag and release badges. The filter param can be used to apply a filter to the project's tag or release names before selecting the latest from the list. Two constructs are available: * is a wildcard matching zero or more characters, and if the pattern starts with a !, the whole pattern is negated.

To give an example of how this might be useful, we create two types of tags on our GitHub repo: https://github.com/badges/shields/tags There are tags in the format major.minor.patch which correspond to our NPM package releases and tags in the format server-YYYY-MM-DD that correspond to our docker snapshot releases.

In our case, this would allow us to make a badge that applies the filter !server-* to filter out the snapshot tags and just select the latest package tag.

· One min read
chris48s

Alongside the general visual refresh and improvements to look and feel, our new frontend has allowed us to address a number of long-standing feature requests and enhancements:

  • Clearer and more discoverable documentation for our static, dynamic json/xml/yaml and endpoint badges
  • Improved badge builder interface, with all optional query parameters included in the builder for each badge
  • Each badge now has its own documentation page, which we can link to. e.g: https://shields.io/badges/discord
  • Light/dark mode themes
  • Improved search
  • Documentation for individual path and query parameters

The new site also comes with big maintenance benefits for the core team. We rely heavily on docusaurus, docusaurus-openapi, and docusaurus-search-local. This moves us to a mostly declarative setup, massively reducing the amount of custom frontend code we maintain ourselves.