1 of 37

Asciidoctor

One day to contribute to Open Source!

Guillaume Grossetie

Hack commit push 2021

29th May 2021

2 of 37

What’s Asciidoctor

Asciidoctor is a fast, open source, Ruby-based text processor for parsing AsciiDoc® markup into a document model and converting it to output formats such as HTML 5, DocBook 5, manual pages, PDF, EPUB 3, and other formats.

3 of 37

= Hello, AsciiDoc!

Doc Writer <doc@example.com>

An introduction to http://asciidoc.org[AsciiDoc].

== First Section

* item 1

* item 2

[source,ruby]

puts "Hello, World!"

4 of 37

Ecosystem

Asciidoctor also has an ecosystem of extensions, converters, build plugins, and tools to help you author and publish content written in AsciiDoc.

In addition to running on Ruby, Asciidoctor can be executed on a JVM using AsciidoctorJ or in any JavaScript environment using Asciidoctor.js.

5 of 37

Quick overview

6 of 37

Asciidoctor Converters

Asciidoctor has built-in converters for HTML, DocBook 5 and manual pages.

In addition, the Asciidoctor community provides add-on converters for PDF, EPUB3, reveal.js, and more...

7 of 37

Asciidoctor Extensions

Extensions are central to the success of AsciiDoc because they open up the language to new use cases.

Asciidoctor provides an extension API that offers a superset of extension points. As a result, extensions in Asciidoctor are easy to write, powerful, and simple to distribute.

8 of 37

Asciidoctor Tooling

The Asciidoctor community (and beyond) provides a variety of build tool integrations, and tooling plugins to make it easier to work with AsciiDoc.

9 of 37

Asciidoctor.js

10 of 37

AsciidoctorJ

11 of 37

Contributing!

12 of 37

Contributing

New contributors are always welcome!

If you discover errors or omissions in the source code, documentation, or website content, please don’t hesitate to submit an issue or open a pull request with a fix.

13 of 37

How to contribute

Here are some ways you can contribute

  • by reporting bugs
  • by suggesting new features
  • by writing or editing documentation
  • by writing code with tests — No patch is too small.
    • fix typos
    • add comments
    • clean up inconsistent whitespace
    • write tests!
  • by refactoring code
  • by fixing issues
  • by reviewing patches

14 of 37

Issues and new features

Issues label as “good first”, “hackfest” or “help wanted” are up for grabs!

If the description is unclear, or if you need help to find the right issue, feel free to ask!

15 of 37

Prerequisite knowledge

Contributing to Asciidoctor requires some experience with a lightweight markup language such as Markdown or AsciiDoc.

This is not strictly required but it will help you to get started.

16 of 37

JavaScript devs

17 of 37

Good first issues for JavaScript devs

asciidoctor-cli.js

The Command Line Interface (CLI) for Asciidoctor.js, built with Yargs.

2 help wanted issues are available

18 of 37

Good first issues for JavaScript devs

asciidoctor-browser-extension

Render AsciiDoc (.ad, .adoc, .asc, .asciidoc) files as HTML inside Chrome (Chromium), Firefox, Edge, and Opera!

Built using the WebExtensions API.

6 good first issues are available

19 of 37

Good first issues for JavaScript devs

asciidoctor-kroki

An extension for Asciidoctor.js to convert diagrams to images using Kroki!

Having some knowledge about Kroki is a plus

5 good first issues are available

20 of 37

Good first issues for TypeScript devs

asciidoctor-vscode

A VS Code extension that provides live preview, syntax highlighting, and snippets for the AsciiDoc format using Asciidoctor!

Having some knowledge about VS Code extensions is a plus

5 good first issues are available

21 of 37

Java devs

22 of 37

Good first issues for Java devs

asciidoctor-maven-plugin

Convert AsciiDoc documents using Asciidoctor during an Apache Maven build.

Requires some knowledge about Maven

3 good first issues are available

23 of 37

Good first issues for Java devs

asciidoctor-intellij-plugin

A plugin for the IntelliJ platform (IntelliJ IDEA, RubyMine, etc.) that provides support for the AsciiDoc markup language.

Having some knowledge about the Intellij platform is a plus

7 good first issues are available

24 of 37

Ruby devs

25 of 37

Good first issues for Ruby devs

asciidoctor-kroki

An extension for Asciidoctor.js to convert diagrams to images using Kroki!

Having some knowledge about Kroki is a plus

5 good first issues are available

26 of 37

Good first issues for Ruby devs

asciidoctor-chart

A set of Asciidoctor extensions that adds a chart block and block macro for including charts powered by C3.js, Chartist, or Chart.js within your AsciiDoc document.

Open to new features/ideas!

27 of 37

Good first issues for Ruby devs

asciidoctor-reveal.js

A converter for Asciidoctor that transforms an AsciiDoc document into an HTML5 presentation designed to be executed by the reveal.js presentation framework.

Having some knowledge about reveal.js is a plus

13 help wanted issues are available

28 of 37

Docs

29 of 37

Documentation

The Asciidoctor project recently migrated its documentation from Awestruct to Antora

https://docs.asciidoctor.org

Though, we still need to migrate some content to complete the migration and could use some help!

https://github.com/asciidoctor/asciidoctor-community-docs

30 of 37

Good first issues for doc writers

31 of 37

Links

32 of 37

Asciidoctor Converters

33 of 37

Asciidoctor Extensions

34 of 37

Tooling

35 of 37

Asciidoctor core

36 of 37

Contribute to Asciidoctor core (Ruby)

Contributing to Asciidoctor core requires a strong knowledge about AsciiDoc and is “reserved” for experienced Ruby developers.

The code is highly optimized and a lot of people are using it, so each change is thoroughly reviewed.

37 of 37

Contribute to Asciidoctor core (Ruby)

As Asciidoctor is built using Ruby, some basic knowledge of Ruby, RubyGems and Minitest is beneficial. The following resources provide a good starting point for contributors who may not be completely comfortable with these tools:

While these resources don't cover everything needed, they serve as a good starting off point for beginners.

https://github.com/asciidoctor/asciidoctor/blob/master/CONTRIBUTING.adoc