Dependencies
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 to output the AsciiDoc:
java -jar saxon9he.jar -s book.xml -o book.asc d2a.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.asc d2a.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.asc d2a.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.asc d2a.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.asc d2a.xsl strip-indexterms=true
Example
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 https://[email protected]/oreillymedia/docbook2asciidoc.git
Second, pull down the repo for the book you want:
$ svn checkout https://prod.oreilly.com/internal/books/9781449307110/
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.asc /Users/odewahn/Desktop/docbook2asciidoc/d2a.xsl chunk-output=true