10 releases (5 breaking)

0.6.0 Jun 7, 2024
0.5.1 May 31, 2024
0.4.0 Apr 24, 2024
0.3.4 Apr 23, 2024
0.1.0 Mar 28, 2024

#530 in Parser implementations

Download history 87/week @ 2024-03-29 349/week @ 2024-04-05 158/week @ 2024-04-12 261/week @ 2024-04-19 38/week @ 2024-04-26 1/week @ 2024-05-03 120/week @ 2024-05-10 36/week @ 2024-05-17 7/week @ 2024-05-24 209/week @ 2024-05-31 169/week @ 2024-06-07 13/week @ 2024-06-14 9/week @ 2024-06-28 47/week @ 2024-07-05 1/week @ 2024-07-12

57 downloads per month
Used in asciidork-cli

MIT license

335KB
11K 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 majority of the documented behavior of Asciidoc, but there are several unfinished areas, missing error handling, edge cases galore! Consider it a technology preview only for now.

Known unfinished or unimplemented areas include:

  • CSV Tables
  • STEM
  • Source highlighting
  • Include directives
  • All entity refs

PRs welcome! 👍

Dependencies

~2.3–3.5MB
~58K SLoC