12 releases (breaking)
0.10.0 | Nov 15, 2024 |
---|---|
0.8.0 | Oct 25, 2024 |
0.6.0 | Jun 7, 2024 |
0.1.0 | Mar 28, 2024 |
#286 in Parser implementations
312 downloads per month
605KB
19K
SLoC
🤓 Asciidork
An Asciidoc parser/backend written in Rust
Installation
# requires rust/cargo toolchain
cargo install asciidork-cli
or install from source
git clone https://github.com/jaredh159/asciidork
cd asciidork
cargo build --release --bins
# vvvv -- OPTIONAL: or use rel path to `./target/release/asciidork` instead
sudo cp ./target/release/asciidork /usr/local/bin
Usage
# read the friendly manual
asciidork --help
# parse/convert/print from a file
asciidork --input test.adoc
# without a --input arg, it reads from stdin
echo "foo _bar_ *baz*" | asciidork
asciidork < test.adoc
# don't include enclosing document structure by passing `--embedded`
asciidork --input test.adoc --embedded
# send output to a file (alternatively just redirect stdout)
asciidork --input test.adoc --embedded --output test.html
# print information about perf (did i mention it's written in Rust btw?)
asciidork --input test.adoc --print-timings
# print pretty html (requires `pretter` -- install w/ `npm i -g prettier`)
asciidork --input test.adoc --embedded --format dr-html-prettier
WASM
The Asciidork parser and dr-html backend compiles to WASM to run in the browser! (Did I mention it's written in Rust?) NPM package coming soon, but for now you can see it in action here:
https://asciidork-playground.vercel.app
Be sure to pop the dev tools to see timing info.
Caveats
[!WARNING] Asciidork is not complete. It implements a sizeable majority of the documented behavior of Asciidoc, but there are some unfinished areas, missing error handling, and edge cases yet unfinished.
Known unfinished or unimplemented areas include:
- STEM
- Source highlighting
- All entity refs
PRs welcome! 👍
Dependencies
~4–15MB
~135K SLoC