5个版本 (3个重大更新)
0.4.0 | 2020年6月6日 |
---|---|
0.3.0 | 2020年6月2日 |
0.2.1 | 2020年6月1日 |
0.2.0 | 2020年5月31日 |
0.1.0 | 2020年5月31日 |
在数据结构类别中排名1895
39KB
1K SLoC
Html Types
Rust的HTML数据结构。
动机
提供数据类型,以使其更容易测试视图。最终允许返回节点或类似内容的渲染函数与数据结构进行比较,而不是字符串。
在构建未来的基于模板/宏的HTML生成器时,这也可能很有用。因为它们可以专注于构建这些树,而不是字符串类型,将渲染留给其他事情。
设计
目前类型尽可能开放,允许最终用户以他们觉得合适的方式操作树。然而,他们无法创建无效的树
目前实现了一个通用的HTML形状,包括文本节点、注释节点和元素节点。元素节点可以是空的或非空的。
查看测试用例以获取使用示例
请注意,渲染完全使用公共接口,因此如果需要,可以将树渲染到其他数据类型,尽管包含了字符串渲染模块。
节点/元素
节点和元素是通用目的的,现在大部分已经完成。您应该能够使用这些内容来覆盖大多数HTML生成目的,尽管它们期望您理解如何正确排序规则。
语义模块
这个语义模块仍在开发中,但示例显示了它的动机。语义元素在其构造方面有规则,并且具有有意义的属性/子元素。
在这个模块中还有大量工作要做,以扩展它。
这个模块可能永远不会涵盖HTML的所有用例,例如人们可能使用的奇怪标签/组合,但目标是尽可能多地涵盖。
注意:这些项始终可转换为元素。可以将其转换回来(可能会失败)。但这要远远超过目前的实现。
美化打印
虽然这是可选的,但我目前不打算实现它。这将是Pull request的好候选人。
测试
由于一切都是Rust数据结构,因此编写测试很容易。理想情况下,这将演变成一个具有广泛测试的HTML库。
依赖关系
~0.4–0.8MB
~19K SLoC