Convert ADOC to DOCBOOK
Max file size 100mb.
ADOC vs DocBook Format Comparison
| Aspect | ADOC (Source Format) | DocBook (Target Format) |
|---|---|---|
| Format Overview |
ADOC
AsciiDoc Markup Language
AsciiDoc is a lightweight markup language designed for writing technical documentation, articles, books, and web pages. Created by Stuart Rackham in 2002, it uses intuitive plain-text formatting that can be converted to multiple output formats including HTML, PDF, EPUB, and DocBook. Lightweight Markup Human-Readable |
DocBook
XML-based Documentation Format
DocBook is a semantic XML markup language for technical documentation. Originally developed in 1991 by HAL Computer Systems and O'Reilly Media, it provides a rich vocabulary for books, articles, and technical manuals. DocBook separates content from presentation and supports single-source publishing. XML Standard Semantic Markup |
| Technical Specifications |
Structure: Plain text with markup conventions
Encoding: UTF-8 text Format: Human-readable markup Compression: None (plain text) Extensions: .adoc, .asciidoc, .asc |
Structure: Well-formed XML document
Encoding: UTF-8 XML Format: OASIS DocBook 5.x / 4.x Schema: RELAX NG, DTD, XSD Extensions: .xml, .docbook, .dbk |
| Syntax Examples |
AsciiDoc uses intuitive markup: = Document Title
Author Name
:toc:
== Chapter One
This is a *bold* and _italic_ text.
* List item 1
* List item 2
[source,python]
----
print("Hello World")
----
|
DocBook uses XML elements: <?xml version="1.0"?>
<book xmlns="http://docbook.org/ns/docbook">
<title>Document Title</title>
<chapter>
<title>Chapter One</title>
<para>This is <emphasis role="bold">bold</emphasis>
and <emphasis>italic</emphasis> text.</para>
<itemizedlist>
<listitem><para>List item 1</para></listitem>
</itemizedlist>
</chapter>
</book>
|
| Content Support |
|
|
| Advantages |
|
|
| Disadvantages |
|
|
| Common Uses |
|
|
| Best For |
|
|
| Version History |
Introduced: 2002 (Stuart Rackham)
Current: Asciidoctor 2.x Status: Active development Evolution: AsciiDoc → Asciidoctor |
Introduced: 1991 (HAL/O'Reilly)
Current: DocBook 5.1 (2016) Status: OASIS Standard Evolution: SGML → XML DocBook |
| Software Support |
Asciidoctor: Primary processor
IDEs: VS Code, IntelliJ, Atom Pandoc: Universal converter GitHub/GitLab: Native rendering |
Saxon: XSLT processor
XMLmind: Visual editor Oxygen XML: Professional editor DocBook XSL: Stylesheets for output |
Why Convert ADOC to DocBook?
Converting AsciiDoc to DocBook is essential when you need to integrate your documentation into professional publishing workflows or enterprise documentation systems. While AsciiDoc excels at quick, readable authoring, DocBook provides the semantic richness and standardization required for large-scale technical publishing.
DocBook is the industry standard for technical documentation, used by major publishers like O'Reilly Media, Red Hat, and the Linux Documentation Project. Its XML-based structure enables sophisticated single-source publishing - producing print books, online help, PDF manuals, and web documentation from a single source. The semantic markup captures the meaning of content (not just appearance), making it ideal for content management systems and automated processing.
The conversion preserves your document's logical structure - chapters become <chapter> elements, sections become <section>, code blocks become <programlisting>, and admonitions map to <note>, <warning>, etc. This semantic mapping ensures your content gains the full benefits of DocBook's rich vocabulary while maintaining the information you captured in AsciiDoc.
Key Benefits of Converting ADOC to DocBook:
- Professional Publishing: Access O'Reilly and enterprise publishing toolchains
- Single-Source Publishing: Generate PDF, HTML, EPUB, CHM from one source
- Schema Validation: Ensure document structure correctness
- XSLT Customization: Full control over output formatting
- Long-term Archival: Industry-standard format for documentation preservation
- Interoperability: Exchange documents with DocBook-based systems
- Rich Metadata: Support for revision history, legal notices, bibliographies
Practical Examples
Example 1: Technical Documentation
Input AsciiDoc file (manual.adoc):
= Installation Guide :author: Documentation Team :version: 2.0 == System Requirements Before installing, ensure your system meets these requirements: * Operating System: Linux, macOS, or Windows 10+ * Memory: 4GB RAM minimum * Disk Space: 500MB free == Installation Steps . Download the installer from the official website . Run the installer with administrator privileges . Follow the on-screen instructions WARNING: Back up your data before proceeding.
Output DocBook file (manual.xml):
<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0">
<info>
<title>Installation Guide</title>
<author><personname>Documentation Team</personname></author>
<releaseinfo>2.0</releaseinfo>
</info>
<chapter>
<title>System Requirements</title>
<para>Before installing, ensure your system meets these requirements:</para>
<itemizedlist>
<listitem><para>Operating System: Linux, macOS, or Windows 10+</para></listitem>
<listitem><para>Memory: 4GB RAM minimum</para></listitem>
<listitem><para>Disk Space: 500MB free</para></listitem>
</itemizedlist>
</chapter>
<chapter>
<title>Installation Steps</title>
<orderedlist>
<listitem><para>Download the installer...</para></listitem>
</orderedlist>
<warning><para>Back up your data before proceeding.</para></warning>
</chapter>
</book>
Example 2: API Reference
Input AsciiDoc file (api.adoc):
== getUserById Retrieves a user by their unique identifier. .Parameters [cols="1,1,3"] |=== |Name |Type |Description |id |integer |The unique user identifier |=== .Example Request [source,bash] ---- curl -X GET https://api.example.com/users/123 ---- NOTE: Requires authentication token.
Output DocBook file (api.xml):
<section>
<title>getUserById</title>
<para>Retrieves a user by their unique identifier.</para>
<table>
<title>Parameters</title>
<tgroup cols="3">
<thead>
<row><entry>Name</entry><entry>Type</entry><entry>Description</entry></row>
</thead>
<tbody>
<row><entry>id</entry><entry>integer</entry><entry>The unique user identifier</entry></row>
</tbody>
</tgroup>
</table>
<example>
<title>Example Request</title>
<programlisting language="bash">curl -X GET https://api.example.com/users/123</programlisting>
</example>
<note><para>Requires authentication token.</para></note>
</section>
Example 3: Book Chapter with Code
Input AsciiDoc file (chapter.adoc):
== Getting Started with Python
Python is a versatile programming language.
=== Your First Program
Create a file called `hello.py`:
[source,python]
----
def greet(name):
"""Return a greeting message."""
return f"Hello, {name}!"
if __name__ == "__main__":
print(greet("World"))
----
TIP: Use a virtual environment for project isolation.
Output DocBook file (chapter.xml):
<chapter>
<title>Getting Started with Python</title>
<para>Python is a versatile programming language.</para>
<section>
<title>Your First Program</title>
<para>Create a file called <filename>hello.py</filename>:</para>
<programlisting language="python"><![CDATA[
def greet(name):
"""Return a greeting message."""
return f"Hello, {name}!"
if __name__ == "__main__":
print(greet("World"))
]]></programlisting>
<tip><para>Use a virtual environment for project isolation.</para></tip>
</section>
</chapter>
Frequently Asked Questions (FAQ)
Q: What is DocBook?
A: DocBook is an XML-based markup language designed specifically for technical documentation. Developed as an OASIS standard, it provides a rich vocabulary of semantic elements for books, articles, and reference documentation. Unlike presentation-focused formats, DocBook captures the meaning of content, enabling sophisticated single-source publishing.
Q: Why use DocBook instead of staying with AsciiDoc?
A: DocBook is preferred when you need professional publishing workflows, schema validation, enterprise documentation systems, or maximum control over output formatting via XSLT. It's the standard for publishers like O'Reilly and organizations with complex documentation requirements. AsciiDoc is better for authoring; DocBook is better for publishing infrastructure.
Q: Will my AsciiDoc formatting be preserved?
A: Yes! The conversion maps AsciiDoc elements to their DocBook equivalents. Sections become <section>, code blocks become <programlisting>, admonitions (NOTE, WARNING, TIP) map to <note>, <warning>, <tip>, tables convert to DocBook table markup, and inline formatting is preserved. The semantic meaning of your content is maintained.
Q: Which DocBook version is generated?
A: The converter produces DocBook 5.x by default, which uses XML namespaces and RELAX NG schema. DocBook 5 is the current standard and recommended for new projects. If you need DocBook 4.x (DTD-based) for legacy systems, the output can typically be transformed using standard DocBook tools.
Q: How do I process DocBook output?
A: DocBook files are processed using XSLT stylesheets. The DocBook XSL stylesheets can generate HTML, PDF (via FO processors like Apache FOP), EPUB, man pages, and more. Tools like Saxon (XSLT processor), XMLmind XML Editor, or Oxygen XML provide complete DocBook workflows. Many organizations use custom XSLT for branded output.
Q: Can I convert DocBook back to AsciiDoc?
A: Yes, tools like Pandoc can convert DocBook to AsciiDoc, though some semantic information may be simplified. Asciidoctor also provides DocBook import capabilities. However, the round-trip isn't always perfect - DocBook's richer element vocabulary may not have exact AsciiDoc equivalents.
Q: Is DocBook suitable for web publishing?
A: DocBook is designed for multi-format publishing, including web. The DocBook XSL stylesheets can generate chunked HTML (one page per section), single-page HTML, or HTML5. Many documentation sites use DocBook as their source format, processing it into web-ready HTML with navigation, search, and styling.
Q: What about images and diagrams in my AsciiDoc?
A: Images are converted to DocBook <mediaobject> or <figure> elements with proper <imagedata> references. The image files themselves remain external. Diagram blocks (if using Asciidoctor Diagram) should be pre-rendered to images before conversion, as DocBook doesn't natively support diagram DSLs.