3 个版本
使用旧的 Rust 2015
0.1.2 | 2018年2月12日 |
---|---|
0.1.1 | 2018年1月10日 |
0.1.0 | 2018年1月10日 |
#883 在 命令行界面
每月34 次下载
43KB
315 代码行
- 描述: 创建并测试终端应用程序中的文本样式和格式
- 文档: https://docs.rs/termstyle
termstyle 是一个库,旨在使构建(并测试)格式化和样式化的命令行应用程序变得简单。它支持以下“元素”
- 样式化文本
- 斜体
- 粗体
- 颜色
- 表格:由具有相同宽度列的样式化文本组成
可以通过将标记推送到向量并在之后调用 paint()
来程序性地构建文本,或者通过解析一个 yaml
文件。这允许你轻松地为你的命令行应用程序编写单元测试。
示例
给定以下配置(用 yaml 编写)
- {t: "-- EXAMPLE --\n", b: true}
- "This is a regular string with a newline\n"
- "This does not have a newline, but "
- {t: "this is red", c: red}
- ", but this is NOT red!\n"
- "Bold is easy like this: "
- {t: "see I'm bold!!\n", b: true}
- And so is multiple settings
- # long-form
t: |
bold AND green!
and even multiple lines :) :)
b: true
c: green
- ["\nyou can group multiple text items ", {t: "on one line!", b: true}]
- "\nGrouping things in one line is necessary for tables\n"
- "Notice that some cells are grouped and some are not.\n\n"
- [{t: "# Table", b: true}, "\n"]
-
table:
- [["header ", {t: "col1", b: true}] ,"| header col2"]
- ["row col1", ["| ", {t: "row col2", c: green}]]
使用以下代码来渲染它
let els = termstyle::from_str(serde_yaml::from_str, example).unwrap();
termstyle::paint(&mut ::std::io::stdout(), &els).unwrap();
渲染结果如下
您还可以使用库提供的类型创建“元素流”。有关更多信息,请参阅 库文档。
许可证
源代码根据以下之一许可
- Apache 许可证第 2 版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
除非你明确声明,否则你提交给作品作为 Apache-2.0 许可证定义的任何有意贡献,都应如上双重许可,不附加任何额外条款或条件。
依赖项
~0.8–1.5MB
~26K SLoC