tui-markup-ansi-macro

Crates.iotui-markup-ansi-macro
lib.rstui-markup-ansi-macro
version0.1.0
sourcesrc
created_at2022-08-23 13:12:36.393215
updated_at2022-08-23 13:12:36.393215
descriptiona macro to generate styled ansi escape sequence from markup language
homepagehttps://github.com/7sDream/tui-markup-ansi-macro
repositoryhttps://github.com/7sDream/tui-markup-ansi-macro
max_upload_size
id650979
size11,708
7sDream (7sDream)

documentation

https://docs.rs/tui-markup-ansi-macro

README

tui markup ansi macro

crates.io changelog docs.rs deps state

This create provided a macro to generated terminal styled text in ANSI escape sequence format using a markup language.

This macro compile your source at compile time, so it has no runtime overhead.

Example

use tui_markup_ansi_macro::ansi;

let generated = ansi!("Press <blue Space> to <cyan Jump> over the <bg:yellow,i fox>");
let hardcode = "Press \u{001b}[34mSpace\u{001b}[0m to \u{001b}[36mJump\u{001b}[0m over the \u{001b}[3;43mfox\u{001b}[0m";
// Those two are equivalent.
assert_eq!(generated, hardcode);

// Use custom tag
let generated = ansi!(
    "Press <keyboard Space> to <action Jump> over the <enemy fox>", 
    "keyboard" => "blue",
    "action" => "cyan",
    "enemy" => "bg:yellow,i",
);
assert_eq!(generated, hardcode);

println!("{}", generated);

Output:

example-output

The markup language used here is my tui markup language, See it's documentation for full syntax and supported style tags.

LICENSE

BSD-3-Clause-Clear, see LICENSE.

Commit count: 7

cargo fmt