This proposal has been approved and the Eclipse Austen project has been created.
Visit the project page for the latest information and development.

Eclipse Austen

Friday, March 12, 2021 - 11:45 by Anonymous (not verified)
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

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.

Scope

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

Description

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.

Description

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.

Why Here?

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.

Future Work

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).

Project Scheduling

This project will follow the specification scheduling but we plan to focus first on the following set of “core” functionalities:

  1. Minimal proof-of-concept to show 

    1. loading - parsing - AST - conversion to HTML (with an option to add more output formats)

    2. Testing harness for TCK 

  2. Growing functionality in step with the AsciiDoc Specification

  3. AsciidoctorJ API compatible implementation (to be discussed)

  4. AsciidoctorJ API compatible Java extensions (to be discussed) 

  5. Adapter for Language Server Protocol (given demand/sponsors)

Mentors
Interested Parties

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
Initial Contribution

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.

Source Repository Type