Skip to content

Latest commit

 

History

History
74 lines (51 loc) · 4.18 KB

asciidoctor.adoc

File metadata and controls

74 lines (51 loc) · 4.18 KB

Asciidoctor (aka. Asciidoc)

Introduction to the Metaphor of Lightweight Markup Languages

“Writing is hard.”

That’s what experience has conditioned us to believe.

But, we can’t just avoid it, especially in the tech industry. We must write. Even the most brilliant software is useless without good documentation. If the users fail, so does the project.

Unless your UI discoverability is really good, saying “the feature isn’t documented” is the same as saying “the product can’t do it.”
— Nick Coghlan

In other words,

Live and die by documentation.
— Matthew Ginnard

Then why, oh why, do we make it more difficult by burying the content in XML schemas like DocBook, allowing complex word processors to distract us or wasting time battling with finicky WYSIWYG editors?

Imagine if writing documentation was as simple as writing an email.
It can be.

That’s the idea behind lightweight markup languages such as AsciiDoc. They offer a plain-text syntax, embellished with subtle, yet intuitive markup, that’s designed for humans to read, write and edit in raw form. The natural feel of the syntax keeps you focused on the content. Best of all, the plain text can quickly and easily be translated into output formats such as HTML5 for presentation.

AsciiDoc belongs to the family of lightweight markup languages, the most renowned of which is Markdown. AsciiDoc stands out from this group because it supports all the structural elements necessary for drafting articles, technical manuals, books, presentations and prose. In fact, it’s capable of meeting even the most advanced publishing requirements and technical semantics.

Lightweight Markup languages are designed to enable humans to write documents, and for other humans to be able to read them, as is, in raw form.

In conclusion:

Use AsciiDoc for document markup. Really. It’s actually readable by humans, easier to parse and way more flexible than XML.
— Linus Torvalds
Appendix

For a more indepth wording, see AsciiDoctors' Article on "What is AsciiDoc? Why do we need it?".

Asciidoc vs. AsciiDoctor

AsciiDoc is actually two things:

  • A mature (introduced 2002), plain-text writing format for authoring notes, articles, documentation, books, ebooks, web pages, slide decks, blog posts, man pages and more.

  • A text processor and toolchain for translating AsciiDoc documents into various formats (called backends), including HTML, DocBook, PDF and ePub.

There are two implementations of the AsciiDoc processor.

  • The original processor, named AsciiDoc, is written in Python.

  • A more modern implementation, named Asciidoctor, provides a compliant and substantially faster implementation of the AsciiDoc processor written in Ruby. This implementation can also be run on the JVM (with AsciidoctorJ) or using JavaScript (with Asciidoctor.js).

The Asciidoctor project now maintains the official definition of the AsciiDoc syntax and delivers ongoing development, as officially stated on AsciiDocs' Website and Github.

AsciiDoc itself is not a publishing format. It’s more like a shorthand. That’s where an AsciiDoc processor comes in. This Project uses AsciiDoctor as the processor.

Since AsciiDoc was and is not published as is, the processing step provided/provides an opportunity to augment the document by expanding shorthand codes, layering in integrations (e.G. to generate various Diagrams in-line), and applying a pleasant visual style. That augmentation is a large part of what Asciidoctor does.