4 个版本

0.1.8 2023 年 3 月 3 日
0.1.7 2023 年 3 月 2 日
0.1.6 2023 年 2 月 28 日
0.1.5 2023 年 2 月 28 日

#652命令行界面

GPL-3.0-or-later

23KB
252

colored-str

通过解析字符串内容来着色终端

此crate是coloredcrate的扩展,它提供了终端着色的功能。它提供了一种特性和一个宏来解析一个包含样式标志的给定字符串。

主要功能

  • colored 功能转换为字符串模板
  • 一个字符串中可以有多个样式和子样式
  • 宏可以将 format!println! 替换为带颜色的字符串

使用方法

此crate位于crates.io上,可以通过将 colored-str 添加到项目中的 Cargo.toml 依赖项中来使用。

[dependencies]
colored-str = "0.1.8"

如何使用

样式必须写在 <...> 开放标记和 </> 关闭标记之间。

样式变化必须写在 <+...> 开放标记和 <-> 关闭标记之间。

请参阅以下示例。

限制

块不能重叠
以下代码 <red> ... <blue> ... </> ... </> 将无法正常工作。
这也适用于变化:<red><+blue> ... <+bold> ... <-><-></> 将无法正常工作。

样式不能被移除
在下面这个例子中 <red+bold> ... 我希望只保留红色 => 不可能 </>
解决方案如下: <red> <+bold> ... <-> 这里只有红色 </>

示例

use colored_str::coloredln;

coloredln!("<red>this is red</>");
coloredln!("<#FF0000>this is also red</>");
coloredln!("<blue+red>this is red again</>");
coloredln!("<red+on_blue>this is red on blue</>");
coloredln!("<red+on_#0000FF>this is also red on blue</>");
coloredln!("<bold>this is bold</>");
coloredln!("<red>there is a first line\nthen a second</>");

您可以根据 println! 添加变量

use colored_str::coloredln;

let message = "this is red";
coloredln!("<red>{message}</>");
coloredln!("<red>{}</>", message);

您可以在一个块中添加样式调整

use colored_str::coloredln;

coloredln!("<red>this is red <+bold>this is red and bold<-> then red again </>");
coloredln!("<red>this is red <+bold+on_blue>this is red on blue and bold<-> then red again </>");

您还可以将其用作特质

use colored_str::Colored;
let s: String = "<red>this is red</>".colored().to_string();
println!("{}", s);

样式列表

颜色

  • 黑色
  • 红色
  • 绿色
  • 黄色
  • 蓝色
  • 品红色
  • 紫色
  • 青色
  • 白色

所有这些都可以使用 on_ 前缀作为背景。

浅色/亮色

  • 浅黑色
  • 浅红色
  • 浅绿色
  • 浅黄色
  • 浅蓝色
  • 浅品红色
  • 浅紫色
  • 浅青色
  • 浅白色

所有这些都可以使用 on_ 前缀作为背景。

装饰

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

真颜色

  • #RRGGBB
  • on_#RRGGBB

依赖关系

问题

欢迎贡献、问题报告和功能请求!

我对 Rust 还不是很熟悉,所以很多东西都可以改进。我主要在 Linux 上测试,也欢迎在其他平台上进行测试。

请随意查看 问题页面。您也可以联系我。

许可协议

版权所有 (C) 2023 Sebastien Guerri

本程序是自由软件:您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下重新分发和/或修改它,许可证版本 3 或任何更新的版本。

分发本程序的目的是希望它有用,但没有提供任何保证;甚至没有适销性或特定用途的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。

您应该已收到与该程序一起提供的 GNU 通用公共许可证副本。如果没有,请参阅 https://www.gnu.org/licenses/

贡献者

依赖关系

~2–13MB
~104K SLoC