Content-Length: 317931 | pFad | https://github.com/stsewd/tree-sitter-rst

00 GitHub - stsewd/tree-sitter-rst: reStructuredText grammar for tree-sitter
Skip to content

stsewd/tree-sitter-rst

Repository files navigation

tree-sitter-rst

CI

reStructuredText grammar for tree-sitter. Based on the specification from https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html.

Check the playground at https://stsewd.dev/tree-sitter-rst/.

Note: this grammar is still under development, a lot of things may change!

TODO

  • Allow lists with blank lines between items
  • Refactor parse citation and footer reference
  • Nested line blocks
  • Option lists
  • Add some nodes to inline?
  • Check if there is a way to re-implement some nodes to JS instead of C?
  • A definition list with classifiers can't be separated by a blank line.
  • tests, tests, and more tests!

Design notes

  • Nodes that contain body elements inside (like lists or directives), are inside a node named body.
  • In RST sections are a big node that contains body elements, here they are just a node containing the title. This is to avoid guessing the level of subtitles.
  • In RST standalone hyperlinks are reference nodes, here they are standalone_hyperlink nodes. This is to avoid confusion with inline references nodes (that are a reference node).
  • Literal blocks are part of the paragraph they precede, not a separate node, except for the expanded form of literal blocks.
  • In rst directives only have "body" node, here the body is parsed as arguments/options/content.

Design decisions

Projects using this grammar

Contributing

Check the CONTRIBUTING.md file

Other grammars









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/stsewd/tree-sitter-rst

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy