This is an effort to write a semantic parser for the AsciiDoc language in the Rust language.
The project is in its infancy as of July 2025 and in no way ready to use.
You're welcome to follow along and contribute with the understanding that I may or may not drive this project a mature (1.0) release.
The following features are supported in the Ruby implementation of Asciidoctor, on which this project is based, but are not supported -- and will likely never be supported -- in this crate:
- Parsing UTF-16 content is not supported. (UTF-16 documents must be re-encoded to UTF-8 prior to parsing with this crate.)
- The document attribute
compat-mode
is not supported. - The parser has built-in support for HTML5 rendering similar to what is provided in Asciidoctor. Other back ends could be supported by other crates by implementing the
InlineSub stitutionRenderer
trait. They will not be directly supported in this crate. - Setting document attributes via the inline attribute entry syntax is not supported. (Note that this syntax is discouraged in the AsciiDoc language documentation.)
This crate is still under active development. I don't list work items that I've not yet started; work items that are partially implemented are documented with the to do tag in GitHub. Follow that for the most current status for planned development.
The asciidoc-parser
crate is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT.
Note that some components and dependent crates may be licensed under different terms; please check the license terms for each crate and component for details.
IMPORTANT: This repository contains a snapshot of the AsciiDoc language description which comes with its own license terms. It is not the purpose of this repository to supplant or replace that description; these documents are here as part of tooling to ensure that this crate follows the language description as closely as possible. Please consult AsciiDoc Language @ Eclipse GitLab for the official language description.
The following applies to content in the asg
and spec
folders:
The AsciiDoc Language and the accompanying materials are made available under the terms of the Eclipse Public License v 2.0 (EPL-2.0). See LICENSE to find the full license text.
The following applies to content in the docs
folder:
The user documentation for the AsciiDoc Language, located in the docs/ folder, is made available under the terms of a Creative Commons Attribution 4.0 International License (CC-BY-4.0).