#终端着色 #颜色 #终端 #宏基础 #ANSI终端 #CLI #背景颜色

sty

以最小化、基于宏和极其简单的方式着色终端输出

4 个版本 (2 个破坏性版本)

0.3.1 2024年3月21日
0.3.0 2024年3月20日
0.2.0 2024年3月20日
0.1.0 2024年3月19日

#346 in 命令行界面

Download history 6/week @ 2024-03-27 8/week @ 2024-04-03 3/week @ 2024-04-10 1/week @ 2024-06-05 1/week @ 2024-06-12

134 每月下载量

MIT 许可证

15KB
245 行代码

sty 🌈

Crates.io docs-rs Downloads

💡

Code Backgroud Bright Bright background
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ Code Backgroud
Bright Bright background $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \ $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \

$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \

$\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \

  • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • 支持 tty 检测:当 tty 不支持颜色时避免样式,使用 set_color_enabled 进行手动启用控制。

文档

docs-rs

安装

该软件包与 Cargo 兼容。将以下内容添加到您的 Cargo.toml 依赖项部分

[dependencies]
sty = "0.3"

基本用法

use sty::{
    sty,
    style::{red, underline},
};
// or
// use sty::{ sty, red, underline };

println!("{}", sty!("Hello world!", [red]));

// Use `sty!` macro for combination of multiple styles
println!("{}", sty!("Hello world!", [red, underline]));

// Use `sty!` macro for multiple input types
println!("{}", sty!(123, [red, underline]));

// Use style function is simple for `&str` input
println!("{}", red("Hello world!"));
println!("{}", underline(&red("Hello world!")));

[!TIP] 在样式组合中,后面指定的样式具有优先级,例如

use sty::{ sty, style::* };
sty!("str", [red, green, blue]); // blue
sty!("str", [red, underline, reset]); // reset

[!TIP] 如果 tty 环境不支持颜色,默认输出将打印不带任何样式,使用 set_color_enabled 进行手动启用控制,例如

use sty::{ set_color_enabled, is_color_enabled, sty, style::* };
let enabled = is_color_enabled();
set_color_enabled(false);
sty!("123", [red]); // no color
set_color_enabled(true);
sty!("123", [red]); // red
set_color_enabled(enabled);

sty!

sty! 宏是一个强大的实用工具,可以方便地应用于输入的样式集合。此宏允许您使用直观的语法无缝地结合文本属性。

use sty::{ sty, style::{red, underline} };
println!("{}", sty!("Hello world!", [red, underline]));

在此示例中,redunderline 都是样式转换,sty! 宏返回一个新样式文本实例,应用了所有这些样式元素。可以同时应用多个样式,输出将是所有样式的组合。

支持的输入类型

对于实现了 std::fmt::Display 特性的任何类型,例如

  • &str
  • String
  • numbers(usize, i8, i16, i32, i64, i128, u8, u16, u32, u64, u128, f32, f64)
  • bool
  • ...

样式函数

每个样式函数都可以与 sty! 宏结合使用或单独使用,例如

use sty::{
    sty,
    style::{red, underline},
};
// or
// use sty::{ sty, red, underline };

sty!("Hello world!", [red, underline]);
// or
red("Hello world!");

[!TIP] 独立的样式函数仅支持 &str 输入类型。

所有样式函数如下

  • 修饰符

    • reset
    • bold
    • dim
    • italic
    • underline
    • overline
    • inverse
    • hidden
    • strikethrough
  • 前景颜色

    • Code
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • Bright background
  • 背景颜色

    • Backgroud
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • 亮前景颜色

    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • yellow_bright
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
  • 亮背景颜色

    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \
    • $\mathbb{\color{black}{\color{red}{\color{red}{\color{black}{\color{red}{Style \ } \ } \ } \ } \ } \ } \

贡献

CONTRIBUTING

依赖

~53KB