#终端文本 #ANSI终端 #终端颜色 #终端 #RGB #ANSI #颜色

iridescent

通过 ANSI 转义序列进行终端文本着色

4 个版本

0.2.1 2022年10月20日
0.2.0 2022年10月20日
0.1.1 2022年2月7日
0.1.0 2022年2月7日

#860命令行界面

每月 25 次下载
用于 seastar

MIT/Apache 协议

49KB
435

彩虹


terminal screenshot showing off styled output

功能

iridescent 是一个易于着色终端文本的库。它支持基本的 ANSI 代码、Xterm-256 颜色和 RGB。您可以直接在 &strString 类型上操作,无需担心转换。需要注意的是,并非所有终端都支持所有功能。虽然 大多数 现代终端都会支持真 RGB 颜色,但某些文本模式(如 blink)可能不可靠。

用法

[dependencies]
iridescent = { version = "0.2" }

唯一的要求是将 Styled 特性导入到您计划使用库方法的模块中。一旦在模块顶部声明,这些方法将对所有 &strString 类型可用。

请注意,所有 Styled 方法都可以链式使用,如上面的示例所示,我们首先调用前景方法,然后调用加粗方法。这些不需要按特定顺序。

使用基本颜色

use iridescent::{constants::GREEN, Styled};

fn main() {
    // Here we can use a built-in method called `.green()` to apply the color.
    // Every basic color has a helper method for the foreground, as this is
    // the most common thing to style.
    let s = "Hello".green().bold();

    // But we could manually do it this way, too. You'll need to import the
    // color codes from the constants file, of course.
    let s2 = "world".foreground(GREEN).bold();

    println!("{}, {}!", s, s2);
}

使用 256 位 & RGB 颜色

use iridescent::{Styled, Rgb};

fn main() {
    // We use .foreground() for a 256-bit color; in this case, 155 - or a lime green.
    let s = "Hello".foreground(155).underline();

    // Here we combine a 256-bit color with an RGB color. First, we set the foreground
    // to an RGB value of (4, 11, 214) - some variant of dark blue. Next, we set
    // the background to a value of 195 - a very light, almost white, blue. In 
    // addition, we apply some modes (underline and blink) to our text.
    //
    // As you can see, mixing and matching various sequence types is no problem!
    let s2 = "world"
        .foreground(&[4, 11, 214])
        .background(195)
        .blink();

    println!("{}, {}!", s, s2);
}

十六进制颜色

v0.2 版本起,您现在可以使用十六进制颜色字面量了!

use iridescent::{Styled, constants::{RED, WHITE}};

fn main() {
    let hello = "Hello".foreground("#ff00ff").bold();
    let world = "world".foreground("#00ff00").background("#0000ff");
    println!("{hello}, {world}!");
}

有关所有可用方法的详细信息,请参阅 此处

示例

如果您已克隆了 iridescent 仓库,可以使用命令 cargo run --example <example_name> 运行示例。如果需要,可以使用 --features <feature_name> 添加功能。

示例 文件 描述 功能
rainbow colors.rs 在终端中展示所有基本颜色。
rgb rainbow.rs 在终端中展示 8 位和 24 位深度随机颜色。 random
模式 modes.rs 展示终端中各种文本模式。

功能标志

标志 默认 描述 依赖项
random 禁用 启用使用 Color::random()Color::random_rgb() rand

许可证

Iridescent 可以选择以下两种许可证之一进行双授权:

任选其一。

依赖项