Fast, correct AsciiDoc parser, converters, and other utilities like lsp server, linter, and a live editor written.
For architecture and design decisions, see ARCHITECTURE.adoc.
# Parse and convert AsciiDoc to HTML
cargo run --bin acdc -- convert document.adoc
# Inspect the lint command and available lint-level flags
cargo run --bin acdc -- lint --help
# Run the test suite
cargo nextest runSee acdc-cli README for all CLI options, backends, and feature flags.
-
acdc-cli - AsciiDoc processor (CLI)
-
acdc-editor-wasm - WASM live editor with syntax highlighting and preview
-
acdc-lint - lint command support for AsciiDoc recommended-practice checks
-
acdc-lsp - Language Server Protocol implementation
-
acdc-parser - AsciiDoc parser library
-
converters - collection of AsciiDoc converters (HTML, manpage, markdown, PDF, terminal)
-
acdc-converters-dev - internal dev-only converter utilities (unpublished)
- PEG-based
-
Uses the
pegcrate for grammar definition. - Two-pass inline processing
-
First identifies boundaries, then parses content.
- Fail-fast
-
Stops on the first error by design.
- Preprocessor
-
Handles includes and conditionals before parsing.
Before running all-features checks, install the development prerequisites in CONTRIBUTING.md.
# Build all crates and features
cargo build --workspace --all-features
# Run tests with detailed output
cargo nextest run --no-fail-fast --all-features --all-targets
# Run clippy with pedantic lints
cargo clippy --all-targets --all-features -- --deny clippy::pedantic
# Run property-based tests
PROPTEST_CASES=1000 cargo test --package acdc-parser --lib proptests# Enable CLI trace logging for the grammar module
ACDC_LOG=acdc_parser::grammar::document=trace cargo run --bin acdc -- convert file.adoc-
Use conventional commits (
feat:,fix:,docs:, etc.). -
Run the full test suite before committing.
-
asciidoctor - Reference implementation