6个版本 (3个稳定版)
1.1.1 | 2020年4月12日 |
---|---|
1.1.0 | 2019年11月19日 |
1.0.0 | 2019年9月17日 |
0.1.2 | 2019年9月6日 |
#2655 在 解析器实现
每月21次下载
73KB
2K SLoC
BBClash
BBClash是一个健壮、有意见、注重性能的BBCode到HTML解析器和编译器。
什么是BBClash?
BBClash是为Penclash构建的BBCode编译器的开源版本。与大多数实现不同,BBClash不是基于正则表达式的。它像编译器一样工作,将标记、词法分析和从类似AST的对象中构建符合HTML的结构。这使得它健壮,并且能够很好地处理格式不正确的输入。
我们的BBCode规范可以在这里找到。
注意:当前需要Rust Nightly。相关问题:54727
通用用法
use bbclash::bbcode_to_html;
assert_eq!(bbcode_to_html("I'm [i]italic[/i] and [b]bold![/b]"),
"<p>I'm <i>italic</i> and <b>bold!</b></p>");
美观和丑陋输出
BBClash有两种主要的工作模式:美观和丑陋。美观输出使用bbcode_to_html
函数,并从最终输出中排除格式不正确的bbcode和空元素
use bbclash::bbcode_to_html;
assert_eq!(bbcode_to_html("I'm [colour]missing an argument![/colour]"),
"<p>I'm missing an argument!</p>");
assert_eq!(bbcode_to_html("[quote][/quote]"),
"");
丑陋使用bbcode_to_html_ugly
函数,并将格式不正确的BBCode标签和空元素保留在最终输出中
use bbclash::bbcode_to_html_ugly;
assert_eq!(bbcode_to_html_ugly("I'm [colour]missing an argument![/colour]"),
"<p>I'm [colour]missing an argument![/colour]</p>");
assert_eq!(bbcode_to_html_ugly("[quote][/quote]"),
"<blockquote></blockquote>");
请注意,这两种模式都不会任意删除方括号中的任何文本。这只会影响格式不正确的BBCode标签;[non tags]
将不会受到影响。
自定义用法
由于这个包是为现有的应用程序构建的,并且由于它注重性能,BBClash的BBCode实现完全是硬编码的。因此,建议您下载本地副本并修改以适应您的需求。
构建只需运行$ cargo build
。测试和基准测试可以通过$ cargo test
和$ cargo bench
分别运行。
许可证
此版本的BBClash是根据MIT许可证条款许可的。
依赖关系
~3MB
~59K SLoC