8 个版本
0.4.0 | 2024 年 4 月 20 日 |
---|---|
0.3.0 | 2022 年 10 月 19 日 |
0.2.1 | 2022 年 8 月 18 日 |
0.1.1 | 2022 年 8 月 13 日 |
#325 在 解析器实现 中
484 每月下载量
用于 tui-markup-ansi-macro
67KB
1.5K SLoC
tui markup
此软件包提供了一种标记语言,可以快速在纯文本中编写彩色和具有样式的终端文本。
使用方法
use ansi_term::{ANSIStrings, Color, Style};
use tui_markup::{compile, compile_with, generator::ANSIStringsGenerator};
// Parse markup into some final result for showing
let result = compile::<ANSIStringsGenerator>("You got a <yellow Coin>").unwrap();
// Show it
println!("{}", ANSIStrings(&result));
// With custom tag
let gen = ANSIStringsGenerator::new(|tag: &str| match tag {
"keyboard" => Some(Style::default().fg(Color::Blue).on(Color::Black).bold()),
_ => None,
});
let result = compile_with("Press <keyboard Space> to jump", gen).unwrap();
println!("{}", ANSIStrings(&result));
结果
注意结果类型以及如何显示取决于您使用的 Generator
。
当前可用的 内置生成器
ansi
:ANSIStringsGenerator
,用于在任何 ASNI 兼容的终端中直接打印结果。ratatui
:RatatuiTextGenerator
,用于创建Text
结构的ratatui
软件包以显示结果。crossterm
:CrosstermCommandsGenerator
,用于创建一系列crossterm
软件包的命令以打印结果。
还有一个宏(tui-markup-ansi-macro
软件包),在编译时将标记源编译成 ANSI 序列,如果需要,请查看它。
您可以通过创建自己的生成器轻松地为其他终端/库/应用程序添加此标记支持。
示例
以下命令在 Windows Terminal 中显示示例
cargorun --exampleratatui --功能ratatui,crossterm --examples/help.txt
本文的源标记文本可以在 examples/help.txt 中找到。
您可以将最后一个参数更改为您的文件以渲染其他文章,例如 examples/indexed.txt
以显示完整的 xterm256 颜色图表
这两个截图都使用了内置的 ratatui
生成器。
标记语法
仅有一种语法 <taglist content>
用于向内容添加样式。
taglist
是一个由 ,
分隔的 tag
列表。
tag
的格式为 mode:value
,可用的 mode
有
fg:
用于前景色。bg:
用于背景色。mod:
用于修饰符。
模式及 :
是可选的,除了 bg:
,因此 66ccff
= fg:66ccf
,以及 b
= mod:b
。
一些示例
<green text>
用于绿色文本,<66ccff text>
用于 #66ccff 颜色文本。<bg:blue text>
用于蓝色背景文本,<bg:66ccff text>
用于 #66ccff 背景文本。<b text>
用于粗体文本,<i text>
用于斜体/倾斜文本。<bg:blue one<green two>>
,是一个蓝色背景的“one”,后接一个蓝色背景和绿色前景的“two”。<bg:blue,green,b,i text>
是一个蓝色背景、绿色前景、粗体、斜体文本。
您还可以定义自己的标签,如上面的示例代码。
正式语法规范可以在 docs/syntax.ebnf 中找到。
颜色和修饰符支持因所使用的生成器而异,请参阅它们的文档以获取详细信息。
待办事项
termion
生成器ncurses
生成器
许可证
BSD-3-Clause-Clear,见 LICENSE。
依赖项
~1–8MB
~43K SLoC