# markup-language # markup # html # text # regex # textile

rustextile

Textile 标记语言解析器,适用于Rust

2个稳定版本

1.0.2 2022年11月10日
1.0.1 2022年11月6日

#1594文本处理

Download history 19/week @ 2024-03-30 2/week @ 2024-04-06

每月75次下载

BSD-3-Clause

225KB
5.5K SLoC

Rustextile - Rust Textile解析器

Rustextile 是一个用纯Rust编写的流行的 Textile 标记语言解析器。它是两个库的移植:Python的 python-textile 库和“官方”的 PHP Textile实现(python-textile库也是基于此实现的)。

功能

此移植与原始库执行相同的自动化测试,并支持相同的功能集,包括

  • 装饰文本跨度
  • 图像
  • 表格
  • 有序/无序列表
  • 定义列表
  • 复杂引用
  • 代码块
  • CSS样式、类和ID属性
  • 原始HTML插入
  • 脚注和引用
  • “受限”解析以处理不受信任的用户输入和其他安全功能
  • 在XHTML或HTML5中渲染
  • 等等...

还有一个名为 textile-rs 的类似Rust库,它是从头开始编写的,但遗憾的是只支持Textile的基本功能,并且与为更先进的官方解析器创建的文档不完全兼容。

此实现是官方PHP解析器的直接移植。它使用类似的代码结构、相同的正则表达式、大多数相同的变量名和相同的测试用例。这使得它不仅兼容性更高,而且还可以从仍在积极开发的PHP版本中回溯新功能和修复。

对我来说,这也是一个很好的证明,即可以在不牺牲这类高级解释语言的简洁性和可读性的情况下,用Rust重写PHP或Python代码。

依赖项

~9–22MB
~356K SLoC