1 个不稳定版本
0.1.0 | 2022 年 8 月 26 日 |
---|
400 在 文本编辑器
在 cbfmt 中使用
395KB
12K SLoC
tree-sitter-rst
tree-sitter 的 reStructuredText 语法。基于 https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html 的规范。
请查看沙盒:https://stsewd.dev/tree-sitter-rst/.
注意:此语法仍在开发中,很多东西都可能发生变化!
待办事项
- 允许在项之间有空行列表
- 重构引用和页脚引用的解析
- 嵌套行块
- 选项列表
- 向内联添加一些节点?
- 检查是否有重新实现一些节点为 JS 而不是 C 的方法?
- 带有分类器的定义列表不能由空行分隔。
- 测试,测试,更多测试!
设计笔记
- 包含 body 元素(如列表或指令)的节点在名为
body
的节点内部。 - RST 中的部分是一个包含 body 元素的大节点,这里它们只是一个包含标题的节点。这是为了避免猜测副标题的级别。
- RST 中的独立超链接是
reference
节点,这里它们是standalone_hyperlink
节点。这是为了避免与内联引用节点(它们是reference
节点)混淆。 - 文字块是其前面段落的一部分,而不是一个单独的节点,除了文字块的可展开形式。
- RST 指令中只有 "body" 节点,这里的 body 被解析为参数/选项/内容。
设计决策
-
实现表格?
-
验证部分中装饰的长度?
规范中没有提到这一点,但此段落有。
下划线/上划线必须至少与标题文本一样长。
https://docutils.sourceforge.io/docs/user/rst/quickstart.html
使用此语法的项目
- nvim-treesitter
- 你的?
贡献
请查看 CONTRIBUTING.md 文件
其他语法
- tree-sitter-comment:用于注释标记的语法,如
TODO
、FIXME(user)
。
依赖关系
~2.7–4MB
~71K SLoC