bevy_mod_bbcode 0.3.0-rc.1

Use BBCode-formatted text inside of Bevy.
Documentation
# bevy_mod_bbcode

Rich text support in Bevy using a custom [BBCode](https://en.wikipedia.org/wiki/BBCode) markup flavor.

## Bevy Compatibility

| `bevy` version | `bevy_mod_bbcode` version |
| -------------- | ------------------------- |
| `0.15.0-rc.2`  | `0.3.0-rc.1`              |
| `0.14`         | `0.1` - `0.2`             |

## Installation

```cli
cargo add bevy_mod_bbcode
```

## Usage

Instead of spawning `Text`, spawn `Bbcode`!

```rs
use bevy::prelude::*;
use bevy_mod_bbcode::{Bbcode, BbcodePlugin, BbcodeSettings};

fn main() {
    App::new()
        // Register the font files stored in `assets/fonts`
        .add_plugins((DefaultPlugins, BbcodePlugin::new().with_fonts("fonts")))
        .add_systems(Startup, setup)
        .run();
}

fn setup(mut commands: Commands) {
    commands.spawn(Camera2d);

    commands.spawn((Bbcode::new(
        r"test [b]bold[/b] with [i]italic[/i] and [c=#ff00ff]color[/c]"),
        // Use the "Fira Sans" font family with a default font size of 40
        BbcodeSettings::new("Fira Sans", 40., Color::WHITE),
    ));
}
```

See `examples` for more usage patterns!

### Supported Tags

- `b`: \[b]**bold**\[/b] text
- `i`: \[i]_italic_\[/i] text
- `c`: \[c=\#ff0000]<span style="color: red">colored</span>\[/c] text
  - Register named colors via `ResMut<ColorMap>` and use the names instead of hex values
- `m`: \[m=foo]text with marker component\[/m]
  - Register marker components via `BbcodeSettings::with_marker` and use them to update text dynamically
- `font`: \[font="Fira Sans"]change the font family\[/font]

## License

This project is licensed under the terms of the [MIT](LICENSE-MIT) or [Apache 2.0](LICENSE-APACHE) license at your choice.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Note that the assets used in the examples might use different licenses, see [`assets/CREDITS.md`](assets/CREDITS.md).