#color-string #string #ansi-term #term #terminal-colors #color #term-painter

recolored

colored 的分支:在您的终端中添加颜色的最简单方法

1 个稳定版本

使用旧的 Rust 2015

1.9.3 2020 年 4 月 16 日

命令行界面 中排名 #554

Download history 43/week @ 2024-03-13 58/week @ 2024-03-20 64/week @ 2024-03-27 65/week @ 2024-04-03 41/week @ 2024-04-10 44/week @ 2024-04-17 53/week @ 2024-04-24 49/week @ 2024-05-01 48/week @ 2024-05-08 54/week @ 2024-05-15 50/week @ 2024-05-22 59/week @ 2024-05-29 37/week @ 2024-06-05 35/week @ 2024-06-12 47/week @ 2024-06-19 35/week @ 2024-06-26

每月下载量 161
7 个 Crates 中使用

授权 MPL-2.0

62KB
1.5K SLoC

ReColored

这是 colored 的分支。命名为 recolored 以便在 crates.io 上使用。

以下为原始 README,如果您想使用此分支,需要将 colored 替换为 recolored


终端着色如此简单,您已经知道如何做了!

    "this is blue".blue();
    "this is red".red();
    "this is red on blue".red().on_blue();
    "this is also red on blue".on_blue().red();
    "bright colors are welcome as well".on_bright_blue().bright_red();
    "or any rgb color".true_color(171, 205, 239);
    "or any hexadecimal color".hex_color(0xabcdef);
    "or use colors from the palette".palette(36);
    "you can also make bold comments".bold();
    println!("{} {} {}", "or use".cyan(), "any".italic().yellow(), "string type".cyan());
    "or change advice. This is red".yellow().blue().red();
    "or clear things up. This is default color and style".red().bold().clear();
    "purple and magenta are the same".purple().magenta();
    "and so are normal and clear".normal().clear();
    "you can specify color by string".color("blue").on_color("red");
    String::from("this also works!").green().bold();
    format!("{:30}", "format works as expected. This will be padded".blue());
    format!("{:.3}", "and this will be green but truncated to 3 chars".green());

如何使用

在您的 Cargo.toml 中添加以下内容

[dependencies]
colored = "1.9"

并将以下内容添加到您的 lib.rsmain.rs

    extern crate recolored; // not needed in Rust 2018

    use recolored::*;

    // test the example with `cargo run --example most_simple`
    fn main() {
        // TADAA!
        println!("{} {} !", "it".green(), "works".blue().bold());
    }

功能

  • 安全 Rust,易于使用,最小依赖,完整的测试套件
  • 尊重 CLICOLOR/CLICOLOR_FORCE 行为(见 规范
  • 尊重 NO_COLOR 行为(见 规范
  • 适用于 Linux、MacOS 和 Windows(Powershell)

颜色

  • 黑色
  • 红色
  • 绿色
  • 黄色
  • 蓝色
  • 洋红色(或紫色)
  • 青色
  • 白色

亮色:在颜色前加上 bright_。非常简单。背景颜色:在颜色前加上 on_。就这么简单。亮色背景:在颜色前加上 on_bright_。一点也不难。任何 8 位调色板颜色:使用 palette(u8)。超级简单。任何 RGB 颜色:使用 true_color(u8, u8, u8)。真的很容易。任何十六进制颜色:使用 hex_color(0xABCDEF)。一点也不难。

样式

  • 粗体
  • 下划线
  • 斜体
  • 暗淡
  • 反转
  • 闪烁
  • 隐藏
  • 删除线

您可以使用 normal()clear() 在任何时间清除颜色 样式。

高级控制

从字符串动态获取颜色

由于 Color 实现了 FromStr,即 From<&str>From<String>,您可以轻松地将字符串转换为颜色,如下所示

// the easy way
"blue string yo".color("blue");

// this will default to white
"white string".color("zorglub");

// the safer way via a Result
let color_res : Result<Color, ()> = "zorglub".parse();
"red string".color(color_res.unwrap_or(Color::Red));
颜色化控制

如果您想在编译时禁用任何颜色,可以使用 no-color 功能轻松完成。

例如,您可以在您的 Cargo.toml 中这样做以禁用测试中的颜色

[features]
# this effectively enable the feature `no-color` of colored when testing with
# `cargo test --feature dumb_terminal`
dumb_terminal = ["colored/no-color"]

您可以使用 colored::control::set_override 方法获得更精细的控制。

使用Docker构建

安装Docker

请参阅此处提供的安装说明 这里

构建Docker镜像

docker build-t colored_image.

构建库

docker run--rm-it-v"$PWD":/src-u `id-u`:`id-g` colored_image/bin/bash-c"cargo build"

测试库

docker run--rm-it-v"$PWD":/src-u `id-u`:`id-g` colored_image/bin/bash-c"cargo test"

待办事项

  • 更多测试?:我们始终欢迎更多测试!请贡献力量!

致谢

如果没有这个卓越的ruby gem colored,这个库就不会是现在这样。

感谢 ansi_term crate 提供参考实现,这极大地帮助了这个crate输出正确的字符串。

许可证

Mozilla Public License 2.0。请参阅仓库根目录下的 LICENSE 文件。

在非法律术语中,这意味着

  • 如果您修复了一个错误,您必须给我修复的代码(这是公平的)
  • 如果您更改/扩展了API,您必须给我在MPL2下更改的文件代码。
  • 您不能就这个代码起诉我任何事情
  • 除此之外,您几乎可以做任何事情。请参阅LICENSE文件以获取详细信息。

贡献者

依赖

~240KB