Skip to content
XSL for transforming DocBook to AsciiDoc
XSLT Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
docbook2htmlbook @ 2a3669e


This is a stylesheet for transforming DocBook 4.5 to AsciiDoc, originally started by bjepson.


This project has a submodule ( To clone down the repo with the submodule, use the --recursive flag:

git clone --recursive

If you don’t use --recursive to clone, you’ll need to initialize the subdirectory as a separate couple steps:

$ cd docbook2htmlbook
$ git submodule init
$ git submodule update

To update the submodule from then on, you can either cd into the subdirectory and pull, or you can run this command:

git submodule update --remote docbook2htmlbook

The XSLT is written in XSLT 2.0, so you’ll need to run it with an XSLT 2.0 processor. You can use Saxon, which is included in this repo.

Run It

Run a command like this on a consolidated DocBook file to output the AsciiDoc - use either d2a_docbook.xsl or d2a_htmlbook.xsl, depending on your project needs:

java -jar saxon9he.jar -s book.xml -o book.asciidoc d2a_docbook.xsl

If you’d like the AsciiDoc output to be "chunked" into separate files for each preface/chapter/appendix, add the parameter chunk-output=true:

java -jar saxon9he.jar -s book.xml -o book.asciidoc d2a_docbook.xsl chunk-output=true

Content within <bookinfo> of the DocBook source will be output as XML to the filename specified in the parameter "bookinfo-doc-name". For example:

java -jar saxon9he.jar -s book.xml -o book.asciidoc d2a_docbook.xsl chunk-output=true bookinfo-doc-name="mybookinfo.xml"

Default value of "bookinfo-doc-name" is "book-docinfo.xml"

Other Parameter Options:

  • If you’d like the Glossary element to be output inside a DocBook passthrough, instead of Asciidoc markup, add the parameter glossary-passthrough=true:

java -jar saxon9he.jar -s book.xml -o book.asciidoc d2a_docbook.xsl glossary-passthrough=true
  • If you’d like to strip out the indexterm elements, use the parameter strip-indexterms=true:

java -jar saxon9he.jar -s book.xml -o book.asciidoc d2a_docbook.xsl strip-indexterms=true


This example shows how to run this script for a subversion repository

First, you have to clone this repo so that you’ll have the code.

$ git clone --recursive

Second, pull down the repo for the book you want:

$ svn checkout

Third, make a new directory where the asciidoc files will go:

$ cd ~/Desktop
$ mkdir test
$ cd test

Finally, run the file command to convert the big docbook file into separate asciidoc files. Note that you’ll need Java 1.5 [NEED TO CONFIRM VERSION] or higher. You’ll also need to add hardcoded paths to the saxon jar file and to :

java -jar /Users/odewahn/Desktop/docbook2asciidoc/saxon9he.jar -s /Users/odewahn/Desktop/9781449307110/current/book.xml -o book.asciidoc /Users/odewahn/Desktop/docbook2asciidoc/d2a_docbook.xsl chunk-output=true
You can’t perform that action at this time.