asciidoc / doc / a2x.1.txt

Full commit
:doctype: manpage

a2x - A toolchain manager for AsciiDoc (converts Asciidoc text files to other
      file formats)


A DocBook toolchain manager that translates an AsciiDoc text file
'SOURCE_FILE' to PDF, EPUB, DVI, PS, LaTeX, XHTML (single page or
chunked), man page, HTML Help or plain text formats using
'asciidoc(1)' and other applications (see <<X1,REQUISITES section>>).
'SOURCE_FILE' can also be a DocBook file with an .xml extension.

*-a, --attribute*='ATTRIBUTE'::
  Set asciidoc(1) attribute value (shortcut for *--asciidoc-opts*='"-a
  ATTRIBUTE"' option).
  This option may be specified more than once.

  Additional 'asciidoc(1)' options.
  This option may be specified more than once.

  Load configuration file. See <<X2,CONF FILES section>>.

*-D, --destination-dir*='DESTINATION_DIR'::
  Output directory. Defaults to 'SOURCE_FILE' directory.

*-d, --doctype*='DOCTYPE'::
  DocBook document type: 'article', 'manpage' or 'book'.  Default
  document type is 'article' unless the format is 'manpage' (in which
  case it defaults to 'manpage').

*-f, --format*='FORMAT'::
  Output formats: 'chunked', 'docbook', 'dvi', 'epub', 'htmlhelp',
  'manpage', 'pdf' (default), 'ps', 'tex', 'text', 'xhtml'.

*-h, --help*::
  Print command-line syntax and program options to stdout.

  Use admonition or navigation icon images in output documents. The
  default behavior is to use text in place of icons.

  A path (relative to output files) containing admonition
  and navigation icons. Defaults to `images/icons`.
  The '--icons' option is implicit if this option is used.

*-k, --keep-artifacts*::
  Do not delete temporary build files.

  Use 'lynx(1)' to generate text formatted output. The default
  behavior is to use 'w3m(1)'.

*-L, --no-xmllint*::
  Do not check asciidoc output with 'xmllint(1)'.

  Check EPUB output with 'epubcheck(1)'.

*-n, --dry-run*::
  Do not do anything just print what would have been done.

*-r, --resource*='RESOURCE_SPEC'::
  Specify a resouce.  This option may be specified more than once.
  See the <<X3,*RESOURCES*>> section for more details.

*-m, --resource-manifest*='FILE'::
  'FILE' contains a list resources (one per line). Manifest 'FILE'
  entries are formatted just like *--resource* option arguments.
  Environment variables and tilda home directories are allowed.

  The file name of the CSS stylesheet file that is used to style HTML
  output generated by docbook-xsl. Defaults to 'docbook-xsl.css'.  The
  stylesheet must reside in a valid <<X3, resource file>> location.
  Applies to HTML formats: 'xhtml', 'epub', 'chunked', 'htmlhelp'

*-v, --verbose*::
  Print operational details to stderr.
  A second *-v* option applies the verbose option to toolchain commands.

  Print program version to stdout.

  Additional 'xsltproc(1)' options.
  This option may be specified more than once.

  Override the built-in XSL stylesheet with the custom XSL stylesheet

  Use FOP to generate PDFs. The default behavior is to use
  'dblatex(1)'.  The '--fop' option is implicit if this option is

  Additional 'fop(1)' options. If this option is specified FOP is used
  to generate PDFs.
  This option may be specified more than once.

  Additional 'dblatex(1)' options.
  This option may be specified more than once.

Options can also be set in the AsciiDoc source file. If 'SOURCE_FILE'
contains a comment line beginning with *// a2x:* then the remainder of
the line will be treated as 'a2x' command-line options. Options
spanning multiple such comment lines will be concatenated.  Zero or
more white space characters can appear between the leading *//* and
*a2x:*.  Command-line options take precedence over options set in the
source file. Example usage:

  // a2x default options.
  //    a2x: -dbook --epubcheck
  // Suppress revision history in dblatex outputs.
  //    a2x: --dblatex-opts "-P latex.output.revhistory=0"

Output files are written to the directory specified by the
*--destination-dir* option. If no *--destination-dir* option is set
output files are written to the 'SOURCE_FILE' directory.

Output files have the same name as the 'SOURCE_FILE' but with an
appropriate file name extension: `.html` for 'xhtml'; `.epub` for
'epub'; `.hhp` for 'htmlhelp'; `.pdf` for 'pdf'; `.text` for 'text',
`.xml` for 'docbook'. By convention manpages have no `.man` extension
(man page section number only).  Chunked HTML directory names have a
`.chunked` extension; chunked HTML Help directory names have a
`.htmlhelp` extension.

Same named existing files are overwritten.

In addition to generating HTML files the 'xhtml', 'epub', 'chunked'
and 'htmlhelp' formats ensure <<X3,resource files>> are copied to
their correct destination directory locations.

Resources are files (typically CSS and images) that are required by
HTML based outputs ('xhtml', 'epub', 'chunked', 'htmlhelp' formats).
'a2x' scans the generated HTML files and builds a list of required CSS
and image files. Additional resource files can be specified explicitly
using the *--resource* option.

'a2x' searches for resource files in the following locations in the
following order:

. The 'SOURCE_FILE' directory.
. Resource directories specified by the *--resource* option (searched
. Resource directories specified by the *--resource-manifest* option
  (searched recursively in the order they appear in the manifest
. The stock `images` and `stylesheets` directories in the
  'asciidoc(1)' configuration files directories (searched
. The destination directory.

When a resource file is found it is copied to the correct relative
destination directory. Missing destination sub-directories are created

There are two distinct mechanisms for specifying additional resources:

. A resource directory which will be searched recursively for missing
  resource files.
. A resouce file which will be copied to the output destination

Resources are specified by *--resource* option values and can be one
of the following formats:



  Specifies a directory (absolute or relative to the 'SOURCE_FILE')
  which is searched recursively for missing resource files.  To
  eliminate ambiguity the `<resource_dir>` name should end with a
  directory separator character.

  Specifies a resource file (absolute or relative to the
  'SOURCE_FILE') which will be copied to `<destination_file>`. If
  `<destination_file>` is not specified then it is the same as the

  Specifies the destination of the copied source file. The
  `<destination_file>` path is relative to the destination directory
  (absolute paths are not allowed). The location of the destination
  directory depends on the output 'FORMAT' (see the <<X4,*OUTPUT
  FILES*>> section for details):

  chunked, htmlhelp;; The chunked output directory.
  epub;;              The archived `OEBPS` directory.
  xhtml;;             The output *DESTINATION_DIR*.

Resource specifier examples:


When adding resources to EPUB files the mimetype is infered from the
`<destination file>` extension, if the mimetype cannot be guessed an
error occurs. The `.<ext>=<mimetype>` resource syntax can be used to
explicitly set mimetypes, for example:


`a2x -f pdf doc/source-highlight-filter.txt`::
  Generates `doc/source-highlight-filter.pdf` file.

`a2x -f xhtml -D ../doc --icons -r ../images team.txt`::
  Creates HTML file `../doc/team.html`, uses admonition icons
  and searches `../images` for any missing resources.

`a2x -f manpage doc/asciidoc.1.txt`::
  Generate `doc/asciidoc.1` manpage.

'a2x' uses the following programs:

- *Asciidoc*:
- *xsltproc*: (all formats except text):
- *DocBook XSL Stylesheets* (all formats except text):
- *dblatex* (pdf, dvi, ps, tex formats):
- *FOP* (pdf format -- alternative PDF file generator):
- *w3m* (text format):
- *Lynx* (text format -- alternative text file generator):
- *epubcheck* (epub format -- EPUB file validator):

See also the latest README file.

A configuration file contains executable Python code that overrides
the global configuration parameters in ``.  Optional configuration
files are loaded in the following order:

. `a2x.conf` from the directory containing the '' executable.
. `a2x.conf` from the AsciiDoc global configuration directory.  Skip
  this step if we are executing a locally installed (non system wide)
. `a2x.conf` from the AsciiDoc `$HOME/.asciidoc` configuration
. The 'CONF_FILE' specified in the '--conf-file' option.

Here are the default configuration file option values:

# Optional environment variable dictionary passed to
# executing programs. If set to None the existing
# environment is used.
ENV = None

# External executables.
ASCIIDOC = 'asciidoc'
XSLTPROC = 'xsltproc'
DBLATEX = 'dblatex'         # pdf generation.
FOP = 'fop'                 # pdf generation (--fop option).
W3M = 'w3m'                 # text generation.
LYNX = 'lynx'               # text generation (if no w3m).
XMLLINT = 'xmllint'         # Set to '' to disable.
EPUBCHECK = 'epubcheck'     # Set to '' to disable.
# External executable default options.

See the AsciiDoc distribution BUGS file.

a2x was originally written by Stuart Rackham. Many people have
contributed to it.


Main web site:

Copyright \(C) 2002-2010 Stuart Rackham. Free use of this software is
granted under the terms of the MIT license.