1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2019年9月17日 |
---|
#905 在 命令行界面
317 每月下载
在 6 个包 中使用
63KB
1.5K SLoC
Colored_tmp
信息
为了在我的 repub 中使用真彩色,我发布了它。当原始包更新到 v1.3.0 时,这个包可能会被撤回。(详情请见 https://github.com/mackwic/colored/issues/6 )
Colored
使终端着色变得如此简单,你甚至已经知道如何做了!
"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.8"
并将其添加到您的 lib.rs
或 main.rs
:
extern crate colored; // not needed in Rust 2018
use colored::*;
// 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
方法来获得更精细的控制。
待办事项
- 更多的测试? 我们始终欢迎更多的测试!请贡献!
鸣谢
这个库如果没有神奇的 ruby gem colored 就不会是现在的样子。
感谢 ansi_term crate 提供了参考实现,这极大地帮助了这个 crate 输出正确的字符串。
许可证
Mozilla Public License 2.0。请参阅仓库根目录下的 LICENSE 文件。
用非法律术语来说,这意味着
- 如果你修复了一个错误,你必须给我修复的代码(这是公平的)
- 如果你更改/扩展了 API,你必须给我你更改的文件代码,这些文件属于 MPL2。
- 你不能就这个代码对我提起诉讼
- 除此之外,你可以几乎做任何你想做的事情。请参阅许可证文件以获取详细信息。
贡献者
- Thomas Wickham: @mackwic
- Corey "See More" Richardson: @cmr
- Iban Eguia: @Razican
- Alexis "Horgix" Chotard: @horgix
- Keith Yeung: @KiChjang
- Kyle Galloway: @kylegalloway
- Luke Hsiao: @lukehsiao
- kurtlawrence: @kurtlawrence
依赖项
~1.5MB
~24K SLoC