RSBadges
Create code badges from the comfort and safety of Rust
Flat | Flat Square | Plastic | ForTheBadge | Social |
---|---|---|---|---|
RSBadges is a Rust-friendly badge generator. The interface strives to be minimal while still providing a feature-rich API. Both the label (the left side) and the message (the right side) of the badge can be customized fully, with the ability to
- Set text
- Set color using any valid CSS color code
- Embed a link into each side or a link for the whole badge
- Add a logo (in SVG format) from a local source or a URL
- Embed that logo's data into the badge directly
- Set the style of badge, as described in Shields.io
RSBadges can be used as an API or a command line interface (CLI). See the docs for more details on arguments and capabilities.
API
First, instantiate a Badge struct to set all of the generic options for a badge SVG. This fully-populated Badge is then wrapped in a Style enum, which indicates which style of badge to eventually generate.
use ;
let badge = Badge ;
// Create a plastic badge using the data created above.
let badge_style = Plastic;
Badge and Style together are sufficient to
tell RSBadges how to construct the right badge, which it does through generate_svg()
:
let badge_svg = badge_style.generate_svg.unwrap;
The resulting SVG String can be saved to file using the convenience function save_svg()
:
;
save_svg
See the documentation for the Badge and Style types for more.
CLI
The CLI features all of the customization options from the API, along with a few quality-of-life improvements for command line use and evaluation, such as
- Opening a created badge SVG in browser after creation
- Specifying a save directory for the SVG
Valid argument formats match those found in the API (see the Badge type documentation). Don't worry if you get it wrong; RSBadges will let you know.
Short | Long | Default |
---|---|---|
-a |
--label <string> |
"test" |
-b |
--label-color <css_color> |
"#555" |
-c |
--label-link <url> |
"" |
-x |
--msg <string> |
"test" |
-y |
--msg-color <css_color> |
"#007ec6" |
-z |
--msg-link <url> |
"" |
-l |
--logo <url or local path> |
"" |
-f |
--save-to-svg-at <filepath/file.svg> |
"" |
-s |
--style <plastic,flat,flatsquare,forthebadge,social> |
"flat" |
-o |
--open-in-browser |
false |
-h |
--help |
false |
-e |
--embed-logo |
false |
Run the CLI with the -h
flag to see all possible arguments and flags.