From 140d836e9cd54fb67b969fd82ef7ed19ba574d40 Mon Sep 17 00:00:00 2001 From: Luca Falavigna Date: Sat, 26 Apr 2014 15:11:58 +0200 Subject: Imported Upstream version 2.3.1 --- src/engine/SCons/Tool/docbook/__init__.xml | 608 +++++++++++++++++++++++++++++ 1 file changed, 608 insertions(+) create mode 100644 src/engine/SCons/Tool/docbook/__init__.xml (limited to 'src/engine/SCons/Tool/docbook/__init__.xml') diff --git a/src/engine/SCons/Tool/docbook/__init__.xml b/src/engine/SCons/Tool/docbook/__init__.xml new file mode 100644 index 0000000..1bb1e48 --- /dev/null +++ b/src/engine/SCons/Tool/docbook/__init__.xml @@ -0,0 +1,608 @@ + + + + +%scons; + +%builders-mod; + +%functions-mod; + +%tools-mod; + +%variables-mod; +]> + + + + + +This tool tries to make working with Docbook in SCons a little easier. +It provides several toolchains for creating different output formats, +like HTML or PDF. Contained in the package is +a distribution of the Docbook XSL stylesheets as of version 1.76.1. +As long as you don't specify your own stylesheets for customization, +these official versions are picked as default...which should reduce +the inevitable setup hassles for you. + +Implicit dependencies to images and XIncludes are detected automatically +if you meet the HTML requirements. The additional +stylesheet utils/xmldepend.xsl by Paul DuBois is used for this purpose. + +Note, that there is no support for XML catalog resolving offered! This tool calls +the XSLT processors and PDF renderers with the stylesheets you specified, that's it. +The rest lies in your hands and you still have to know what you're doing when +resolving names via a catalog. + +For activating the tool "docbook", you have to add its name to the Environment constructor, +like this + +env = Environment(tools=['docbook']) + +On its startup, the Docbook tool tries to find a required xsltproc processor, and +a PDF renderer, e.g. fop. So make sure that these are added to your system's environment +PATH and can be called directly, without specifying their full path. + +For the most basic processing of Docbook to HTML, you need to have installed + +the Python lxml binding to libxml2, or + + +the direct Python bindings for libxml2/libxslt, or + + +a standalone XSLT processor, currently detected are xsltproc, saxon, saxon-xslt +and xalan. + + + +Rendering to PDF requires you to have one of the applications +fop or xep installed. + + +Creating a HTML or PDF document is very simple and straightforward. Say + +env = Environment(tools=['docbook']) +env.DocbookHtml('manual.html', 'manual.xml') +env.DocbookPdf('manual.pdf', 'manual.xml') + +to get both outputs from your XML source manual.xml. As a shortcut, you can +give the stem of the filenames alone, like this: + +env = Environment(tools=['docbook']) +env.DocbookHtml('manual') +env.DocbookPdf('manual') + +and get the same result. Target and source lists are also supported: + +env = Environment(tools=['docbook']) +env.DocbookHtml(['manual.html','reference.html'], ['manual.xml','reference.xml']) + +or even + +env = Environment(tools=['docbook']) +env.DocbookHtml(['manual','reference']) + +Whenever you leave out the list of sources, you may not specify a file extension! The +Tool uses the given names as file stems, and adds the suffixes for target and source files +accordingly. + + +The rules given above are valid for the Builders &b-link-DocbookHtml;, +&b-link-DocbookPdf;, &b-link-DocbookEpub;, &b-link-DocbookSlidesPdf; and &b-link-DocbookXInclude;. For the +&b-link-DocbookMan; transformation you +can specify a target name, but the actual output names are automatically +set from the refname entries in your XML source. + + +The Builders &b-link-DocbookHtmlChunked;, &b-link-DocbookHtmlhelp; and +&b-link-DocbookSlidesHtml; are special, in that: + +they create a large set of files, where the exact names and their number depend +on the content of the source file, and + + +the main target is always named index.html, i.e. the output name for the +XSL transformation is not picked up by the stylesheets. + + + +As a result, there is simply no use in specifying a target HTML name. +So the basic syntax for these builders is always: + +env = Environment(tools=['docbook']) +env.DocbookHtmlhelp('manual') + + +If you want to use a specific XSL file, you can set the +additional xsl parameter to your +Builder call as follows: + +env.DocbookHtml('other.html', 'manual.xml', xsl='html.xsl') + +Since this may get tedious if you always use the same local naming for your customized XSL files, +e.g. html.xsl for HTML and pdf.xsl for PDF output, a set of +variables for setting the default XSL name is provided. These are: + +DOCBOOK_DEFAULT_XSL_HTML +DOCBOOK_DEFAULT_XSL_HTMLCHUNKED +DOCBOOK_DEFAULT_XSL_HTMLHELP +DOCBOOK_DEFAULT_XSL_PDF +DOCBOOK_DEFAULT_XSL_EPUB +DOCBOOK_DEFAULT_XSL_MAN +DOCBOOK_DEFAULT_XSL_SLIDESPDF +DOCBOOK_DEFAULT_XSL_SLIDESHTML + +and you can set them when constructing your environment: + +env = Environment(tools=['docbook'], + DOCBOOK_DEFAULT_XSL_HTML='html.xsl', + DOCBOOK_DEFAULT_XSL_PDF='pdf.xsl') +env.DocbookHtml('manual') # now uses html.xsl + + + +DOCBOOK_DEFAULT_XSL_HTML +DOCBOOK_DEFAULT_XSL_HTMLCHUNKED +DOCBOOK_DEFAULT_XSL_HTMLHELP +DOCBOOK_DEFAULT_XSL_PDF +DOCBOOK_DEFAULT_XSL_EPUB +DOCBOOK_DEFAULT_XSL_MAN +DOCBOOK_DEFAULT_XSL_SLIDESPDF +DOCBOOK_DEFAULT_XSL_SLIDESHTML +DOCBOOK_XSLTPROC +DOCBOOK_XMLLINT +DOCBOOK_FOP +DOCBOOK_XSLTPROCFLAGS +DOCBOOK_XMLLINTFLAGS +DOCBOOK_FOPFLAGS +DOCBOOK_XSLTPROCPARAMS +DOCBOOK_XSLTPROCCOM +DOCBOOK_XMLLINTCOM +DOCBOOK_FOPCOM + + +DOCBOOK_XSLTPROCCOMSTR +DOCBOOK_XMLLINTCOMSTR +DOCBOOK_FOPCOMSTR + + + + + + + +The default XSLT file for the &b-link-DocbookHtml; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + + +The default XSLT file for the &b-link-DocbookHtmlChunked; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The default XSLT file for the &b-link-DocbookHtmlhelp; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The default XSLT file for the &b-link-DocbookPdf; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The default XSLT file for the &b-link-DocbookEpub; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The default XSLT file for the &b-link-DocbookMan; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The default XSLT file for the &b-link-DocbookSlidesPdf; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The default XSLT file for the &b-link-DocbookSlidesHtml; builder within the +current environment, if no other XSLT gets specified via keyword. + + + + + + + +The path to the external executable xsltproc +(or saxon, xalan), if one of them +is installed. +Note, that this is only used as last fallback for XSL transformations, if +no libxml2 or lxml Python binding can be imported in the current system. + + + + + + + +The path to the external executable xmllint, if it's installed. +Note, that this is only used as last fallback for resolving +XIncludes, if no libxml2 or lxml Python binding can be imported +in the current system. + + + + + + + +The path to the PDF renderer fop or xep, +if one of them is installed (fop gets checked first). + + + + + + + +Additonal command-line flags for the external executable +xsltproc (or saxon, +xalan). + + + + + + + +Additonal command-line flags for the external executable +xmllint. + + + + + + + +Additonal command-line flags for the +PDF renderer fop or xep. + + + + + + + +Additonal parameters that are not intended for the XSLT processor executable, but +the XSL processing itself. By default, they get appended at the end of the command line +for saxon and saxon-xslt, respectively. + + + + + + + +The full command-line for the external executable +xsltproc (or saxon, +xalan). + + + + + + + +The full command-line for the external executable +xmllint. + + + + + + + +The full command-line for the +PDF renderer fop or xep. + + + + + + + +The string displayed when xsltproc is used to transform +an XML file via a given XSLT stylesheet. + + + + + + + +The string displayed when xmllint is used to resolve +XIncludes for a given XML file. + + + + + + + +The string displayed when a renderer like fop or +xep is used to create PDF output from an XML file. + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for HTML output. + +env = Environment(tools=['docbook']) +env.DocbookHtml('manual.html', 'manual.xml') + + +or simply + +env = Environment(tools=['docbook']) +env.DocbookHtml('manual') + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for chunked HTML output. +It supports the base.dir parameter. The +chunkfast.xsl file (requires "EXSLT") is used as the +default stylesheet. Basic syntax: + + +env = Environment(tools=['docbook']) +env.DocbookHtmlChunked('manual') + + +where manual.xml is the input file. + +If you use the root.filename +parameter in your own stylesheets you have to specify the new target name. +This ensures that the dependencies get correct, especially for the cleanup via scons -c: + +env = Environment(tools=['docbook']) +env.DocbookHtmlChunked('mymanual.html', 'manual', xsl='htmlchunk.xsl') + +Some basic support for the base.dir is provided. You +can add the base_dir keyword to your Builder +call, and the given prefix gets prepended to all the created filenames: + +env = Environment(tools=['docbook']) +env.DocbookHtmlChunked('manual', xsl='htmlchunk.xsl', base_dir='output/') + +Make sure that you don't forget the trailing slash for the base folder, else +your files get renamed only! + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for HTMLHELP output. +Its basic syntax is: + + +env = Environment(tools=['docbook']) +env.DocbookHtmlhelp('manual') + + +where manual.xml is the input file. + + +If you use the root.filename +parameter in your own stylesheets you have to specify the new target name. +This ensures that the dependencies get correct, especially for the cleanup via scons -c: + +env = Environment(tools=['docbook']) +env.DocbookHtmlhelp('mymanual.html', 'manual', xsl='htmlhelp.xsl') + +Some basic support for the base.dir parameter +is provided. You can add the base_dir keyword to +your Builder call, and the given prefix gets prepended to all the +created filenames: + +env = Environment(tools=['docbook']) +env.DocbookHtmlhelp('manual', xsl='htmlhelp.xsl', base_dir='output/') + +Make sure that you don't forget the trailing slash for the base folder, else +your files get renamed only! + + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for PDF output. + + +env = Environment(tools=['docbook']) +env.DocbookPdf('manual.pdf', 'manual.xml') + + + +or simply + + +env = Environment(tools=['docbook']) +env.DocbookPdf('manual') + + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for EPUB output. + + +env = Environment(tools=['docbook']) +env.DocbookEpub('manual.epub', 'manual.xml') + + + +or simply + + +env = Environment(tools=['docbook']) +env.DocbookEpub('manual') + + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for Man page output. +Its basic syntax is: + + +env = Environment(tools=['docbook']) +env.DocbookMan('manual') + + +where manual.xml is the input file. Note, that +you can specify a target name, but the actual output names are automatically +set from the refname entries in your XML source. + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for PDF slides output. + + +env = Environment(tools=['docbook']) +env.DocbookSlidesPdf('manual.pdf', 'manual.xml') + + + +or simply + + +env = Environment(tools=['docbook']) +env.DocbookSlidesPdf('manual') + + + + + + + +A pseudo-Builder, providing a Docbook toolchain for HTML slides output. + + +env = Environment(tools=['docbook']) +env.DocbookSlidesHtml('manual') + + +If you use the titlefoil.html parameter in +your own stylesheets you have to give the new target name. This ensures +that the dependencies get correct, especially for the cleanup via +scons -c: + +env = Environment(tools=['docbook']) +env.DocbookSlidesHtml('mymanual.html','manual', xsl='slideshtml.xsl') + + +Some basic support for the base.dir parameter +is provided. You +can add the base_dir keyword to your Builder +call, and the given prefix gets prepended to all the created filenames: + +env = Environment(tools=['docbook']) +env.DocbookSlidesHtml('manual', xsl='slideshtml.xsl', base_dir='output/') + +Make sure that you don't forget the trailing slash for the base folder, else +your files get renamed only! + + + + + + + + +A pseudo-Builder, for resolving XIncludes in a separate processing step. + + +env = Environment(tools=['docbook']) +env.DocbookXInclude('manual_xincluded.xml', 'manual.xml') + + + + + + + +A pseudo-Builder, applying a given XSL transformation to the input file. + + +env = Environment(tools=['docbook']) +env.DocbookXslt('manual_transformed.xml', 'manual.xml', xsl='transform.xslt') + + +Note, that this builder requires the xsl parameter +to be set. + + + + + -- cgit v1.2.3