#终端颜色 #级别 #确定 #识别 #是否 #颜色 #基本

bin+lib term_color_support

确定终端是否支持颜色,并识别颜色支持级别

2 个版本

0.1.1 2024 年 5 月 22 日
0.1.0 2024 年 5 月 21 日

#236命令行界面

40 每月下载次数

Apache-2.0

39KB
667

终端颜色支持

描述

确定终端是否支持颜色,如果支持颜色,则识别可用的颜色支持级别。

特性

  • 检测终端是否支持颜色。
  • 识别颜色支持级别(例如,无颜色、基本 16 种颜色、256 种颜色、真彩色)。

安装

先决条件

  • Rust(确保您已安装 Rust 和 Cargo)

添加为依赖项

要使用此包,请在您的 Cargo.toml 中添加以下内容

[dependencies]
term_color_support = "0.1.0"  # Replace with the latest version

用法

use term_color_support::ColorSupport;
fn main() {
    // Detect and print color support for stdout
    println!("Color support for stdout: {:?}", ColorSupport::stdout());

    // Detect and print color support for stderr
    println!("Color support for stderr: {:?}", ColorSupport::stderr());
}

上述代码的输出将类似于以下内容

Color support for stdout: ColorInfo { level: TrueColor, has_basic: true, has_256: true, has_16m: true }
Color support for stderr: ColorInfo { level: TrueColor, has_basic: true, has_256: true, has_16m: true }

API

结构体

ColorInfo

pub struct ColorInfo {
    /// The color support level.
    pub level: ColorSupportLevel,
    /// Indicates if basic color support is available.
    pub has_basic: bool,
    /// Indicates if 256-color support is available.
    pub has_256: bool,
    /// Indicates if true color support (16 million colors) is available.
    pub has_16m: bool,
}

ColorSupportLevel

pub enum ColorSupportLevel {
    /// No color support.
    NoColor,
    /// Basic color support.
    Basic,
    /// Support for 256 colors.
    Colors256,
    /// True color support.
    TrueColor,
}

示例

有关如何使用此包的详细示例,包括更复杂的使用案例和场景,您可以参考 main.rs 文件,该文件位于 src/bin 目录中。其中提供了一个简单示例。

贡献

Term Color Support 贡献指南

  1. 分叉仓库。
  2. 创建一个新分支(git checkout -b feature/your-feature-name)。
  3. 进行更改。
  4. 提交更改(git commit -m 'Add some feature')。
  5. 推送到分支(git push origin feature/your-feature-name)。
  6. 打开拉取请求。

许可证

本项目采用Apache License 2.0授权 - 有关详细信息,请参阅LICENSE文件。

致谢

Term Color Support项目受到了npm包supports-color的启发,该包用于检测终端是否支持颜色。Term Color Support的概念受到了supports-color的影响。

我们感谢supports-color的维护者Sindre SorhusJosh Junon对开源社区的贡献。

联系方式

如有支持或疑问,您可以通过以下方式联系我:

依赖

~3–11MB
~114K SLoC