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 在 命令行界面
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/。
贡献者
- Sébastien Guerri: @sguerri
依赖关系
~2–13MB
~104K SLoC