Replace inconsistent, hand written Markdown or Org parsing code in a note taking app
Check how closely a custom parser matches Logseq's official mldoc parser on real notes
Build a search index or renderer for Logseq flavored Markdown and Org files
Fuzz test a text parser for crashes and slow performance on large inputs
| martinkoutecky/lsdoc | abc3dz/mixxx | abyo-software/ferro-stash | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | — | 2/5 | 4/5 |
| Audience | developer | general | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Node.js is enough to run the graph checker, building from source needs the Rust toolchain and a C compiler.
lsdoc is a parser, written in Rust, for the special flavor of Markdown and Org text format used by the note taking app Logseq. A parser reads raw text and turns it into a structured, computer readable version of that text, called an AST, which other software can then use to render the page or build search indexes. This project is meant to behave exactly like Logseq's own official parser, called mldoc, for the parts that matter for search and rendering, so it can act as a drop in replacement. Its main intended use is inside a sibling project called Tine, a similar note taking app, which currently has two separate, inconsistent pieces of parsing code that this project is meant to replace with one shared, correct implementation. To prove it matches the real Logseq parser, the project runs both parsers side by side on the same input text and compares their output, a technique called differential testing. According to the README, this comparison currently passes on nearly 1,200 test inputs across both Markdown and Org formats, with zero differences, plus additional tests focused on individual blocks and inline text. It has also been fuzz tested, meaning it was fed large amounts of random input, over 160,000 times without crashing. Users who already use Logseq can check how lsdoc performs against their own notes: a small Node.js based tool clones the project, runs both parsers on the user's own Logseq folder, and writes a local comparison report, without uploading any of the user's notes anywhere. No Rust installation is needed for this check, since a ready built copy of lsdoc is downloaded automatically. The project is licensed under AGPL-3.0 and is consumed as a Rust dependency by other Rust projects.
A Rust parser that reads Logseq flavored Markdown and Org files and matches Logseq's own parser exactly, meant to replace inconsistent parsing code in a sibling note app.
Mainly Rust. The stack also includes Rust, Node.js, Cargo.
AGPL-3.0: you can use and modify the code, but if you run a modified version as a network service, you must share your source changes with its users.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.