4个版本
0.2.2 | 2020年10月3日 |
---|---|
0.2.1 | 2019年9月8日 |
0.2.0 | 2019年9月8日 |
0.1.0 | 2019年8月25日 |
#1100 in 编码
18KB
405 行
ornament
创建装饰文本的辅助工具。
主要特性
- 装饰语言无关。
- 易于使用的构建器。
- 小巧且可重用的API。
详细信息
查看文档以获取更多详细信息和工作示例: https://docs.rs/ornament
lib.rs
:
创建装饰文本的辅助工具。
示例
此示例创建了一个 Text
并按照简单的Markdown-like进行渲染。
use ornament::Decorator;
#[derive(Clone, Debug, PartialEq)]
enum Face {
Default,
Emphasis,
Strong,
}
impl Default for Face {
fn default() -> Self {
Face::Default
}
}
let text = Decorator::with_text("Text can be with emphasis or even strong.")
.set(Face::Emphasis, 17..25)
.set(Face::Strong, 34..40)
.build();
let rendered = text.render(|tf| {
match tf.face {
Face::Default => tf.text.to_owned(),
Face::Emphasis => format!("_{}_", tf.text),
Face::Strong => format!("**{}**", tf.text),
}
});
assert_eq!(rendered, "Text can be with _emphasis_ or even **strong**.");
// In some cases it can be easier to build it part by part.
let other_text = Decorator::new()
.append("Text can be with ")
.set_face(Face::Emphasis)
.append("emphasis")
.reset_face()
.append(" or even ")
.set_face(Face::Strong)
.append("strong")
.reset_face()
.append(".")
.build();
assert_eq!(other_text, text);
// Both methods can be combined together.
let another_other_text = Decorator::new()
.append("Text can be with ")
.set_face(Face::Emphasis)
.append("emphasis")
.reset_face()
.append(" or even strong.")
.set(Face::Strong, 34..40)
.build();
assert_eq!(another_other_text, text);
依赖项
~0–270KB