Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Creating a documentation site for users with AsciiDoc and Antora

Creating a documentation site for users with AsciiDoc and Antora

The tool Antora creates documentation websites from AsciiDoc sources stored in Git repositories. Users can browse the generated website and select the version matching the software they use. Navigation outlines, search and cross-references between pages allow users to find answers to their questions. Several open-source software projects like Camel, Debezium and Couchbase use this solution.

For developers it is normal to develop software in collaboration using their IDE and a version control system like Git. The same type of collaboration is possible when all documentation is versioned in a markup-format like AsciiDoc.

This talk presents the basics of an Antora setup and walks through all the steps from editing content in the IDE to updating the documentation site using continuous integration and delivery.

Sample Documentation created with Antora:

https://docs.antora.org/
https://debezium.io/documentation/reference/index.html
https://intellij-asciidoc-plugin.ahus1.de/docs/users-guide/index.html

Alexander Schwartz

September 03, 2021
Tweet

More Decks by Alexander Schwartz

Other Decks in Programming

Transcript

  1. Documentation for users
    with AsciiDoc and Antora
    Alexander Schwartz, Principal IT Consultant
    DevConf.US, 2021-09-03

    View Slide

  2. Motivation
    Keep your content up-to-date
    Keep your content consistent
    Publish new features for software and documentation in sync
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz
    Empower your users with documentation so they get their work done
    3

    View Slide

  3. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 4
    Empower your users with documentation so they get their work done
    Why AsciiDoc and Antora
    • Online, automated, up-to-date
    • Searchable and topic-based
    • Navigation and cross references
    • Grouped by version
    and component

    View Slide

  4. 6
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz
    Antora provides publishing tools and documentation structure
    • Structures documentation into components and modules
    • Collects AsciiDoc content from multiple Git repositories and branches
    • Converts AsciiDoc content to HTML output
    • Merges HTML output with UI theme to create a static site
    Key benefits:
    • Fast conversion built on top of Node.js and minimal dependencies
    • Modular and extendible

    View Slide

  5. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 7
    AsciiDoc is the language, Asciidoctor is a toolchain
    Asciidoctor
    https://asciidoctor.org/
    AsciiDoc
    • friction-less writing using
    plain text
    • feature-rich syntax for
    technical documentation
    • 15+ years alive and kicking
    • standardization started in
    2020 at Eclipse Foundation
    Asciidoctor
    • toolchain to create HTML
    and other outputs from
    AsciiDoc
    • OpenSource
    • runs on Java, Ruby and
    JavaScript runtimes
    • powers Antora’s AsciiDoc
    to HTML conversion
    AsciiDoc Eclipse Working
    Group

    View Slide

  6. • stay focused and don’t switch apps
    • collaborate using version control
    • IntelliJ AsciiDoc plugin
    provides Antora and AsciiDoc
    support
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 8
    Writing in the IDE
    List of editors:
    https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/

    View Slide

  7. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 10
    Antora: Structure
    • Multiple independent components
    • Each component is identified by name and version
    • Each component can have multiple modules
    • Each module has pre-defined families for pages, images,
    examples, attachments and partials (content snippets to be
    included in multiple places)
    Advanced feature:
    A component can be distributed across multiple folders,
    branches and repositories
    Component
    images
    pages partials
    Module
    … …

    View Slide

  8. Git Repo
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 11
    Antora: Process
    What the user does:
    1. Run Antora
    What Antora does:
    1. Load Antora playbook with list of repositories and branches
    2. Clone Git repositories
    3. Create HTML output from AsciiDoc
    4. Merge with UI theme and UI customizations
    5. Optional: Create search index
    6. Create output folder with static site
    Playbook
    Git Repo Antora
    Static Site
    UI Theme

    View Slide

  9. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 12
    Antora: Roles
    Role Professional Skills Technical Skills
    Author Structuring and Writing • Git (to collaborate with other authors)
    • AsciiDoc (to create content)

    View Slide

  10. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 13
    Antora: Roles
    Role Professional Skills Technical Skills
    Author Structuring and Writing • Git (to collaborate with other authors)
    • AsciiDoc (to create content)
    Docu Ops Automation and Infrastructure • Git (for initial setup)
    • YAML (for configuration)
    • package.json (for version management)
    • Continuous Integration (for automation)

    View Slide

  11. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 14
    Antora: Roles
    Role Professional Skills Technical Skills
    Author Structuring and Writing • Git (to collaborate with other authors)
    • AsciiDoc (to create content)
    Docu Ops Automation and Infrastructure • Git (for initial setup)
    • YAML (for configuration)
    • package.json (for version management)
    • Continuous Integration (for automation)
    Web Developer Web Site Creation • HTML/CSS (to customize Antora theme)

    View Slide

  12. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz
    Writer:
    1. Create first component folder structure
    2. Create antora.yml and give the component a name and version
    3. Create index.adoc in pages
    4. Create navigation entries in nav.adoc and add it to antora.yml
    Docu Ops:
    1. Install Antora (either via npm CLI or package.json file)
    2. Create playbook to generate local preview site for authors
    3. Create playbook to publish the site on the Internet
    Web Developer:
    1. Copy the existing UI theme (or create your own)
    2. Add UI customizations via supplemental files
    15
    Antora: First Steps
    📒
    📄
    📂
    📂
    📂
    📂
    📂
    📂
    📄
    📂
    📄
    📂
    📂
    Quick Start Guide:
    https://docs.antora.org/antora/2.3/install-and-run-quickstart/

    View Slide

  13. © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 16
    Demo time
    See how this works using the
    IntelliJ AsciiDoc plugin!

    View Slide

  14. Why AsciiDoc and Antora
    Keep your content up-to-date
    using collaboration as a team using version control
    Keep your content consistent
    by handling component versions and de-duplication of content
    Publish new features for software and documentation in sync
    using CI/CD tools to automate publishing
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz
    Empower your users with documentation so they get their work done
    18

    View Slide

  15. Asciidoctor
    https://asciidoctor.org/
    IntelliJ AsciiDoc Plugin
    https://intellij-asciidoc-plugin.ahus1.de/
    PlantUML
    https://plantuml.com/
    https://real-world-plantuml.com/
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 19
    Links
    @ahus1de
    Antora
    https://antora.org/
    Videos, slides and examples
    https://www.ahus1.de/post/asciidoctor-intro-and-deep-dive
    https://www.ahus1.de/post/cdc-antora-live
    Asciidoctor Kroki extension
    https://github.com/Mogztter/asciidoctor-kroki

    View Slide

  16. msg systems ag
    Robert-​Bürkle-Straße 1
    85737 Ismaning
    Germany
    value – inspired by people
    Contact
    Alexander Schwartz
    Principal IT Consultant
    +49 171 5625767
    [email protected]
    @ahus1de
    © msg | September 2021 | Documentation for users with AsciiDoc and Antora | Alexander Schwartz 20

    View Slide