Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nvim-neorg/rust-norg
A robust parser for Norg for tools that don't use tree-sitter.
https://github.com/nvim-neorg/rust-norg
Last synced: 3 days ago
JSON representation
A robust parser for Norg for tools that don't use tree-sitter.
- Host: GitHub
- URL: https://github.com/nvim-neorg/rust-norg
- Owner: nvim-neorg
- Created: 2024-05-18T15:43:53.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-09T19:06:12.000Z (5 days ago)
- Last Synced: 2024-11-09T20:17:20.745Z (5 days ago)
- Language: Rust
- Size: 99.6 KB
- Stars: 11
- Watchers: 3
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: readme.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-neorg - rust-norg - A robust parser for Norg for tools that don't use tree-sitter. (Parsers)
README
## (WIP) Robust Rust Parser for Norg
This project serves one purpose: parse norg as *best* as possible. The `tree-sitter` norg parser is designed for speed at the cost of error recovery and accuracy.
`rust-norg` uses `chumksy` under the hood and trades off some speed for robust parsing and errors. The parser is built to recover from virtually any error thanks
to us splitting the parsing into three distinct stages, something that `tree-sitter` is incapable of doing.The parser currently supports all block-level syntax apart from detached modifier extensions. Inline markup is not yet supported.
All other syntax is properly parsed with spec-defined edge cases.
## Future of this Project
Currently the parser is being developed as a proof-of-concept. Once it's complete, I'd like to extract this into a library for others to use. A proper test suite is also a must-have.