The goal of this project is to provide a native and compatible implementation of the AsciiDoc Language specification that can be run on the Java Virtual Machine (JVM).
This will allow languages such as Java, Kotlin, Groovy, Scala, and JRuby, that run on the JVM, to process AsciiDoc-based documentation as part of a build process or application.
Today these languages can process AsciiDoc using AsciidoctorJ. However, AsciidoctorJ relies on JRuby to wrap the Asciidoctor Ruby implementation with a Java API. We want to take this opportunity to not only create a compatible implementation, but one that is written directly in Java so it has a lighter footprint and improved performance.
Eclipse Austen provides a Java implementation of the AsciiDoc Language Specification.
A pure Java implementation could provide smaller binaries and faster startup times. Access to a detailed abstract syntax tree (AST) of a parsed document and source-maps for generated documents are enabling features for improving editors and IDEs, including auto-completion and syntax checking.
This implementation will not provide any additional features to the AsciiDoc Language that are not part of the AsciiDoc Language Specification. However, it will implement the Extension API and provide hooks for users to write extensions using the extension points named by the specification.
The architecture of this implementation will be documented in order to be easier to understand and maintain by developers of this implementation. This implementation will serve as a reference for developers in other languages. Documented design decisions will offer implementations in other languages a head start.
It aims to be a library with minimal dependencies. This lets it run in environments such as GraalVM and OSGi.
This implementation will be compatible with at least the following runtime environments:
-
OpenJDK 8 / 11
-
GraalVM
-
OSGi / p2
AsciiDoc is a comprehensive, semantic markup language for producing a variety of presentation-rich output formats from content encoded in a concise, human-readable, plain text format.
This implementation will include a set of APIs for transforming the encoded content, extending the syntax/grammar and processor lifecycle, and integrating with tools and publishing platforms.
AsciiDoc is a comprehensive, semantic markup language for producing a variety of presentation-rich output formats from content encoded in a concise, human-readable, plain text format.
This implementation will include a set of APIs for transforming the encoded content, extending the syntax/grammar and processor lifecycle, and integrating with tools and publishing platforms.
None that we know of.
The Eclipse Foundation’s values of open source, transparency, and vendor neutrality are of the utmost importance to AsciiDoc and its community.
In addition, this project is created under the top level AsciiDoc Language Specification project that is already part of the Eclipse Foundation.
We will add any functionalities approved as part of the AsciiDoc Language Specification. We will also make sure that the implementation remains compatible with the ever-changing Java landscape (esp with respect to compatibility with newer Java language features).
This project will follow the specification scheduling but we plan to focus first on the following set of “core” functionalities:
-
Minimal proof-of-concept to show
-
loading - parsing - AST - conversion to HTML (with an option to add more output formats)
-
Testing harness for TCK
-
-
Growing functionality in step with the AsciiDoc Specification
-
AsciidoctorJ API compatible implementation (to be discussed)
-
AsciidoctorJ API compatible Java extensions (to be discussed)
-
Adapter for Language Server Protocol (given demand/sponsors)
Projects
- AsciidoctorJ
- IntelliJ plugin for AsciiDoc
- Pantheon 2
- docToolchain
- Eclipse Mylyn Docs
- Eclipse plugin for AsciiDoc
Organizations
- VMWare
- Red Hat
- Webtide
- OpenCore
- DB Systel
Individuals
- Alexander Schwartz
- Jason Porter
- Daniel Kocot
- Benjamin Radey / Pantheon 2
- Ralf D. Müller / docToolchain
- Robert Panzer / AsciidoctorJ
- Torkild Ulvøy Resheim / Eclipse Mylyn Docs
- Alexander Fedorov / Eclipse Passage, OSGi p2
- Lars Francke / OpenCore
- Albert Tregnaghi / Eclipse plugin for AsciiDoc
No initial contribution. Since the role of this project is to work alongside the AsciiDoc Language project to develop the specification for the language, it has to build on prior work to bootstrap. In addition to the AsciiDoc user documentation, which is the initial contribution for the AsciiDoc Language project, this project will draw ideas for the API from AsciidoctorJ. We're aware that AsciidoctorJ has shortcoming we want to address, but it also has many strong points that we want to carry over.
- Log in to post comments