[monkey-bubble: 332/753] Initial checkin of gnome-db2html3, the new DocBook xml->html converter
- From: Sven Herzberg <herzi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [monkey-bubble: 332/753] Initial checkin of gnome-db2html3, the new DocBook xml->html converter
- Date: Wed, 14 Jul 2010 22:23:34 +0000 (UTC)
commit b800d46179b9d14a5e165314d60e1ebf630372d3
Author: John Fleck <jfleck inkstain net>
Date: Wed May 30 03:30:11 2001 +0000
Initial checkin of gnome-db2html3, the new DocBook xml->html converter
2001-05-29 John Fleck <jfleck inkstain net>
Initial checkin of gnome-db2html3, the new DocBook xml->html converter
* components/help/converters/gnome-db2html3/
gnome-db2html3.c, README, AUTHORS
* components/help/converters/gnome-db2html3/gnome-customization,
which contains GNOME customization stylesheet
* components/help/converters/gnome-db2html3/docbook/, which
contains Norman Walsh's xsl stylesheet extravaganza
help-converters/docbook/AUTHORS | 1 +
help-converters/docbook/README | 6 +
help-converters/docbook/docbook/README | 107 ++
help-converters/docbook/docbook/VERSION | 6 +
help-converters/docbook/docbook/common/ca.xml | 100 +
help-converters/docbook/docbook/common/common.xsl | 1929 +++++++++++++++++++
help-converters/docbook/docbook/common/cs.xml | 108 ++
help-converters/docbook/docbook/common/da.xml | 98 +
help-converters/docbook/docbook/common/de.xml | 99 +
help-converters/docbook/docbook/common/el.xml | 104 +
help-converters/docbook/docbook/common/en.xml | 102 +
help-converters/docbook/docbook/common/es.xml | 98 +
help-converters/docbook/docbook/common/et.xml | 104 +
help-converters/docbook/docbook/common/fi.xml | 98 +
help-converters/docbook/docbook/common/fr.xml | 99 +
help-converters/docbook/docbook/common/hu.xml | 94 +
help-converters/docbook/docbook/common/id.xml | 104 +
help-converters/docbook/docbook/common/it.xml | 103 +
help-converters/docbook/docbook/common/ja.xml | 104 +
help-converters/docbook/docbook/common/ko.xml | 96 +
help-converters/docbook/docbook/common/l10n.dtd | 25 +
help-converters/docbook/docbook/common/l10n.xml | 59 +
help-converters/docbook/docbook/common/l10n.xsl | 244 +++
help-converters/docbook/docbook/common/nl.xml | 105 +
help-converters/docbook/docbook/common/no.xml | 97 +
help-converters/docbook/docbook/common/pl.xml | 96 +
help-converters/docbook/docbook/common/pt.xml | 98 +
help-converters/docbook/docbook/common/pt_br.xml | 98 +
help-converters/docbook/docbook/common/ro.xml | 104 +
help-converters/docbook/docbook/common/ru.xml | 113 ++
help-converters/docbook/docbook/common/sk.xml | 104 +
help-converters/docbook/docbook/common/sl.xml | 104 +
help-converters/docbook/docbook/common/sv.xml | 99 +
help-converters/docbook/docbook/common/zh_cn.xml | 95 +
help-converters/docbook/docbook/common/zh_tw.xml | 98 +
help-converters/docbook/docbook/html/admon.xsl | 149 ++
help-converters/docbook/docbook/html/autotoc.xsl | 511 +++++
help-converters/docbook/docbook/html/biblio.xsl | 948 ++++++++++
help-converters/docbook/docbook/html/block.xsl | 323 ++++
help-converters/docbook/docbook/html/callout.xsl | 127 ++
.../docbook/docbook/html/changebars.xsl | 73 +
.../docbook/docbook/html/chunk-common.xsl | 755 ++++++++
help-converters/docbook/docbook/html/chunk.xsl | 67 +
help-converters/docbook/docbook/html/component.xsl | 277 +++
help-converters/docbook/docbook/html/division.xsl | 130 ++
help-converters/docbook/docbook/html/docbook.xsl | 190 ++
help-converters/docbook/docbook/html/ebnf.xsl | 350 ++++
help-converters/docbook/docbook/html/footnote.xsl | 138 ++
help-converters/docbook/docbook/html/formal.xsl | 89 +
help-converters/docbook/docbook/html/glossary.xsl | 198 ++
help-converters/docbook/docbook/html/graphics.xsl | 315 ++++
help-converters/docbook/docbook/html/html.xsl | 56 +
help-converters/docbook/docbook/html/index.xsl | 478 +++++
help-converters/docbook/docbook/html/info.xsl | 53 +
help-converters/docbook/docbook/html/inline.xsl | 683 +++++++
help-converters/docbook/docbook/html/keywords.xsl | 38 +
help-converters/docbook/docbook/html/lists.xsl | 609 ++++++
help-converters/docbook/docbook/html/math.xsl | 22 +
help-converters/docbook/docbook/html/param.xsl | 947 ++++++++++
help-converters/docbook/docbook/html/pi.xsl | 191 ++
help-converters/docbook/docbook/html/qandaset.xsl | 202 ++
help-converters/docbook/docbook/html/refentry.xsl | 212 +++
help-converters/docbook/docbook/html/sections.xsl | 236 +++
help-converters/docbook/docbook/html/synop.xsl | 939 +++++++++
help-converters/docbook/docbook/html/table.xsl | 625 ++++++
.../docbook/docbook/html/titlepage.templates.xsl | 1986 ++++++++++++++++++++
help-converters/docbook/docbook/html/titlepage.xsl | 598 ++++++
help-converters/docbook/docbook/html/toc.xsl | 31 +
help-converters/docbook/docbook/html/verbatim.xsl | 280 +++
help-converters/docbook/docbook/html/xref.xsl | 633 +++++++
help-converters/docbook/docbook/html/xtchunk.xsl | 36 +
help-converters/docbook/docbook/lib/lib.xsl | 242 +++
.../gnome-customization/gnome-customization.xsl | 155 ++
help-converters/docbook/gnome-db2html3.c | 131 ++
74 files changed, 19122 insertions(+), 0 deletions(-)
---
diff --git a/help-converters/docbook/AUTHORS b/help-converters/docbook/AUTHORS
new file mode 100644
index 0000000..e34bea2
--- /dev/null
+++ b/help-converters/docbook/AUTHORS
@@ -0,0 +1 @@
+Author: John Fleck <jfleck inkstain net>
\ No newline at end of file
diff --git a/help-converters/docbook/README b/help-converters/docbook/README
new file mode 100644
index 0000000..85d68da
--- /dev/null
+++ b/help-converters/docbook/README
@@ -0,0 +1,6 @@
+This is a DocBook xml->html converter to replace gnome-db2html2 for
+GNOME help file rendering in the Nautilus Mozilla component. It uses
+libxslt and libxml2 along with Normal Walsh's stylesheets with a GNOME
+customization layer to convert docs on the fly. It also has a built-in
+sgml->xml converter to remain backwards compatible with existing sgml
+docs.
\ No newline at end of file
diff --git a/help-converters/docbook/docbook/README b/help-converters/docbook/docbook/README
new file mode 100644
index 0000000..a24699a
--- /dev/null
+++ b/help-converters/docbook/docbook/README
@@ -0,0 +1,107 @@
+README for the DocBook Stylesheets
+
+These are XSL stylesheets for the DocBk XML DTD. (They would
+also work for the DocBook DTD, modulo certain namecase problems
+and the fact that there aren't (yet) any XSL implementations
+that work with SGML source documents.)
+
+As of version 1.0, most of the elements in DocBook are handled
+in some way or another, usually reasonably, but there's still
+lots of work to be done.
+
+Manifest
+--------
+
+README this file
+TODO planned features not yet implemented (may be incomplete :-)
+BUGS known problems (may also be incomplete :-)
+VERSION the current version number (note that this is an XSL stylesheet,
+ included by both fo/docbook.xsl and html/docbook.xsl)
+WhatsNew changes since the last public release (for a complete list
+ of changes, see the ChangeLog file(s))
+bin/ scripts and other tools that work with the stylesheets
+common/ contains code common to both stylesheets
+contrib/ stylesheets contributed by others
+dtds/ dtds used by the stylesheets or stylesheet outputs
+fo/ a stylesheet that produces XSL FO result trees
+html/ a stylesheet that produces HTML/XHTML result trees
+lib/ contains schema-independent functions
+template/ contains templates for building stylesheet customization layers
+test/ test documents
+
+Changes
+-------
+
+See the ChangeLog in each directory for additional information
+about the specific changes.
+
+See WhatsNew for changes since the last release.
+
+Installation
+------------
+
+Unpack the distribution somewhere.
+
+Use
+---
+
+Process your DocBook documents with one of the following stylesheets
+using your favorite XSLT processor:
+
+ xhtml/docbook.xsl produces an XHTML result tree
+ html/docbook.xsl produces an HTML result tree
+ fo/docbook.xsl produces an FO result tree
+
+Copyright
+---------
+
+Copyright (C) 1999, 2000 Norman Walsh
+
+Ironically, assertion of copyright is done to make it _easier_
+to distribute these stylesheets. (At least one organization,
+Software in the Public Interest, requires an explicit copyright
+statement in order to redistribute the software.)
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the ``Software''), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization
+from the individuals in question.
+
+Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the
+version strings in any derived Software will be changed so that
+no possibility of confusion between the derived package and this
+Software will exist.
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+
+These stylesheets are maintained by Norman Walsh, <ndw nwalsh com>.
+
+The best way to reach norm is by email. You will find additional
+contact information at http://nwalsh.com/~ndw/
diff --git a/help-converters/docbook/docbook/VERSION b/help-converters/docbook/docbook/VERSION
new file mode 100644
index 0000000..a674aac
--- /dev/null
+++ b/help-converters/docbook/docbook/VERSION
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+<xsl:variable name="VERSION">1.29</xsl:variable>
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/common/ca.xml b/help-converters/docbook/docbook/common/ca.xml
new file mode 100644
index 0000000..fec3eff
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ca.xml
@@ -0,0 +1,100 @@
+<localization language="ca">
+
+<gentext key="abstract" text="Resum"/>
+<gentext key="appendix" text="Apèndix"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Llibre"/>
+<gentext key="caution" text="ATENCIÓ"/>
+<gentext key="caution" text="Atenció"/>
+<gentext key="chapter" text="Capítol"/>
+<gentext key="copyright" text="Dret de reproducció"/>
+<gentext key="dedication" text="Dedicatòria"/>
+<gentext key="edition" text="Edició"/>
+<gentext key="equation" text="Equació"/>
+<gentext key="example" text="Exemple"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Veure"/>
+<gentext key="glossseealso" text="Veure també"/>
+<gentext key="glossary" text="Glossari"/>
+<gentext key="important" text="IMPORTANT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Índex alfabètic"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Audiència"/>
+<gentext key="msglevel" text="Nivell"/>
+<gentext key="msgorig" text="Origen"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Part"/>
+<gentext key="preface" text="Prefaci"/>
+<gentext key="procedure" text="Procediment"/>
+<gentext key="pubdate" text="Data de publicació"/>
+<gentext key="published" text="Data de publicació"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referència"/>
+<gentext key="refname" text="Nom"/>
+<gentext key="revision" text="Revisió"/>
+<gentext key="revhistory" text="Historial de revisions"/>
+<gentext key="section" text="Secció"/>
+<gentext key="see" text="Veure"/>
+<gentext key="seealso" text="Veure tambié"/>
+<gentext key="set" text="Conjunt"/>
+<gentext key="setindex" text="Índex del conjunt"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Pas"/>
+<gentext key="tip" text="SUGGERIMENT"/>
+<gentext key="table" text="Taula"/>
+<gentext key="tip" text="Suggeriment"/>
+<gentext key="warning" text="AVÍS"/>
+<gentext key="warning" text="Avís"/>
+<gentext key="appendix" text="apèndex"/>
+<gentext key="chapter" text="capítol"/>
+<gentext key="section" text="secció"/>
+<gentext key="sidebar" text="glossa"/>
+<gentext key="step" text="pas"/>
+<gentext key="seealso" text="Veure també"/>
+
+<gentext key="TableofContents" text="Sumari"/>
+<gentext key="in" text="a"/>
+<gentext key="by" text="per"/>
+<gentext key="Edited" text="Editat"/>
+<gentext key="Editedby" text="Editat per"/>
+<gentext key="and" text="i"/>
+<gentext key="Notes" text="Notes"/>
+<gentext key="TableNotes" text="Notes"/>
+<gentext key="nonexistantelement" text="element inexistent"/>
+<gentext key="Pgs" text="Pàgs."/>
+<gentext key="unsupported" text="no reconeguda"/>
+<gentext key="xrefto" text="xref a"/>
+<gentext key="unexpectedelementname" text="Nom d'element no esperat"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Índex de taules"/>
+<gentext key="ListofExamples" text="Índex d'exemples"/>
+<gentext key="ListofFigures" text="Índex de figures"/>
+<gentext key="ListofEquations" text="Índex d'equacions"/>
+<gentext key="ListofUnknown" text="Índex de desconegut ?"/>
+
+<gentext key="nav-prev" text="Anterior"/>
+<gentext key="nav-prev-sibling" text="Retrocedir"/>
+<gentext key="nav-next-sibling" text="Avancar"/>
+<gentext key="nav-next" text="Seguent"/>
+<gentext key="nav-up" text="Pujar"/>
+<gentext key="nav-home" text="Inici"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/common.xsl b/help-converters/docbook/docbook/common/common.xsl
new file mode 100644
index 0000000..c8b905f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/common.xsl
@@ -0,0 +1,1929 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ This file contains general templates common to both the HTML and FO
+ versions of the DocBook stylesheets.
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Common Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+
+</doc:reference>
+
+<!-- ==================================================================== -->
+<!-- Establish strip/preserve whitespace rules -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entry entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+"/>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.component" xmlns="">
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.component">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node) = 'appendix'
+ or local-name($node) = 'article'
+ or local-name($node) = 'chapter'
+ or local-name($node) = 'preface'
+ or local-name($node) = 'bibliography'
+ or local-name($node) = 'glossary'
+ or local-name($node) = 'index'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.section" xmlns="">
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.section">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node) = 'section'
+ or local-name($node) = 'sect1'
+ or local-name($node) = 'sect2'
+ or local-name($node) = 'sect3'
+ or local-name($node) = 'sect4'
+ or local-name($node) = 'sect5'
+ or local-name($node) = 'refsect1'
+ or local-name($node) = 'refsect2'
+ or local-name($node) = 'refsect3'
+ or local-name($node) = 'simplesect'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a section.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a section.
+Hierarchically, components are <quote>top level</quote>, so a
+<sgmltag>sect1</sgmltag> is at level 2, <sgmltag>sect3</sgmltag> is
+at level 3, etc.</para>
+
+<para>Recursive sections are calculated down to the sixth level.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>The section level, <quote>2</quote>, <quote>3</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="section.level">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="name($node)='sect1'">2</xsl:when>
+ <xsl:when test="name($node)='sect2'">3</xsl:when>
+ <xsl:when test="name($node)='sect3'">4</xsl:when>
+ <xsl:when test="name($node)='sect4'">5</xsl:when>
+ <xsl:when test="name($node)='sect5'">6</xsl:when>
+ <xsl:when test="name($node)='section'">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../section">6</xsl:when>
+ <xsl:when test="$node/../../../../section">5</xsl:when>
+ <xsl:when test="$node/../../../section">4</xsl:when>
+ <xsl:when test="$node/../../section">3</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name($node)='simplesect'">
+ <xsl:choose>
+ <xsl:when test="$node/../../sect1">3</xsl:when>
+ <xsl:when test="$node/../../sect2">4</xsl:when>
+ <xsl:when test="$node/../../sect3">5</xsl:when>
+ <xsl:when test="$node/../../sect4">6</xsl:when>
+ <xsl:when test="$node/../../sect5">6</xsl:when>
+ <xsl:when test="$node/../../section">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../section">6</xsl:when>
+ <xsl:when test="$node/../../../../section">5</xsl:when>
+ <xsl:when test="$node/../../../section">4</xsl:when>
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+</xsl:template><!-- section.level -->
+
+<doc:template name="qanda.section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a QandASet.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+</refdescription>
+
+<refreturn>
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="qanda.section.level">
+ <xsl:variable name="section"
+ select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect5
+ |ancestor::sect4
+ |ancestor::sect3
+ |ancestor::sect2
+ |ancestor::sect1
+ |ancestor::refsect3
+ |ancestor::refsect2
+ |ancestor::refsect1)[last()]"/>
+ <xsl:choose>
+ <xsl:when test="count($section) = '0'">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="qandadiv.section.level">
+ <xsl:variable name="section.level">
+ <xsl:call-template name="qanda.section.level"/>
+ </xsl:variable>
+ <xsl:variable name="anc.divs" select="ancestor::qandadiv"/>
+
+ <xsl:value-of select="count($anc.divs) + number($section.level)"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="object.id">
+ <xsl:param name="object" select="."/>
+ <xsl:choose>
+ <xsl:when test="$object/@id">
+ <xsl:value-of select="$object/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($object)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name">
+ <!-- Return a formatted string representation of the contents of
+ the specified node (by default, the current element).
+ Handles Honorific, FirstName, SurName, and Lineage.
+ If %author-othername-in-middle% is #t, also OtherName
+ Handles *only* the first of each.
+ Format is "Honorific. FirstName [OtherName] SurName, Lineage"
+ -->
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <!-- handle corpauthor as a special case...-->
+ <xsl:when test="name($node)='corpauthor'">
+ <xsl:apply-templates select="$node"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="h_nl" select="$node//honorific[1]"/>
+ <xsl:variable name="f_nl" select="$node//firstname[1]"/>
+ <xsl:variable name="o_nl" select="$node//othername[1]"/>
+ <xsl:variable name="s_nl" select="$node//surname[1]"/>
+ <xsl:variable name="l_nl" select="$node//lineage[1]"/>
+
+ <xsl:variable name="has_h" select="$h_nl"/>
+ <xsl:variable name="has_f" select="$f_nl"/>
+ <xsl:variable name="has_o"
+ select="$o_nl and ($author.othername.in.middle != 0)"/>
+ <xsl:variable name="has_s" select="$s_nl"/>
+ <xsl:variable name="has_l" select="$l_nl"/>
+
+ <xsl:if test="$has_h">
+ <xsl:value-of select="$h_nl"/>.
+ </xsl:if>
+
+ <xsl:if test="$has_f">
+ <xsl:if test="$has_h"><xsl:text> </xsl:text></xsl:if>
+ <xsl:value-of select="$f_nl"/>
+ </xsl:if>
+
+ <xsl:if test="$has_o">
+ <xsl:if test="$has_h or $has_f"><xsl:text> </xsl:text></xsl:if>
+ <xsl:value-of select="$o_nl"/>
+ </xsl:if>
+
+ <xsl:if test="$has_s">
+ <xsl:if test="$has_h or $has_f or $has_o">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$s_nl"/>
+ </xsl:if>
+
+ <xsl:if test="$has_l">
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$l_nl"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template> <!-- person.name -->
+
+<xsl:template name="person.name.list">
+ <!-- Return a formatted string representation of the contents of
+ the current element. The current element must contain one or
+ more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs.
+
+ John Doe
+ or
+ John Doe and Jane Doe
+ or
+ John Doe, Jane Doe, and A. Nonymous
+ -->
+ <xsl:param name="person.list" select="./author|./corpauthor|./othercredit|./editor"/>
+ <xsl:param name="person.count" select="count($person.list)"/>
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>$person.count"></xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name">
+ <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+ </xsl:call-template>
+ <xsl:if test="$count<$person.count">
+ <xsl:if test="$person.count>2">,</xsl:if>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:if test="$count+1=$person.count">and </xsl:if>
+ <xsl:call-template name="person.name.list">
+ <xsl:with-param name="person.list" select="$person.list"/>
+ <xsl:with-param name="person.count" select="$person.count"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template><!-- person.name.list -->
+
+<!-- === synopsis ======================================================= -->
+<!-- The following definitions match those given in the reference
+ documentation for DocBook V3.0
+-->
+
+<xsl:variable name="arg.choice.opt.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.opt.close.str">]</xsl:variable>
+<xsl:variable name="arg.choice.req.open.str">{</xsl:variable>
+<xsl:variable name="arg.choice.req.close.str">}</xsl:variable>
+<xsl:variable name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.def.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.def.close.str">]</xsl:variable>
+<xsl:variable name="arg.rep.repeat.str">...</xsl:variable>
+<xsl:variable name="arg.rep.norepeat.str"></xsl:variable>
+<xsl:variable name="arg.rep.def.str"></xsl:variable>
+<xsl:variable name="arg.or.sep"> | </xsl:variable>
+<xsl:variable name="cmdsynopsis.hanging.indent">4pi</xsl:variable>
+
+<!-- ====================================================================== -->
+<!-- label content -->
+
+<doc:mode mode="label.content" xmlns="">
+<refpurpose>Provides access to element labels</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">label.content</literal> mode produces the
+element label.</para>
+<para>If the label is non-null, either because the
+<sgmltag class="attribute">label</sgmltag> attribute was present on the
+element or the stylesheet automatically generated a label, trailing
+punctuation is automatically added.</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="label.content">
+ <xsl:message>
+ <xsl:text>Request for label of unexpected element: </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+</xsl:template>
+
+<xsl:template match="set|book" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$part.autolabel != 0">
+ <xsl:number from="book" count="part" format="I"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="preface" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$preface.autolabel != 0">
+ <xsl:number from="book" count="preface" format="1" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$chapter.autolabel != 0">
+ <xsl:number from="book" count="chapter" format="1" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$chapter.autolabel != 0">
+ <xsl:number from="book" count="appendix" format="A" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$part.autolabel != 0">
+ <xsl:number from="book" count="reference" format="I" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentry" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+
+ <!-- if this is a nested section, label the parent -->
+ <xsl:if test="local-name(..) = 'section'">
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- does this section get labelled? -->
+ <xsl:variable name="label">
+ <xsl:call-template name="label.this.section">
+ <xsl:with-param name="section" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component != 0">
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$label != 0">
+ <xsl:number count="section"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component">
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:number count="sect1"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect2|sect3|sect4|sect5" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+
+ <!-- label the parent -->
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'sect2'">
+ <xsl:number count="sect2"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect3'">
+ <xsl:number count="sect3"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect4'">
+ <xsl:number count="sect4"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect5'">
+ <xsl:number count="sect5"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>label.content: this can't happen!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:number level="multiple" count="refsect1|refsect2|refsect3"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:number level="multiple" count="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:variable name="prefix">
+ <xsl:if test="$qanda.inherit.numeration != 0">
+ <xsl:variable name="lparent" select="(ancestor::set
+ |ancestor::book
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3)[last()]"/>
+ <xsl:if test="count($lparent)>0">
+ <xsl:apply-templates select="$lparent" mode="label.content"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="$prefix"/>
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$qandadiv.autolabel != 0">
+ <xsl:value-of select="$prefix"/>
+ <xsl:number level="multiple" count="qandadiv" format="1"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:variable name="prefix">
+ <xsl:if test="$qanda.inherit.numeration != 0">
+ <xsl:variable name="lparent" select="(ancestor::set
+ |ancestor::book
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3
+ |ancestor::qandadiv)[last()]"/>
+ <xsl:if test="count($lparent)>0">
+ <xsl:apply-templates select="$lparent" mode="label.content"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="inhlabel"
+ select="ancestor-or-self::qandaset/@defaultlabel[1]"/>
+
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="$inhlabel != ''">
+ <xsl:value-of select="$inhlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="label" select="label"/>
+
+ <xsl:choose>
+ <xsl:when test="count($label)>0">
+ <xsl:value-of select="$prefix"/>
+ <xsl:apply-templates select="$label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'qanda'">
+ <xsl:call-template name="gentext.element.name"/>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'number'">
+ <xsl:if test="name(.) = 'question'">
+ <xsl:value-of select="$prefix"/>
+ <xsl:number level="multiple" count="qandaentry" format="1"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pchap"
+ select="ancestor::chapter|ancestor::appendix"/>
+ <xsl:choose>
+ <xsl:when test="count($pchap)>0">
+ <xsl:apply-templates select="$pchap" mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ <xsl:number format="1" from="chapter|appendix" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number format="1" from="book|article" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="label.this.section">
+ <xsl:param name="section" select="."/>
+ <xsl:value-of select="$section.autolabel"/>
+</xsl:template>
+
+<doc:template name="label.this.section" xmlns="">
+<refpurpose>Returns true if $section should be labelled</refpurpose>
+<refdescription>
+<para>Returns true if the specified section should be labelled.
+By default, this template simply returns $section.autolabel, but
+custom stylesheets may override it to get more selective behavior.</para>
+</refdescription>
+</doc:template>
+
+<!-- ====================================================================== -->
+<!-- title content -->
+
+<doc:mode mode="title.content" xmlns="">
+<refpurpose>Provides access to element titles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.content</literal> mode produces the
+title of the element. This does not include the label. If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title[1]" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Request for title of unexpected element: </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+ <xsl:text>???TITLE???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="no.anchor.mode">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="anchor" mode="no.anchor.mode">
+ <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="title" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="$text-only != 0">
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(setinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(bookinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(partinfo/title|docinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="title" select="(docinfo/title
+ |prefaceinfo/title
+ |chapterinfo/title
+ |appendixinfo/title
+ |title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="title" select="(artheader/title
+ |articleinfo/title
+ |title)[1]"/>
+
+ <xsl:apply-templates select="$title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(referenceinfo/title|docinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="refmeta" select=".//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select=".//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]" mode="title.content"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]" mode="title.content"/>
+ </xsl:when>
+ <xsl:otherwise>REFENTRY WITHOUT TITLE???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$text-only != 0">
+ <xsl:value-of select="$title"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:copy-of select="$title"/></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title.content">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"
+ mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="title" select="(sectioninfo/title
+ |sect1info/title
+ |sect2info/title
+ |sect3info/title
+ |sect4info/title
+ |sect5info/title
+ |refsect1info/title
+ |refsect2info/title
+ |refsect3info/title
+ |title)[1]"/>
+
+ <xsl:apply-templates select="$title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="abstract" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- subtitle content -->
+
+<doc:mode mode="subtitle.content" xmlns="">
+<refpurpose>Provides access to element subtitles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">subtitle.content</literal> mode produces the
+subtitle of the element. If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="subtitle.content">
+ <xsl:message>
+ <xsl:text>Request for subtitle of unexpected element: </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+ <xsl:text>???SUBTITLE???</xsl:text>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="$text-only != 0">
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(setinfo/subtitle|subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(bookinfo/subtitle|subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(partinfo/subtitle
+ |docinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(docinfo/subtitle
+ |prefaceinfo/subtitle
+ |chapterinfo/subtitle
+ |appendixinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="subtitle"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(referenceinfo/subtitle
+ |docinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(refentryinfo/subtitle
+ |docinfo/subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"
+ mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(sectioninfo/subtitle
+ |sect1info/subtitle
+ |sect2info/subtitle
+ |sect3info/subtitle
+ |sect4info/subtitle
+ |sect5info/subtitle
+ |refsect1info/subtitle
+ |refsect2info/subtitle
+ |refsect3info/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- title reference (label + title) -->
+
+<doc:mode mode="title.ref" xmlns="">
+<refpurpose>Provides reference text for an element</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.ref</literal> mode produces the
+label and title of the element.
+</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>text-only</term>
+<listitem>
+<para> If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>label-wrapper</term>
+<listitem>
+<para>If <parameter>label-wrapper</parameter> is not the emtpy string,
+it must be the name of an element. The element so named will be wrapped
+around labels on output.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>title-wrapper</term>
+<listitem>
+<para>If <parameter>title.wrapper</parameter> is not the emtpy string,
+it must be the name of an element. The element so named will be wrapped
+around titles on output.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>label-wrapper-class</term>
+<listitem>
+<para>If a <parameter>label-wrapper</parameter> is provided and
+<parameter>label-wrapper-class</parameter> is not the emtpy string,
+it be used as the value for a <sgmltag class="attribute">class</sgmltag>
+attribute on the <parameter>label-wrapper</parameter> element.</para>
+<para>This is a dirty hack because it only makes sense for the HTML
+stylesheet (there's no <sgmltag class="attribute">class</sgmltag> attribute
+on the FO elements). What I'd really like to do is pass an attribute
+set as a parameter, but I can't.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>title-wrapper-class</term>
+<listitem>
+<para>If a <parameter>title-wrapper</parameter> is provided and
+<parameter>title-wrapper-class</parameter> is not the emtpy string,
+it be used as the value for a <sgmltag class="attribute">class</sgmltag>
+attribute on the <parameter>title-wrapper</parameter> element.</para>
+<para>This is a dirty hack because it only makes sense for the HTML
+stylesheet (there's no <sgmltag class="attribute">class</sgmltag> attribute
+on the FO elements). What I'd really like to do is pass an attribute
+set as a parameter, but I can't.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:mode>
+
+<xsl:template match="*" mode="title.ref">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:param name="label-wrapper" select="''"/>
+ <xsl:param name="title-wrapper" select="''"/>
+ <!-- Dirty hack -->
+ <xsl:param name="label-wrapper-class" select="''"/>
+ <xsl:param name="title-wrapper-class" select="''"/>
+
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.content"/>
+ </xsl:variable>
+
+ <xsl:if test="$label != ''">
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$label-wrapper != ''">
+ <xsl:element name="{$label-wrapper}">
+ <xsl:if test="$label-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$label-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$label"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$label"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$label"/>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$title-wrapper != ''">
+ <xsl:element name="{$title-wrapper}">
+ <xsl:if test="$title-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$title-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation
+ |chapter|appendix" mode="title.ref">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:param name="label-wrapper" select="''"/>
+ <xsl:param name="title-wrapper" select="''"/>
+ <!-- Dirty hack -->
+ <xsl:param name="label-wrapper-class" select="''"/>
+ <xsl:param name="title-wrapper-class" select="''"/>
+
+ <xsl:variable name="label">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">
+ <xsl:value-of select="name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="." mode="label.content"/>
+ </xsl:variable>
+
+ <xsl:if test="$label != ''">
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$label-wrapper != ''">
+ <xsl:element name="{$label-wrapper}">
+ <xsl:if test="$label-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$label-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$label"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$label"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$label"/>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$title-wrapper != ''">
+ <xsl:element name="{$title-wrapper}">
+ <xsl:if test="$title-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$title-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="xref.g.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%g</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:value-of select="substring-before($string, $subst)"/>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name($target)"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.t.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%t</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string"
+ select="substring-before($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="title.xref">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.n.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%n</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-before($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="number.xref">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="subst.xref.text">
+ <xsl:param name="xref.text"></xsl:param>
+ <xsl:param name="target" select="."/>
+
+ <xsl:call-template name="xref.n.subst">
+ <xsl:with-param name="string" select="$xref.text"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="filename-basename">
+ <!-- We assume all filenames are really URIs and use "/" -->
+ <xsl:param name="filename"></xsl:param>
+ <xsl:param name="recurse" select="false()"/>
+
+ <xsl:choose>
+ <xsl:when test="substring-after($filename, '/') != ''">
+ <xsl:call-template name="filename-basename">
+ <xsl:with-param name="filename"
+ select="substring-after($filename, '/')"/>
+ <xsl:with-param name="recurse" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="filename-extension">
+ <xsl:param name="filename"></xsl:param>
+ <xsl:param name="recurse" select="false()"/>
+
+ <!-- Make sure we only look at the base name... -->
+ <xsl:variable name="basefn">
+ <xsl:choose>
+ <xsl:when test="$recurse">
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="filename-basename">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="substring-after($basefn, '.') != ''">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename"
+ select="substring-after($basefn, '.')"/>
+ <xsl:with-param name="recurse" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$recurse">
+ <xsl:value-of select="$basefn"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject" xmlns="">
+<refpurpose>Selects an appropriate media object from a list</refpurpose>
+
+<refdescription>
+<para>This template examines a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+<para>If no acceptable object is located, nothing happens.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>Calls <xsl:apply-templates> on the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject">
+ <xsl:param name="olist"
+ select="imageobject|imageobjectco
+ |videoobject|audioobject|textobject"/>
+ <xsl:param name="count">1</xsl:param>
+
+ <xsl:if test="$count <= count($olist)">
+ <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+ <xsl:variable name="useobject">
+ <xsl:choose>
+ <!-- The phrase is never used -->
+ <xsl:when test="name($object)='textobject' and $object/phrase">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <!-- The first textobject is a reasonable fallback -->
+ <xsl:when test="name($object)='textobject'">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- If there's only one object, use it -->
+ <xsl:when test="$count = 1 and count($olist) = 1">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- Otherwise, see if this one is a useable graphic -->
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- peek inside imageobjectco to simplify the test -->
+ <xsl:when test="local-name($object) = 'imageobjectco'">
+ <xsl:call-template name="is.acceptable.mediaobject">
+ <xsl:with-param name="object" select="$object/imageobject"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="is.acceptable.mediaobject">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$useobject='1'">
+ <xsl:apply-templates select="$object"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject">
+ <xsl:with-param name="olist" select="$olist"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<doc:template name="is.acceptable.mediaobject" xmlns="">
+<refpurpose>Returns '1' if the specified media object is recognized.</refpurpose>
+
+<refdescription>
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+<para>The media object to consider.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>0 or 1</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.acceptable.mediaobject">
+ <xsl:param name="object"></xsl:param>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ext">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- there will only be one -->
+ <xsl:variable name="data" select="$object/videodata
+ |$object/imagedata
+ |$object/audiodata"/>
+
+ <xsl:variable name="format" select="$data/@format"/>
+
+ <xsl:variable name="graphic.format">
+ <xsl:if test="$format">
+ <xsl:call-template name="is.graphic.format">
+ <xsl:with-param name="format" select="$format"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="graphic.ext">
+ <xsl:if test="$ext">
+ <xsl:call-template name="is.graphic.extension">
+ <xsl:with-param name="ext" select="$ext"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$graphic.format = '1'">1</xsl:when>
+ <xsl:when test="$graphic.ext = '1'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="is.graphic.format">
+ <xsl:param name="format"></xsl:param>
+ <xsl:if test="$format = 'PNG'
+ or $format = 'JPG'
+ or $format = 'JPEG'
+ or $format = 'linespecific'
+ or $format = 'GIF'
+ or $format = 'GIF87a'
+ or $format = 'GIF89a'
+ or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+ <xsl:param name="ext"></xsl:param>
+ <xsl:if test="$ext = 'png'
+ or $ext = 'jpeg'
+ or $ext = 'jpg'
+ or $ext = 'avi'
+ or $ext = 'mpg'
+ or $ext = 'mpeg'
+ or $ext = 'qt'
+ or $ext = 'gif'
+ or $ext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename">
+ <xsl:param name="object"></xsl:param>
+
+ <xsl:variable name="data" select="$object/videodata
+ |$object/imagedata
+ |$object/audiodata"/>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="$data[ fileref]">
+ <xsl:value-of select="$data/@fileref"/>
+ </xsl:when>
+ <xsl:when test="$data[ entityref]">
+ <xsl:value-of select="unparsed-entity-uri($data/@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="has.ext" select="contains($filename, '.') != ''"/>
+
+ <xsl:variable name="ext">
+ <xsl:choose>
+ <xsl:when test="contains($filename, '.')">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$graphic.default.extension"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="graphic.ext">
+ <xsl:call-template name="is.graphic.extension">
+ <xsl:with-param name="ext" select="$ext"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="not($has.ext)">
+ <xsl:choose>
+ <xsl:when test="$ext != ''">
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="not($graphic.ext)">
+ <xsl:choose>
+ <xsl:when test="$graphic.default.extension != ''">
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$graphic.default.extension"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="check.id.unique" xmlns="">
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.id.unique">
+ <xsl:param name="linkend"></xsl:param>
+ <xsl:if test="$linkend != ''">
+ <xsl:variable name="targets" select="id($linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($targets)=0">
+ <xsl:message>
+ <xsl:text>Error: no ID for constraint linkend: </xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="count($targets)>1">
+ <xsl:message>
+ <xsl:text>Warning: multiple "IDs" for constraint linkend: </xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<doc:template name="check.idref.targets" xmlns="">
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.idref.targets">
+ <xsl:param name="linkend"></xsl:param>
+ <xsl:param name="element-list"></xsl:param>
+ <xsl:if test="$linkend != ''">
+ <xsl:variable name="targets" select="id($linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($target) > 0">
+ <xsl:if test="not(contains(concat(' ', $element-list, ' '), name($target)))">
+ <xsl:message>
+ <xsl:text>Error: linkend (</xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>) points to "</xsl:text>
+ <xsl:value-of select="name($target)"/>
+ <xsl:text>" not (one of): </xsl:text>
+ <xsl:value-of select="$element-list"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/common/cs.xml b/help-converters/docbook/docbook/common/cs.xml
new file mode 100644
index 0000000..42511ce
--- /dev/null
+++ b/help-converters/docbook/docbook/common/cs.xml
@@ -0,0 +1,108 @@
+<localization language="cs">
+
+<!-- Contributors:
+ Martin Perina <docbk ataco cz>
+ Jirka Kosek <jirka kosek cz>
+-->
+
+<gentext key="abstract" text="Abstrakt"/>
+<gentext key="answer" text="Otázka:"/>
+<gentext key="appendix" text="Příloha"/>
+<gentext key="article" text="Článek"/>
+<gentext key="bibliography" text="Bibliografie"/>
+<gentext key="book" text="Kniha"/>
+<gentext key="caution" text="Výstraha"/>
+<gentext key="chapter" text="Kapitola"/>
+<gentext key="colophon" text="Tiráž"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Věnování"/>
+<gentext key="edition" text="Vydání"/>
+<gentext key="equation" text="Rovnice"/>
+<gentext key="example" text="Příklad"/>
+<gentext key="figure" text="Obrázek"/>
+<gentext key="glossary" text="Slovník"/>
+<gentext key="glosssee" text="Viz"/>
+<gentext key="glossseealso" text="Viz též"/>
+<gentext key="important" text="Důležité"/>
+<gentext key="index" text="Rejstřík"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="Právní poznámka"/>
+<gentext key="msgaud" text="Publikum"/>
+<gentext key="msglevel" text="Úroveň"/>
+<gentext key="msgorig" text="Původ"/>
+<gentext key="note" text="Poznámka"/>
+<gentext key="part" text="Část"/>
+<gentext key="preface" text="Předmluva"/>
+<gentext key="procedure" text="Postup"/>
+<gentext key="published" text="Vydáno"/>
+<gentext key="question" text="Otázka:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Odkaz"/>
+<gentext key="refname" text="Jméno"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Přehled"/>
+<gentext key="revhistory" text="Přehled revizí"/>
+<gentext key="revision" text="Revize"/>
+<gentext key="section" text="Oddíl"/>
+<gentext key="sect1" text="Oddíl"/>
+<gentext key="sect2" text="Oddíl"/>
+<gentext key="sect3" text="Oddíl"/>
+<gentext key="sect4" text="Oddíl"/>
+<gentext key="sect5" text="Oddíl"/>
+<gentext key="see" text="Viz"/>
+<gentext key="seealso" text="Viz též"/>
+<gentext key="set" text="Sada"/>
+<gentext key="setindex" text="Rejstřík sady"/>
+<gentext key="sidebar" text="Marginálie"/>
+<gentext key="step" text="Krok"/>
+<gentext key="table" text="Tabulka"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="Varování"/>
+
+<gentext key="TableofContents" text="Obsah"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text=" "/>
+<gentext key="Edited" text="Vydáno"/>
+<gentext key="Editedby" text="Sestavil"/>
+<gentext key="and" text="a"/>
+<gentext key="Notes" text="Poznámky"/>
+<gentext key="TableNotes" text="Poznámky"/>
+<gentext key="nonexistantelement" text="neexistující prvek"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodporovaný"/>
+<gentext key="xrefto" text="xref k"/>
+<gentext key="unexpectedelementname" text="Neočekávané jméno prvku"/>
+<gentext key="Revisedby" text="Revidoval: "/>
+
+<gentext key="ListofTables" text="Seznam tabulek"/>
+<gentext key="ListofExamples" text="Seznam příkladů"/>
+<gentext key="ListofFigures" text="Seznam obrázků"/>
+<gentext key="ListofEquations" text="Seznam rovnic"/>
+<gentext key="ListofUnknown" text="Seznam neznámého"/>
+
+<gentext key="nav-prev" text="Předcházející"/>
+<gentext key="nav-prev-sibling" text="Rychle zpět"/>
+<gentext key="nav-next-sibling" text="Rychle dopředu"/>
+<gentext key="nav-next" text="Další"/>
+<gentext key="nav-up" text="Nahoru"/>
+<gentext key="nav-home" text="Domů"/>
+
+<gentext key="the section called" text="oddíl nazvaný"/>
+
+<dingbat key="startquote" text="„"/>
+<dingbat key="endquote" text="“"/>
+<dingbat key="nestedstartquote" text="‚"/>
+<dingbat key="nestedendquote" text="‘"/>
+<dingbat key="bullet" text="•"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="figure" text="%n"/>
+<xref element="example" text="%n"/>
+<xref element="table" text="%n"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/da.xml b/help-converters/docbook/docbook/common/da.xml
new file mode 100644
index 0000000..9590502
--- /dev/null
+++ b/help-converters/docbook/docbook/common/da.xml
@@ -0,0 +1,98 @@
+<localization language="da">
+
+<gentext key="abstract" text="Abstract"/>
+<gentext key="appendix" text="Appendiks"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="BEMÆRK"/>
+<gentext key="caution" text="Bemærk"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Tilegnet"/>
+<gentext key="edition" text="Udgave"/>
+<gentext key="equation" text="Ligning"/>
+<gentext key="example" text="Eksempel"/>
+<gentext key="figure" text="Figur"/>
+<gentext key="glosssee" text="Se"/>
+<gentext key="glossseealso" text="Se også"/>
+<gentext key="glossary" text="Stikordregister"/>
+<gentext key="important" text="VIGTIGT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Vigtigt"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Målgruppe"/>
+<gentext key="msglevel" text="Niveau"/>
+<gentext key="msgorig" text="Grundlag"/>
+<gentext key="note" text="NOTE"/>
+<gentext key="note" text="Note"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Forord"/>
+<gentext key="procedure" text="Procedure"/>
+<gentext key="pubdate" text="Udgivet"/>
+<gentext key="published" text="Published"/>
+<gentext key="refname" text="Navn"/>
+<gentext key="reference" text="Reference"/>
+<gentext key="revision" text="Revision"/>
+<gentext key="revhistory" text="Revision historie"/>
+<gentext key="section" text="Afsnit"/>
+<gentext key="see" text="Se"/>
+<gentext key="seealso" text="Se også"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Skridt"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="ADVARSEL"/>
+<gentext key="warning" text="Advarsel"/>
+<gentext key="appendix" text="appendiks"/>
+<gentext key="chapter" text="kapitel"/>
+<gentext key="section" text="sektion"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="skridt"/>
+<gentext key="seealso" text="Se også"/>
+
+<gentext key="TableofContents" text="Indholdsfortegnelse"/>
+<gentext key="by" text="af"/>
+<gentext key="Edited" text="Redigeret"/>
+<gentext key="Editedby" text="Redigeret af"/>
+<gentext key="and" text="og"/>
+<gentext key="Notes" text="Slutbemærkning:"/>
+<gentext key="TableNotes" text="Noter:"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="Pgs" text="siderne"/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Liste over alle tabeller"/>
+<gentext key="ListofExamples" text="Liste over alle eksempler"/>
+<gentext key="ListofFigures" text="Liste over alle figurer"/>
+<gentext key="ListofEquations" text="Liste over alle ligninger"/>
+<gentext key="ListofUnknown" text="Liste over alle ????"/>
+
+<gentext key="nav-prev" text="Forrige"/>
+<gentext key="nav-prev-sibling" text="Hurtigt tilbage"/>
+<gentext key="nav-next-sibling" text="Hurtigt fremad"/>
+<gentext key="nav-next" text="Næste"/>
+<gentext key="nav-up" text="Op"/>
+<gentext key="nav-home" text="Hjem"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/de.xml b/help-converters/docbook/docbook/common/de.xml
new file mode 100644
index 0000000..33d3e81
--- /dev/null
+++ b/help-converters/docbook/docbook/common/de.xml
@@ -0,0 +1,99 @@
+<localization language="de">
+<!--
+ Contributions by: Michael Burschik, burschik id-pro de
+-->
+
+<gentext key="abstract" text="Zusammenfassung"/>
+<gentext key="appendix" text="Anhang"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Literaturverzeichnis"/>
+<gentext key="book" text="Buch"/>
+<gentext key="caution" text="Achtung"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Widmung"/>
+<gentext key="edition" text="Ausgabe"/>
+<gentext key="equation" text="Gleichung"/>
+<gentext key="example" text="Beispiel"/>
+<gentext key="figure" text="Abbildung"/>
+<gentext key="glosssee" text="Siehe"/>
+<gentext key="glossseealso" text="Siehe auch"/>
+<gentext key="glossary" text="Glossar"/>
+<gentext key="important" text="WICHTIG"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Wichtig"/>
+<gentext key="index" text="Stichwortverzeichnis"/>
+<gentext key="legalnotice" text="Rechtlicher Hinweis"/>
+<gentext key="msgaud" text="Zielgruppe"/>
+<gentext key="msglevel" text="Dringlichkeit"/>
+<gentext key="msgorig" text="Ursprung"/>
+<gentext key="note" text="Anmerkung"/>
+<gentext key="part" text="Teil"/>
+<gentext key="preface" text="Vorwort"/>
+<gentext key="procedure" text="Prozedur"/>
+<gentext key="published" text="Veröffentlicht"/>
+<gentext key="refname" text="Name"/>
+<gentext key="reference" text="Verweis"/>
+<gentext key="refsection" text="Abschnitt"/>
+<gentext key="refsynopsisdiv" text="Synopsis"/> <!--en-->
+<gentext key="revhistory" text="Versionsgeschichte"/>
+<gentext key="revision" text="Version"/>
+<gentext key="section" text="Abschnitt"/>
+<gentext key="see" text="Siehe"/>
+<gentext key="seealso" text="Siehe auch"/>
+<gentext key="seealso" text="Siehe auch"/>
+<gentext key="set" text="Satz"/>
+<gentext key="setindex" text="Stichwortverzeichnis"/>
+<gentext key="sidebar" text="Randnotiz"/>
+<gentext key="step" text="Schritt"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabelle"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="WARNUNG"/>
+<gentext key="appendix" text="Anhang"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="section" text="Abschnitt"/>
+<gentext key="step" text="Schritt"/>
+
+<gentext key="TableofContents" text="Inhaltsverzeichnis"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="von"/>
+<gentext key="Edited" text="Herausgegeben"/>
+<gentext key="Editedby" text="Herausgegeben von"/>
+<gentext key="and" text="und"/>
+<gentext key="Notes" text="Fußnoten"/>
+<gentext key="TableNotes" text="Bemerkungen"/>
+<gentext key="nonexistantelement" text="nicht existierendes Element"/>
+<gentext key="Pgs" text="Seiten"/>
+<gentext key="unsupported" text="wird nicht unterstützt"/>
+<gentext key="xrefto" text="xref auf"/>
+<gentext key="unexpectedelementname" text="Unerwarteter Elementname"/>
+<gentext key="Revisedby" text="Geändert durch: "/>
+
+<gentext key="ListofTables" text="Tabellenverzeichnis"/>
+<gentext key="ListofExamples" text="Beispiele"/>
+<gentext key="ListofFigures" text="Abbildungsverzeichnis"/>
+<gentext key="ListofEquations" text="Gleichungen"/>
+<gentext key="ListofUnknown" text="???-Verzeichnis"/>
+
+<gentext key="nav-prev" text="Zurück"/>
+<gentext key="nav-prev-sibling" text="Schnell zurück"/>
+<gentext key="nav-next-sibling" text="Schnell vor"/>
+<gentext key="nav-next" text="Vor"/>
+<gentext key="nav-up" text="Hoch"/>
+<gentext key="nav-home" text="Anfang"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/el.xml b/help-converters/docbook/docbook/common/el.xml
new file mode 100644
index 0000000..ad93032
--- /dev/null
+++ b/help-converters/docbook/docbook/common/el.xml
@@ -0,0 +1,104 @@
+<localization language="el">
+
+<gentext key="abstract" text="Ðåñßëçøç"/>
+<gentext key="answer" text="Á:"/>
+<gentext key="appendix" text="ÐáñÜñôçìá"/>
+<gentext key="article" text="¶ñèñï"/>
+<gentext key="bibliography" text="Âéâëéïãñáößá"/>
+<gentext key="book" text="Âéâëßï"/>
+<gentext key="caution" text="ÐÑÏÓÏ×Ç"/>
+<gentext key="caution" text="Ðñïóï÷Þ"/>
+<gentext key="chapter" text="ÊåöÜëáéï"/>
+<gentext key="colophon" text="Êïñùíßäá"/>
+<gentext key="copyright" text="ÐíåõìáôéêÜ Äéêáéþìáôá"/>
+<gentext key="dedication" text="ÁöéÝñùóç"/>
+<gentext key="edition" text="¸êäïóç"/>
+<gentext key="equation" text="Åîßóùóç"/>
+<gentext key="example" text="ÐáñÜäåéãìá"/>
+<gentext key="figure" text="Ó÷Þìá"/>
+<gentext key="glosssee" text="Äåßôå"/>
+<gentext key="glossseealso" text="Äåßôå Åðßóçò"/>
+<gentext key="glossary" text="ÃëùóóÜñéï"/>
+<gentext key="important" text="ÓÇÌÁÍÔÉÊÏ"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Óçìáíôéêü"/>
+<gentext key="index" text="ÅõñåôÞñéï"/>
+<gentext key="legalnotice" text="ÍïìéêÞ Óçìåßùóç"/>
+<gentext key="msgaud" text="ÁêñïáôÞñéï"/>
+<gentext key="msglevel" text="Åðßðåäï"/>
+<gentext key="msgorig" text="ÐçãÞ"/>
+<gentext key="note" text="ÓÇÌÅÉÙÓÇ"/>
+<gentext key="note" text="Óçìåßùóç"/>
+<gentext key="part" text="ÌÝñïò"/>
+<gentext key="preface" text="ÅéóáãùãÞ"/>
+<gentext key="procedure" text="Äéáäéêáóßá"/>
+<gentext key="published" text="ÄçìïóéåõìÝíï"/>
+<gentext key="question" text="Å:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="ÁíáöïñÜ"/>
+<gentext key="refname" text="¼íïìá"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Óýíïøç"/>
+<gentext key="revision" text="Áíáèåþñçóç"/>
+<gentext key="revhistory" text="Éóôïñéêü ÁíáèåùñÞóåùí"/>
+<gentext key="section" text="ÔìÞìá"/>
+<gentext key="see" text="Äåßôå"/>
+<gentext key="seealso" text="Äåßôå Åðßóçò"/>
+<gentext key="set" text="Óýíïëï"/>
+<gentext key="setindex" text="ÅõñåôÞñéï Óõíüëùí"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="ÖÜóç"/>
+<gentext key="tip" text="ÕÐÏÄÅÉÎÇ"/>
+<gentext key="table" text="Ðßíáêáò"/>
+<gentext key="tip" text="Õðüäåéîç"/>
+<gentext key="warning" text="ÐÑÏÅÉÄÏÐÏÉÇÓÇ"/>
+<gentext key="warning" text="Ðñïåéäïðïßçóç"/>
+<gentext key="appendix" text="ðáñÜñôçìá"/>
+<gentext key="chapter" text="êåöÜëáéï"/>
+<gentext key="section" text="ôìÞìá"/>
+<gentext key="sidebar" text="åðåîçãçìáôéêü ðëåõñéêü áñèñßäéï"/>
+<gentext key="step" text="öÜóç"/>
+<gentext key="seealso" text="Äåßôå åðßóçò"/>
+
+<gentext key="TableofContents" text="Ðßíáêáò Ðåñéå÷ïìÝíùí"/>
+<gentext key="in" text="óå"/>
+<gentext key="by" text="áðü"/>
+<gentext key="Edited" text="ÅðéìÝëåéá"/>
+<gentext key="Editedby" text="ÅðéìÝëåéá áðü"/>
+<gentext key="and" text="êáé"/>
+<gentext key="Notes" text="Óçìåéþóåéò"/>
+<gentext key="TableNotes" text="Ðßíáêáò Óçìåéþóåùí"/>
+<gentext key="nonexistantelement" text="ìç-õðáñêôü óôïé÷åßï"/>
+<gentext key="Pgs" text="Óëäò."/>
+<gentext key="unsupported" text="ìç õðïóôçñéæüìåíï"/>
+<gentext key="xrefto" text="áíôéðáñáðïìðÞ óå"/>
+<gentext key="unexpectedelementname" text="Ìç áíáìåíüìåíï üíïìá óôïé÷åßïõ"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="ÊáôÜëïãïò ÐéíÜêùí"/>
+<gentext key="ListofExamples" text="ÊáôÜëïãïò ÐáñáäåéãìÜôùí"/>
+<gentext key="ListofFigures" text="ÊáôÜëïãïò Ó÷çìÜôùí"/>
+<gentext key="ListofEquations" text="ÊáôÜëïãïò Åîéóþóåùí"/>
+<gentext key="ListofUnknown" text="ÊáôÜëïãïò Áãíþóôùí"/>
+
+<gentext key="nav-prev" text="Ðñïçã"/>
+<gentext key="nav-prev-sibling" text="Ðñïò ôçí áñ÷Þ"/>
+<gentext key="nav-next-sibling" text="Ðñïò ôï ôÝëïò"/>
+<gentext key="nav-next" text="Åðüìåíï"/>
+<gentext key="nav-up" text="ÐÜíù"/>
+<gentext key="nav-home" text="Áñ÷Þ"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/en.xml b/help-converters/docbook/docbook/common/en.xml
new file mode 100644
index 0000000..a105370
--- /dev/null
+++ b/help-converters/docbook/docbook/common/en.xml
@@ -0,0 +1,102 @@
+<localization language="en">
+
+<gentext key="abstract" text="Abstract"/>
+<gentext key="answer" text="A:"/>
+<gentext key="appendix" text="Appendix"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliography"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="Caution"/>
+<gentext key="chapter" text="Chapter"/>
+<gentext key="colophon" text="Colophon"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedication"/>
+<gentext key="edition" text="Edition"/>
+<gentext key="equation" text="Equation"/>
+<gentext key="example" text="Example"/>
+<gentext key="figure" text="Figure"/>
+<gentext key="glossary" text="Glossary"/>
+<gentext key="glosssee" text="See"/>
+<gentext key="glossseealso" text="See Also"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Index"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="Legal Notice"/>
+<gentext key="msgaud" text="Audience"/>
+<gentext key="msglevel" text="Level"/>
+<gentext key="msgorig" text="Origin"/>
+<gentext key="note" text="Note"/>
+<gentext key="part" text="Part"/>
+<gentext key="preface" text="Preface"/>
+<gentext key="procedure" text="Procedure"/>
+<gentext key="published" text="Published"/>
+<gentext key="question" text="Q:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Reference"/>
+<gentext key="refname" text="Name"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Synopsis"/>
+<gentext key="revhistory" text="Revision History"/>
+<gentext key="revision" text="Revision"/>
+<gentext key="section" text="Section"/>
+<gentext key="sect1" text="Section"/>
+<gentext key="sect2" text="Section"/>
+<gentext key="sect3" text="Section"/>
+<gentext key="sect4" text="Section"/>
+<gentext key="sect5" text="Section"/>
+<gentext key="see" text="See"/>
+<gentext key="seealso" text="See Also"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Step"/>
+<gentext key="table" text="Table"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="Warning"/>
+
+<gentext key="TableofContents" text="Table of Contents"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="by"/>
+<gentext key="Edited" text="Edited"/>
+<gentext key="Editedby" text="Edited by"/>
+<gentext key="and" text="and"/>
+<gentext key="Notes" text="Notes"/>
+<gentext key="TableNotes" text="Notes"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="Pgs" text="Pgs."/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by:"/>
+
+<gentext key="ListofTables" text="List of Tables"/>
+<gentext key="ListofExamples" text="List of Examples"/>
+<gentext key="ListofFigures" text="List of Figures"/>
+<gentext key="ListofEquations" text="List of Equations"/>
+<gentext key="ListofUnknown" text="List of Unknown"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<gentext key="the section called" text="the section called"/>
+
+<gentext key="index symbols" text="Symbols"/>
+
+<dingbat key="startquote" text='“'/>
+<dingbat key="endquote" text='”'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/es.xml b/help-converters/docbook/docbook/common/es.xml
new file mode 100644
index 0000000..78483df
--- /dev/null
+++ b/help-converters/docbook/docbook/common/es.xml
@@ -0,0 +1,98 @@
+<localization language="es">
+
+<gentext key="abstract" text="Resumen"/>
+<gentext key="appendix" text="Apéndice"/>
+<gentext key="article" text="Artículo"/>
+<gentext key="bibliography" text="Bibliografía"/>
+<gentext key="book" text="Libro"/>
+<gentext key="caution" text="ATENCIÓN"/>
+<gentext key="caution" text="Atención"/>
+<gentext key="chapter" text="Capítulo"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicado"/>
+<gentext key="edition" text="Edición"/>
+<gentext key="equation" text="Ecuación"/>
+<gentext key="example" text="Ejemplo"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Ver"/>
+<gentext key="glossseealso" text="Ver también"/>
+<gentext key="glossary" text="Glosario"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="Índice"/>
+<gentext key="legalnotice" text="Aviso Legal"/>
+<gentext key="msgaud" text="Audiencia"/>
+<gentext key="msglevel" text="Nivel"/>
+<gentext key="msgorig" text="Origen"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefacio"/>
+<gentext key="procedure" text="Procedimiento"/>
+<gentext key="pubdate" text="Fecha de publicación"/>
+<gentext key="published" text="Publicado"/>
+<gentext key="refname" text="Nombre"/>
+<gentext key="reference" text="Referencia"/>
+<gentext key="revision" text="Revisión"/>
+<gentext key="revhistory" text="Historial de revisiones"/>
+<gentext key="section" text="Sección"/>
+<gentext key="see" text="Ver"/>
+<gentext key="seealso" text="Ver También"/>
+<gentext key="set" text="Conjunto"/>
+<gentext key="setindex" text="Índice del conjunto"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Paso"/>
+<gentext key="tip" text="SUGERENCIA"/>
+<gentext key="table" text="Tabla"/>
+<gentext key="tip" text="Sugerencia"/>
+<gentext key="warning" text="AVISO"/>
+<gentext key="warning" text="Aviso"/>
+<gentext key="appendix" text="apéndice"/>
+<gentext key="chapter" text="capítulo"/>
+<gentext key="section" text="sección"/>
+<gentext key="step" text="paso"/>
+<gentext key="seealso" text="Ver También"/>
+
+<gentext key="TableofContents" text="Tabla de contenidos"/>
+<gentext key="in" text="en"/>
+<gentext key="by" text="por"/>
+<gentext key="Edited" text="Editado"/>
+<gentext key="Editedby" text="Editado por"/>
+<gentext key="and" text="y"/>
+<gentext key="Notes" text="Notas"/>
+<gentext key="TableNotes" text="Notas"/>
+<gentext key="nonexistantelement" text="elemento inexistente"/>
+<gentext key="Pgs" text="Pags."/>
+<gentext key="unsupported" text="no soportado"/>
+<gentext key="xrefto" text="referido a"/>
+<gentext key="unexpectedelementname" text="Nombre de elemento inesperado"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Lista de tablas"/>
+<gentext key="ListofExamples" text="Tabla de ejemplos"/>
+<gentext key="ListofFigures" text="Tabla de figuras"/>
+<gentext key="ListofEquations" text="Tabla de ecuaciones"/>
+<gentext key="ListofUnknown" text="Lista de ???"/>
+
+<gentext key="nav-prev" text="Anterior"/>
+<gentext key="nav-prev-sibling" text="Retroceder"/>
+<gentext key="nav-next-sibling" text="Avanzar"/>
+<gentext key="nav-next" text="Siguiente"/>
+<gentext key="nav-up" text="Subir"/>
+<gentext key="nav-home" text="Inicio"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/et.xml b/help-converters/docbook/docbook/common/et.xml
new file mode 100644
index 0000000..4c63adb
--- /dev/null
+++ b/help-converters/docbook/docbook/common/et.xml
@@ -0,0 +1,104 @@
+<localization language="et">
+
+<gentext key="abstract" text="Ülevaade"/>
+<gentext key="answer" text="V:"/>
+<gentext key="appendix" text="Lisa"/>
+<gentext key="article" text="Artikkel"/>
+<gentext key="bibliography" text="Bibliograafia"/>
+<gentext key="book" text="Raamat"/>
+<gentext key="caution" text="ETTEVAATUST"/>
+<gentext key="caution" text="Ettevaatust"/>
+<gentext key="chapter" text="Peatükk"/>
+<gentext key="colophon" text="Lõpumärgis"/>
+<gentext key="copyright" text="Autoriõigus"/>
+<gentext key="dedication" text="Pühendus"/>
+<gentext key="edition" text="Väljaanne"/>
+<gentext key="equation" text="Valem"/>
+<gentext key="example" text="Näide"/>
+<gentext key="figure" text="Joonis"/>
+<gentext key="glosssee" text="Vt."/>
+<gentext key="glossseealso" text="Vt. ka"/>
+<gentext key="glossary" text="Sõnastik"/>
+<gentext key="important" text="OLULINE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Oluline"/>
+<gentext key="index" text="Aineregister"/>
+<gentext key="legalnotice" text="Autoriõiguse märge"/>
+<gentext key="msgaud" text="Auditoorium"/>
+<gentext key="msglevel" text="Tase"/>
+<gentext key="msgorig" text="Algallikas"/>
+<gentext key="note" text="MÄRKUS"/>
+<gentext key="note" text="Märkus"/>
+<gentext key="part" text="Osa"/>
+<gentext key="preface" text="Eessõna"/>
+<gentext key="procedure" text="Protseduur"/>
+<gentext key="published" text="Avaldatud"/>
+<gentext key="question" text="K:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Viide"/>
+<gentext key="refname" text="Nimi"/>
+<gentext key="refsection" text="Lõik"/>
+<gentext key="refsynopsisdiv" text="Sünopsis"/>
+<gentext key="revision" text="Vigade parandus"/>
+<gentext key="revhistory" text="Vigade paranduste ajalugu"/>
+<gentext key="section" text="Sektsioon"/>
+<gentext key="see" text="Vt."/>
+<gentext key="seealso" text="Vt. ka"/>
+<gentext key="set" text="Sea"/>
+<gentext key="setindex" text="Sea indeks"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Samm"/>
+<gentext key="tip" text="VIHJE"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Vihje"/>
+<gentext key="warning" text="HOIATUS"/>
+<gentext key="warning" text="Hoiatus"/>
+<gentext key="appendix" text="lisa"/>
+<gentext key="chapter" text="peatükk"/>
+<gentext key="section" text="lõik"/>
+<gentext key="sidebar" text="külgriba"/>
+<gentext key="step" text="samm"/>
+<gentext key="seealso" text="Vt. ka"/>
+
+<gentext key="TableofContents" text="Sisukord"/>
+<gentext key="in" text=""/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Redaktsioon"/>
+<gentext key="Editedby" text="Redaktsiooni autor(id)"/>
+<gentext key="and" text="ja"/>
+<gentext key="Notes" text="Märkused"/>
+<gentext key="TableNotes" text="Märkused"/>
+<gentext key="nonexistantelement" text="mitte eksisteeriv element"/>
+<gentext key="Pgs" text="Lk."/>
+<gentext key="unsupported" text="toetuseta"/>
+<gentext key="xrefto" text="viide"/>
+<gentext key="unexpectedelementname" text="Ootamatu elemendi nimi"/>
+<gentext key="Revisedby" text="Üle vaadanud: "/>
+
+<gentext key="ListofTables" text="Tabelite nimekiri"/>
+<gentext key="ListofExamples" text="Näidete nimekiri"/>
+<gentext key="ListofFigures" text="Jooniste nimekiri"/>
+<gentext key="ListofEquations" text="Valemite nimekiri"/>
+<gentext key="ListofUnknown" text="Tundmatute nimekiri"/>
+
+<gentext key="nav-prev" text="Eelmine"/>
+<gentext key="nav-prev-sibling" text="Kiiresti tagasi"/>
+<gentext key="nav-next-sibling" text="Kiiresti edasi"/>
+<gentext key="nav-next" text="Järgmine"/>
+<gentext key="nav-up" text="Üles"/>
+<gentext key="nav-home" text="Koju"/>
+
+<dingbat key="startquote" text='“'/>
+<dingbat key="endquote" text='”'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/fi.xml b/help-converters/docbook/docbook/common/fi.xml
new file mode 100644
index 0000000..5d25725
--- /dev/null
+++ b/help-converters/docbook/docbook/common/fi.xml
@@ -0,0 +1,98 @@
+<localization language="fi">
+
+<gentext key="abstract" text="Lyhennelmä"/>
+<gentext key="appendix" text="Liite"/>
+<gentext key="article" text="Artikkeli"/>
+<gentext key="bibliography" text="Lähteet"/>
+<gentext key="book" text="Kirja"/>
+<gentext key="caution" text="VARO"/>
+<gentext key="caution" text="Varo"/>
+<gentext key="chapter" text="Luku"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Omistus"/>
+<gentext key="edition" text="Edition"/>
+<gentext key="equation" text="Kaava"/>
+<gentext key="example" text="Esimerkki"/>
+<gentext key="figure" text="Kuva"/>
+<gentext key="glosssee" text="Katso"/>
+<gentext key="glossseealso" text="Katso myös"/>
+<gentext key="glossary" text="Sanasto"/>
+<gentext key="important" text="TÄRKEÄÄ"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Tärkeää"/>
+<gentext key="index" text="Indeksi"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Yleisö"/>
+<gentext key="msglevel" text="Taso"/>
+<gentext key="msgorig" text="Alkuperä"/>
+<gentext key="note" text="HUOMAA"/>
+<gentext key="note" text="Huomaa"/>
+<gentext key="part" text="Osa"/>
+<gentext key="preface" text="Esipuhe"/>
+<gentext key="procedure" text="Aliohjelma"/>
+<gentext key="published" text="Julkaistu"/>
+<gentext key="refname" text="Nimi"/>
+<gentext key="reference" text="Lähdeluettelo"/>
+<gentext key="revision" text="Versio"/>
+<gentext key="revhistory" text="Versiohistoria"/>
+<gentext key="section" text="Kohta"/>
+<gentext key="see" text="Katso"/>
+<gentext key="seealso" text="Katso myös"/>
+<gentext key="set" text="Kokoelma"/>
+<gentext key="setindex" text="Kokoelman indeksi"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Step"/>
+<gentext key="tip" text="VIHJE"/>
+<gentext key="table" text="Taulu"/>
+<gentext key="tip" text="Vihje"/>
+<gentext key="warning" text="VAROITUS"/>
+<gentext key="warning" text="Varoitus"/>
+<gentext key="appendix" text="liite"/>
+<gentext key="chapter" text="luku"/>
+<gentext key="section" text="kohta"/>
+<gentext key="sidebar" text="sivupalkki"/>
+<gentext key="step" text="step"/>
+<gentext key="seealso" text="Katso myös"/>
+
+<gentext key="TableofContents" text="Sisällys"/>
+<gentext key="in" text="teoksessa"/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Toim."/>
+<gentext key="Editedby" text="Toimittanut"/>
+<gentext key="and" text="ja"/>
+<gentext key="Notes" text=""/>
+<gentext key="TableNotes" text=""/>
+<gentext key="nonexistantelement" text="elementtiä ei ole olemassa"/>
+<gentext key="Pgs" text="Sivut"/>
+<gentext key="unsupported" text="ei tueta"/>
+<gentext key="xrefto" text="xref johonkin"/>
+<gentext key="unexpectedelementname" text="Odottamaton elementin nimi"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Luettelo tauluista"/>
+<gentext key="ListofExamples" text="Luettelo esimerkeistä"/>
+<gentext key="ListofFigures" text="Luettelo kuvista"/>
+<gentext key="ListofEquations" text="Luettelo esimerkeistä"/>
+<gentext key="ListofUnknown" text="Luettelo tuntemattomista"/>
+
+<gentext key="nav-prev" text="Edellinen"/>
+<gentext key="nav-prev-sibling" text="Nopeasti taaksepäin"/>
+<gentext key="nav-next-sibling" text="Nopeasti eteenpäin"/>
+<gentext key="nav-next" text="Seuraava"/>
+<gentext key="nav-up" text="Ylös"/>
+<gentext key="nav-home" text="Alkuun"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/fr.xml b/help-converters/docbook/docbook/common/fr.xml
new file mode 100644
index 0000000..f99c07f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/fr.xml
@@ -0,0 +1,99 @@
+<localization language="fr">
+
+<gentext key="abstract" text="Résumé"/>
+<gentext key="answer" text="R:"/>
+<gentext key="appendix" text="Annexe"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliographie"/>
+<gentext key="book" text="Livre"/>
+<gentext key="caution" text="Attention"/>
+<gentext key="chapter" text="Chapitre"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dédicace"/>
+<gentext key="edition" text="Édition"/>
+<gentext key="equation" text="Équation"/>
+<gentext key="example" text="Exemple"/>
+<gentext key="figure" text="Figure"/>
+<gentext key="glosssee" text="Voir"/>
+<gentext key="glossseealso" text="Voir aussi"/>
+<gentext key="glossary" text="Glossaire"/>
+<gentext key="important" text="IMPORTANT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text="Note légale"/>
+<gentext key="msgaud" text="Public visé"/>
+<gentext key="msglevel" text="Niveau"/>
+<gentext key="msgorig" text="Origine"/>
+<gentext key="note" text="Note"/>
+<gentext key="part" text="Partie"/>
+<gentext key="preface" text="Préface"/>
+<gentext key="procedure" text="Procédure"/>
+<gentext key="published" text="Publié"/>
+<gentext key="question" text="Q:"/>
+<gentext key="refentry" text=""/>
+<gentext key="refname" text="Nom"/>
+<gentext key="refsection" text=""/>
+<gentext key="reference" text="Référence"/>
+<gentext key="revhistory" text="Historique des versions"/>
+<gentext key="revision" text="Version"/>
+<gentext key="section" text="Section"/>
+<gentext key="see" text="Voir"/>
+<gentext key="seealso" text="Voir Aussi"/>
+<gentext key="seealso" text="Voir aussi"/>
+<gentext key="set" text="Ensemble"/>
+<gentext key="setindex" text="Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Étape"/>
+<gentext key="tip" text="TUYAU"/>
+<gentext key="table" text="Tableau"/>
+<gentext key="tip" text="Tuyau"/>
+<gentext key="warning" text="Avertissement"/>
+<gentext key="appendix" text="annexe"/>
+<gentext key="chapter" text="chapitre"/>
+<gentext key="sidebar" text=""/>
+<gentext key="section" text="section"/>
+<gentext key="step" text="étape"/>
+
+<gentext key="TableofContents" text="Table des matières"/>
+<gentext key="in" text="dans"/>
+<gentext key="by" text="par"/>
+<gentext key="Edited" text="Publié"/>
+<gentext key="Editedby" text="Publié par"/>
+<gentext key="and" text="et"/>
+<gentext key="Notes" text="Notes"/>
+<gentext key="TableNotes" text="Remarques"/>
+<gentext key="nonexistantelement" text="Cet élément n'existe pas"/>
+<gentext key="Pgs" text="Pages"/>
+<gentext key="unsupported" text="Non reconnu par le système"/>
+<gentext key="xrefto" text="Référence vers"/>
+<gentext key="unexpectedelementname" text="Nom d'élément non attendu"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Liste des tableaux"/>
+<gentext key="ListofExamples" text="Liste des exemples"/>
+<gentext key="ListofFigures" text="Liste des illustrations"/>
+<gentext key="ListofEquations" text="Liste des équations"/>
+<gentext key="ListofUnknown" text="Liste des inconnues"/>
+
+<gentext key="nav-prev" text="Précédent"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Suivant"/>
+<gentext key="nav-up" text="Niveau supérieur"/>
+<gentext key="nav-home" text="Sommaire"/>
+
+<dingbat key="startquote" text="«"/>
+<dingbat key="endquote" text="»"/>
+<dingbat key="nestedstartquote" text="«"/>
+<dingbat key="nestedendquote" text="»"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/hu.xml b/help-converters/docbook/docbook/common/hu.xml
new file mode 100644
index 0000000..d37e06f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/hu.xml
@@ -0,0 +1,94 @@
+<localization language="hu">
+
+<gentext key="abstract" text="Kivonat"/>
+<gentext key="answer" text="V:"/>
+<gentext key="appendix" text="Fűggelék"/>
+<gentext key="article" text="Cikk"/>
+<gentext key="bibliography" text="Irodalomjegyzék"/>
+<gentext key="book" text="Kőnyv"/>
+<gentext key="caution" text="Figyelem"/>
+<gentext key="chapter" text="Fejezet"/>
+<gentext key="colophon" text="Végszó"/>
+<gentext key="copyright" text="Vࣩdjegy"/>
+<gentext key="dedication" text="Ajánlás"/>
+<gentext key="edition" text="Kiadás"/>
+<gentext key="equation" text="Egyenlet"/>
+<gentext key="example" text="Példa"/>
+<gentext key="figure" text="Ábra"/>
+<gentext key="glosssee" text="Lásd"/>
+<gentext key="glossseealso" text="Lásd még"/>
+<gentext key="glossary" text="Szójegyzék"/>
+<gentext key="important" text="FONTOS"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Fontos"/>
+<gentext key="index" text="Tárgymutató"/>
+<gentext key="legalnotice" text="Jogi kőzlemény"/>
+<gentext key="msgaud" text="Célkőzőnség"/>
+<gentext key="msglevel" text="Szint"/>
+<gentext key="msgorig" text="Eredet"/>
+<gentext key="note" text="Megjegyzés"/>
+<gentext key="part" text="Rész"/>
+<gentext key="preface" text="Előszó"/>
+<gentext key="procedure" text="Eljárás"/>
+<gentext key="published" text="Megjelent"/>
+<gentext key="question" text="K:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referencia"/>
+<gentext key="refname" text="Név"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Áttekintés"/>
+<gentext key="revision" text="Verzió"/>
+<gentext key="revhistory" text="Verziók tőrténete"/>
+<gentext key="section" text="Szakasz"/>
+<gentext key="see" text="Lásd"/>
+<gentext key="seealso" text="Lásd még"/>
+<gentext key="set" text="Set"/> <!-- en -->
+<gentext key="setindex" text="Set Index"/> <!-- en -->
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Lépés"/>
+<gentext key="table" text="Táblázat"/>
+<gentext key="tip" text="Tipp"/>
+<gentext key="warning" text="Figyelem"/>
+
+<gentext key="TableofContents" text="Tartalom"/>
+<gentext key="in" text=""/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Szerk."/>
+<gentext key="Editedby" text="Szerkesztette"/>
+<gentext key="and" text="és"/>
+<gentext key="Notes" text="Megjegyzések"/>
+<gentext key="TableNotes" text="Megjegyzések"/>
+<gentext key="nonexistantelement" text="nem létezo elem"/>
+<gentext key="Pgs" text="Lsz."/>
+<gentext key="unsupported" text="nem támogatott"/>
+<gentext key="xrefto" text="keresztref:"/>
+<gentext key="unexpectedelementname" text="Nem várt elemnév"/>
+<gentext key="Revisedby" text="Megvizsgálva: "/>
+
+<gentext key="ListofTables" text="Táblázatok listája"/>
+<gentext key="ListofExamples" text="Példák listája"/>
+<gentext key="ListofFigures" text="Ábrák listája"/>
+<gentext key="ListofEquations" text="Egyenletek listája"/>
+<gentext key="ListofUnknown" text="Egyéb elemek listája"/>
+
+<gentext key="nav-prev" text="Vissza"/>
+<gentext key="nav-prev-sibling" text="Gyors vissza"/>
+<gentext key="nav-next-sibling" text="Gyors Tovább"/>
+<gentext key="nav-next" text="Tovább"/>
+<gentext key="nav-up" text="Fel"/>
+<gentext key="nav-home" text="Tartalom"/>
+
+<dingbat key="startquote" text='“'/>
+<dingbat key="endquote" text='”'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%n %g %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/id.xml b/help-converters/docbook/docbook/common/id.xml
new file mode 100644
index 0000000..f85b021
--- /dev/null
+++ b/help-converters/docbook/docbook/common/id.xml
@@ -0,0 +1,104 @@
+<localization language="id">
+
+<gentext key="abstract" text="Abstrak"/>
+<gentext key="answer" text="Jawab:"/>
+<gentext key="appendix" text="Lampiran"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text="Buku"/>
+<gentext key="caution" text="PERHATIAN"/>
+<gentext key="caution" text="Perhatian"/>
+<gentext key="chapter" text="Bab"/>
+<gentext key="colophon" text="Kolofon"/>
+<gentext key="copyright" text="Hak Cipta"/>
+<gentext key="dedication" text="Dedikasi"/>
+<gentext key="edition" text="Edisi"/>
+<gentext key="equation" text="Persamaan"/>
+<gentext key="example" text="Teladan"/>
+<gentext key="figure" text="Gambar"/>
+<gentext key="glosssee" text="Lihat"/>
+<gentext key="glossseealso" text="Lihat Juga"/>
+<gentext key="glossary" text="Daftar Istilah"/>
+<gentext key="important" text="PENTING"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Penting"/>
+<gentext key="index" text="Indeks"/>
+<gentext key="legalnotice" text="Aspek Hukum"/>
+<gentext key="msgaud" text="Pemirsa"/>
+<gentext key="msglevel" text="Tingkatan"/>
+<gentext key="msgorig" text="Asal"/>
+<gentext key="note" text="CATATAN"/>
+<gentext key="note" text="Catatan"/>
+<gentext key="part" text="Bagian"/>
+<gentext key="preface" text="Kata Pengantar"/>
+<gentext key="procedure" text="Prosedur"/>
+<gentext key="published" text="Diterbitkan"/>
+<gentext key="question" text="Tanya:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referensi"/>
+<gentext key="refname" text="Nama"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Sinopsis"/>
+<gentext key="revision" text="Revisi"/>
+<gentext key="revhistory" text="Catatan Revisi"/>
+<gentext key="section" text="Bagian"/>
+<gentext key="see" text="Lihat"/>
+<gentext key="seealso" text="Lihat Juga"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Tahap"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="AWAS"/>
+<gentext key="warning" text="Awas"/>
+<gentext key="appendix" text="lampiran"/>
+<gentext key="chapter" text="bab"/>
+<gentext key="section" text="bagian"/>
+<gentext key="sidebar" text="sidebar"/>
+<gentext key="step" text="tahap"/>
+<gentext key="seealso" text="Lihat juga"/>
+
+<gentext key="TableofContents" text="Daftar Isi"/>
+<gentext key="in" text="di"/>
+<gentext key="by" text="oleh"/>
+<gentext key="Edited" text="disunting"/>
+<gentext key="Editedby" text="disunting oleh"/>
+<gentext key="and" text="dan"/>
+<gentext key="Notes" text="Catatan"/>
+<gentext key="TableNotes" text="Catatan"/>
+<gentext key="nonexistantelement" text="elemen tak tampak"/>
+<gentext key="Pgs" text="Hal."/>
+<gentext key="unsupported" text="tidak didukung"/>
+<gentext key="xrefto" text="xref ke"/>
+<gentext key="unexpectedelementname" text="Nama Elemen seharusnya tidak ada"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Daftar Tabel"/>
+<gentext key="ListofExamples" text="Daftar Teladan"/>
+<gentext key="ListofFigures" text="Daftar Gambar"/>
+<gentext key="ListofEquations" text="Daftar Persamaan"/>
+<gentext key="ListofUnknown" text="Daftar Gaib"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text='“'/>
+<dingbat key="endquote" text='”'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/it.xml b/help-converters/docbook/docbook/common/it.xml
new file mode 100644
index 0000000..a7e1063
--- /dev/null
+++ b/help-converters/docbook/docbook/common/it.xml
@@ -0,0 +1,103 @@
+<localization language="it">
+<!-- updates from camille mandrakesoft com -->
+
+<gentext key="abstract" text="Estratto"/>
+<gentext key="appendix" text="Appendice"/>
+<gentext key="article" text="Articolo"/>
+<gentext key="audience" text="Pubblico"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Libro"/>
+<gentext key="caution" text="CAUTELA"/>
+<gentext key="caution" text="Cautela"/>
+<gentext key="chapter" text="Capitolo"/>
+<gentext key="colophon" text="Colophon"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedica"/>
+<gentext key="edition" text="Edizione"/>
+<gentext key="equation" text="Equazione"/>
+<gentext key="example" text="Esempio"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glossary" text="Glossario"/>
+<gentext key="glosssee" text="Vedi"/>
+<gentext key="glossseealso" text="Vedi anche"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="Indice"/>
+<gentext key="legalnotice" text="Note legali"/>
+<gentext key="level" text="Livello"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="name" text="Nome"/>
+<gentext key="note" text="Nota"/>
+<gentext key="origin" text="Origine"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefazione"/>
+<gentext key="procedure" text="Procedura"/>
+<gentext key="published" text="Pubblicato"/>
+<gentext key="reference" text="Riferimento"/>
+<gentext key="revision" text="Revisione"/>
+<gentext key="history" text="Diario"/>
+<gentext key="refsynopsisdiv" text="Sinossi"/>
+<gentext key="revisionhistory" text="Diario delle revisioni"/>
+<gentext key="section" text="Sezione"/>
+<gentext key="see" text="Vd."/>
+<gentext key="seealso" text="Vd. Anche"/>
+<gentext key="seealso" text="Vd. anche"/>
+<gentext key="set" text="Raccolta"/>
+<gentext key="setindex" text="Indice Raccolta"/>
+<gentext key="sidebar" text="Nota a margine"/>
+<gentext key="step" text="Passaggio"/>
+<gentext key="tip" text="SUGGERIMENTO"/>
+<gentext key="table" text="Tabella"/>
+<gentext key="tip" text="Suggerimento"/>
+<gentext key="warning" text="ATTENZIONE"/>
+<gentext key="warning" text="Attenzione"/>
+<gentext key="appendix" text="appendice"/>
+<gentext key="chapter" text="capitolo"/>
+<gentext key="section" text="sezione"/>
+<gentext key="step" text="passaggio"/>
+
+<gentext key="TableofContents" text="Sommario"/>
+<gentext key="called" text="intitolato"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="di"/>
+<gentext key="Edited" text="A cura"/>
+<gentext key="Editedby" text="A cura di"/>
+<gentext key="and" text="e"/>
+<gentext key="Notes" text="Note"/>
+<gentext key="TableNotes" text="Note"/>
+<gentext key="nonexistantelement" text="elemento non esistente"/>
+<gentext key="the" text="il"/>
+<gentext key="Pgs" text="pp."/>
+<gentext key="unsupported" text="non supportato"/>
+<gentext key="xrefto" text="riferimento a"/>
+<gentext key="unexpectedelementname" text="Nome elemento inaspettato"/>
+<gentext key="Revisedby" text="Modificato da:"/>
+
+<gentext key="ListofTables" text="Lista delle Tabelle"/>
+<gentext key="ListofExamples" text="Lista degli Esempi"/>
+<gentext key="ListofFigures" text="Lista delle Figure"/>
+<gentext key="ListofEquations" text="Lista delle Equazioni"/>
+<gentext key="ListofUnknown" text="Lista Sconosciuti"/>
+
+<gentext key="nav-prev" text="Indietro"/>
+<gentext key="nav-prev-sibling" text="Salta indietro"/>
+<gentext key="nav-next-sibling" text="Salta avanti"/>
+<gentext key="nav-next" text="Avanti"/>
+<gentext key="nav-up" text="Risali"/>
+<gentext key="nav-home" text="Partenza"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ja.xml b/help-converters/docbook/docbook/common/ja.xml
new file mode 100644
index 0000000..9180e8e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ja.xml
@@ -0,0 +1,104 @@
+<localization language="ja">
+
+<!--
+;; Contributors:
+;; Karl Critz, kcritz mathworks com, contributed the original dbl1ja.ent file
+;; Ralf Schleitzer, ralf schleitzer ixos de
+-->
+
+<gentext key="abstract" text="概要"/>
+<gentext key="appendix" text="付録"/>
+<gentext key="article" text="項目"/>
+<gentext key="bibliography" text="参考文献"/>
+<gentext key="book" text="ブック"/>
+<gentext key="caution" text="注意"/>
+<gentext key="caution" text="注意"/>
+<gentext key="chapter" text="章"/>
+<gentext key="copyright" text="製作著作"/>
+<gentext key="dedication" text="謝辞"/>
+<gentext key="edition" text="編集"/>
+<gentext key="equation" text="式"/>
+<gentext key="example" text="例"/>
+<gentext key="figure" text="図"/>
+<gentext key="glosssee" text="参考"/>
+<gentext key="glossseealso" text="参考"/>
+<gentext key="glossary" text="用語集"/>
+<gentext key="important" text="重要項目"/>
+<gentext key="isbn" text="䥓䉎"/>
+<gentext key="important" text="重要項目"/>
+<gentext key="index" text="目次"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="䅵摩敮捥"/>
+<gentext key="msglevel" text="レベル"/>
+<gentext key="msgorig" text="オリジナル"/>
+<gentext key="note" text="注意"/>
+<gentext key="note" text="注意"/>
+<gentext key="part" text="パート"/>
+<gentext key="preface" text="序文"/>
+<gentext key="procedure" text="手順"/>
+<gentext key="published" text="発行"/>
+<gentext key="refname" text="名前"/>
+<gentext key="reference" text="参考"/>
+<gentext key="revision" text="改訂"/>
+<gentext key="revhistory" text="改訂履歴"/>
+<gentext key="section" text="節"/>
+<gentext key="see" text="参考"/>
+<gentext key="seealso" text="参考"/>
+<gentext key="set" text="設定"/>
+<gentext key="setindex" text="目次設定"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="ステップ"/>
+<gentext key="tip" text="ティップ"/>
+<gentext key="table" text="表"/>
+<gentext key="tip" text="ティップ"/>
+<gentext key="warning" text="警告"/>
+<gentext key="warning" text="警告"/>
+<gentext key="appendix" text="付録"/>
+<gentext key="chapter" text="章"/>
+<gentext key="section" text="節"/>
+<gentext key="sidebar" text="サイドバー"/>
+<gentext key="step" text="ステップ"/>
+<gentext key="seealso" text="参考"/>
+
+<gentext key="TableofContents" text="目次"/>
+<gentext key="in" text="日付"/>
+<gentext key="by" text=":"/>
+<gentext key="Edited" text="作者"/>
+<gentext key="Editedby" text="26䕤楴㬠♢礻"/>
+<gentext key="and" text="、"/>
+<gentext key="Notes" text="注意"/>
+<gentext key="TableNotes" text="注意"/>
+<gentext key="nonexistantelement" text="要素が存在しません"/>
+<gentext key="Pgs" text="偧献"/>
+<gentext key="unsupported" text="サポートしません"/>
+<gentext key="xrefto" text="78牥映瑯"/>
+<gentext key="unexpectedelementname" text="不明な要素名"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="表リスト"/>
+<gentext key="ListofExamples" text="例題リスト"/>
+<gentext key="ListofFigures" text="Figureリスト"/>
+<gentext key="ListofEquations" text="式リスト"/>
+<gentext key="ListofUnknown" text="不明リスト"/>
+
+<gentext key="nav-prev" text="前のページ"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="次のページ"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ko.xml b/help-converters/docbook/docbook/common/ko.xml
new file mode 100644
index 0000000..06dd7cb
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ko.xml
@@ -0,0 +1,96 @@
+<localization language="ko">
+
+<!-- ;; by Park Yong Joo (yongjoo kldp org) -->
+
+<gentext key="abstract" text="초록"/>
+<gentext key="answer" text="답변:"/>
+<gentext key="appendix" text="부록"/>
+<gentext key="article" text="문서"/>
+<gentext key="bibliography" text="서지사항"/>
+<gentext key="book" text="책"/>
+<gentext key="caution" text="경고!"/>
+<gentext key="chapter" text=""/>
+<gentext key="colophon" text="판권"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="바치는 글"/>
+<gentext key="edition" text="개정판"/>
+<gentext key="equation" text="수식"/>
+<gentext key="example" text="예"/>
+<gentext key="figure" text="그림"/>
+<gentext key="glosssee" text="살펴볼 내용"/>
+<gentext key="glossseealso" text="다른 살펴볼 내용"/>
+<gentext key="glossary" text="용어해설"/>
+<gentext key="important" text="[중요]"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="중요"/>
+<gentext key="index" text="색인"/>
+<gentext key="legalnotice" text="법적 공지"/>
+<gentext key="msgaud" text="듣기"/>
+<gentext key="msglevel" text="레벨"/>
+<gentext key="msgorig" text="원천"/>
+<gentext key="note" text="참고"/>
+<gentext key="part" text="부분"/>
+<gentext key="preface" text="서문"/>
+<gentext key="procedure" text="순서"/>
+<gentext key="published" text="출판"/>
+<gentext key="question" text="답변:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="참고문헌"/>
+<gentext key="refname" text="제목"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="요약"/>
+<gentext key="revision" text="교정"/>
+<gentext key="revhistory" text="교정 과정"/>
+<gentext key="section" text=""/>
+<gentext key="see" text="살펴볼 내용"/>
+<gentext key="seealso" text="[살펴볼 다른 내용]"/>
+<gentext key="set" text="전집"/>
+<gentext key="setindex" text="전집 색인"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="단계"/>
+<gentext key="table" text="표"/>
+<gentext key="tip" text="작은 정보"/>
+<gentext key="warning" text="주의"/>
+
+<gentext key="TableofContents" text="차례"/>
+<gentext key="in" text="-"/>
+<gentext key="by" text="글쓴이 : "/>
+<gentext key="Edited" text="편집"/>
+<gentext key="Editedby" text="편집 : "/>
+<gentext key="and" text="그리고"/>
+<gentext key="Notes" text="주석"/>
+<gentext key="TableNotes" text="참고"/>
+<gentext key="nonexistantelement" text="존재하지 않는 기초요소입니다"/>
+<gentext key="Pgs" text="Pgs."/>
+<gentext key="unsupported" text="지원되지 않습니다"/>
+<gentext key="xrefto" text="이 곳을 참조하세요 : "/>
+<gentext key="unexpectedelementname" text="알 수 없는 기초요소 이름입니다"/>
+<gentext key="Revisedby" text="교정 : "/>
+
+<gentext key="ListofTables" text="표 목록"/>
+<gentext key="ListofExamples" text="예 목록"/>
+<gentext key="ListofFigures" text="그림 목록"/>
+<gentext key="ListofEquations" text="수식 목록"/>
+<gentext key="ListofUnknown" text="기타 목록"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text='“'/>
+<dingbat key="endquote" text='”'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/l10n.dtd b/help-converters/docbook/docbook/common/l10n.dtd
new file mode 100644
index 0000000..0336baf
--- /dev/null
+++ b/help-converters/docbook/docbook/common/l10n.dtd
@@ -0,0 +1,25 @@
+<!ELEMENT internationalization (localization+)>
+
+<!ELEMENT localization (gentext|dingbat|xref)*>
+<!ATTLIST localization
+ language CDATA #REQUIRED
+>
+
+<!ELEMENT gentext EMPTY>
+<!ATTLIST gentext
+ key CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
+<!ELEMENT dingbat EMPTY>
+<!ATTLIST dingbat
+ key CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+ element CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
diff --git a/help-converters/docbook/docbook/common/l10n.xml b/help-converters/docbook/docbook/common/l10n.xml
new file mode 100644
index 0000000..a7ef90e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/l10n.xml
@@ -0,0 +1,59 @@
+<?xml version='1.0'?>
+<!DOCTYPE internationalization SYSTEM "l10n.dtd" [
+<!ENTITY ca SYSTEM "ca.xml">
+<!ENTITY cs SYSTEM "cs.xml">
+<!ENTITY da SYSTEM "da.xml">
+<!ENTITY de SYSTEM "de.xml">
+<!ENTITY el SYSTEM "el.xml">
+<!ENTITY en SYSTEM "en.xml">
+<!ENTITY es SYSTEM "es.xml">
+<!ENTITY et SYSTEM "et.xml">
+<!ENTITY fi SYSTEM "fi.xml">
+<!ENTITY fr SYSTEM "fr.xml">
+<!ENTITY hu SYSTEM "hu.xml">
+<!ENTITY id SYSTEM "id.xml">
+<!ENTITY it SYSTEM "it.xml">
+<!ENTITY ja SYSTEM "ja.xml">
+<!ENTITY ko SYSTEM "ko.xml">
+<!ENTITY nl SYSTEM "nl.xml">
+<!ENTITY no SYSTEM "no.xml">
+<!ENTITY pl SYSTEM "pl.xml">
+<!ENTITY pt SYSTEM "pt.xml">
+<!ENTITY pt_br SYSTEM "pt_br.xml">
+<!ENTITY ro SYSTEM "ro.xml">
+<!ENTITY ru SYSTEM "ru.xml">
+<!ENTITY sk SYSTEM "sk.xml">
+<!ENTITY sl SYSTEM "sl.xml">
+<!ENTITY sv SYSTEM "sv.xml">
+<!ENTITY zh_cn SYSTEM "zh_cn.xml">
+<!ENTITY zh_tw SYSTEM "zh_tw.xml">
+]>
+<internationalization>
+&ca;
+&cs;
+&da;
+&de;
+⪙
+&en;
+&es;
+&et;
+&fi;
+&fr;
+&hu;
+&id;
+⁢
+&ja;
+&ko;
+&nl;
+&no;
+&pl;
+&pt;
+&pt_br;
+&ro;
+&ru;
+&sk;
+&sl;
+&sv;
+&zh_cn;
+&zh_tw;
+</internationalization>
diff --git a/help-converters/docbook/docbook/common/l10n.xsl b/help-converters/docbook/docbook/common/l10n.xsl
new file mode 100644
index 0000000..f2f6fad
--- /dev/null
+++ b/help-converters/docbook/docbook/common/l10n.xsl
@@ -0,0 +1,244 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ This file contains localization templates (for internationalization)
+ ******************************************************************** -->
+
+<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
+
+<xsl:param name="l10n.gentext.language" select="''"/>
+<xsl:param name="l10n.gentext.default.language" select="'en'"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="false()"/>
+
+<xsl:template name="l10n.language">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="xref-context" select="false()"/>
+
+ <xsl:variable name="language">
+ <xsl:choose>
+ <xsl:when test="$l10n.gentext.language != ''">
+ <xsl:value-of select="$l10n.gentext.language"/>
+ </xsl:when>
+
+ <xsl:when test="$xref-context or $l10n.gentext.use.xref.language">
+ <xsl:variable name="lang-attr"
+ select="($target/ancestor-or-self::*/@lang
+ |$target/ancestor-or-self::*/@xml:lang)[last()]"/>
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="lang-attr"
+ select="(ancestor-or-self::*/@lang
+ |ancestor-or-self::*/@xml:lang)[last()]"/>
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($language,'-')">
+ <xsl:value-of select="substring-before($language,'-')"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="substring-after($language,'-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.xref.text">
+ <xsl:param name="element.name" select="name(.)"/>
+ <xsl:param name="default"></xsl:param>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="l10n.text">
+ <xsl:value-of select="($l10n.xml/internationalization/localization[ language=$lang]/xref[ element=$element name])[1]/@text"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$l10n.text=''">
+ <xsl:choose>
+ <xsl:when test="$default=''">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" cross reference text for "</xsl:text>
+ <xsl:value-of select="$element.name"/>
+ <xsl:text>" exists and no default specified.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$l10n.text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext">
+ <xsl:param name="key" select="local-name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="l10n.gentext"
+ select="($l10n.xml/internationalization/localization[ language=$lang]/gentext[ key=$key])[1]"/>
+
+ <xsl:variable name="l10n.name">
+ <xsl:value-of select="$l10n.gentext/@text"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="count($l10n.gentext)=0">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of "</xsl:text>
+ <xsl:value-of select="$key"/>
+ <xsl:text>" exists; using "en".</xsl:text>
+ </xsl:message>
+
+ <xsl:value-of select="($l10n.xml/internationalization/localization[ language='en']/gentext[ key=$key])[1]/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$l10n.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.element.name">
+ <xsl:param name="element.name" select="name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="$element.name"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.space">
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template name="gentext.edited.by">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">Editedby</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.by">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">by</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.dingbat">
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="l10n.dingbat">
+ <xsl:value-of select="($l10n.xml/internationalization/localization[ language=$lang]/dingbat[ key=$dingbat])[1]/@text"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$l10n.dingbat=''">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of dingbat </xsl:text>
+ <xsl:value-of select="$dingbat"/>
+ <xsl:text> exists; using "en".</xsl:text>
+ </xsl:message>
+
+ <xsl:value-of select="($l10n.xml/internationalization/localization[ language='en']/dingbat[ key=$dingbat])[1]/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$l10n.dingbat"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.startquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">startquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.endquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">endquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedstartquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedendquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.prev">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-prev</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.next">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-next</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.home">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-home</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.up">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-up</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/common/nl.xml b/help-converters/docbook/docbook/common/nl.xml
new file mode 100644
index 0000000..56ead54
--- /dev/null
+++ b/help-converters/docbook/docbook/common/nl.xml
@@ -0,0 +1,105 @@
+<localization language="nl">
+
+<!-- Updated by Frederik Fouvry, fouvry essex ac uk -->
+<!-- Vincent Partington, vincent partington graddelt com -->
+<!-- Updated by Erwin Bolwidt, ejb tryllian com, august 2000 -->
+
+<gentext key="abstract" text="Overzicht"/>
+<gentext key="answer" text="A:"/>
+<gentext key="appendix" text="Aanhangsel"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Bibliografie"/>
+<gentext key="book" text="Boek"/>
+<gentext key="caution" text="Waarschuwing"/>
+<gentext key="chapter" text="Hoofdstuk"/>
+<gentext key="colophon" text="Colofon"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Opdracht"/>
+<gentext key="edition" text="Uitgave"/>
+<gentext key="equation" text="Vergelijking"/>
+<gentext key="example" text="Voorbeeld"/>
+<gentext key="figure" text="Figuur"/>
+<gentext key="glossary" text="Woordenlijst"/>
+<gentext key="glosssee" text="Zie"/>
+<gentext key="glossseealso" text="Zie ook"/>
+<gentext key="important" text="Belangrijk"/>
+<gentext key="index" text="Index"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="Juridische mededeling"/>
+<gentext key="msgaud" text="Doelgroep"/>
+<gentext key="msglevel" text="Ernst"/>
+<gentext key="msgorig" text="Afkomst"/>
+<gentext key="note" text="N.B."/>
+<gentext key="part" text="Deel"/>
+<gentext key="preface" text="Inleiding"/>
+<gentext key="procedure" text="Procedure"/>
+<gentext key="published" text="Gepubliceerd"/>
+<gentext key="pubdate" text="Gepubliceerd"/>
+<gentext key="question" text="V:"/>
+<gentext key="refentry" text="Referentielemma"/>
+<gentext key="reference" text="Referentie"/>
+<gentext key="refname" text="Referentienaam"/>
+<gentext key="refsection" text="Referentieparagraaf"/>
+<gentext key="refsynopsisdiv" text="Samenvatting"/>
+<gentext key="revhistory" text="Revisie verloop"/>
+<gentext key="revision" text="Revisie"/>
+<gentext key="section" text="Sectie"/>
+<gentext key="sect1" text="Sectie"/>
+<gentext key="sect2" text="Sectie"/>
+<gentext key="sect3" text="Sectie"/>
+<gentext key="sect4" text="Sectie"/>
+<gentext key="sect5" text="Sectie"/>
+<gentext key="see" text="Zie"/>
+<gentext key="seealso" text="Zie ook"/>
+<gentext key="set" text="Verzameling"/>
+<gentext key="setindex" text="Hoofdindex"/>
+<gentext key="sidebar" text="Excursie"/>
+<gentext key="step" text="Stap"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="Waarschuwing"/>
+
+<gentext key="TableofContents" text="Inhoudsopgave"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="door"/>
+<gentext key="Edited" text="Redactie"/>
+<gentext key="Editedby" text="Redactie door"/>
+<gentext key="and" text="en"/>
+<gentext key="Notes" text="Opmerkingen"/>
+<gentext key="TableNotes" text="Opmerkingen"/>
+<gentext key="nonexistantelement" text="niet-bestaand element"/>
+<gentext key="Pgs" text="blz."/>
+<gentext key="unsupported" text="niet ondersteund"/>
+<gentext key="xrefto" text="verwijzing naar"/>
+<gentext key="unexpectedelementname" text="Onverwachte naam van element"/>
+<gentext key="Revisedby" text="Herzien door:"/>
+
+<gentext key="ListofTables" text="Lijst van Tabellen"/>
+<gentext key="ListofExamples" text="Lijst van Voorbeelden"/>
+<gentext key="ListofFigures" text="Lijst van Figuren"/>
+<gentext key="ListofEquations" text="Lijst van Vergelijkingen"/>
+<gentext key="ListofUnknown" text="Lijst van Onbekends"/>
+
+<gentext key="nav-prev" text="Vorige"/>
+<gentext key="nav-prev-sibling" text="Snel terug"/>
+<gentext key="nav-next-sibling" text="Snel vooruit"/>
+<gentext key="nav-next" text="Volgende"/>
+<gentext key="nav-up" text="Omhoog"/>
+<gentext key="nav-home" text="Begin"/>
+
+<gentext key="the section called" text="de sectie genaamd"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/no.xml b/help-converters/docbook/docbook/common/no.xml
new file mode 100644
index 0000000..b3aba44
--- /dev/null
+++ b/help-converters/docbook/docbook/common/no.xml
@@ -0,0 +1,97 @@
+<localization language="no">
+
+<gentext key="abstract" text="Abstract"/>
+<gentext key="appendix" text="Tillegg"/>
+<gentext key="article" text=""/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text=""/>
+<gentext key="caution" text="OBS"/>
+<gentext key="caution" text="Obs"/>
+<gentext key="chapter" text="Kapittel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedikasjon"/>
+<gentext key="edition" text=""/>
+<gentext key="equation" text="Formel"/>
+<gentext key="example" text="Eksempel"/>
+<gentext key="figure" text="Figur"/>
+<gentext key="glosssee" text="Se"/>
+<gentext key="glossseealso" text="Se Også"/>
+<gentext key="glossary" text="Ordliste"/>
+<gentext key="important" text="VIKTIG"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Viktig"/>
+<gentext key="index" text="Indeks"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Publikum"/>
+<gentext key="msglevel" text="Nivå"/>
+<gentext key="msgorig" text="Opphav"/>
+<gentext key="note" text="NOTAT"/>
+<gentext key="note" text="Notat"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Forord"/>
+<gentext key="procedure" text="Prosedyre"/>
+<gentext key="published" text=""/>
+<gentext key="refname" text="Navn"/>
+<gentext key="reference" text="Referanse"/>
+<gentext key="revision" text="Revisjon"/>
+<gentext key="revhistory" text="Revisjonshistorie"/>
+<gentext key="section" text="Seksjon"/>
+<gentext key="see" text="Se"/>
+<gentext key="seealso" text="Se Også"/>
+<gentext key="set" text=""/>
+<gentext key="setindex" text="Indeks"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Steg"/>
+<gentext key="tip" text="TIPS"/>
+<gentext key="table" text="Tabell"/>
+<gentext key="tip" text="Tips"/>
+<gentext key="warning" text="ADVARSEL"/>
+<gentext key="warning" text="Advarsel"/>
+<gentext key="appendix" text="Tillegg"/>
+<gentext key="chapter" text="Kapittel"/>
+<gentext key="section" text="seksjon"/>
+<gentext key="step" text="steg"/>
+<gentext key="seealso" text="Se også"/>
+
+<gentext key="TableofContents" text="Innholdsfortegnelse"/>
+<gentext key="in" text="i"/>
+<gentext key="by" text="av"/>
+<gentext key="Edited" text="Redigert"/>
+<gentext key="Editedby" text="Redigert av"/>
+<gentext key="and" text="og"/>
+<gentext key="Notes" text="Sluttnotater"/>
+<gentext key="TableNotes" text="Notater"/>
+<gentext key="nonexistantelement" text="ikke-eksisterende element"/>
+<gentext key="Pgs" text="Sdr."/>
+<gentext key="unsupported" text="ikke st⊘ttet"/>
+<gentext key="xrefto" text="xref til"/>
+<gentext key="unexpectedelementname" text="UVENTET-ELEMENTNAVN"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Tabelloversikt"/>
+<gentext key="ListofExamples" text="Eksempeloversikt"/>
+<gentext key="ListofFigures" text="Figuroversikt"/>
+<gentext key="ListofEquations" text="Formeloversikt"/>
+<gentext key="ListofUnknown" text="???-oversikt"/>
+
+<gentext key="nav-prev" text="Forrige"/>
+<gentext key="nav-prev-sibling" text="Raskt Bakover"/>
+<gentext key="nav-next-sibling" text="Raskt Fremover"/>
+<gentext key="nav-next" text="Neste"/>
+<gentext key="nav-up" text="Opp"/>
+<gentext key="nav-home" text="Hjem"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/pl.xml b/help-converters/docbook/docbook/common/pl.xml
new file mode 100644
index 0000000..8582bbe
--- /dev/null
+++ b/help-converters/docbook/docbook/common/pl.xml
@@ -0,0 +1,96 @@
+<localization language="pl">
+
+<gentext key="abstract" text="Abstrakt"/>
+<gentext key="appendix" text="Dodatek"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="PRZYPADEK"/>
+<gentext key="caution" text="Przypadek"/>
+<gentext key="chapter" text="Rozdzia³"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedykacja"/>
+<gentext key="edition" text="Wydanie"/>
+<gentext key="equation" text="Równanie"/>
+<gentext key="example" text="Przyk³ad"/>
+<gentext key="figure" text="Rysunek"/>
+<gentext key="glosssee" text="Patrz"/>
+<gentext key="glossseealso" text="Patrz te¿"/>
+<gentext key="glossary" text="Glossary"/>
+<gentext key="important" text="WA¯NE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="WA¯NE"/>
+<gentext key="index" text="Indeks"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Odbiorcy"/>
+<gentext key="msglevel" text="Poziom"/>
+<gentext key="msgorig" text="Nadawca"/>
+<gentext key="note" text="NOTATKA"/>
+<gentext key="note" text="Notatka"/>
+<gentext key="part" text="Czê¶æ"/>
+<gentext key="preface" text="Przedmowa"/>
+<gentext key="procedure" text="Procedura"/>
+<gentext key="published" text="Data wydania"/>
+<gentext key="refname" text="Nazwa"/>
+<gentext key="reference" text="Materia³y ¼ród³owe"/>
+<gentext key="revision" text="Zmiana"/>
+<gentext key="revhistory" text="Historia zmian"/>
+<gentext key="section" text="Sekcja"/>
+<gentext key="see" text="Patrz"/>
+<gentext key="seealso" text="Patrz Te¿"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Indeks"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="krok"/>
+<gentext key="tip" text="Podpowied¼"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Podpowied¼"/>
+<gentext key="warning" text="Ostrze¿enie"/>
+<gentext key="warning" text="Ostrze¿enie"/>
+<gentext key="appendix" text="dodatek"/>
+<gentext key="chapter" text="rozdzia³"/>
+<gentext key="section" text="sekcja"/>
+<gentext key="step" text="krok"/>
+<gentext key="seealso" text="Patrz te¿"/>
+
+<gentext key="TableofContents" text="Spis tre¶ci"/>
+<gentext key="in" text="w"/>
+<gentext key="by" text=""/>
+<gentext key="Editedby" text="Redakcja: "/>
+<gentext key="and" text="i"/>
+<gentext key="Notes" text="Przypisy"/>
+<gentext key="TableNotes" text="Przypisy"/>
+<gentext key="nonexistantelement" text="nie istniej±cy element"/>
+<gentext key="Pgs" text="stron"/>
+<gentext key="unsupported" text="nie wspierany"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Spis tabel"/>
+<gentext key="ListofExamples" text="Spis przyk³adów"/>
+<gentext key="ListofFigures" text="Spis rysunków"/>
+<gentext key="ListofEquations" text="Spis równañ"/>
+<gentext key="ListofUnknown" text="Spis ???"/>
+
+<gentext key="nav-prev" text="Poprzedni"/>
+<gentext key="nav-prev-sibling" text="Poprzedni rozdzia³"/>
+<gentext key="nav-next-sibling" text="Nastêpny rozdzia³"/>
+<gentext key="nav-next" text="Nastêpny"/>
+<gentext key="nav-up" text="Pocz±tek rozdzia³u"/>
+<gentext key="nav-home" text="Spis tre¶ci"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/pt.xml b/help-converters/docbook/docbook/common/pt.xml
new file mode 100644
index 0000000..af0c22f
--- /dev/null
+++ b/help-converters/docbook/docbook/common/pt.xml
@@ -0,0 +1,98 @@
+<localization language="pt">
+
+<gentext key="abstract" text="Resumo"/>
+<gentext key="appendix" text="Apêndice"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="CAUTELA"/>
+<gentext key="caution" text="Cautela"/>
+<gentext key="chapter" text="Capítulo"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicatória"/>
+<gentext key="edition" text="Edição"/>
+<gentext key="equation" text="Equação"/>
+<gentext key="example" text="Exemplo"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Ver"/>
+<gentext key="glossseealso" text="Ver Também"/>
+<gentext key="glossary" text="Glossario"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Audiência"/>
+<gentext key="msglevel" text="Nível"/>
+<gentext key="msgorig" text="Origem"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefácio"/>
+<gentext key="procedure" text="Procedimento"/>
+<gentext key="pubdate" text="Editado"/>
+<gentext key="published" text="Published"/>
+<gentext key="refname" text="Nome"/>
+<gentext key="reference" text="Referência"/>
+<gentext key="revision" text="Revisão"/>
+<gentext key="revhistory" text="Hitorial de Revisões"/>
+<gentext key="section" text="Secção"/>
+<gentext key="see" text="Ver"/>
+<gentext key="seealso" text="Ver Também"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Passo"/>
+<gentext key="tip" text="DICA"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Dica"/>
+<gentext key="warning" text="ATENÇÃO"/>
+<gentext key="warning" text="Atenção"/>
+<gentext key="appendix" text="apêndice"/>
+<gentext key="chapter" text="capítulo"/>
+<gentext key="section" text="secção"/>
+<gentext key="step" text="passo"/>
+<gentext key="seealso" text="ver também"/>
+
+<gentext key="TableofContents" text="Índice"/>
+<gentext key="in" text=""/>
+<gentext key="by" text="por"/>
+<gentext key="Edited" text="Editado"/>
+<gentext key="Editedby" text="Editado por"/>
+<gentext key="and" text="e"/>
+<gentext key="Notes" text="Notas"/>
+<gentext key="TableNotes" text="Notas"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="Pgs" text="Páginas"/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Lista de Tabelas"/>
+<gentext key="ListofExamples" text="Lista de Exemplos"/>
+<gentext key="ListofFigures" text="Lista de Figuras"/>
+<gentext key="ListofEquations" text="Lista de Equações"/>
+<gentext key="ListofUnknown" text="List of ???"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/pt_br.xml b/help-converters/docbook/docbook/common/pt_br.xml
new file mode 100644
index 0000000..cf63d1e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/pt_br.xml
@@ -0,0 +1,98 @@
+<localization language="pt_br">
+
+<gentext key="abstract" text="Resumo"/>
+<gentext key="appendix" text="Apêndice"/>
+<gentext key="article" text="Artigo"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Livro"/>
+<gentext key="caution" text="CUIDADO"/>
+<gentext key="caution" text="Cuidado"/>
+<gentext key="chapter" text="Capítulo"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicatória"/>
+<gentext key="edition" text="Edição"/>
+<gentext key="equation" text="Equação"/>
+<gentext key="example" text="Exemplo"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Ver"/>
+<gentext key="glossseealso" text="Ver Também"/>
+<gentext key="glossary" text="Glossário"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="Índice Remissivo"/>
+<gentext key="legalnotice" text="Nota Legal"/>
+<gentext key="msgaud" text="Audiência"/>
+<gentext key="msglevel" text="Nível"/>
+<gentext key="msgorig" text="Origem"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefácio"/>
+<gentext key="procedure" text="Procedimento"/>
+<gentext key="pubdate" text="Data de Publicação"/>
+<gentext key="published" text="Publicado"/>
+<gentext key="refname" text="Nome"/>
+<gentext key="reference" text="Referência"/>
+<gentext key="revision" text="Revisão"/>
+<gentext key="revhistory" text="Histórico de Revisões"/>
+<gentext key="section" text="Secção"/>
+<gentext key="see" text="Ver"/>
+<gentext key="seealso" text="Ver Também"/>
+<gentext key="set" text="Conjunto"/>
+<gentext key="setindex" text="Índice do Conjunto"/>
+<gentext key="sidebar" text="Quadro Lateral"/>
+<gentext key="step" text="Passo"/>
+<gentext key="tip" text="DICA"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Dica"/>
+<gentext key="warning" text="ATENÇÃO"/>
+<gentext key="warning" text="Atenção"/>
+<gentext key="appendix" text="apêndice"/>
+<gentext key="chapter" text="capítulo"/>
+<gentext key="section" text="secção"/>
+<gentext key="step" text="passo"/>
+<gentext key="seealso" text="ver também"/>
+
+<gentext key="TableofContents" text="Índice"/>
+<gentext key="in" text=""/>
+<gentext key="by" text="por"/>
+<gentext key="Edited" text="Editado"/>
+<gentext key="Editedby" text="Editado por"/>
+<gentext key="Revisedby" text="Revised by: "/> <!-- en -->
+<gentext key="and" text="e"/>
+<gentext key="Notes" text="Notas"/>
+<gentext key="TableNotes" text="Notas"/>
+<gentext key="nonexistantelement" text="elemento inexistente"/>
+<gentext key="Pgs" text="Páginas"/>
+<gentext key="unsupported" text="não suportado"/>
+<gentext key="xrefto" text="referência para"/>
+<gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+
+<gentext key="ListofTables" text="Lista de Tabelas"/>
+<gentext key="ListofExamples" text="Lista de Exemplos"/>
+<gentext key="ListofFigures" text="Lista de Figuras"/>
+<gentext key="ListofEquations" text="Lista de Equações"/>
+<gentext key="ListofUnknown" text="Lista de ???"/>
+
+<gentext key="nav-prev" text="Anterior"/>
+<gentext key="nav-prev-sibling" text="Início"/>
+<gentext key="nav-next-sibling" text="Fim"/>
+<gentext key="nav-next" text="Próxima"/>
+<gentext key="nav-up" text="Acima"/>
+<gentext key="nav-home" text="Principal"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ro.xml b/help-converters/docbook/docbook/common/ro.xml
new file mode 100644
index 0000000..a59ffd8
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ro.xml
@@ -0,0 +1,104 @@
+<localization language="ro">
+
+<gentext key="abstract" text="Rezumat"/>
+<gentext key="appendix" text="Anexa"/>
+<gentext key="article" text="Articol"/>
+<gentext key="bibliography" text="Bibliografie"/>
+<gentext key="book" text="Carte"/>
+<gentext key="caution" text="ATENÞIE"/>
+<gentext key="caution" text="Atenþie"/>
+<gentext key="chapter" text="Cap."/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicaþie"/>
+<gentext key="edition" text="Ediþie"/>
+<gentext key="equation" text="ecuaþia"/>
+<gentext key="example" text="Exemplu"/>
+<gentext key="figure" text="Fig."/>
+<gentext key="glossary" text="Glosar"/>
+<gentext key="glosssee" text="Vezi"/>
+<gentext key="glossseealso" text="Vezi şi"/>
+<gentext key="important" text="IMPORTANT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text=""/>
+<gentext key="msglevel" text="Nivel"/>
+<gentext key="msgorig" text="Origine"/>
+<gentext key="note" text="NOTÃ"/>
+<gentext key="note" text="Notã"/>
+<gentext key="refname" text="Nume"/>
+<gentext key="note" text="Notã"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefaþã"/>
+<gentext key="procedure" text="Procedurã"/>
+<gentext key="published" text="Publicat"/>
+<gentext key="reference" text="Referinþã"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referinþã"/>
+<gentext key="refname" text="Name"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Rezumat"/>
+<gentext key="revision" text="Versiune"/>
+<gentext key="revhistory" text="Istoricul versiunilor"/>
+<gentext key="section" text="Secþiune"/>
+<gentext key="see" text="Vezi"/>
+<gentext key="seealso" text="Vezi şi"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Operaþie"/>
+<gentext key="tip" text="INDICAÞIE"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Indicaþie"/>
+<gentext key="warning" text="AVERTISMENT"/>
+<gentext key="warning" text="Avertisment"/>
+<gentext key="appendix" text="anexa"/>
+<gentext key="sidebar" text="sidebar"/>
+<gentext key="chapter" text="cap."/>
+<gentext key="section" text="sec."/>
+<gentext key="step" text="operaþiune"/>
+<gentext key="seealso" text="Vezi şi"/>
+
+<gentext key="TableofContents" text="Cuprins"/>
+<gentext key="in" text="în"/>
+<gentext key="by" text="de"/>
+<gentext key="Edited" text="Publicat"/>
+<gentext key="Editedby" text="Publicat de"/>
+<gentext key="and" text="şi"/>
+<gentext key="Notes" text="Note"/>
+<gentext key="TableNotes" text="Remarci"/>
+<gentext key="nonexistantelement" text="element inexistent"/>
+<gentext key="Pgs" text="Pagini"/>
+<gentext key="unsupported" text="nerecunoscut de sisitem"/>
+<gentext key="xrefto" text="referinþã cãtre"/>
+<gentext key="unexpectedelementname" text="Nume de element neaşteptat"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Listã de tabele"/>
+<gentext key="ListofExamples" text="Listã de exemple"/>
+<gentext key="ListofFigures" text="Listã de figuri"/>
+<gentext key="ListofEquations" text="Listã de ecuaþii"/>
+<gentext key="ListofUnknown" text="Listã de necunoscute"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/ru.xml b/help-converters/docbook/docbook/common/ru.xml
new file mode 100644
index 0000000..a097cd4
--- /dev/null
+++ b/help-converters/docbook/docbook/common/ru.xml
@@ -0,0 +1,113 @@
+<localization language="ru">
+
+<gentext key="abstract" text="Аннотация"/>
+<gentext key="appendix" text="Приложение"/>
+<gentext key="appendix.abr" text="Прил."/>
+<gentext key="article" text="Статья"/>
+<gentext key="audience" text="Аудитория"/>
+<gentext key="bibliography" text="Литература"/>
+<gentext key="book" text="Книга"/>
+<gentext key="caution" text="ПРЕДОСТЕРЕЖЕНИЕ"/>
+<gentext key="caution" text="Предостережение"/>
+<gentext key="chapter" text="Глава"/>
+<gentext key="chapter.abr" text="Гл."/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Посвящение"/>
+<gentext key="edition" text="Редакция"/>
+<gentext key="equation" text="Формула"/>
+<gentext key="equation.abr" text="Ф."/>
+<gentext key="example" text="Пример"/>
+<gentext key="example.abr" text="Прим."/>
+<gentext key="figure" text="Рисунок"/>
+<gentext key="figure.abr" text="Рис."/>
+<gentext key="glossary" text="Глоссарий"/>
+<gentext key="important" text="ВАЖНО"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Важно"/>
+<gentext key="index" text="Предметный указатель"/>
+<gentext key="legalnotice" text="Авторские права"/>
+<gentext key="level" text="Уровень"/>
+<gentext key="note" text="ЗАМЕЧАНИЕ"/>
+<gentext key="name" text="Имя"/>
+<gentext key="note" text="Замечание"/>
+<gentext key="origin" text="Источник"/>
+<gentext key="part" text="Часть"/>
+<gentext key="part.abr" text="Ч."/>
+<gentext key="preface" text="Предисловие"/>
+<gentext key="procedure" text="Процедура"/>
+<gentext key="procedure.abr" text="Проц."/>
+<gentext key="published" text="Опубликовано"/>
+<gentext key="reference" text="Ссылка"/>
+<gentext key="revision" text="Издание"/>
+<gentext key="history" text="История"/>
+<gentext key="revisionhistory" text="История переиздания"/>
+<gentext key="section" text="Раздел"/>
+<gentext key="section.abr" text="Разд."/>
+<gentext key="see" text="См."/>
+<gentext key="seealso" text="См. также"/>
+<gentext key="seealso" text="См. также"/>
+<gentext key="set" text="Подборка"/>
+<gentext key="setindex" text="Индекс подборки"/>
+<gentext key="sidebar" text="Выделение"/>
+<gentext key="step" text="Шаг"/>
+<gentext key="tip" text="ПОДСКАЗКА"/>
+<gentext key="table" text="Таблица"/>
+<gentext key="table.abr" text="Табл."/>
+<gentext key="tip" text="Подсказка"/>
+<gentext key="warning" text="ВНИМАНИЕ"/>
+<gentext key="warning" text="Внимание"/>
+<gentext key="appendix" text="приложение"/>
+<gentext key="chapter" text="глава"/>
+<gentext key="section" text="раздел"/>
+<gentext key="step" text="шаг"/>
+
+<gentext key="TableofContents" text="Содержание"/>
+<gentext key="called" text=""/>
+<gentext key="in" text="в"/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Под редакцией"/>
+<gentext key="Editedby" text="Под редакцией"/>
+<gentext key="and" text=""/>
+<!-- the list of author names, but "and" in such
+ lists of Russian books is not traditionally
+ used (I. Kouznetsov) -->
+<gentext key="Notes" text="Примечания"/>
+<gentext key="TableNotes" text="Примечания"/>
+
+<!-- Suggestion of I. Kouznetsov: Error messages are better in English -->
+
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="the" text=""/>
+<gentext key="Pgs" text="Стр."/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Список таблиц"/>
+<gentext key="ListofExamples" text="Список примеров"/>
+<gentext key="ListofFigures" text="Список иллюстраций"/>
+<gentext key="ListofEquations" text="Список формул"/>
+<gentext key="ListofUnknown" text="Неопределенный список"/>
+
+<gentext key="nav-prev" text="Пред."/>
+<gentext key="nav-prev-sibling" text="Пред. Подраздел"/>
+<gentext key="nav-next-sibling" text="След. Подраздел"/>
+<gentext key="nav-next" text="След."/>
+<gentext key="nav-up" text="Уровень выше"/>
+<gentext key="nav-home" text="начало"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/sk.xml b/help-converters/docbook/docbook/common/sk.xml
new file mode 100644
index 0000000..0c2fbc8
--- /dev/null
+++ b/help-converters/docbook/docbook/common/sk.xml
@@ -0,0 +1,104 @@
+<localization language="sk">
+
+<gentext key="abstract" text="Obsah"/>
+<gentext key="answer" text="A:"/>
+<gentext key="appendix" text="Dodatok"/>
+<gentext key="article" text="Článok"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Kniha"/>
+<gentext key="caution" text="VÝSTRAHA"/>
+<gentext key="caution" text="Výstraha"/>
+<gentext key="chapter" text="Kapitola"/>
+<gentext key="colophon" text="Tiráž"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Venovanie"/>
+<gentext key="edition" text="Vydanie"/>
+<gentext key="equation" text="Rovnice"/>
+<gentext key="example" text="Príklad"/>
+<gentext key="figure" text="Obrázok"/>
+<gentext key="glosssee" text="Pozri"/>
+<gentext key="glossseealso" text="Pozri tiež"/>
+<gentext key="glossary" text="Slovník"/>
+<gentext key="important" text="DÔLEŽITÉ"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Dôležité"/>
+<gentext key="index" text="Zoznam"/>
+<gentext key="legalnotice" text="Právna poznámka"/>
+<gentext key="msgaud" text="Publikum"/>
+<gentext key="msglevel" text="Úroveň"/>
+<gentext key="msgorig" text="Pôvod"/>
+<gentext key="note" text="POZNÁMKA"/>
+<gentext key="note" text="Poznámka"/>
+<gentext key="part" text="Časť"/>
+<gentext key="preface" text="Úvod"/>
+<gentext key="procedure" text="Postup"/>
+<gentext key="published" text="Vydané"/>
+<gentext key="question" text="Q:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Odkaz"/>
+<gentext key="refname" text="Meno"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Prehľad"/>
+<gentext key="revision" text="Revízia"/>
+<gentext key="revhistory" text="Prehľad revízií"/>
+<gentext key="section" text="Oddiel"/>
+<gentext key="see" text="Pozri"/>
+<gentext key="seealso" text="Pozri tiež"/>
+<gentext key="set" text="Nastaviť"/>
+<gentext key="setindex" text="Nastaviť index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Krok"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabuľka"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="VAROVANIE"/>
+<gentext key="warning" text="Varovanie"/>
+<gentext key="appendix" text="dodatok"/>
+<gentext key="chapter" text="kapitola"/>
+<gentext key="section" text="oddiel"/>
+<gentext key="sidebar" text="boční lišta"/>
+<gentext key="step" text="krok"/>
+<gentext key="seealso" text="Pozri tiež"/>
+
+<gentext key="TableofContents" text="Obsah"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Vydané"/>
+<gentext key="Editedby" text="Vydané"/>
+<gentext key="and" text="a"/>
+<gentext key="Notes" text="Poznámky"/>
+<gentext key="TableNotes" text="Poznámky"/>
+<gentext key="nonexistantelement" text="neexistujúci prvok"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodporovaný"/>
+<gentext key="xrefto" text="xref k"/>
+<gentext key="unexpectedelementname" text="Neočakávané meno prvku"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Zoznam tabuliek"/>
+<gentext key="ListofExamples" text="Zoznam príkladov"/>
+<gentext key="ListofFigures" text="Zoznam obrázkov"/>
+<gentext key="ListofEquations" text="Zoznam rovníc"/>
+<gentext key="ListofUnknown" text="Zoznam neznámeho"/>
+
+<gentext key="nav-prev" text="Predchádzajúci"/>
+<gentext key="nav-prev-sibling" text="Rýchlo nazpät"/>
+<gentext key="nav-next-sibling" text="Rýchlo dopredu"/>
+<gentext key="nav-next" text="Ďalší"/>
+<gentext key="nav-up" text="Hore"/>
+<gentext key="nav-home" text="Domov"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/sl.xml b/help-converters/docbook/docbook/common/sl.xml
new file mode 100644
index 0000000..fca0f5e
--- /dev/null
+++ b/help-converters/docbook/docbook/common/sl.xml
@@ -0,0 +1,104 @@
+<localization language="sl">
+
+<gentext key="abstract" text="Povzetek"/>
+<gentext key="answer" text="O:"/>
+<gentext key="appendix" text="Dodatek"/>
+<gentext key="article" text="Članek"/>
+<gentext key="bibliography" text="Literatura"/>
+<gentext key="book" text="Knjiga"/>
+<gentext key="caution" text="OPOZORILO"/>
+<gentext key="caution" text="Opozorilo"/>
+<gentext key="chapter" text="Poglavje"/>
+<gentext key="colophon" text="Kolofon"/>
+<gentext key="copyright" text="Pravna zaščita"/>
+<gentext key="dedication" text="Posvetilo"/>
+<gentext key="edition" text="Izdaja"/>
+<gentext key="equation" text="Enačba"/>
+<gentext key="example" text="Primer"/>
+<gentext key="figure" text="Slika"/>
+<gentext key="glosssee" text="glej"/>
+<gentext key="glossseealso" text="glej tudi"/>
+<gentext key="glossary" text="Slovarček"/>
+<gentext key="important" text="POMEMBNO"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Pomembno"/>
+<gentext key="index" text="Stvarno kazalo"/>
+<gentext key="legalnotice" text="Pravno sporočilo"/>
+<gentext key="msgaud" text="Občinstvo"/>
+<gentext key="msglevel" text="Raven"/>
+<gentext key="msgorig" text="Izvor"/>
+<gentext key="note" text="OPOMBA"/>
+<gentext key="note" text="Opomba"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Predgovor"/>
+<gentext key="procedure" text="Postopek"/>
+<gentext key="published" text="Izdano"/>
+<gentext key="question" text="V:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Sklic"/>
+<gentext key="refname" text="Ime"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Sinopsis"/>
+<gentext key="revision" text="Različica"/>
+<gentext key="revhistory" text="Zgodovina različic"/>
+<gentext key="section" text="Razdelek"/>
+<gentext key="see" text="glej"/>
+<gentext key="seealso" text="glej tudi"/>
+<gentext key="set" text="Postavi"/> <!-- ? -->
+<gentext key="setindex" text="Postavi stvarno kazalo"/> <!-- ? -->
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Korak"/>
+<gentext key="tip" text="NAMIG"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Namig"/>
+<gentext key="warning" text="POZOR"/>
+<gentext key="warning" text="Pozor"/>
+<gentext key="appendix" text="dodatek"/>
+<gentext key="chapter" text="poglavje"/>
+<gentext key="section" text="razdelek"/>
+<gentext key="sidebar" text="sidebar"/> <!-- ? -->
+<gentext key="step" text="korak"/>
+<gentext key="seealso" text="Glej tudi"/>
+
+<gentext key="TableofContents" text="Kazalo"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text="od"/> <!-- ? -->
+<gentext key="Edited" text="Urejeno"/> <!-- ? -->
+<gentext key="Editedby" text="Urejeno od"/> <!-- ? -->
+<gentext key="and" text="in"/>
+<gentext key="Notes" text="Notes"/> <!-- ? -->
+<gentext key="TableNotes" text="Notes"/> <!-- ? -->
+<gentext key="nonexistantelement" text="neobstoječi element"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodprto"/>
+<gentext key="xrefto" text="xref na"/> <!-- ? -->
+<gentext key="unexpectedelementname" text="Nepričakovano ime elementa"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Seznam tabel"/>
+<gentext key="ListofExamples" text="Seznam primerov"/>
+<gentext key="ListofFigures" text="Seznam slik"/>
+<gentext key="ListofEquations" text="Seznam enačb"/>
+<gentext key="ListofUnknown" text="Seznam neznanih stvari"/> <!-- ? -->
+
+<gentext key="nav-prev" text="Nazaj"/>
+<gentext key="nav-prev-sibling" text="Hitro nazaj"/>
+<gentext key="nav-next-sibling" text="Hitro naprej"/>
+<gentext key="nav-next" text="Naprej"/>
+<gentext key="nav-up" text="Gor"/>
+<gentext key="nav-home" text="Domov"/>
+
+<dingbat key="startquote" text='“'/>
+<dingbat key="endquote" text='”'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/sv.xml b/help-converters/docbook/docbook/common/sv.xml
new file mode 100644
index 0000000..27b45cc
--- /dev/null
+++ b/help-converters/docbook/docbook/common/sv.xml
@@ -0,0 +1,99 @@
+<localization language="sv">
+
+<gentext key="abstract" text="Abstrakt"/>
+<gentext key="appendix" text="Appendix"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text="Bok"/>
+<gentext key="caution" text="OBSERVERA"/>
+<gentext key="caution" text="Observera"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedikation"/>
+<gentext key="edition" text="Edition"/>
+<gentext key="equation" text="Ekvation"/>
+<gentext key="example" text="Exempel"/>
+<gentext key="figure" text="Figur"/>
+<gentext key="glosssee" text="Se"/>
+<gentext key="glossseealso" text="Se Även"/>
+<gentext key="glossary" text="Gloslista"/>
+<gentext key="important" text="VIKTIGT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Viktigt"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text="Legal Notice"/>
+<gentext key="msgaud" text="Målgrupp"/>
+<gentext key="msglevel" text="Nivå"/>
+<gentext key="msgorig" text="Ursprung"/>
+<gentext key="note" text="NOT"/>
+<gentext key="note" text="Not"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Företal"/>
+<gentext key="procedure" text="Procedur"/>
+<gentext key="published" text="Publicerad"/>
+<gentext key="refname" text="Namn"/>
+<gentext key="reference" text="Referens"/>
+<gentext key="revision" text="Revision"/>
+<gentext key="revhistory" text="Revisions Historik;"/>
+<gentext key="section" text="Sektion"/>
+<gentext key="see" text="Se"/>
+<gentext key="seealso" text="Se Även"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Steg"/>
+<gentext key="tip" text="TIPS"/>
+<gentext key="table" text="Tabell"/>
+<gentext key="tip" text="Tips"/>
+<gentext key="warning" text="VARNING"/>
+<gentext key="warning" text="Varning"/>
+<gentext key="appendix" text="appendix"/>
+<gentext key="chapter" text="kapitel"/>
+<gentext key="section" text="sektion"/>
+<gentext key="step" text="steg"/>
+<gentext key="seealso" text="Se även"/>
+
+<gentext key="TableofContents" text="Innehållsförteckning"/>
+<gentext key="called" text="kallas"/>
+<gentext key="in" text="i"/>
+<gentext key="by" text="av"/>
+<gentext key="Edited" text="Utgiven"/>
+<gentext key="Editedby" text="Utgiven av"/>
+<gentext key="and" text="och"/>
+<gentext key="Notes" text="Noter"/>
+<gentext key="TableNotes" text="Noter"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="the" text=""/>
+<gentext key="Pgs" text="Sid."/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref till"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Tabellförteckning"/>
+<gentext key="ListofExamples" text="Exempelförteckning"/>
+<gentext key="ListofFigures" text="Figurförteckning"/>
+<gentext key="ListofEquations" text="Ekvationsförteckning"/>
+<gentext key="ListofUnknown" text="Förteckning av okända"/>
+
+<gentext key="nav-prev" text="Förutgående"/>
+<gentext key="nav-prev-sibling" text="Snabbt frammåt"/>
+<gentext key="nav-next-sibling" text="Snabbt bakåt"/>
+<gentext key="nav-next" text="Nästa"/>
+<gentext key="nav-up" text="Upp"/>
+<gentext key="nav-home" text="Hem"/>
+
+<dingbat key="startquote" text="“"/>
+<dingbat key="endquote" text="”"/>
+<dingbat key="nestedstartquote" text="‘"/>
+<dingbat key="nestedendquote" text="’"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/zh_cn.xml b/help-converters/docbook/docbook/common/zh_cn.xml
new file mode 100644
index 0000000..ef373b4
--- /dev/null
+++ b/help-converters/docbook/docbook/common/zh_cn.xml
@@ -0,0 +1,95 @@
+<localization language="zh_cn">
+
+<gentext key="abstract" text="摘要"/>
+<gentext key="answer" text="答:"/>
+<gentext key="appendix" text="附录"/>
+<gentext key="article" text="文章"/>
+<gentext key="bibliography" text="参考书目"/>
+<gentext key="book" text="书目"/>
+<gentext key="caution" text="注意"/>
+<gentext key="chapter" text="章"/>
+<gentext key="colophon" text="Colophon"/>
+<gentext key="copyright" text="版权"/>
+<gentext key="dedication" text="奉献"/>
+<gentext key="edition" text="版"/>
+<gentext key="equation" text="方程"/>
+<gentext key="example" text="例子"/>
+<gentext key="figure" text="图形"/>
+<gentext key="glossary" text="术语表"/>
+<gentext key="glosssee" text="见"/>
+<gentext key="glossseealso" text="另见"/>
+<gentext key="important" text="重要"/>
+<gentext key="index" text="索引"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="法律布告"/>
+<gentext key="msgaud" text="读者"/>
+<gentext key="msglevel" text="难度"/>
+<gentext key="msgorig" text="出处"/>
+<gentext key="note" text="注"/>
+<gentext key="part" text="部分"/>
+<gentext key="preface" text="前言"/>
+<gentext key="procedure" text="过程"/>
+<gentext key="published" text="出版"/>
+<gentext key="question" text="问:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="参考"/>
+<gentext key="refname" text="名字"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="大纲"/>
+<gentext key="revhistory" text="修订历史"/>
+<gentext key="revision" text="修订"/>
+<gentext key="section" text="节"/>
+<gentext key="see" text="见"/>
+<gentext key="seealso" text="另见"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="sidebar"/>
+<gentext key="step" text="步骤"/>
+<gentext key="table" text="表格"/>
+<gentext key="tip" text="提示"/>
+<gentext key="tip" text="提示"/>
+<gentext key="warning" text="警告"/>
+
+<gentext key="TableofContents" text="目录"/>
+<gentext key="in" text="在"/>
+<gentext key="by" text="由"/>
+<gentext key="Edited" text="编辑"/>
+<gentext key="Editedby" text="编辑"/>
+<gentext key="and" text="和"/>
+<gentext key="Notes" text="注"/>
+<gentext key="TableNotes" text="注"/>
+<gentext key="nonexistantelement" text="不存在的元素"/>
+<gentext key="Pgs" text="页"/>
+<gentext key="unsupported" text="不支持"/>
+<gentext key="xrefto" text="参照"/>
+<gentext key="unexpectedelementname" text="未预料到的元素名"/>
+<gentext key="Revisedby" text="修订"/>
+
+<gentext key="ListofTables" text="表格列表"/>
+<gentext key="ListofExamples" text="示例列表"/>
+<gentext key="ListofFigures" text="图形列表"/>
+<gentext key="ListofEquations" text="方程式列表"/>
+<gentext key="ListofUnknown" text="其他内容列表"/>
+
+<gentext key="nav-prev" text="后退"/>
+<gentext key="nav-prev-sibling" text="快速后退"/>
+<gentext key="nav-next-sibling" text="快速前进"/>
+<gentext key="nav-next" text="前进"/>
+<gentext key="nav-up" text="上一级"/>
+<gentext key="nav-home" text="起点"/>
+
+<dingbat key="startquote" text='"'/>
+<dingbat key="endquote" text='"'/>
+<dingbat key="nestedstartquote" text="'"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="appendix" text="%g %n"/>
+<xref element="chapter" text="%g %n"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/common/zh_tw.xml b/help-converters/docbook/docbook/common/zh_tw.xml
new file mode 100644
index 0000000..7168114
--- /dev/null
+++ b/help-converters/docbook/docbook/common/zh_tw.xml
@@ -0,0 +1,98 @@
+<localization language="zh_tw">
+
+<gentext key="abstract" text="摘要"/>
+<gentext key="answer" text="答:"/>
+<gentext key="appendix" text="附錄"/>
+<gentext key="article" text="文章"/>
+<gentext key="bibliography" text="參考文獻"/>
+<gentext key="book" text="書目"/>
+<gentext key="caution" text="注意"/>
+<gentext key="chapter" text="章"/>
+<gentext key="colophon" text="版本記錄"/>
+<gentext key="copyright" text="版權"/>
+<gentext key="dedication" text="奉獻"/>
+<gentext key="edition" text="版"/>
+<gentext key="equation" text="方程式"/>
+<gentext key="example" text="範例"/>
+<gentext key="figure" text="圖形"/>
+<gentext key="glossary" text="小辭彙"/>
+<gentext key="glosssee" text="參見"/>
+<gentext key="glossseealso" text="另參見"/>
+<gentext key="important" text="重要"/>
+<gentext key="index" text="索引"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="法律聲明"/>
+<gentext key="msgaud" text="讀者"/>
+<gentext key="msglevel" text="程度"/>
+<gentext key="msgorig" text="出處"/>
+<gentext key="note" text="注"/>
+<gentext key="part" text="部"/>
+<gentext key="preface" text="序言"/>
+<gentext key="procedure" text="過程"/>
+<gentext key="published" text="出版"/>
+<gentext key="question" text="問:"/>
+<gentext key="refentry" text="參照項目"/>
+<gentext key="reference" text="參考"/>
+<gentext key="refname" text="參考名"/>
+<gentext key="refsection" text="參照章節"/>
+<gentext key="refsynopsisdiv" text="大綱"/>
+<gentext key="revhistory" text="修訂記錄"/>
+<gentext key="revision" text="修訂"/>
+<gentext key="section" text="節"/>
+<gentext key="see" text="見"/>
+<gentext key="seealso" text="另見"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="步驟"/>
+<gentext key="table" text="表格"/>
+<gentext key="tip" text="提示"/>
+<gentext key="tip" text="提示"/>
+<gentext key="warning" text="警告"/>
+
+<gentext key="TableofContents"
+ text="內容目錄"/>
+<gentext key="in" text="在"/>
+<gentext key="by" text="由"/>
+<gentext key="Edited" text="編輯"/>
+<gentext key="Editedby" text="編輯"/>
+<gentext key="and" text="且"/>
+<gentext key="Notes" text="注"/>
+<gentext key="TableNotes" text="注釋"/>
+<gentext key="nonexistantelement"
+ text="不存在的元素"/>
+<gentext key="Pgs" text="頁"/>
+<gentext key="unsupported" text="未支援"/>
+<gentext key="xrefto" text="參照"/>
+<gentext key="unexpectedelementname"
+ text="非預期的元素名"/>
+<gentext key="Revisedby" text="修訂"/>
+
+<gentext key="ListofTables" text="附表目錄"/>
+<gentext key="ListofExamples" text="範例目錄"/>
+<gentext key="ListofFigures" text="附圖目錄"/>
+<gentext key="ListofEquations" text="公式目錄"/>
+<gentext key="ListofUnknown" text="其它內容目錄"/>
+
+<gentext key="nav-prev" text="前一頁"/>
+<gentext key="nav-prev-sibling" text="快速向前"/>
+<gentext key="nav-next-sibling" text="快速向後"/>
+<gentext key="nav-next" text="下一頁"/>
+<gentext key="nav-up" text="上一層"/>
+<gentext key="nav-home" text="內容"/>
+
+<dingbat key="startquote" text="""/>
+<dingbat key="endquote" text="""/>
+<dingbat key="nestedstartquote" text="'"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="ߦ"/>
+
+<xref element="appendix" text="%g %n"/>
+<xref element="chapter" text="%g %n"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/help-converters/docbook/docbook/html/admon.xsl b/help-converters/docbook/docbook/html/admon.xsl
new file mode 100644
index 0000000..234c3a2
--- /dev/null
+++ b/help-converters/docbook/docbook/html/admon.xsl
@@ -0,0 +1,149 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="note|important|warning|caution|tip">
+ <xsl:choose>
+ <xsl:when test="$admon.graphics != 0">
+ <xsl:call-template name="graphical.admonition"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="nongraphical.admonition"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="admon.graphic.width">
+ <xsl:param name="node" select="."/>
+ <xsl:text>25</xsl:text>
+</xsl:template>
+
+<xsl:template name="admon.graphic">
+ <xsl:param name="node" select="."/>
+ <xsl:value-of select="$admon.graphics.path"/>
+ <xsl:choose>
+ <xsl:when test="name($node)='note'">note</xsl:when>
+ <xsl:when test="name($node)='warning'">warning</xsl:when>
+ <xsl:when test="name($node)='caution'">caution</xsl:when>
+ <xsl:when test="name($node)='tip'">tip</xsl:when>
+ <xsl:when test="name($node)='important'">important</xsl:when>
+ <xsl:otherwise>note</xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$admon.graphics.extension"/>
+</xsl:template>
+
+<xsl:template name="graphical.admonition">
+ <div class="{name(.)}">
+ <xsl:if test="$admon.style">
+ <xsl:attribute name="style">
+ <xsl:value-of select="$admon.style"/>
+ </xsl:attribute>
+ </xsl:if>
+ <table border="0">
+ <tr>
+ <td rowspan="2" align="center" valign="top">
+ <xsl:attribute name="width">
+ <xsl:call-template name="admon.graphic.width"/>
+ </xsl:attribute>
+ <img>
+ <xsl:attribute name="src">
+ <xsl:call-template name="admon.graphic"/>
+ </xsl:attribute>
+ </img>
+ </td>
+ <th>
+ <xsl:choose>
+ <xsl:when test="./title">
+ <xsl:apply-templates select="./title"
+ mode="graphic.admonition.title.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </th>
+ </tr>
+ <tr>
+ <td colspan="2" align="left" valign="top">
+ <xsl:apply-templates/>
+ </td>
+ </tr>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template name="nongraphical.admonition">
+ <div class="{name(.)}">
+ <xsl:if test="$admon.style">
+ <xsl:attribute name="style">
+ <xsl:value-of select="$admon.style"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="./title">
+ <xsl:apply-templates select="./title" mode="admonition.title.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <h3 class="title">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ </a>
+ </h3>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="note/title"></xsl:template>
+<xsl:template match="important/title"></xsl:template>
+<xsl:template match="warning/title"></xsl:template>
+<xsl:template match="caution/title"></xsl:template>
+<xsl:template match="tip/title"></xsl:template>
+
+<xsl:template match="title" mode="admonition.title.mode">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <h3 class="title">
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </h3>
+</xsl:template>
+
+<xsl:template match="title" mode="graphic.admonition.title.mode">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <b class="title">
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </b>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/autotoc.xsl b/help-converters/docbook/docbook/html/autotoc.xsl
new file mode 100644
index 0000000..e4a2204
--- /dev/null
+++ b/help-converters/docbook/docbook/html/autotoc.xsl
@@ -0,0 +1,511 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template name="href.target">
+ <xsl:param name="object" select="."/>
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:variable name="toc.listitem.type">
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when>
+ <xsl:otherwise>li</xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+
+<!-- this is just hack because dl and ul aren't completely isomorphic -->
+<xsl:variable name="toc.dd.type">
+ <xsl:choose>
+ <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+
+<xsl:template name="set.toc">
+ <xsl:variable name="nodes" select="book|setindex"/>
+ <xsl:if test="$nodes">
+ <div class="toc">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes" mode="toc"/>
+ </xsl:element>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="division.toc">
+ <xsl:if test="$generate.division.toc != 0">
+ <xsl:variable name="nodes" select="part|reference
+ |preface|chapter|appendix
+ |bibliography|glossary|index
+ |refentry"/>
+ <xsl:if test="$nodes">
+ <div class="toc">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes" mode="toc"/>
+ </xsl:element>
+ </div>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.toc">
+ <xsl:if test="$generate.component.toc != 0">
+ <xsl:variable name="nodes" select="section|sect1|refentry"/>
+ <xsl:if test="$nodes">
+ <div class="toc">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes" mode="toc"/>
+ </xsl:element>
+ </div>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="section.toc">
+ <xsl:variable name="nodes" select="section|sect1|sect2|sect3|sect4|sect5|refentry"/>
+ <xsl:if test="$nodes">
+ <div class="toc">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">TableofContents</xsl:with-param>
+ </xsl:call-template>
+ </b>
+ </p>
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="$nodes" mode="toc"/>
+ </xsl:element>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book|setindex" mode="toc">
+ <xsl:variable name="nodes" select="part|reference
+ |preface|chapter|appendix
+ |bibliography|glossary|index
+ |refentry"/>
+
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates mode="toc" select="$nodes"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth>0 and count($nodes)>0">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth>0 and count($nodes)>0">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="part|reference|preface|chapter|appendix"
+ mode="toc">
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="section|sect1" mode="toc"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth>0 and section|sect1">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth>0 and section|sect1">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect1" mode="toc">
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="sect2" mode="toc"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth>1 and sect2">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth>1 and sect2">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect2" mode="toc">
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="sect3" mode="toc"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth>2 and sect3">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth>2 and sect3">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect3" mode="toc">
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="sect4" mode="toc"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth>3 and sect4">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth>3 and sect4">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect4" mode="toc">
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="sect5" mode="toc"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toc.section.depth>4 and sect5">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toc.section.depth>4 and sect5">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="sect5" mode="toc">
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="section" mode="toc">
+ <xsl:variable name="subtoc">
+ <xsl:element name="{$toc.list.type}">
+ <xsl:apply-templates select="section" mode="toc"/>
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:variable name="subtoc.list">
+ <xsl:choose>
+ <xsl:when test="$toc.dd.type = ''">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$toc.dd.type}">
+ <xsl:copy-of select="$subtoc"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="toodeep">
+ <xsl:choose>
+ <!-- if the depth is less than 2, we're already deep enough -->
+ <xsl:when test="$toc.section.depth < 2">yes</xsl:when>
+ <!-- if the current section has n-1 section ancestors -->
+ <!-- then we've already reached depth n -->
+ <xsl:when test="ancestor::section[position()=$toc.section.depth - 1]">
+ <xsl:text>yes</xsl:text>
+ </xsl:when>
+ <!-- otherwise, keep going -->
+ <xsl:otherwise>no</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="." mode="title.content"/>
+ </a>
+ <xsl:if test="$toc.listitem.type = 'li'
+ and $toodeep='no' and section">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$toc.listitem.type != 'li'
+ and $toodeep='no' and section">
+ <xsl:copy-of select="$subtoc.list"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary"
+ mode="toc">
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:choose>
+ <xsl:when test="title[1]">
+ <xsl:apply-templates select="title[1]" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="index" mode="toc">
+ <!-- If the index tag is empty, don't point at it from the TOC -->
+ <xsl:if test="* or $generate.index">
+ <xsl:element name="{$toc.listitem.type}">
+ <xsl:choose>
+ <xsl:when test="title[1]">
+ <xsl:apply-templates select="title[1]" mode="toc"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refentry" mode="toc">
+ <xsl:variable name="refmeta" select=".//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select=".//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]" mode="title"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$toc.listitem.type}">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target"/>
+ </xsl:attribute>
+ <xsl:copy-of select="$title"/>
+ </a>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="title" mode="toc">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/biblio.xsl b/help-converters/docbook/docbook/html/biblio.xsl
new file mode 100644
index 0000000..2742025
--- /dev/null
+++ b/help-converters/docbook/docbook/html/biblio.xsl
@@ -0,0 +1,948 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliography">
+ <div class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:choose>
+ <xsl:when test="./title">
+ <xsl:apply-templates select="./title" mode="component.title.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2 class="title">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ </a>
+ </h2>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="./subtitle">
+ <xsl:apply-templates select="./subtitle" mode="component.title.mode"/>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
+<xsl:template match="bibliography/title"></xsl:template>
+<xsl:template match="bibliography/subtitle"></xsl:template>
+<xsl:template match="bibliography/titleabbrev"></xsl:template>
+
+<xsl:template match="bibliography/title" mode="component.title.mode">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <h2 class="title">
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </h2>
+</xsl:template>
+
+<xsl:template match="bibliography/subtitle" mode="component.title.mode">
+ <h3>
+ <i><xsl:apply-templates/></i>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bibliodiv">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="bibliodiv/title">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <h3 class="{name(.)}">
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="biblioentry">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <div id="{$id}" class="{name(.)}">
+ <a name="{$id}"/>
+ <p>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </p>
+ </div>
+</xsl:template>
+
+<xsl:template match="bibliomixed">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <div id="{$id}" class="{name(.)}">
+ <a name="{$id}"/>
+ <p>
+ <xsl:choose>
+ <xsl:when test="local-name(*[1]) = 'abbrev'">
+ <xsl:apply-templates select="*[position()>1]|text()"
+ mode="bibliomixed.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </p>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliography.mode">
+ <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:text>[</xsl:text>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:text>] </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliography.mode">
+ <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="address" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="artheader|articleinfo" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:call-template name="person.name"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliography.mode">
+ <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:call-template name="person.name.list"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="biblioset/title|biblioset/citetitle"
+ mode="bibliography.mode">
+ <xsl:variable name="relation" select="../@relation"/>
+ <xsl:choose>
+ <xsl:when test="$relation='article'">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <I><xsl:apply-templates/></I>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bookbiblio" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <i><xsl:apply-templates mode="bibliography.mode"/></i>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="collabname" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confdates" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="conftitle" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confnum" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confsponsor" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="copyright" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="year" mode="bibliography.mode"/>
+ <xsl:if test="holder">
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="holder" mode="bibliography.mode"/>
+ </xsl:if>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="year" mode="bibliography.mode">
+ <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="bibliography.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="bibliography.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="corpauthor" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:call-template name="person.name"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliography.mode">
+ <!-- suppressed -->
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="seriesinfo" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <I><xsl:apply-templates mode="bibliography.mode"/></I>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliography.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="bibliomixed.mode">
+ <xsl:apply-templates select="."/><!-- try the default mode -->
+</xsl:template>
+
+<xsl:template match="abbrev" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="address" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="author" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="bibliomset" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomset/title|bibliomset/citetitle"
+ mode="bibliomixed.mode">
+ <xsl:variable name="relation" select="../@relation"/>
+ <xsl:choose>
+ <xsl:when test="$relation='article'">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">ldquo</xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">rdquo</xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <I><xsl:apply-templates/></I>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================== -->
+
+<xsl:template match="biblioset" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="citetitle" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <i><xsl:apply-templates mode="bibliomixed.mode"/></i>
+ </span>
+</xsl:template>
+
+<xsl:template match="collab" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="corpname" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="date" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="editor" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="firstname" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="honorific" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="lineage" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othername" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productname" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publisher" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="publishername" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="surname" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="title" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="bibliomixed.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="bibliomixed.mode"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/block.xsl b/help-converters/docbook/docbook/html/block.xsl
new file mode 100644
index 0000000..bf53b8d
--- /dev/null
+++ b/help-converters/docbook/docbook/html/block.xsl
@@ -0,0 +1,323 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="block.object">
+ <div class="{name(.)}">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="para">
+ <p>
+ <xsl:if test="position() = 1 and parent::listitem">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="parent::listitem"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </a>
+ </xsl:if>
+
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="simpara">
+ <p>
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="formalpara">
+ <p>
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="formalpara/title">
+ <b><xsl:apply-templates/></b>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="formalpara/para">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="blockquote">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="attribution">
+ <table border="0" width="100%"
+ cellspacing="0" cellpadding="0" class="blockquote"
+ summary="Block quote">
+ <tr>
+ <td width="10%" valign="top"> </td>
+ <td width="80%" valign="top">
+ <xsl:apply-templates
+ select="child::*[local-name(.)!='attribution']"/>
+ </td>
+ <td width="10%" valign="top"> </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="right" valign="top">
+ <xsl:text>--</xsl:text>
+ <xsl:apply-templates select="attribution"/>
+ </td>
+ <td width="10%" valign="top"> </td>
+ </tr>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <blockquote class="blockquote">
+ <xsl:apply-templates/>
+ </blockquote>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="epigraph">
+ <div class="{name(.)}">
+ <xsl:apply-templates select="para"/>
+ <span>--<xsl:apply-templates select="attribution"/></span>
+ </div>
+</xsl:template>
+
+<xsl:template match="attribution">
+ <span class="{name(.)}"><xsl:apply-templates/></span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="sidebar">
+ <div class="{name(.)}">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="sidebar/title">
+ <p class="title">
+ <b><xsl:apply-templates/></b>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="abstract">
+ <div class="{name(.)}">
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="title.ref"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="abstract/title">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="msgset">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgentry">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="simplemsgentry">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msg">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgmain">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgmain/title">
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgsub">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgsub/title">
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgrel">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msgrel/title">
+ <b><xsl:apply-templates/></b>
+</xsl:template>
+
+<xsl:template match="msgtext">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="msginfo">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msglevel|msgorig|msgaud">
+ <p>
+ <b>
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:text>: </xsl:text>
+ </b>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="msgexplan">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="msgexplan/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="revhistory">
+ <div class="{name(.)}">
+ <table border="0" width="100%" summary="Revision history">
+ <tr>
+ <th align="left" valign="top" colspan="3">
+ <b><xsl:call-template name="gentext.element.name"/></b>
+ </th>
+ </tr>
+ <xsl:apply-templates/>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision">
+ <xsl:variable name="revnumber" select=".//revnumber"/>
+ <xsl:variable name="revdate" select=".//date"/>
+ <xsl:variable name="revauthor" select=".//authorinitials"/>
+ <xsl:variable name="revremark" select=".//revremark|../revdescription"/>
+ <tr>
+ <td align="left">
+ <xsl:if test="$revnumber">
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$revnumber"/>
+ </xsl:if>
+ </td>
+ <td align="left">
+ <xsl:apply-templates select="$revdate"/>
+ </td>
+ <xsl:choose>
+ <xsl:when test="count($revauthor)=0">
+ <td align="left">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">nbsp</xsl:with-param>
+ </xsl:call-template>
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td align="left">
+ <xsl:apply-templates select="$revauthor"/>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ <xsl:if test="$revremark">
+ <tr>
+ <td align="left" colspan="3">
+ <xsl:apply-templates select="$revremark"/>
+ </td>
+ </tr>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/date">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials">
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials[1]" priority="2">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revremark">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="ackno">
+ <p class="{name(.)}">
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="highlights">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/callout.xsl b/help-converters/docbook/docbook/html/callout.xsl
new file mode 100644
index 0000000..68ca333
--- /dev/null
+++ b/help-converters/docbook/docbook/html/callout.xsl
@@ -0,0 +1,127 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:verb5="http://nwalsh.com/com.nwalsh.saxon.Verbatim"
+ xmlns:verb6="http://nwalsh.com/com.nwalsh.saxon6.Verbatim"
+ exclude-result-prefixes="verb5 verb6"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="programlistingco|screenco">
+ <xsl:variable name="verbatim" select="programlisting|screen"/>
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:choose>
+ <xsl:when test="$saxon.extensions != '0'
+ and $saxon.callouts != '0'">
+ <xsl:variable name="rtf">
+ <xsl:apply-templates select="$verbatim">
+ <xsl:with-param name="suppress-numbers" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:variable>
+ <xsl:variable name="rtf-with-callouts">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <xsl:copy-of select="verb6:insertCallouts(areaspec,$rtf)"/>
+ </xsl:when>
+ <xsl:when test="$callout.graphics != 0">
+ <xsl:copy-of select="verb5:insertCallouts(areaspec,$rtf,
+ $callout.defaultcolumn,
+ $callout.graphics.path,
+ $callout.graphics.extension,
+ $callout.graphics.number.limit,
+ false())"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="verb5:insertCallouts(areaspec,$rtf,
+ $callout.defaultcolumn)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$verbatim/@linenumbering = 'numbered'
+ and $saxon.extensions != '0'
+ and $saxon.linenumbering != '0'">
+ <div class="{name(.)}">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <xsl:copy-of select="verb6:numberLines($rtf-with-callouts)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="verb5:numberLines($rtf-with-callouts,
+ $linenumbering.everyNth,
+ $linenumbering.width,
+ $linenumbering.separator)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="calloutlist"/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="{name(.)}">
+ <xsl:copy-of select="$rtf-with-callouts"/>
+ <xsl:apply-templates select="calloutlist"/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="areaspec|areaset|area">
+</xsl:template>
+
+<xsl:template match="areaset" mode="conumber">
+ <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="area" mode="conumber">
+ <xsl:number count="area|areaset" format="1"/>
+</xsl:template>
+
+<xsl:template match="co">
+ <a name="{ id}"/>
+ <xsl:apply-templates select="." mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="co" mode="callout-bug">
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:number count="co" format="1"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="callout-bug">
+ <xsl:param name="conum" select='1'/>
+
+ <xsl:choose>
+ <xsl:when test="$callout.graphics = '0'
+ or $conum > $callout.graphics.number.limit">
+
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$conum"/>
+ <xsl:text>)</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <img src="{$callout.graphics.path}{$conum}{$callout.graphics.extension}"
+ alt="{$conum}" border="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/changebars.xsl b/help-converters/docbook/docbook/html/changebars.xsl
new file mode 100644
index 0000000..fee001a
--- /dev/null
+++ b/help-converters/docbook/docbook/html/changebars.xsl
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="docbook.xsl"/>
+
+<xsl:param name="show.revisionflag" select="'1'"/>
+
+<xsl:template name="user.head.content">
+<style type="text/css">
+<xsl:text>
+div.added { background-color: yellow; }
+div.deleted { text-decoration: line-through;
+ background-color: #FF7F7F; }
+div.changed { background-color: lime; }
+div.off { }
+
+span.added { background-color: yellow; }
+span.deleted { text-decoration: line-through;
+ background-color: #FF7F7F; }
+span.changed { background-color: lime; }
+span.off { }
+</xsl:text>
+</style>
+</xsl:template>
+
+<xsl:template match="*[ revisionflag]">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'para'
+ or local-name(.) = 'section'
+ or local-name(.) = 'sect1'
+ or local-name(.) = 'sect2'
+ or local-name(.) = 'sect3'
+ or local-name(.) = 'sect4'
+ or local-name(.) = 'sect5'
+ or local-name(.) = 'chapter'
+ or local-name(.) = 'preface'
+ or local-name(.) = 'itemizedlist'
+ or local-name(.) = 'appendix'">
+ <div class='{ revisionflag}'>
+ <xsl:apply-imports/>
+ </div>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'phrase'
+ or local-name(.) = 'ulink'
+ or local-name(.) = 'filename'
+ or local-name(.) = 'literal'
+ or local-name(.) = 'emphasis'
+ or local-name(.) = 'command'
+ or local-name(.) = 'xref'">
+ <span class='{ revisionflag}'>
+ <xsl:apply-imports/>
+ </span>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'listitem'
+ or local-name(.) = 'title'">
+ <!-- nop; these are handled directly in the stylesheet -->
+ <xsl:apply-imports/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Revisionflag on unexpected element: </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ <xsl:text>(Assuming block)</xsl:text>
+ </xsl:message>
+ <div class='{ revisionflag}'>
+ <xsl:apply-imports/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/chunk-common.xsl b/help-converters/docbook/docbook/html/chunk-common.xsl
new file mode 100644
index 0000000..4b3221a
--- /dev/null
+++ b/help-converters/docbook/docbook/html/chunk-common.xsl
@@ -0,0 +1,755 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc"
+ extension-element-prefixes="saxon xalanredirect lxslt">
+
+<xsl:import href="docbook.xsl"/>
+
+<xsl:output method="html"
+ encoding="ISO-8859-1"
+ indent="no"/>
+
+<xsl:param name="html.ext" select="'.html'"/>
+<xsl:param name="root.filename" select="'index'"/>
+<xsl:param name="base.dir" select="''"/>
+<doc:param name="base.dir" xmlns="">
+<refpurpose>Output directory for chunks</refpurpose>
+<refdescription>
+<para>If specified, the <literal>base.dir</literal> identifies
+the output directory for chunks. (If not specified, the output directory
+is system dependent.)</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<!-- What's a chunk?
+
+ appendix
+ article
+ bibliography in article or book
+ book
+ chapter
+ colophon
+ glossary in article or book
+ index in article or book
+ part
+ preface
+ refentry
+ reference
+ sect1 if position()>1
+ section if position()>1 && parent != section
+ set
+ setindex
+ -->
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk">
+ <xsl:param name="node" select="."/>
+ <!-- returns 1 if $node is a chunk -->
+
+ <xsl:choose>
+ <xsl:when test="name($node)='sect1'
+ and count($node/preceding-sibling::sect1) > 0">1</xsl:when>
+ <xsl:when test="name($node)='section'
+ and count($node/parent::section) = 0
+ and count($node/preceding-sibling::section) > 0">1</xsl:when>
+ <xsl:when test="name($node)='preface'">1</xsl:when>
+ <xsl:when test="name($node)='chapter'">1</xsl:when>
+ <xsl:when test="name($node)='appendix'">1</xsl:when>
+ <xsl:when test="name($node)='article'">1</xsl:when>
+ <xsl:when test="name($node)='part'">1</xsl:when>
+ <xsl:when test="name($node)='reference'">1</xsl:when>
+ <xsl:when test="name($node)='refentry'">1</xsl:when>
+ <xsl:when test="name($node)='index'
+ and (name($node/parent::*) = 'article'
+ or name($node/parent::*) = 'book')">1</xsl:when>
+ <xsl:when test="name($node)='bibliography'
+ and (name($node/parent::*) = 'article'
+ or name($node/parent::*) = 'book')">1</xsl:when>
+ <xsl:when test="name($node)='glossary'
+ and (name($node/parent::*) = 'article'
+ or name($node/parent::*) = 'book')">1</xsl:when>
+ <xsl:when test="name($node)='colophon'">1</xsl:when>
+ <xsl:when test="name($node)='book'">1</xsl:when>
+ <xsl:when test="name($node)='set'">1</xsl:when>
+ <xsl:when test="name($node)='setindex'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="chunk-filename">
+ <xsl:param name="recursive" select="false()"/>
+
+ <!-- returns the filename of a chunk -->
+ <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>
+ <xsl:variable name="filename">
+ <xsl:call-template name="dbhtml-filename"/>
+ </xsl:variable>
+ <xsl:variable name="dir">
+ <xsl:call-template name="dbhtml-dir"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ischunk='0'">
+ <!-- if called on something that isn't a chunk, walk up... -->
+ <xsl:choose>
+ <xsl:when test="count(parent::*)>0">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="$recursive"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- unless there is no up, in which case return "" -->
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="not($recursive) and $filename != ''">
+ <!-- if this chunk has an explicit name, use it -->
+ <xsl:if test="$dir != ''">
+ <xsl:value-of select="$dir"/>
+ <xsl:text>/</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+
+ <xsl:when test="name(.)='set'">
+ <xsl:value-of select="$root.filename"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='book'">
+ <xsl:choose>
+ <xsl:when test="count(parent::*)>0">
+ <xsl:text>bk</xsl:text>
+ <xsl:number level="any" format="01"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$root.filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='article'">
+ <xsl:choose>
+ <xsl:when test="/set">
+ <!-- in a set, make sure we inherit the right book info... -->
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="count(parent::*)>0">
+ <!-- if we aren't the root, name them numerically ... -->
+ <xsl:text>ar</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$root.filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='preface'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>pr</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='chapter'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>ch</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='appendix'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>ap</xsl:text>
+ <xsl:number level="any" format="a" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='part'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>pt</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='reference'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>rn</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='refentry'">
+ <xsl:if test="parent::reference">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>re</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='colophon'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>co</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='sect1' or name(.)='section'">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ <xsl:text>s</xsl:text>
+ <xsl:number level="any" format="01" from="preface|chapter|appendix"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='bibliography'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>bi</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='glossary'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>go</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='index'">
+ <xsl:if test="/set">
+ <xsl:apply-templates mode="chunk-filename" select="parent::*">
+ <xsl:with-param name="recursive" select="true()"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:text>ix</xsl:text>
+ <xsl:number level="any" format="01" from="book"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:when test="name(.)='setindex'">
+ <xsl:text>si</xsl:text>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text>chunk-filename-error-</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:number level="any" format="01" from="set"/>
+ <xsl:if test="not($recursive)">
+ <xsl:value-of select="$html.ext"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="href.target">
+ <xsl:param name="object" select="."/>
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk">
+ <xsl:with-param name="node" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:apply-templates mode="chunk-filename" select="$object"/>
+
+ <xsl:if test="$ischunk='0'">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="html.head">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <head>
+ <xsl:call-template name="head.content"/>
+ <xsl:call-template name="user.head.content"/>
+
+ <xsl:if test="$home">
+ <link rel="home">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$home" mode="title.ref">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$up">
+ <link rel="up">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$up"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$up" mode="title.ref">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$prev">
+ <link rel="previous">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$prev" mode="title.ref">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+
+ <xsl:if test="$next">
+ <link rel="next">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:apply-templates select="$next" mode="title.ref">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:attribute>
+ </link>
+ </xsl:if>
+ </head>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <xsl:if test="$suppress.navigation = '0'">
+ <div class="navheader">
+ <table width="100%">
+ <tr>
+ <th colspan="3" align="center">
+ <xsl:apply-templates select="." mode="title.ref"/>
+ </th>
+ </tr>
+ <tr>
+ <td width="20%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.nav.prev"/>
+ </a>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+ <th width="60%" align="center">
+ <xsl:choose>
+ <xsl:when test="count($up) > 0 and $up != $home">
+ <xsl:apply-templates select="$up" mode="title.ref"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </th>
+ <td width="20%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:if test="count($next)>0">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.nav.next"/>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </table>
+ <hr/>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.navigation">
+ <xsl:param name="prev" select="/foo"/>
+ <xsl:param name="next" select="/foo"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
+
+ <xsl:if test="$suppress.navigation = '0'">
+ <div class="navfooter">
+ <hr/>
+ <table width="100%">
+ <tr>
+ <td width="40%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.nav.prev"/>
+ </a>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="$home != .">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.nav.home"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td width="40%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:if test="count($next)>0">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.nav.next"/>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+
+ <tr>
+ <td width="40%" align="left">
+ <xsl:apply-templates select="$prev" mode="title.ref"/>
+ <xsl:text> </xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="count($up)>0">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$up"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.nav.up"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td width="40%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$next" mode="title.ref"/>
+ </td>
+ </tr>
+ </table>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml')">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process-chunk-element">
+ <xsl:variable name="root" select="count(parent::*) > 0"/>
+
+ <xsl:variable name="prev"
+ select="(preceding::book[1]
+ |preceding::preface[1]
+ |preceding::chapter[1]
+ |preceding::appendix[1]
+ |preceding::part[1]
+ |preceding::reference[1]
+ |preceding::refentry[1]
+ |preceding::colophon[1]
+ |preceding::sect1[name(preceding-sibling::*[1]) = 'sect1'][1]
+ |preceding::section[name(preceding-sibling::*[1]) = 'section'
+ and name(parent::*) != 'section'][1]
+ |preceding::article[1]
+ |preceding::bibliography[1]
+ |preceding::glossary[1]
+ |preceding::index[1]
+ |preceding::setindex[1]
+ |ancestor::set
+ |ancestor::book[1]
+ |ancestor::preface[1]
+ |ancestor::chapter[1]
+ |ancestor::appendix[1]
+ |ancestor::part[1]
+ |ancestor::reference[1]
+ |ancestor::article[1])[last()]"/>
+
+ <xsl:variable name="next"
+ select="(following::book[1]
+ |following::preface[1]
+ |following::chapter[1]
+ |following::appendix[1]
+ |following::part[1]
+ |following::reference[1]
+ |following::refentry[1]
+ |following::colophon[1]
+ |following::sect1[1]
+ |following::section[name(parent::*) != 'section'][1]
+ |following::bibliography[1]
+ |following::glossary[1]
+ |following::index[1]
+ |following::article[1]
+ |following::setindex[1]
+ |descendant::book[1]
+ |descendant::preface[1]
+ |descendant::chapter[1]
+ |descendant::appendix[1]
+ |descendant::article[1]
+ |descendant::bibliography[1]
+ |descendant::glossary[1]
+ |descendant::index[1]
+ |descendant::colophon[1]
+ |descendant::setindex[1]
+ |descendant::part[1]
+ |descendant::reference[1]
+ |descendant::refentry[1]
+ |descendant::sect1[2]
+ |descendant::section[name(parent::*) != 'section'][2])[1]"/>
+
+ <xsl:variable name="ischunk">
+ <xsl:call-template name="chunk"/>
+ </xsl:variable>
+
+ <xsl:variable name="chunkfn">
+ <xsl:if test="$ischunk='1'">
+ <xsl:apply-templates mode="chunk-filename" select="."/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:if test="$ischunk='0'">
+ <xsl:message>
+ <xsl:text>Error </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text> is not a chunk!</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.name" select="$chunkfn"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:message>
+ <xsl:text>Writing </xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename" select="$filename"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="chunk-element-content">
+ <xsl:param name="prev"></xsl:param>
+ <xsl:param name="next"></xsl:param>
+
+ <html>
+ <xsl:call-template name="html.head">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <body xsl:use-attribute-sets="body.attrs">
+ <xsl:call-template name="header.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="user.header.content"/>
+
+ <xsl:apply-imports/>
+
+ <xsl:call-template name="user.footer.content"/>
+
+ <xsl:call-template name="footer.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
+ </body>
+ </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="/">
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count(id($rootid)) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="id($rootid)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set|book|part|preface|chapter|appendix
+ |article
+ |reference|refentry
+ |sect1[position()>1]
+ |section[position()>1 and name(parent::*) != 'section']
+ |book/glossary|article/glossary
+ |book/bibliography|article/bibliography
+ |colophon">
+ <xsl:call-template name="process-chunk-element"/>
+</xsl:template>
+
+<xsl:template match="setindex
+ |book/index
+ |article/index">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. -->
+ <xsl:if test="count(*)>0">
+ <xsl:call-template name="process-chunk-element"/>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/chunk.xsl b/help-converters/docbook/docbook/html/chunk.xsl
new file mode 100644
index 0000000..250c296
--- /dev/null
+++ b/help-converters/docbook/docbook/html/chunk.xsl
@@ -0,0 +1,67 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:lxslt="http://xml.apache.org/xslt"
+ xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ version="1.0"
+ exclude-result-prefixes="doc"
+ extension-element-prefixes="saxon xalanredirect lxslt">
+
+<!-- This stylesheet does not work with XT. Use xtchunk.xsl instead. -->
+
+<xsl:include href="chunk-common.xsl"/>
+
+<!-- ==================================================================== -->
+<!-- This is a workaround for a XalanJ1 bug in element-available. -->
+
+<lxslt:component prefix="xalanredirect" elements="write">
+ <lxslt:script lang="javaclass"
+ src="org.apache.xalan.xslt.extensions.Redirect"/>
+</lxslt:component>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="make-relative-filename">
+ <xsl:param name="base.dir" select="'./'"/>
+ <xsl:param name="base.name" select="''"/>
+
+ <xsl:choose>
+ <xsl:when test="element-available('xalanredirect:write')">
+ <!-- Xalan doesn't make the chunks relative -->
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:when test="element-available('saxon:output')">
+ <!-- Saxon doesn't make the chunks relative -->
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <!-- XT makes chunks relative, but it doesn't support -->
+ <!-- element-available() so use xtchunk.xsl instead. -->
+ <xsl:otherwise>
+ <!-- it doesn't matter since we won't be making chunks... -->
+ <xsl:value-of select="$base.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="method" select="'html'"/>
+ <xsl:param name="encoding" select="'ISO-8859-1'"/>
+ <xsl:param name="content" select="''"/>
+
+ <xalanredirect:write file="{$filename}">
+ <xsl:copy-of select="$content"/>
+ <xsl:fallback>
+ <saxon:output file="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}">
+ <xsl:copy-of select="$content"/>
+ <xsl:fallback>
+ <xsl:copy-of select="$content"/>
+ </xsl:fallback>
+ </saxon:output>
+ </xsl:fallback>
+ </xalanredirect:write>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/component.xsl b/help-converters/docbook/docbook/html/component.xsl
new file mode 100644
index 0000000..63e46e5
--- /dev/null
+++ b/help-converters/docbook/docbook/html/component.xsl
@@ -0,0 +1,277 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template name="component.title">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <h2 class="title">
+ <a name="{$id}"/>
+ <xsl:apply-templates select="$node" mode="title.ref">
+ <xsl:with-param name="allow-anchors" select="'1'"/>
+ </xsl:apply-templates>
+ </h2>
+</xsl:template>
+
+<xsl:template name="component.subtitle">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="subtitle">
+ <xsl:apply-templates select="$node" mode="subtitle.content"/>
+ </xsl:variable>
+
+ <xsl:if test="$subtitle != ''">
+ <h3 class="subtitle">
+ <i>
+ <xsl:copy-of select="$subtitle"/>
+ </i>
+ </h3>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="component.separator">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="dedication">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="dedication.titlepage"/>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="dedication"></xsl:template> <!-- see mode="dedication" -->
+<xsl:template match="dedication/title"></xsl:template>
+<xsl:template match="dedication/subtitle"></xsl:template>
+<xsl:template match="dedication/titleabbrev"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="colophon">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="component.title"/>
+ <xsl:call-template name="component.subtitle"/>
+
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="colophon/title"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="preface">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="preface.titlepage"/>
+ <xsl:if test="$generate.preface.toc != '0'">
+ <xsl:call-template name="component.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="preface.titlepage.recto.mode">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::preface[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface/docinfo|prefaceinfo"></xsl:template>
+<xsl:template match="preface/title"></xsl:template>
+<xsl:template match="preface/titleabbrev"></xsl:template>
+<xsl:template match="preface/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="chapter">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="chapter.titlepage"/>
+ <xsl:if test="$generate.chapter.toc != '0'">
+ <xsl:call-template name="component.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.mode">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::chapter[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter/docinfo|chapterinfo"></xsl:template>
+<xsl:template match="chapter/title"></xsl:template>
+<xsl:template match="chapter/titleabbrev"></xsl:template>
+<xsl:template match="chapter/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="appendix">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:call-template name="appendix.titlepage"/>
+ <xsl:if test="$generate.appendix.toc != '0'">
+ <xsl:call-template name="component.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.mode">
+ <xsl:call-template name="component.title">
+ <xsl:with-param name="node" select="ancestor::appendix[1]"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix/docinfo|appendixinfo"></xsl:template>
+<xsl:template match="appendix/title"></xsl:template>
+<xsl:template match="appendix/titleabbrev"></xsl:template>
+<xsl:template match="appendix/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="dedication" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="preface" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="chapter" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:text>.</xsl:text>
+ <xsl:if test="$add.space">
+ <xsl:call-template name="gentext.space"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$chapter.autolabel">
+ <xsl:number from="book" count="chapter" format="1."/>
+ <xsl:if test="$add.space">
+ <xsl:call-template name="gentext.space"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:text>.</xsl:text>
+ <xsl:if test="$add.space">
+ <xsl:call-template name="gentext.space"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$chapter.autolabel">
+ <xsl:number from="book" count="appendix" format="A."/>
+ <xsl:if test="$add.space">
+ <xsl:call-template name="gentext.space"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="glossary" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<xsl:template match="index" mode="component.number">
+ <xsl:param name="add.space" select="false()"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="article">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="article.titlepage"/>
+ <xsl:if test="$generate.article.toc != '0'">
+ <xsl:call-template name="component.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="article/artheader|article/articleinfo"></xsl:template>
+<xsl:template match="article/title"></xsl:template>
+<xsl:template match="article/subtitle"></xsl:template>
+
+<xsl:template match="article/appendix">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <div id="{$id}" class="{name(.)}">
+ <xsl:call-template name="section.heading">
+ <xsl:with-param name="level" select="2"/>
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="title.ref"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:apply-templates/>
+ <xsl:if test="not(ancestor::article)">
+ <xsl:call-template name="process.footnotes"/>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/division.xsl b/help-converters/docbook/docbook/html/division.xsl
new file mode 100644
index 0000000..c7c2925
--- /dev/null
+++ b/help-converters/docbook/docbook/html/division.xsl
@@ -0,0 +1,130 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="set">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="set.titlepage"/>
+ <xsl:if test="$generate.set.toc != '0'">
+ <xsl:call-template name="set.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="set/setinfo"></xsl:template>
+<xsl:template match="set/title"></xsl:template>
+<xsl:template match="set/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="book.titlepage"/>
+ <xsl:apply-templates select="dedication" mode="dedication"/>
+ <xsl:if test="$generate.book.toc != '0'">
+ <xsl:call-template name="division.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="book/bookinfo"></xsl:template>
+<xsl:template match="book/title"></xsl:template>
+<xsl:template match="book/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="part">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:call-template name="part.titlepage"/>
+ <xsl:if test="not(partintro) and $generate.part.toc != '0'">
+ <xsl:call-template name="division.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="part" mode="make.part.toc">
+ <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="reference" mode="make.part.toc">
+ <xsl:call-template name="division.toc"/>
+</xsl:template>
+
+<xsl:template match="part/docinfo"></xsl:template>
+<xsl:template match="part/title"></xsl:template>
+<xsl:template match="part/subtitle"></xsl:template>
+
+<xsl:template match="partintro">
+ <div class="{name(.)}">
+ <xsl:call-template name="partintro.titlepage"/>
+ <xsl:apply-templates/>
+ <xsl:if test="$generate.part.toc != '0'">
+ <!-- not ancestor::part because partintro appears in reference -->
+ <xsl:apply-templates select="parent::*" mode="make.part.toc"/>
+ </xsl:if>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="partintro/title"></xsl:template>
+<xsl:template match="partintro/subtitle"></xsl:template>
+<xsl:template match="partintro/titleabbrev"></xsl:template>
+
+<xsl:template match="partintro/title" mode="partintro.title.mode">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <h2>
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </h2>
+</xsl:template>
+
+<xsl:template match="partintro/subtitle" mode="partintro.title.mode">
+ <h3>
+ <i><xsl:apply-templates/></i>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="book" mode="division.number">
+ <xsl:number from="set" count="book" format="1."/>
+</xsl:template>
+
+<xsl:template match="part" mode="division.number">
+ <xsl:number from="book" count="part" format="I."/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/docbook.xsl b/help-converters/docbook/docbook/html/docbook.xsl
new file mode 100644
index 0000000..73e6495
--- /dev/null
+++ b/help-converters/docbook/docbook/html/docbook.xsl
@@ -0,0 +1,190 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<xsl:output method="html"
+ encoding="ISO-8859-1"
+ indent="no"/>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:include href="../VERSION"/>
+<xsl:include href="../lib/lib.xsl"/>
+<xsl:include href="../common/l10n.xsl"/>
+<xsl:include href="../common/common.xsl"/>
+<xsl:include href="autotoc.xsl"/>
+<xsl:include href="lists.xsl"/>
+<xsl:include href="callout.xsl"/>
+<xsl:include href="verbatim.xsl"/>
+<xsl:include href="graphics.xsl"/>
+<xsl:include href="xref.xsl"/>
+<xsl:include href="formal.xsl"/>
+<xsl:include href="table.xsl"/>
+<xsl:include href="sections.xsl"/>
+<xsl:include href="inline.xsl"/>
+<xsl:include href="footnote.xsl"/>
+<xsl:include href="html.xsl"/>
+<xsl:include href="info.xsl"/>
+<xsl:include href="keywords.xsl"/>
+<xsl:include href="division.xsl"/>
+<xsl:include href="toc.xsl"/>
+<xsl:include href="index.xsl"/>
+<xsl:include href="refentry.xsl"/>
+<xsl:include href="math.xsl"/>
+<xsl:include href="admon.xsl"/>
+<xsl:include href="component.xsl"/>
+<xsl:include href="biblio.xsl"/>
+<xsl:include href="glossary.xsl"/>
+<xsl:include href="block.xsl"/>
+<xsl:include href="qandaset.xsl"/>
+<xsl:include href="synop.xsl"/>
+<xsl:include href="titlepage.xsl"/>
+<xsl:include href="titlepage.templates.xsl"/>
+<xsl:include href="param.xsl"/>
+<xsl:include href="pi.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*">
+ <xsl:message>
+ <xsl:text>No template matches </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+
+ <font color="red">
+ <xsl:text><</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>></xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text></</xsl:text>
+ <xsl:value-of select="name(.)"/>
+ <xsl:text>></xsl:text>
+ </font>
+</xsl:template>
+
+<xsl:template match="text()">
+ <xsl:value-of select="."/>
+</xsl:template>
+
+<xsl:template name="head.content">
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="info" select="($node/docinfo
+ |$node/chapterinfo
+ |$node/appendixinfo
+ |$node/prefaceinfo
+ |$node/bookinfo
+ |$node/setinfo
+ |$node/articleinfo
+ |$node/artheader
+ |$node/sect1info
+ |$node/sect2info
+ |$node/sect3info
+ |$node/sect4info
+ |$node/sect5info
+ |$node/refsect1info
+ |$node/refsect2info
+ |$node/refsect3info
+ |$node/bibliographyinfo
+ |$node/glossaryinfo
+ |$node/indexinfo
+ |$node/refentryinfo
+ |$node/partinfo
+ |$node/referenceinfo)[1]"/>
+
+ <title>
+ <xsl:apply-templates select="$node" mode="title.ref">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+ </title>
+
+ <xsl:if test="$html.stylesheet">
+ <link rel="stylesheet"
+ href="{$html.stylesheet}"
+ type="{$html.stylesheet.type}"/>
+ </xsl:if>
+
+ <xsl:if test="$link.mailto.url != ''">
+ <link rev="made"
+ href="{$link.mailto.url}"/>
+ </xsl:if>
+
+ <xsl:if test="$html.base != ''">
+ <base href="{$html.base}"/>
+ </xsl:if>
+
+ <meta name="generator" content="DocBook XSL Stylesheets V{$VERSION}"/>
+
+ <xsl:apply-templates select="$info/keywordset" mode="html.header"/>
+</xsl:template>
+
+<xsl:template name="user.head.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.header.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template name="user.footer.content">
+ <xsl:param name="node" select="."/>
+</xsl:template>
+
+<xsl:template match="/">
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count(id($rootid)) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="id($rootid)" mode="process.root"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="/" mode="process.root"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="process.root">
+ <xsl:variable name="doc" select="self::*"/>
+ <html>
+ <head>
+ <xsl:call-template name="head.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:call-template name="user.head.content"/>
+ </head>
+ <body xsl:use-attribute-sets="body.attrs">
+ <xsl:call-template name="user.header.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="."/>
+ <xsl:call-template name="user.footer.content">
+ <xsl:with-param name="node" select="$doc"/>
+ </xsl:call-template>
+ </body>
+ </html>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/ebnf.xsl b/help-converters/docbook/docbook/html/ebnf.xsl
new file mode 100644
index 0000000..2bcb200
--- /dev/null
+++ b/help-converters/docbook/docbook/html/ebnf.xsl
@@ -0,0 +1,350 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML EBNF Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes the templates and parameters relevant
+to formatting EBNF markup.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- This module formats EBNF tables. The DTD that this supports is -->
+<!-- under development by the DocBook community. This code is -->
+<!-- experimental and is not (yet) part of the DocBook stylesheets. -->
+
+<xsl:include href="docbook.xsl"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="ebnf.table.bgcolor">#F5DCB3</xsl:param>
+
+<doc:param name="ebnf.table.bgcolor" xmlns="">
+<refpurpose>Background color for EBNF tables</refpurpose>
+<refdescription>
+<para>Sets the background color for EBNF tables. No <sgmltag>bgcolor</sgmltag>
+attribute is output if <varname>ebnf.table.bgcolor</varname> is set to
+the null string. The default value matches the value used in recent
+online versions of the W3C's XML Spec productions.</para>
+</refdescription>
+</doc:param>
+
+<xsl:param name="ebnf.table.border">1</xsl:param>
+
+<doc:param name="ebnf.table.border" xmlns="">
+<refpurpose>Selects border on EBNF tables</refpurpose>
+<refdescription>
+<para>Selects the border on EBNF tables. If non-zero, the tables have
+borders, otherwise they don't.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productionset">
+ <table width="100%" cellpadding="5">
+ <xsl:if test="$ebnf.table.bgcolor != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$ebnf.table.bgcolor"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$ebnf.table.border != 0">
+ <xsl:attribute name="border">1</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="class">
+ <xsl:value-of select="name(.)"/>
+ </xsl:attribute>
+ <xsl:attribute name="summary">
+ <xsl:text>EBNF</xsl:text>
+ <xsl:if test="title">
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="title"/>
+ </xsl:if>
+ </xsl:attribute>
+
+ <xsl:if test="title">
+ <tr>
+ <th align="left" valign="top" class="{name(.)}">
+ <xsl:apply-templates select="title"/>
+ </th>
+ </tr>
+ </xsl:if>
+ <tr>
+ <td>
+ <table border="0" width="99%" cellpadding="0">
+ <xsl:if test="$ebnf.table.bgcolor != ''">
+ <xsl:attribute name="bgcolor">
+ <xsl:value-of select="$ebnf.table.bgcolor"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="class">
+ <xsl:value-of select="name(.)"/>
+ </xsl:attribute>
+ <xsl:attribute name="summary">EBNF productions</xsl:attribute>
+ <xsl:apply-templates select="production|productionrecap"/>
+ </table>
+ </td>
+ </tr>
+ </table>
+</xsl:template>
+
+<xsl:template match="productionset/title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="production">
+ <xsl:param name="recap" select="false()"/>
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+ <tr>
+ <td align="left" valign="top" width="3%">
+ <xsl:text>[</xsl:text>
+ <xsl:number count="production" level="any"/>
+ <xsl:text>]</xsl:text>
+ </td>
+ <td align="right" valign="top" width="10%">
+ <xsl:choose>
+ <xsl:when test="$recap">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="lhs"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a name="{$id}"/>
+ <xsl:apply-templates select="lhs"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td valign="top" width="5%" align="center"><tt>::=</tt></td>
+ <td valign="top" width="52%">
+ <xsl:apply-templates select="rhs"/>
+ </td>
+ <td align="left" valign="top" width="30%">
+ <xsl:choose>
+ <xsl:when test="rhs/lineannotation|constraint">
+ <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
+ <xsl:apply-templates select="constraint"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+</xsl:template>
+
+<xsl:template match="productionrecap">
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="$check.idref = '1'">
+ <xsl:if test="count($targets)=0">
+ <xsl:message>
+ <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="count($targets)>1">
+ <xsl:message>
+ <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="$target">
+ <xsl:with-param name="recap" select="true()"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="lhs">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="rhs">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="nonterminal">
+ <xsl:variable name="linkend">
+ <xsl:call-template name="xpointer.idref">
+ <xsl:with-param name="xpointer" select="@def"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="$linkend"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="check.idref.targets">
+ <xsl:with-param name="linkend" select="$linkend"/>
+ <xsl:with-param name="element-list">production</xsl:with-param>
+ </xsl:call-template>
+
+ <!-- If you don't provide content, you can't point outside this doc. -->
+ <xsl:choose>
+ <xsl:when test="*|text()"><!--nop--></xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$linkend = ''">
+ <xsl:message>
+ <xsl:text>Non-terminals with no content must point to </xsl:text>
+ <xsl:text>production elements in the current document.</xsl:text>
+ </xsl:message>
+ <xsl:message>
+ <xsl:text>Invalid xpointer for empty nt: </xsl:text>
+ <xsl:value-of select="@def"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="href">
+ <xsl:choose>
+ <xsl:when test="$linkend != ''">
+ <xsl:variable name="targets" select="id($linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@def"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <a href="{$href}">
+ <xsl:choose>
+ <xsl:when test="*|text()">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$linkend != ''">
+ <xsl:variable name="targets" select="id($linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:apply-templates select="$target/lhs"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation">
+ <!--nop-->
+</xsl:template>
+
+<xsl:template match="rhs/lineannotation" mode="rhslo">
+ <xsl:text>/* </xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text> */</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraint">
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="check.idref.targets">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ <xsl:with-param name="element-list">constraintdef</xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:variable name="href">
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="preceding-sibling::constraint">
+ <br/>
+ </xsl:if>
+ <xsl:text>[ </xsl:text>
+
+ <xsl:choose>
+ <xsl:when test="@role">
+ <xsl:value-of select="@role"/>
+ <xsl:text>: </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:if test="$target/@role">
+ <xsl:value-of select="$target/@role"/>
+ <xsl:text>: </xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <a href="{$href}">
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:apply-templates select="$target" mode="title.content"/>
+ </a>
+ <xsl:text> ]</xsl:text>
+</xsl:template>
+
+<xsl:template match="constraintdef">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="constraintdef/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/footnote.xsl b/help-converters/docbook/docbook/html/footnote.xsl
new file mode 100644
index 0000000..a5c7ec7
--- /dev/null
+++ b/help-converters/docbook/docbook/html/footnote.xsl
@@ -0,0 +1,138 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="footnote">
+ <xsl:variable name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:text>#ftn.</xsl:text>
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="ancestor::table|ancestor::informaltable">
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="." mode="footnote.number"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+ </xsl:when>
+ <xsl:otherwise>
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="." mode="footnote.number"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="footnoteref">
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="footnote" select="$targets[1]"/>
+ <xsl:variable name="href">
+ <xsl:text>#ftn.</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a href="{$href}">
+ <xsl:apply-templates select="$footnote" mode="footnote.number"/>
+ </a>
+ <xsl:text>]</xsl:text>
+ </sup>
+</xsl:template>
+
+<xsl:template match="footnote" mode="footnote.number">
+ <xsl:choose>
+ <xsl:when test="ancestor::table|ancestor::informaltable">
+ <xsl:number level="any" from="table|informaltable" format="a"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number level="any" format="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="footnote/para[1]">
+ <!-- this only works if the first thing in a footnote is a para, -->
+ <!-- which is ok, because it usually is. -->
+ <xsl:variable name="name">
+ <xsl:text>ftn.</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::footnote"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <p>
+ <sup>
+ <xsl:text>[</xsl:text>
+ <a name="{$name}" href="{$href}">
+ <xsl:apply-templates select="ancestor::footnote"
+ mode="footnote.number"/>
+ </a>
+ <xsl:text>] </xsl:text>
+ </sup>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.footnotes">
+ <xsl:variable name="footnotes" select=".//footnote"/>
+ <xsl:variable name="table.footnotes"
+ select=".//table//footnote|.//informaltable//footnote"/>
+
+ <!-- Only bother to do this if there's at least one non-table footnote -->
+ <xsl:if test="count($footnotes)>count($table.footnotes)">
+ <div class="footnotes">
+ <br/>
+ <hr width="100" align="left"/>
+ <xsl:apply-templates select="$footnotes" mode="process.footnote.mode"/>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="footnote" mode="process.footnote.mode">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="informaltable//footnote|table//footnote"
+ mode="process.footnote.mode">
+</xsl:template>
+
+<xsl:template match="footnote" mode="table.footnote.mode">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/formal.xsl b/help-converters/docbook/docbook/html/formal.xsl
new file mode 100644
index 0000000..d0f8fec
--- /dev/null
+++ b/help-converters/docbook/docbook/html/formal.xsl
@@ -0,0 +1,89 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template name="formal.object">
+ <div class="{name(.)}">
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="title.ref"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template name="formal.object.heading">
+ <xsl:param name="title"></xsl:param>
+ <p>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+ <b><xsl:copy-of select="$title"/></b>
+ </p>
+</xsl:template>
+
+<xsl:template name="informal.object">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+ <a name="{$id}"/>
+ <xsl:apply-templates/>
+ <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template name="semiformal.object">
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:call-template name="formal.object"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="informal.object"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example">
+ <xsl:call-template name="formal.object"/>
+</xsl:template>
+
+<xsl:template match="equation">
+ <xsl:call-template name="semiformal.object"/>
+</xsl:template>
+
+<xsl:template match="figure/title"></xsl:template>
+<xsl:template match="table/title"></xsl:template>
+<xsl:template match="example/title"></xsl:template>
+<xsl:template match="equation/title"></xsl:template>
+
+<xsl:template match="informalfigure">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalexample">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informaltable">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="informalequation">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/glossary.xsl b/help-converters/docbook/docbook/html/glossary.xsl
new file mode 100644
index 0000000..1885f84
--- /dev/null
+++ b/help-converters/docbook/docbook/html/glossary.xsl
@@ -0,0 +1,198 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossary">
+ <div class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:choose>
+ <xsl:when test="./title">
+ <xsl:apply-templates select="./title" mode="component.title.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2 class="title">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+ <xsl:call-template name="gentext.element.name"/>
+ </h2>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="./subtitle">
+ <xsl:apply-templates select="./subtitle" mode="component.title.mode"/>
+ </xsl:if>
+
+ <dl>
+ <xsl:apply-templates/>
+ </dl>
+
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="glossary/glossaryinfo"></xsl:template>
+<xsl:template match="glossary/title"></xsl:template>
+<xsl:template match="glossary/subtitle"></xsl:template>
+<xsl:template match="glossary/titleabbrev"></xsl:template>
+
+<xsl:template match="glossary/title" mode="component.title.mode">
+ <h2>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="glossary/subtitle" mode="component.title.mode">
+ <h3>
+ <i><xsl:apply-templates/></i>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glosslist">
+ <div class="{name(.)}">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+
+ <dl>
+ <xsl:apply-templates/>
+ </dl>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossdiv">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="glossdiv/title">
+ <h3 class="{name(.)}">
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<!--
+GlossEntry ::=
+ GlossTerm, Acronym?, Abbrev?,
+ (IndexTerm)*,
+ RevHistory?,
+ (GlossSee | GlossDef+)
+-->
+
+<xsl:template match="glossentry">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+</xsl:template>
+
+<xsl:template match="glossentry/glossterm[1]" priority="2">
+ <dt>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:apply-templates/>
+ </a>
+ </dt>
+</xsl:template>
+
+<xsl:template match="glossentry/acronym">
+</xsl:template>
+
+<xsl:template match="glossentry/abbrev">
+</xsl:template>
+
+<xsl:template match="glossentry/revhistory">
+</xsl:template>
+
+<xsl:template match="glossentry/glosssee">
+ <xsl:variable name="otherterm" select="@otherterm"/>
+ <xsl:variable name="targets" select="//node()[ id=$otherterm]"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <dd>
+ <p>
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:choose>
+ <xsl:when test="@otherterm">
+ <a href="#{ otherterm}">
+ <xsl:apply-templates select="$target" mode="xref"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>.</xsl:text>
+ </p>
+ </dd>
+</xsl:template>
+
+<xsl:template match="glossentry/glossdef">
+ <dd><xsl:apply-templates/></dd>
+</xsl:template>
+
+<xsl:template match="glossseealso">
+ <xsl:variable name="otherterm" select="@otherterm"/>
+ <xsl:variable name="targets" select="//node()[ id=$otherterm]"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <p>
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:choose>
+ <xsl:when test="@otherterm">
+ <a href="#{ otherterm}">
+ <xsl:apply-templates select="$target" mode="xref"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>.</xsl:text>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="glossentry" mode="xref">
+ <xsl:apply-templates select="./glossterm[1]" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="glossterm" mode="xref">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/graphics.xsl b/help-converters/docbook/docbook/html/graphics.xsl
new file mode 100644
index 0000000..e30af9d
--- /dev/null
+++ b/help-converters/docbook/docbook/html/graphics.xsl
@@ -0,0 +1,315 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:text5="http://nwalsh.com/com.nwalsh.saxon.TextFactory"
+ xmlns:text6="http://nwalsh.com/com.nwalsh.saxon6.TextFactory"
+ exclude-result-prefixes="xlink text5 text6"
+ extension-element-prefixes="text5 text6"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ Contributors:
+ Colin Paul Adams, <colin colina demon co uk>
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="screenshot">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="screeninfo">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.image">
+ <!-- When this template is called, the current node should be -->
+ <!-- a graphic, inlinegraphic, imagedata, or videodata. All -->
+ <!-- those elements have the same set of attributes, so we can -->
+ <!-- handle them all in one place. -->
+ <xsl:param name="tag" select="'img'"/>
+ <xsl:param name="alt"/>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'graphic'
+ or local-name(.) = 'inlinegraphic'">
+ <xsl:choose>
+ <xsl:when test="@fileref">
+ <xsl:value-of select="@fileref"/>
+ </xsl:when>
+ <xsl:when test="@entityref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>A fileref or entityref is required on </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- imagedata, videodata, audiodata -->
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="width">
+ <xsl:choose>
+ <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when>
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="height">
+ <xsl:choose>
+ <xsl:when test="@scale"></xsl:when>
+ <xsl:when test="@depth"><xsl:value-of select="@depth"/></xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:variable>
+
+ <xsl:element name="{$tag}">
+ <xsl:attribute name="src">
+ <xsl:value-of select="$filename"/>
+ </xsl:attribute>
+
+ <xsl:if test="$align != ''">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$height != ''">
+ <xsl:attribute name="height">
+ <xsl:value-of select="$height"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$alt != ''">
+ <xsl:attribute name="alt">
+ <xsl:value-of select="$alt"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="graphic">
+ <p>
+ <xsl:call-template name="process.image"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:choose>
+ <xsl:when test="@format='linespecific'">
+ <xsl:choose>
+ <xsl:when test="$saxon.extensions != '0'
+ and $saxon.textinsert != '0'">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <text6:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text5:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <text6:insertfile href="{ fileref}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text5:insertfile href="{ fileref}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:attribute name="href">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process.image"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="mediaobject|mediaobjectco">
+ <div class="{name(.)}">
+ <xsl:call-template name="select.mediaobject"/>
+ <xsl:apply-templates select="caption"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="inlinemediaobject">
+ <span class="{name(.)}">
+ <xsl:call-template name="select.mediaobject"/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="imageobjectco">
+ <xsl:apply-templates select="imageobject"/>
+</xsl:template>
+
+<xsl:template match="imageobject">
+ <xsl:apply-templates select="imagedata"/>
+</xsl:template>
+
+<xsl:template match="imagedata">
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:variable name="filename">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@format='linespecific'">
+ <xsl:choose>
+ <xsl:when test="$saxon.extensions != '0'
+ and $saxon.textinsert != '0'">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <text6:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text5:insertfile href="{unparsed-entity-uri(@entityref)}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <text6:insertfile href="{ fileref}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text5:insertfile href="{ fileref}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <a xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad">
+ <xsl:choose>
+ <xsl:when test="@entityref">
+ <xsl:attribute name="href">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process.image">
+ <xsl:with-param name="alt">
+ <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="videoobject">
+ <xsl:apply-templates select="videodata"/>
+</xsl:template>
+
+<xsl:template match="videodata">
+ <xsl:call-template name="process.image">
+ <xsl:with-param name="tag" select="'embed'"/>
+ <xsl:with-param name="alt">
+ <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="audioobject">
+ <xsl:apply-templates select="audiodata"/>
+</xsl:template>
+
+<xsl:template match="audiodata">
+ <xsl:call-template name="process.image">
+ <xsl:with-param name="tag" select="'embed'"/>
+ <xsl:with-param name="alt">
+ <xsl:apply-templates select="(../../textobject/phrase)[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="textobject">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="caption">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/html.xsl b/help-converters/docbook/docbook/html/html.xsl
new file mode 100644
index 0000000..839c8ac
--- /dev/null
+++ b/help-converters/docbook/docbook/html/html.xsl
@@ -0,0 +1,56 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template name="dingbat">
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:choose>
+ <xsl:when test="false() and $using.chunker != 0">
+ <dingbat name="{$dingbat}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="dingbat.characters">
+ <xsl:with-param name="dingbat" select="$dingbat"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dingbat.characters">
+ <!-- now that I'm using the real serializer, all that dingbat malarky -->
+ <!-- isn't necessary anymore... -->
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:choose>
+ <xsl:when test="$dingbat='bullet'">•</xsl:when>
+ <xsl:when test="$dingbat='copyright'">©</xsl:when>
+ <xsl:when test="$dingbat='trademark'">™</xsl:when>
+ <xsl:when test="$dingbat='trade'">™</xsl:when>
+ <xsl:when test="$dingbat='registered'">®</xsl:when>
+ <xsl:when test="$dingbat='service'">(SM)</xsl:when>
+ <xsl:when test="$dingbat='nbsp'"> </xsl:when>
+ <xsl:when test="$dingbat='ldquo'">“</xsl:when>
+ <xsl:when test="$dingbat='rdquo'">”</xsl:when>
+ <xsl:when test="$dingbat='lsquo'">‘</xsl:when>
+ <xsl:when test="$dingbat='rsquo'">’</xsl:when>
+ <xsl:when test="$dingbat='em-dash'">—</xsl:when>
+ <xsl:when test="$dingbat='mdash'">—</xsl:when>
+ <xsl:when test="$dingbat='en-dash'">–</xsl:when>
+ <xsl:when test="$dingbat='ndash'">–</xsl:when>
+ <xsl:otherwise>
+ <xsl:text>•</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/index.xsl b/help-converters/docbook/docbook/html/index.xsl
new file mode 100644
index 0000000..183d506
--- /dev/null
+++ b/help-converters/docbook/docbook/html/index.xsl
@@ -0,0 +1,478 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY primary 'concat(primary/@sortas, primary[not(@sortas)])'>
+<!ENTITY secondary 'concat(secondary/@sortas, secondary[not(@sortas)])'>
+<!ENTITY tertiary 'concat(tertiary/@sortas, tertiary[not(@sortas)])'>
+
+<!ENTITY section '(ancestor-or-self::set
+ |ancestor-or-self::book
+ |ancestor-or-self::part
+ |ancestor-or-self::reference
+ |ancestor-or-self::partintro
+ |ancestor-or-self::chapter
+ |ancestor-or-self::appendix
+ |ancestor-or-self::preface
+ |ancestor-or-self::section
+ |ancestor-or-self::sect1
+ |ancestor-or-self::sect2
+ |ancestor-or-self::sect3
+ |ancestor-or-self::sect4
+ |ancestor-or-self::sect5
+ |ancestor-or-self::refsect1
+ |ancestor-or-self::refsect2
+ |ancestor-or-self::refsect3
+ |ancestor-or-self::simplesect
+ |ancestor-or-self::bibliography
+ |ancestor-or-self::glossary
+ |ancestor-or-self::index)[last()]'>
+
+<!ENTITY section.id 'generate-id(§ion;)'>
+<!ENTITY sep '" "'>
+]>
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="index|setindex">
+ <!-- some implementations use completely empty index tags to indicate -->
+ <!-- where an automatically generated index should be inserted. so -->
+ <!-- if the index is completely empty, skip it. -->
+ <xsl:if test="count(*)>0 or $generate.index">
+ <div class="{name(.)}">
+ <xsl:call-template name="component.separator"/>
+ <xsl:choose>
+ <xsl:when test="./title">
+ <xsl:apply-templates select="./title" mode="component.title.mode"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <h2 class="title">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ </a>
+ </h2>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="./subtitle">
+ <xsl:apply-templates select="./subtitle" mode="component.title.mode"/>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+
+ <xsl:if test="count(indexentry) = 0 and count(indexdiv) = 0">
+ <xsl:call-template name="generate-index"/>
+ </xsl:if>
+
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="index/title"></xsl:template>
+<xsl:template match="index/subtitle"></xsl:template>
+<xsl:template match="index/titleabbrev"></xsl:template>
+
+<xsl:template match="index/title" mode="component.title.mode">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <h2 class="title">
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </h2>
+</xsl:template>
+
+<xsl:template match="index/subtitle" mode="component.title.mode">
+ <h3>
+ <i><xsl:apply-templates/></i>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexdiv">
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="not-indexentrys"/>
+ <dl>
+ <xsl:apply-templates select="indexentry"/>
+ </dl>
+ </div>
+</xsl:template>
+
+<xsl:template match="indexentry" mode="not-indexentrys">
+ <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="indexdiv/title">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <h3 class="{name(.)}">
+ <a name="{$id}">
+ <xsl:apply-templates/>
+ </a>
+ </h3>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexterm">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <a class="indexterm" name="{$id}"/>
+</xsl:template>
+
+<xsl:template match="primary|secondary|tertiary|see|seealso">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="indexentry">
+ <xsl:apply-templates select="primaryie"/>
+</xsl:template>
+
+<xsl:template match="primaryie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+ <xsl:choose>
+ <xsl:when test="following-sibling::secondaryie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::secondaryie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ <xsl:when test="following-sibling::seeie
+ |following-sibling::seealsoie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::seeie
+ |following-sibling::seealsoie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="secondaryie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+ <xsl:choose>
+ <xsl:when test="following-sibling::tertiaryie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::tertiaryie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ <xsl:when test="following-sibling::seeie
+ |following-sibling::seealsoie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::seeie
+ |following-sibling::seealsoie"/>
+ </dl>
+ </dd>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="tertiaryie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+ <xsl:if test="following-sibling::seeie
+ |following-sibling::seealsoie">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="following-sibling::seeie
+ |following-sibling::seealsoie"/>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="seeie|seealsoie">
+ <dt>
+ <xsl:apply-templates/>
+ </dt>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- Jeni Tennison gets all the credit for what follows.
+ I think I understand it :-) Anyway, I've hacked it a bit, so the
+ bugs are mine. -->
+
+<xsl:key name="letter"
+ match="indexterm"
+ use="substring(&primary;, 1, 1)"/>
+
+<xsl:key name="primary"
+ match="indexterm"
+ use="&primary;"/>
+
+<xsl:key name="secondary"
+ match="indexterm"
+ use="concat(&primary;, &sep;, &secondary;)"/>
+
+<xsl:key name="tertiary"
+ match="indexterm"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+
+<xsl:key name="primary-section"
+ match="indexterm[not(secondary) and not(see)]"
+ use="concat(&primary;, &sep;, §ion.id;)"/>
+
+<xsl:key name="secondary-section"
+ match="indexterm[not(tertiary) and not(see)]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, §ion.id;)"/>
+
+<xsl:key name="tertiary-section"
+ match="indexterm[not(see)]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, §ion.id;)"/>
+
+<xsl:key name="see-also"
+ match="indexterm[seealso]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/>
+
+<xsl:key name="see"
+ match="indexterm[see]"
+ use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/>
+
+<xsl:key name="sections" match="*[ id]" use="@id"/>
+
+<xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'"/>
+<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
+
+<xsl:template name="generate-index">
+ <xsl:variable name="terms" select="//indexterm[count(.|key('letter',
+ substring(&primary;, 1, 1))[1]) = 1]"/>
+ <xsl:variable name="alphabetical"
+ select="$terms[contains(concat($lowercase, $uppercase),
+ substring(&primary;, 1, 1))]"/>
+ <xsl:variable name="others" select="$terms[not(contains(concat($lowercase,
+ $uppercase),
+ substring(&primary;, 1, 1)))]"/>
+ <div class="index">
+ <xsl:if test="$others">
+ <div class="indexdiv">
+ <h3>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'index symbols'"/>
+ </xsl:call-template>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="$others[count(.|key('primary',
+ &primary;)[1]) = 1]"
+ mode="index-primary">
+ <xsl:sort select="&primary;"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+ </xsl:if>
+ <xsl:apply-templates select="$alphabetical[count(.|key('letter',
+ substring(&primary;, 1, 1))[1]) = 1]"
+ mode="index-div">
+ <xsl:sort select="&primary;"/>
+ </xsl:apply-templates>
+ </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-div">
+ <xsl:variable name="key" select="substring(&primary;, 1, 1)"/>
+ <div class="indexdiv">
+ <h3>
+ <xsl:value-of select="translate($key, $lowercase, $uppercase)"/>
+ </h3>
+ <dl>
+ <xsl:apply-templates select="key('letter', $key)[count(.|key('primary', &primary;)[1]) = 1]"
+ mode="index-primary">
+ <xsl:sort select="&primary;"/>
+ </xsl:apply-templates>
+ </dl>
+ </div>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-primary">
+ <xsl:variable name="key" select="&primary;"/>
+ <xsl:variable name="refs" select="key('primary', $key)"/>
+ <dt>
+ <xsl:value-of select="primary"/>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, &sep;, §ion.id;))[1])]">
+ <xsl:apply-templates select="." mode="reference"/>
+ </xsl:for-each>
+ </dt>
+ <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::see or self::seealso]">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[1])]"
+ mode="index-see">
+ <xsl:sort select="see"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[1])]"
+ mode="index-seealso">
+ <xsl:sort select="seealso"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[1]) = 1]"
+ mode="index-secondary">
+ <xsl:sort select="&secondary;"/>
+ </xsl:apply-templates>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-secondary">
+ <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/>
+ <xsl:variable name="refs" select="key('secondary', $key)"/>
+ <dt>
+ <xsl:value-of select="secondary"/>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, &sep;, §ion.id;))[1])]">
+ <xsl:apply-templates select="." mode="reference"/>
+ </xsl:for-each>
+ </dt>
+ <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::see or self::seealso]">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[1])]"
+ mode="index-see">
+ <xsl:sort select="see"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[1])]"
+ mode="index-seealso">
+ <xsl:sort select="seealso"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[1]) = 1]"
+ mode="index-tertiary">
+ <xsl:sort select="&tertiary;"/>
+ </xsl:apply-templates>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-tertiary">
+ <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/>
+ <xsl:variable name="refs" select="key('tertiary', $key)"/>
+ <dt>
+ <xsl:value-of select="tertiary"/>
+ <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, §ion.id;))[1])]">
+ <xsl:apply-templates select="." mode="reference"/>
+ </xsl:for-each>
+ </dt>
+ <xsl:variable name="see" select="$refs/see | $refs/seealso"/>
+ <xsl:if test="$see">
+ <dd>
+ <dl>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[1])]"
+ mode="index-see">
+ <xsl:sort select="see"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[1])]"
+ mode="index-seealso">
+ <xsl:sort select="seealso"/>
+ </xsl:apply-templates>
+ </dl>
+ </dd>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="reference">
+ <xsl:text>, </xsl:text>
+ <xsl:choose>
+ <xsl:when test="@zone and string(@zone)">
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="normalize-space(@zone)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="§ion;"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="§ion;" mode="title.content">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="reference">
+ <xsl:param name="zones"/>
+ <xsl:choose>
+ <xsl:when test="contains($zones, ' ')">
+ <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
+ <xsl:variable name="target" select="key('sections', $zone)"/>
+
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+ </a>
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="reference">
+ <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zone" select="$zones"/>
+ <xsl:variable name="target" select="key('sections', $zone)"/>
+
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target[1]"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target[1]" mode="index-title-content"/>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-see">
+ <dt><xsl:value-of select="see"/></dt>
+</xsl:template>
+
+<xsl:template match="indexterm" mode="index-seealso">
+ <dt><xsl:value-of select="seealso"/></dt>
+</xsl:template>
+
+<xsl:template match="*" mode="index-title-content">
+ <xsl:apply-templates select="§ion;" mode="title.content">
+ <xsl:with-param name="text-only" select="'1'"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/info.xsl b/help-converters/docbook/docbook/html/info.xsl
new file mode 100644
index 0000000..b1d6649
--- /dev/null
+++ b/help-converters/docbook/docbook/html/info.xsl
@@ -0,0 +1,53 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- These templates define the "default behavior" for info
+ elements. Even if you don't process the *info wrappers,
+ some of these elements are needed because the elements are
+ processed from named templates that are called with modes.
+ Since modes aren't sticky, these rules apply.
+ (TODO: clarify this comment) -->
+
+<!-- ==================================================================== -->
+<!-- called from named templates in a given mode -->
+
+<xsl:template match="corpauthor">
+ <span class="{name(.)}">
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="jobtitle">
+ <span class="{name(.)}">
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname">
+ <span class="{name(.)}">
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgdiv">
+ <span class="{name(.)}">
+ <xsl:apply-templates/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/inline.xsl b/help-converters/docbook/docbook/html/inline.xsl
new file mode 100644
index 0000000..7901a59
--- /dev/null
+++ b/help-converters/docbook/docbook/html/inline.xsl
@@ -0,0 +1,683 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template name="inline.charseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <xsl:copy-of select="$content"/>
+</xsl:template>
+
+<xsl:template name="inline.monoseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <tt><xsl:copy-of select="$content"/></tt>
+</xsl:template>
+
+<xsl:template name="inline.boldseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <!-- don't put <b> inside figure, example, or table titles -->
+ <xsl:choose>
+ <xsl:when test="local-name(..) = 'title'
+ and (local-name(../..) = 'figure'
+ or local-name(../..) = 'example'
+ or local-name(../..) = 'table')">
+ <xsl:copy-of select="$content"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <b><xsl:copy-of select="$content"/></b>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <i><xsl:copy-of select="$content"/></i>
+</xsl:template>
+
+<xsl:template name="inline.boldmonoseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <!-- don't put <b> inside figure, example, or table titles -->
+ <!-- or other titles that may already be represented with <b>'s. -->
+ <xsl:choose>
+ <xsl:when test="local-name(..) = 'title'
+ and (local-name(../..) = 'figure'
+ or local-name(../..) = 'example'
+ or local-name(../..) = 'table'
+ or local-name(../..) = 'formalpara')">
+ <tt><xsl:copy-of select="$content"/></tt>
+ </xsl:when>
+ <xsl:otherwise>
+ <b><tt><xsl:copy-of select="$content"/></tt></b>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="inline.italicmonoseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <i><tt><xsl:copy-of select="$content"/></tt></i>
+</xsl:template>
+
+<xsl:template name="inline.superscriptseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <sup><xsl:copy-of select="$content"/></sup>
+</xsl:template>
+
+<xsl:template name="inline.subscriptseq">
+ <xsl:param name="content">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:param>
+ <sub><xsl:copy-of select="$content"/></sub>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<!-- some special cases -->
+
+<xsl:template match="author">
+ <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="editor">
+ <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="othercredit">
+ <span class="{name(.)}"><xsl:call-template name="person.name"/></span>
+</xsl:template>
+
+<xsl:template match="authorinitials">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="accel">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="action">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="application">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="classname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="exceptionname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="interfacename">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="methodname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="command">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="constant">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="database">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorcode">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errorname">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="errortype">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="envar">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="filename">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="function">
+ <xsl:choose>
+ <xsl:when test="$function.parens != '0'
+ and (parameter or function or replaceable)">
+ <xsl:variable name="nodes" select="text()|*"/>
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:apply-templates select="$nodes[1]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="$nodes[position()>1]"/>
+ <xsl:text>)</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.monoseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="function/parameter" priority="2">
+ <xsl:call-template name="inline.italicmonoseq"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="function/replaceable" priority="2">
+ <xsl:call-template name="inline.italicmonoseq"/>
+ <xsl:if test="following-sibling::*">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="guibutton">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guiicon">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guilabel">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenu">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="hardware">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interface">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="interfacedefinition">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keycap">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="keycode">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="keysym">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="literal">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="medialabel">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="shortcut">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="mousebutton">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="option">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="parameter">
+ <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="property">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="prompt">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="replaceable" priority="1">
+ <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="returnvalue">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="structfield">
+ <xsl:call-template name="inline.italicmonoseq"/>
+</xsl:template>
+
+<xsl:template match="structname">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="symbol">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="systemitem">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="token">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="type">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="userinput">
+ <xsl:call-template name="inline.boldmonoseq"/>
+</xsl:template>
+
+<xsl:template match="abbrev">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="acronym">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citerefentry">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="citetitle">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="emphasis">
+ <xsl:choose>
+ <xsl:when test="@role='bold'">
+ <xsl:call-template name="inline.boldseq"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.italicseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="foreignphrase">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="markup">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="phrase">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="quote">
+ <xsl:variable name="depth">
+ <xsl:call-template name="dot.count">
+ <xsl:with-param name="string"><xsl:number level="multiple"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$depth mod 2 = 0">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.nestedstartquote"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:call-template name="gentext.nestedendquote"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varname">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+<xsl:template match="wordasword">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="lineannotation">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="superscript">
+ <xsl:call-template name="inline.superscriptseq"/>
+</xsl:template>
+
+<xsl:template match="subscript">
+ <xsl:call-template name="inline.subscriptseq"/>
+</xsl:template>
+
+<xsl:template match="trademark">
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:if test="@class">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat" select="@class"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="firstterm">
+ <xsl:call-template name="inline.italicseq"/>
+</xsl:template>
+
+<xsl:template match="glossterm">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="sgmltag">
+ <xsl:call-template name="format.sgmltag"/>
+</xsl:template>
+
+<xsl:template name="format.sgmltag">
+ <xsl:param name="class">
+ <xsl:choose>
+ <xsl:when test="@class">
+ <xsl:value-of select="@class"/>
+ </xsl:when>
+ <xsl:otherwise>element</xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$class='attribute'">
+ <xsl:call-template name="inline.charseq"/>
+ </xsl:when>
+ <xsl:when test="$class='attvalue'">
+ <xsl:call-template name="inline.monoseq"/>
+ </xsl:when>
+ <xsl:when test="$class='element'">
+ <xsl:call-template name="inline.monoseq"/>
+ </xsl:when>
+ <xsl:when test="$class='endtag'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text></</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='genentity'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text>&</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='numcharref'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text>&#</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='paramentity'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text>%</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='pi'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text><?</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='xmlpi'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text><?</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>?></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='starttag'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text><</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='emptytag'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text><</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>/></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$class='sgmlcomment'">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text><!--</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>--></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inline.charseq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="email">
+ <xsl:call-template name="inline.monoseq">
+ <xsl:with-param name="content">
+ <xsl:text><</xsl:text>
+ <a>
+ <xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+ <xsl:text>></xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="keycombo">
+ <xsl:variable name="action" select="@action"/>
+ <xsl:variable name="joinchar">
+ <xsl:choose>
+ <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
+ <xsl:when test="$action='simul'">+</xsl:when>
+ <xsl:when test="$action='press'">-</xsl:when>
+ <xsl:when test="$action='click'">-</xsl:when>
+ <xsl:when test="$action='double-click'">-</xsl:when>
+ <xsl:when test="$action='other'"></xsl:when>
+ <xsl:otherwise>-</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:for-each select="./*">
+ <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if>
+ <xsl:apply-templates/>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="menuchoice">
+ <xsl:variable name="shortcut" select="./shortcut"/>
+ <xsl:call-template name="process.menuchoice"/>
+ <xsl:if test="$shortcut">
+ <xsl:text> (</xsl:text>
+ <xsl:apply-templates select="$shortcut"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="process.menuchoice">
+ <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($nodelist)"></xsl:when>
+ <xsl:when test="$count=1">
+ <xsl:apply-templates select="$nodelist[$count=position()]"/>
+ <xsl:call-template name="process.menuchoice">
+ <xsl:with-param name="nodelist" select="$nodelist"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="node" select="$nodelist[$count=position()]"/>
+ <xsl:choose>
+ <xsl:when test="name($node)='guimenuitem'
+ or name($node)='guisubmenu'">
+ <xsl:text>-></xsl:text>
+ </xsl:when>
+ <xsl:otherwise>+</xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="$node"/>
+ <xsl:call-template name="process.menuchoice">
+ <xsl:with-param name="nodelist" select="$nodelist"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="optional">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+</xsl:template>
+
+<xsl:template match="citation">
+ <!-- todo: biblio-citation-check -->
+ <xsl:text>[</xsl:text>
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:text>]</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="comment|remark">
+ <xsl:if test="$show.comments != 0">
+ <i><xsl:call-template name="inline.charseq"/></i>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="productname">
+ <xsl:call-template name="inline.charseq"/>
+ <xsl:if test="@class">
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat" select="@class"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="productnumber">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="pob|street|city|state|postcode|country|phone|fax|otheraddr">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/keywords.xsl b/help-converters/docbook/docbook/html/keywords.xsl
new file mode 100644
index 0000000..c3b5f70
--- /dev/null
+++ b/help-converters/docbook/docbook/html/keywords.xsl
@@ -0,0 +1,38 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="keywordset"></xsl:template>
+<xsl:template match="subjectset"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="keywordset" mode="html.header">
+ <meta name="keywords">
+ <xsl:attribute name="content">
+ <xsl:apply-templates select="keyword" mode="html.header"/>
+ </xsl:attribute>
+ </meta>
+</xsl:template>
+
+<xsl:template match="keyword[position()!=last()]" mode="html.header">
+ <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="keyword[position()=last()]" mode="html.header">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/lists.xsl b/help-converters/docbook/docbook/html/lists.xsl
new file mode 100644
index 0000000..2bae5e6
--- /dev/null
+++ b/help-converters/docbook/docbook/html/lists.xsl
@@ -0,0 +1,609 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="itemizedlist">
+ <div class="{name(.)}">
+ <xsl:if test="title">
+ <xsl:apply-templates select="title"/>
+ </xsl:if>
+ <ul>
+ <xsl:apply-templates select="listitem"/>
+ </ul>
+ </div>
+</xsl:template>
+
+<xsl:template match="itemizedlist/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template name="orderedlist-starting-number">
+ <xsl:param name="list" select="."/>
+ <xsl:choose>
+ <xsl:when test="$list/@continuation != 'continues'">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="prevlist"
+ select="$list/preceding::orderedlist[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($prevlist) = 0">2</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="prevlength" select="count($prevlist/listitem)"/>
+ <xsl:variable name="prevstart">
+ <xsl:call-template name="orderedlist-starting-number">
+ <xsl:with-param name="list" select="$prevlist"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$prevstart + $prevlength"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+ <xsl:variable name="start">
+ <xsl:choose>
+ <xsl:when test="@continuation='continues'">
+ <xsl:call-template name="orderedlist-starting-number"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="numeration">
+ <xsl:choose>
+ <xsl:when test="@numeration='arabic'">1</xsl:when>
+ <xsl:when test="@numeration='loweralpha'">a</xsl:when>
+ <xsl:when test="@numeration='lowerroman'">i</xsl:when>
+ <xsl:when test="@numeration='upperalpha'">A</xsl:when>
+ <xsl:when test="@numeration='upperroman'">I</xsl:when>
+ <xsl:otherwise>
+ <!-- alternate the numeration based on depth -->
+ <xsl:variable name="depth" select="count(ancestor::orderedlist)"/>
+ <xsl:variable name="type" select="$depth mod 5"/>
+ <xsl:choose>
+ <xsl:when test="$type = 0">1</xsl:when>
+ <xsl:when test="$type = 1">a</xsl:when>
+ <xsl:when test="$type = 2">i</xsl:when>
+ <xsl:when test="$type = 3">A</xsl:when>
+ <xsl:when test="$type = 4">I</xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <div class="{name(.)}">
+ <xsl:if test="title">
+ <xsl:apply-templates select="title"/>
+ </xsl:if>
+ <ol>
+ <xsl:if test="$start != '1'">
+ <xsl:attribute name="start">
+ <xsl:value-of select="$start"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$numeration != ''">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$numeration"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@spacing='compact'">
+ <xsl:attribute name="compact">
+ <xsl:value-of select="compact"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="listitem"/>
+ </ol>
+ </div>
+</xsl:template>
+
+<xsl:template match="orderedlist/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="variablelist">
+ <div class="{name(.)}">
+ <xsl:if test="title">
+ <xsl:apply-templates select="title"/>
+ </xsl:if>
+ <dl>
+ <xsl:apply-templates select="varlistentry"/>
+ </dl>
+ </div>
+</xsl:template>
+
+<xsl:template match="variablelist/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="listitem">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <xsl:variable name="mark" select="ancestor-or-self::*/@mark"/>
+ <xsl:variable name="override" select="@override"/>
+
+ <xsl:variable name="usemark">
+ <xsl:choose>
+ <xsl:when test="$override != ''">
+ <xsl:value-of select="$override"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$mark"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="cssmark">
+ <xsl:choose>
+ <xsl:when test="$usemark = 'bullet'">disc</xsl:when>
+ <xsl:when test="$usemark = 'box'">square</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$usemark"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <li>
+ <xsl:if test="$css.decoration = '1' and $cssmark != ''">
+ <xsl:attribute name="style">
+ <xsl:text>list-style-type: </xsl:text>
+ <xsl:value-of select="$cssmark"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <!-- we can't just drop the anchor in since some browsers (Opera)
+ get confused about line breaks if we do. So if the first child
+ is a para, assume the para will put in the anchor. Otherwise,
+ put the anchor in anyway. -->
+ <xsl:if test="local-name(child::*[1]) != 'para'">
+ <a name="{$id}"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag and @revisionflag">
+ <div class="{ revisionflag}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+</xsl:template>
+
+<xsl:template match="listitem" mode="xref">
+ <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="varlistentry">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+ <dt><a name="{$id}"/><xsl:apply-templates select="term"/></dt>
+ <dd><xsl:apply-templates select="listitem"/></dd>
+</xsl:template>
+
+<xsl:template match="varlistentry/term">
+ <span class="term"><xsl:apply-templates/>, </span>
+</xsl:template>
+
+<xsl:template match="varlistentry/term[position()=last()]" priority="2">
+ <span class="term"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="varlistentry/listitem">
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag and @revisionflag">
+ <div class="{ revisionflag}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<!-- ==================================================================== -->
+
+<xsl:template match="simplelist">
+ <!-- with no type specified, the default is 'vert' -->
+ <table class="simplelist" border="0" summary="Simple list">
+ <xsl:call-template name="simplelist.vert">
+ <xsl:with-param name="cols">
+ <xsl:choose>
+ <xsl:when test="@columns">
+ <xsl:value-of select="@columns"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </table>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='inline']">
+ <span class="{name(.)}"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='horiz']">
+ <table class="simplelist" border="0" summary="Simple list">
+ <xsl:call-template name="simplelist.horiz">
+ <xsl:with-param name="cols">
+ <xsl:choose>
+ <xsl:when test="@columns">
+ <xsl:value-of select="@columns"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </table>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='vert']">
+ <table class="simplelist" border="0" summary="Simple list">
+ <xsl:call-template name="simplelist.vert">
+ <xsl:with-param name="cols">
+ <xsl:choose>
+ <xsl:when test="@columns">
+ <xsl:value-of select="@columns"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </table>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+
+ <xsl:if test="$cell <= count($members)">
+ <tr>
+ <xsl:call-template name="simplelist.horiz.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell"/>
+ <xsl:with-param name="members" select="$members"/>
+ </xsl:call-template>
+ </tr>
+ <xsl:call-template name="simplelist.horiz">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell + $cols"/>
+ <xsl:with-param name="members" select="$members"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.horiz.row">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+ <xsl:param name="curcol">1</xsl:param>
+
+ <xsl:if test="$curcol <= $cols">
+ <td>
+ <xsl:choose>
+ <xsl:when test="$members[position()=$cell]">
+ <xsl:apply-templates select="$members[position()=$cell]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$using.chunker != 0">
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <xsl:call-template name="simplelist.horiz.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell+1"/>
+ <xsl:with-param name="members" select="$members"/>
+ <xsl:with-param name="curcol" select="$curcol+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+ <xsl:param name="rows"
+ select="floor((count($members)+$cols - 1) div $cols)"/>
+
+ <xsl:if test="$cell <= $rows">
+ <tr>
+ <xsl:call-template name="simplelist.vert.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ <xsl:with-param name="cell" select="$cell"/>
+ <xsl:with-param name="members" select="$members"/>
+ </xsl:call-template>
+ </tr>
+ <xsl:call-template name="simplelist.vert">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="cell" select="$cell+1"/>
+ <xsl:with-param name="members" select="$members"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="simplelist.vert.row">
+ <xsl:param name="cols">1</xsl:param>
+ <xsl:param name="rows">1</xsl:param>
+ <xsl:param name="cell">1</xsl:param>
+ <xsl:param name="members" select="./member"/>
+ <xsl:param name="curcol">1</xsl:param>
+
+ <xsl:if test="$curcol <= $cols">
+ <td>
+ <xsl:choose>
+ <xsl:when test="$members[position()=$cell]">
+ <xsl:apply-templates select="$members[position()=$cell]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$using.chunker != 0">
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <xsl:call-template name="simplelist.vert.row">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="rows" select="$rows"/>
+ <xsl:with-param name="cell" select="$cell+$rows"/>
+ <xsl:with-param name="members" select="$members"/>
+ <xsl:with-param name="curcol" select="$curcol+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="member">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='inline']/member">
+ <xsl:apply-templates/>
+ <xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="simplelist[ type='inline']/member[position()=last()]"
+ priority="2">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="procedure">
+ <div class="{name(.)}">
+ <xsl:if test="title">
+ <xsl:apply-templates select="title" mode="procedure.title.mode"/>
+ </xsl:if>
+ <ol><xsl:apply-templates/></ol>
+ </div>
+</xsl:template>
+
+<xsl:template match="procedure/title">
+</xsl:template>
+
+<xsl:template match="title" mode="procedure.title.mode">
+ <p>
+ <b>
+ <xsl:apply-templates/>
+ </b>
+ </p>
+</xsl:template>
+
+<xsl:template match="substeps">
+ <ol><xsl:apply-templates/></ol>
+</xsl:template>
+
+<xsl:template match="step">
+ <li><xsl:apply-templates/></li>
+</xsl:template>
+
+<xsl:template match="step/title">
+ <xsl:apply-templates select="." mode="procedure.title.mode"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="segmentedlist">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="segmentedlist/title">
+ <p><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="segtitle">
+</xsl:template>
+
+<xsl:template match="segtitle" mode="segtitle-in-seg">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seglistitem">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="seg">
+ <xsl:variable name="segnum" select="position()"/>
+ <xsl:variable name="seglist" select="ancestor::segmentedlist"/>
+ <xsl:variable name="segtitles" select="$seglist/segtitle"/>
+
+ <!--
+ Note: segtitle is only going to be the right thing in a well formed
+ SegmentedList. If there are too many Segs or too few SegTitles,
+ you'll get something odd...maybe an error
+ -->
+
+ <p>
+ <b>
+ <xsl:apply-templates select="$segtitles[$segnum=position()]"
+ mode="segtitle-in-seg"/>
+ <xsl:text>: </xsl:text>
+ </b>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="calloutlist">
+ <div class="{name(.)}">
+ <xsl:if test="./title">
+ <p>
+ <b>
+ <xsl:apply-templates select="./title" mode="calloutlist.title.mode"/>
+ </b>
+ </p>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$callout.list.table != 0">
+ <table border="0" summary="Callout list">
+ <xsl:apply-templates/>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <dl compact="compact"><xsl:apply-templates/></dl>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+</xsl:template>
+
+<xsl:template match="calloutlist/title">
+</xsl:template>
+
+<xsl:template match="calloutlist/title" mode="calloutlist.title.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="callout">
+ <xsl:choose>
+ <xsl:when test="$callout.list.table != 0">
+ <tr>
+ <td width="5%" valign="top" align="left">
+ <xsl:call-template name="callout.arearefs">
+ <xsl:with-param name="arearefs" select="@arearefs"/>
+ </xsl:call-template>
+ </td>
+ <td valign="top" align="left">
+ <xsl:apply-templates/>
+ </td>
+ </tr>
+ </xsl:when>
+ <xsl:otherwise>
+ <dt>
+ <xsl:call-template name="callout.arearefs">
+ <xsl:with-param name="arearefs" select="@arearefs"/>
+ </xsl:call-template>
+ </dt>
+ <dd><xsl:apply-templates/></dd>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="callout.arearefs">
+ <xsl:param name="arearefs"></xsl:param>
+ <xsl:if test="$arearefs!=''">
+ <xsl:choose>
+ <xsl:when test="substring-before($arearefs,' ')=''">
+ <xsl:call-template name="callout.arearef">
+ <xsl:with-param name="arearef" select="$arearefs"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="callout.arearef">
+ <xsl:with-param name="arearef"
+ select="substring-before($arearefs,' ')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="callout.arearefs">
+ <xsl:with-param name="arearefs"
+ select="substring-after($arearefs,' ')"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="callout.arearef">
+ <xsl:param name="arearef"></xsl:param>
+ <xsl:variable name="targets" select="id($arearef)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:choose>
+ <xsl:when test="count($target)=0">
+ <xsl:value-of select="$arearef"/>
+ <xsl:text>: ???</xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($target)='co'">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:value-of select="$arearef"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="$target" mode="callout-bug"/>
+ </a>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:when test="local-name($target)='areaset'">
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="$target" mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="local-name($target)='area'">
+ <xsl:choose>
+ <xsl:when test="$target/parent::areaset">
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="$target/parent::areaset"
+ mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="callout-bug">
+ <xsl:with-param name="conum">
+ <xsl:apply-templates select="$target" mode="conumber"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/math.xsl b/help-converters/docbook/docbook/html/math.xsl
new file mode 100644
index 0000000..502a930
--- /dev/null
+++ b/help-converters/docbook/docbook/html/math.xsl
@@ -0,0 +1,22 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="inlineequation">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="alt">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/param.xsl b/help-converters/docbook/docbook/html/param.xsl
new file mode 100644
index 0000000..de1e131
--- /dev/null
+++ b/help-converters/docbook/docbook/html/param.xsl
@@ -0,0 +1,947 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>HTML Parameter Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This reference describes each of the HTML Stylesheet parameters.
+These are the <quote>easily customizable</quote> parts of the stylesheet.
+If you want to specify an alternate value for one or more of these
+parameters, you can do so in a <quote>driver</quote> stylesheet.</para>
+
+<para>For example, if you want to change the <literal>html.stylesheet</literal>
+to <filename>reference.css</filename>, you might create a driver
+stylesheet like this:</para>
+
+<programlisting><![CDATA[<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+ <xsl:import href="/path/to/html/docbook.xsl"/>
+
+ <xsl:param name="html.stylesheet">reference.css</xsl:param>
+
+</xsl:stylesheet>]]></programlisting>
+
+<para>Naturally, you have to change the
+<sgmltag class='attribute'>href</sgmltag> attribute on
+<literal><xsl:import></literal>
+to point to <filename>docbook.xsl</filename>
+on your system. (Or <filename>chunk.xsl</filename>, if you're using
+chunking.)</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<xsl:param name="author.othername.in.middle" select="1" doc:type='boolean'/>
+
+<doc:param name="author.othername.in.middle" xmlns="">
+<refpurpose>Is <sgmltag>othername</sgmltag> in <sgmltag>author</sgmltag> a
+middle name?</refpurpose>
+<refdescription>
+<para>If true (non-zero), the <sgmltag>othername</sgmltag> of an <sgmltag>author</sgmltag>
+appears between the <sgmltag>firstname</sgmltag> and
+<sgmltag>surname</sgmltag>. Otherwise, <sgmltag>othername</sgmltag>
+is suppressed.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.stylesheet" select="''" doc:type='string'/>
+
+<doc:param name="html.stylesheet" xmlns="">
+<refpurpose>Name of the stylesheet to use in the generated HTML</refpurpose>
+<refdescription>
+<para>The name of the stylesheet to place in the HTML <sgmltag>LINK</sgmltag>
+tag, or the empty string to suppress the stylesheet <sgmltag>LINK</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.stylesheet.type" doc:type='string'>text/css</xsl:param>
+
+<doc:param name="html.stylesheet.type" xmlns="">
+<refpurpose>The type of the stylesheet used in the generated HTML</refpurpose>
+<refdescription>
+<para>The type of the stylesheet to place in the HTML <sgmltag>link</sgmltag> tag.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="html.base" doc:type='uri'></xsl:param>
+
+<doc:param name="html.base" xmlns="">
+<refpurpose>An HTML base URI</refpurpose>
+<refdescription>
+<para>If html.base is set, it is used for the <sgmltag>BASE</sgmltag>
+element in the <sgmltag>HEAD</sgmltag> of the HTML documents.
+This is useful for dynamically served HTML where the base URI needs
+to be shifted.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="ulink.target" select="'_top'" doc:type='string'/>
+
+<doc:param name="ulink.target" xmlns="">
+<refpurpose>The HTML anchor target for ULinks</refpurpose>
+<refdescription>
+<para>If <parameter>ulink.target</parameter> is set, its value will
+be used for the <sgmltag class='attribute'>target</sgmltag> attribute
+on anchors generated for <sgmltag>ulink</sgmltag>s.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="refentry.xref.manvolnum" select="1" doc:type='boolean'/>
+
+<doc:param name="refentry.xref.manvolnum" xmlns="">
+<refpurpose>Output <sgmltag>manvolnum</sgmltag> as part of
+<sgmltag>refentry</sgmltag> cross-reference?</refpurpose>
+<refdescription>
+<para>if true (non-zero), the <sgmltag>manvolnum</sgmltag> is used when cross-referencing
+<sgmltag>refentry</sgmltag>s, either with <sgmltag>xref</sgmltag>
+or <sgmltag>citerefentry</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="show.comments" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="show.comments" xmlns="">
+<refpurpose>Display <sgmltag>comment</sgmltag> elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), comments will be displayed, otherwise they are suppressed.
+Comments here refers to the <sgmltag>comment</sgmltag> element,
+which will be renamed <sgmltag>remark</sgmltag> in DocBook V4.0,
+not XML comments (<-- like this -->) which are unavailable.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="funcsynopsis.style"
+ doc:type='list'
+ doc:list='ansi kr'>kr</xsl:param>
+
+<doc:param name="funcsynopsis.style" xmlns="">
+<refpurpose>What style of 'FuncSynopsis' should be generated?</refpurpose>
+<refdescription>
+<para>If <varname>funcsynopsis.style</varname> is <literal>ansi</literal>,
+ANSI-style function synopses are generated for a
+<sgmltag>funcsynopsis</sgmltag>, otherwise K&R-style
+function synopses are generated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="funcsynopsis.decoration" select="1" doc:type='boolean'/>
+
+<doc:param name="funcsynopsis.decoration" xmlns="">
+<refpurpose>Decorate elements of a FuncSynopsis?</refpurpose>
+<refdescription>
+<para>If true (non-zero), elements of the FuncSynopsis will be decorated (e.g. bold or
+italic). The decoration is controlled by functions that can be redefined
+in a customization layer.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="function.parens" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="function.parens" xmlns="">
+<refpurpose>Generate parens after a function?</refpurpose>
+<refdescription>
+<para>If not 0, the formatting of
+a <sgmltag class="starttag">function</sgmltag> element will include
+generated parenthesis.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="refentry.generate.name" select="1" doc:type='boolean'/>
+
+<doc:param name="refentry.generate.name" xmlns="">
+<refpurpose>Output NAME header before 'RefName'(s)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a "NAME" section title is output before the list
+of 'RefName's.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics" select="0" doc:type='boolean'/>
+
+<doc:param name="admon.graphics" xmlns="">
+<refpurpose>Use graphics in admonitions?</refpurpose>
+<refdescription>
+<para>If true (non-zero), admonitions are presented in an alternate style that uses
+a graphic. Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.path" doc:type='string'>../images/</xsl:param>
+
+<doc:param name="admon.graphics.path" xmlns="">
+<refpurpose>Path to admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the admonition graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="admon.graphics.extension" xmlns="">
+<refpurpose>Extension for admonition graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on admonition graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="admon.style" doc:type='string'>
+ <xsl:text>margin-left: 0.5in; margin-right: 0.5in;</xsl:text>
+</xsl:param>
+
+<doc:param name="admon.style" xmlns="">
+<refpurpose>CSS style attributes for admonitions</refpurpose>
+<refdescription>
+<para>Specifies the value of the <sgmltag class="attribute">STYLE</sgmltag>
+attribute that should be added to admonitions.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="section.autolabel" select="0" doc:type='boolean'/>
+
+<doc:param name="section.autolabel" xmlns="">
+<refpurpose>Are sections enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled sections will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="section.label.includes.component.label" select="0"
+ doc:type='boolean'/>
+
+<doc:param name="section.label.includes.component.label" xmlns="">
+<refpurpose>Do section labels include the component label?</refpurpose>
+<refdescription>
+<para>If true (non-zero), section labels are prefixed with the label of the
+component that contains them.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="chapter.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="chapter.autolabel" xmlns="">
+<refpurpose>Are chapters and appendixes enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled chapters and appendixes will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="preface.autolabel" select="0" doc:type='boolean'/>
+
+<doc:param name="preface.autolabel" xmlns="">
+<refpurpose>Are prefaces enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled prefaces will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="part.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="part.autolabel" xmlns="">
+<refpurpose>Are parts and references enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled parts and references will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qandadiv.autolabel" select="1" doc:type='boolean'/>
+
+<doc:param name="qandadiv.autolabel" xmlns="">
+<refpurpose>Are divisions in QAndASets enumerated?</refpurpose>
+<refdescription>
+<para>If true (non-zero), unlabeled qandadivs will be enumerated.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.inherit.numeration" select="1" doc:type='boolean'/>
+
+<doc:param name="qanda.inherit.numeration" xmlns="">
+<refpurpose>Does enumeration of QandASet components inherit the numeration of parent elements?</refpurpose>
+<refdescription>
+<para>If true (non-zero), numbered QandADiv elements and Questions and Answers inherit
+the numeration of the ancestors of the QandASet.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="qanda.defaultlabel"
+ doc:type='boolean'
+ doc:list='qanda number none'>number</xsl:param>
+
+<doc:param name="qanda.defaultlabel" xmlns="">
+<refpurpose>Sets the default for defaultlabel on QandASet.</refpurpose>
+<refdescription>
+<para>If no defaultlabel attribute is specified on a QandASet, this
+value is used. It must be one of the legal values for the defaultlabel
+attribute.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.qandaset.toc" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="generate.qandaset.toc" xmlns="">
+<refpurpose>Is a Table of Contents created for QandASets?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a ToC is constructed for QandASets.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.qandadiv.toc" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="generate.qandadiv.toc" xmlns="">
+<refpurpose>Is a Table of Contents created for QandADivs?</refpurpose>
+<refdescription>
+<para>If true (non-zero), a ToC is constructed for QandADivs.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="biblioentry.item.separator" doc:type='string'>. </xsl:param>
+
+<doc:param name="biblioentry.item.separator" xmlns="">
+<refpurpose>Text to separate bibliography entries</refpurpose>
+<refdescription>
+<para>Text to separate bibliography entries
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="toc.section.depth"
+ doc:type='integer'
+ doc:min='1'
+ doc:max='10'>2</xsl:param>
+
+<doc:param name="toc.section.depth" xmlns="">
+<refpurpose>How deep should recursive <sgmltag>section</sgmltag>s appear
+in the TOC?</refpurpose>
+<refdescription>
+<para>Specifies the depth to which recursive sections should appear in the
+TOC.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="using.chunker" select="0" doc:type='boolean'/>
+
+<doc:param name="using.chunker" xmlns="">
+<refpurpose>Will the output be chunked?</refpurpose>
+<refdescription>
+<para>In addition to providing chunking, the chunker can cleanup a
+number of XML to HTML issues. If the chunker is not being used, the
+stylesheets try to avoid producing results that will not appear properly
+in browsers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.component.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.component.toc" xmlns="">
+<refpurpose>Should TOCs be genereated in components (Chapters, Appendixes, etc.)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), they are.
+</para>
+</refdescription>
+</doc:param>
+<!-- ==================================================================== -->
+<xsl:param name="generate.division.toc" select="1" doc:type='boolean'/>
+
+<doc:param name="generate.division.toc" xmlns="">
+<refpurpose>Should TOCs be genereated in divisions (Books, Parts, etc.)?</refpurpose>
+<refdescription>
+<para>If true (non-zero), they are.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="link.mailto.url" doc:type='string'></xsl:param>
+
+<doc:param name="link.mailto.url" xmlns="">
+<refpurpose>Mailto URL for the LINK REL=made HTML HEAD element</refpurpose>
+<refdescription>
+<para>If not the empty string, this address will be used for the
+REL=made <sgmltag>LINK</sgmltag> element in the HTML <sgmltag>HEAD</sgmltag>.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="graphic.default.extension" doc:type='string'></xsl:param>
+
+<doc:param name="graphic.default.extension" xmlns="">
+<refpurpose>Default extension for graphic filenames</refpurpose>
+<refdescription>
+<para>If a <sgmltag>graphic</sgmltag> or <sgmltag>mediaobject</sgmltag>
+includes a reference to a filename that does not include an extension,
+and the <sgmltag class="attribute">format</sgmltag> attribute is
+<emphasis>unspecified</emphasis>, the default extension will be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="toc.list.type"
+ doc:type='list'
+ doc:list='dl ul ol'>dl</xsl:param>
+
+<doc:param name="toc.list.type" xmlns="">
+<refpurpose>Type of HTML list element to use for Tables of Contents</refpurpose>
+<refdescription>
+<para>When an automatically generated Table of Contents (or List of Titles)
+is produced, this HTML element will be used to make the list.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="check.idref" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="check.idref" xmlns="">
+<refpurpose>Test the target of IDREF attributes?</refpurpose>
+<refdescription>
+<para>If 1, the target of IDREF attributes are tested for presence
+(and uniqueness). This can be very expensive in large documents.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="use.id.function" doc:type='boolean' select="'1'"/>
+
+<doc:param name="use.id.function" xmlns="">
+<refpurpose>Use the XPath id() function to find link targets?</refpurpose>
+<refdescription>
+<para>If 1, the stylesheets use the <function>id()</function> function
+to find the targets of cross reference elements. This is more
+efficient, but only works if your XSLT processor implements the
+<function>id()</function> function, naturally.</para>
+<para>THIS PARAMETER IS NOT SUPPORTED. IT IS ALWAYS ASSUMED TO BE 1.
+SEE xref.xsl IF YOU NEED TO TURN IT OFF.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="spacing.paras" doc:type='boolean' select="'1'"/>
+
+<doc:param name="spacing.paras" xmlns="">
+<refpurpose>Insert additional <p> elements for spacing?</refpurpose>
+<refdescription>
+<para>When non-zero, additional, empty paragraphs are inserted in
+several contexts (for example, around informal figures), to create a
+more pleasing visual appearance in many browsers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:attribute-set name="body.attrs">
+ <xsl:attribute name="bgcolor">white</xsl:attribute>
+ <xsl:attribute name="text">black</xsl:attribute>
+ <xsl:attribute name="link">#0000FF</xsl:attribute>
+ <xsl:attribute name="vlink">#840084</xsl:attribute>
+ <xsl:attribute name="alink">#0000FF</xsl:attribute>
+</xsl:attribute-set>
+
+<doc:attribute-set name="body.attrs" xmlns="">
+<refpurpose>Additional attributes for the HTML body tag</refpurpose>
+<refdescription>
+<para>The attributes defined by this attribute set are added to the
+HTML <body> tag.
+</para>
+</refdescription>
+</doc:attribute-set>
+
+<!-- ==================================================================== -->
+<xsl:param name="css.decoration" doc:type='boolean'>1</xsl:param>
+
+<doc:param name="css.decoration" xmlns="">
+<refpurpose>Enable CSS decoration of elements</refpurpose>
+<refdescription>
+<para>
+If <literal>css.decoration</literal> is turned on, then HTML elements
+produced by the
+stylesheet may be decorated with STYLE attributes. For example, the
+LI tags produced for list items may include a fragment of CSS in the
+STYLE attribute which sets the CSS property "list-style-type".
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="show.revisionflag" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="show.revisionflag" xmlns="">
+<refpurpose>Enable decoration of elements that have a revisionflag</refpurpose>
+<refdescription>
+<para>
+If <literal>show.revisionflag</literal> is turned on, then the stylesheets
+may produce additional markup designed to allow a CSS stylesheet to
+highlight elements that have specific revisionflag settings.</para>
+
+<para>The markup inserted will be usually be either a <span> or <div>
+with an appropriate <literal>class</literal> attribute. (The value of
+the class attribute will be the same as the value of the revisionflag
+attribute). In some contexts, for example tables, where extra markup
+would be structurally illegal, the class attribute will be added to the
+appropriate container element.</para>
+
+<para>In general, the stylesheets only test for revisionflag in contexts
+where an importing stylesheet would have to redefine whole templates.
+Most of the revisionflag processing is expected to be done by another
+stylesheet, for example <filename>changebars.xsl</filename>.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="suppress.navigation" doc:type='boolean'>0</xsl:param>
+
+<doc:param name="suppress.navigation" xmlns="">
+<refpurpose>Disable header and footer navigation</refpurpose>
+<refdescription>
+<para>
+If <literal>suppress.navigation</literal> is turned on, header and
+footer navigation will be suppressed.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="rootid" select="''" doc:type='string'/>
+
+<doc:param name="rootid" xmlns="">
+<refpurpose>Specify the root element to format</refpurpose>
+<refdescription>
+<para>If <parameter>rootid</parameter> is specified, it must be the
+value of an ID that occurs in the document being formatted. The entire
+document will be loaded and parsed, but formatting will begin at the
+element identified, rather than at the root. For example, this allows
+you to process only chapter 4 of a book.</para>
+<para>Because the entire document is available to the processor, automatic
+numbering, cross references, and other dependencies are correctly
+resolved.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.list.table" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callout.list.table" xmlns="">
+<refpurpose>Present callout lists using a table?</refpurpose>
+<refdescription>
+<para>The default presentation of <sgmltag>CalloutList</sgmltag>s uses
+an HTML <sgmltag>DL</sgmltag>. Some browsers don't align DLs very well
+if <parameter>callout.graphics</parameter> are used. With this option
+turned on, <sgmltag>CalloutList</sgmltag>s are presented in an HTML
+<sgmltag>TABLE</sgmltag>, which usually results in better alignment
+of the callout number with the callout description.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics" select="'1'" doc:type='boolean'/>
+
+<doc:param name="callout.graphics" xmlns="">
+<refpurpose>Use graphics for callouts?</refpurpose>
+<refdescription>
+<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
+circled numbers instead of "(1)", "(2)", etc.).
+Default graphics are provided in the distribution.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.extension" select="'.png'" doc:type='string'/>
+
+<doc:param name="callout.graphics.extension" xmlns="">
+<refpurpose>Extension for callout graphics</refpurpose>
+<refdescription>
+<para>Sets the extension to use on callout graphics.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.path" select="'../images/callouts/'" doc:type='string'/>
+
+<doc:param name="callout.graphics.path" xmlns="">
+<refpurpose>Path to callout graphics</refpurpose>
+<refdescription>
+<para>Sets the path, probably relative to the directory where the HTML
+files are created, to the callout graphics.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.graphics.number.limit" select="'10'"
+ doc:type='integer'/>
+
+<doc:param name="callout.graphics.number.limit" xmlns="">
+<refpurpose>Number of the largest callout graphic</refpurpose>
+<refdescription>
+<para>If <parameter>callout.graphics</parameter>
+is non-zero, graphics are used to represent
+callout numbers. The value of
+<parameter>callout.graphics.number.limit</parameter>
+is
+the largest number for which a graphic exists. If the callout number
+exceeds this limit, the default presentation "(nnn)" will always
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.extensions" select="'0'" doc:type='boolean'/>
+
+<doc:param name="saxon.extensions" xmlns="">
+<refpurpose>Enable Saxon extensions</refpurpose>
+<refdescription>
+<para>If non-zero, saxon extensions may be used. Each extension is
+further controlled by its own parameter. But if
+<parameter>saxon.extensions</parameter> is zero, no extensions will
+be used.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.textinsert" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.textinsert" xmlns="">
+<refpurpose>Enable the textinsert extension element</refpurpose>
+<refdescription>
+<para>The textinsert extension element inserts the contents of a
+a file into the result tree (as text).
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.linenumbering" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.linenumbering" xmlns="">
+<refpurpose>Enable the line numbering extension</refpurpose>
+<refdescription>
+<para>If true, verbatim environments (elements that have the
+format='linespecific' notation attribute: address, literallayout,
+programlisting, screen, synopsis) that specify line numbering will
+have, surprise, line numbers.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.everyNth" select="'5'" doc:type='integer'/>
+
+<doc:param name="linenumbering.everyNth" xmlns="">
+<refpurpose>Indicate which lines should be numbered</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, everyNth line will be numbered.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.width" select="'3'" doc:type='integer'/>
+
+<doc:param name="linenumbering.width" xmlns="">
+<refpurpose>Indicates the width of line numbers</refpurpose>
+<refdescription>
+<para>If line numbering is enabled, line numbers will appear right
+justified in a field "width" characters wide.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="linenumbering.separator" select="' '" doc:type='string'/>
+
+<doc:param name="linenumbering.separator" xmlns="">
+<refpurpose>Specify a separator between line numbers and lines</refpurpose>
+<refdescription>
+<para>The separator is inserted between line numbers and lines in
+the verbatim environment.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.callouts" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.callouts" xmlns="">
+<refpurpose>Enable the callout extension</refpurpose>
+<refdescription>
+<para>The callouts extension processes <sgmltag>areaset</sgmltag>
+elements in <sgmltag>ProgramListingCO</sgmltag> and other text-based
+callout elements.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="callout.defaultcolumn" select="'60'" doc:type='integer'/>
+
+<doc:param name="callout.defaultcolumn" xmlns="">
+<refpurpose>Indicates what column callouts appear in by default</refpurpose>
+<refdescription>
+<para>If a callout does not identify a column (for example, if it uses
+the <literal>linerange</literal> <sgmltag class="attribute">unit</sgmltag>),
+it will appear in the default column.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="stylesheet.result.type" select="'html'"
+ doc:type='list'
+ doc:list='html fo'/>
+
+<doc:param name="stylesheet.result.type" xmlns="">
+<refpurpose>Identifies the output format of this stylesheet</refpurpose>
+<refdescription>
+<para>The Saxon extension functions need to know if the output format
+is HTML ('html') or XSL Formatting Objects ('fo'). This variable answers
+that question. Valid settings are 'html' or 'fo'.</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="nominal.table.width" select="'6in'" doc:type='length'/>
+
+<doc:param name="nominal.table.width" xmlns="">
+<refpurpose>The (absolute) nominal width of tables</refpurpose>
+<refdescription>
+<para>In order to convert CALS column widths into HTML column widths, it
+is sometimes necessary to have an absolute table width to use for conversion
+of mixed absolute and relative widths. This value must be an absolute
+length (not a percentag).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="default.table.width" select="''" doc:type='length'/>
+
+<doc:param name="default.table.width" xmlns="">
+<refpurpose>The default width of tables</refpurpose>
+<refdescription>
+<para>If specified, this value will be used for the WIDTH attribute on
+tables that do not specify an alternate width (with the dbhtml processing
+instruction).</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="saxon.tablecolumns" select="'1'" doc:type='boolean'/>
+
+<doc:param name="saxon.tablecolumns" xmlns="">
+<refpurpose>Enable the table columns extension function</refpurpose>
+<refdescription>
+<para>The table columns extension function adjusts the widths of table
+columns in the HTML result to more accurately reflect the specifications
+in the CALS table.
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.set.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.book.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.part.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.reference.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.preface.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.chapter.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.appendix.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.article.toc" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.section.toc" select='0' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+<xsl:param name="generate.index" select='1' doc:type='boolean'/>
+
+<doc:param name="" xmlns="">
+<refpurpose>FIXME:</refpurpose>
+<refdescription>
+<para>FIXME:
+</para>
+</refdescription>
+</doc:param>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/pi.xsl b/help-converters/docbook/docbook/html/pi.xsl
new file mode 100644
index 0000000..b9220aa
--- /dev/null
+++ b/help-converters/docbook/docbook/html/pi.xsl
@@ -0,0 +1,191 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+ <xsl:if test="$using.chunker">
+ <xsl:processing-instruction name="dbhtml">
+ <xsl:value-of select="."/>
+ </xsl:processing-instruction>
+ </xsl:if>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+ <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+ <xsl:param name="attribute">filename</xsl:param>
+ <xsl:param name="count">1</xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($pis)">
+ <!-- not found -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pi">
+ <xsl:value-of select="$pis[$count]"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($pi,concat($attribute, '='))">
+ <xsl:variable name="rest" select="substring-after($pi,concat($attribute,'='))"/>
+ <xsl:variable name="quote" select="substring($rest,1,1)"/>
+ <xsl:value-of select="substring-before(substring($rest,2),$quote)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$pis"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="dbhtml-filename">
+ <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$pis"/>
+ <xsl:with-param name="attribute">filename</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="dbhtml-dir">
+ <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="$pis"/>
+ <xsl:with-param name="attribute">dir</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.cmdsynopsis.list">
+ <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+ <dt>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$cmdsyn/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </dt>
+
+ <xsl:call-template name="process.cmdsynopsis.list">
+ <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+ <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+
+ <xsl:if test="count($cmdsynopses)<1">
+ <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <dl>
+ <xsl:call-template name="process.cmdsynopsis.list">
+ <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+ </xsl:call-template>
+ </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.funcsynopsis.list">
+ <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($funcsynopses)"></xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+ <dt>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$cmdsyn/@xreflabel">
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+ <xsl:with-param name="target" select="$cmdsyn"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </dt>
+
+ <xsl:call-template name="process.funcsynopsis.list">
+ <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbfunclist')">
+ <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+
+ <xsl:if test="count($funcsynopses)<1">
+ <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <dl>
+ <xsl:call-template name="process.funcsynopsis.list">
+ <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+ </xsl:call-template>
+ </dl>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/qandaset.xsl b/help-converters/docbook/docbook/html/qandaset.xsl
new file mode 100644
index 0000000..bdbfea1
--- /dev/null
+++ b/help-converters/docbook/docbook/html/qandaset.xsl
@@ -0,0 +1,202 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="qandaset">
+ <xsl:variable name="title" select="title"/>
+ <xsl:variable name="rest" select="*[name(.)!='title']"/>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates select="$title"/>
+ <xsl:if test="$generate.qandaset.toc != '0'">
+ <xsl:call-template name="process.qanda.toc"/>
+ </xsl:if>
+ <xsl:apply-templates select="$rest"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="qandaset/title">
+ <xsl:variable name="qalevel">
+ <xsl:call-template name="qanda.section.level"/>
+ </xsl:variable>
+ <xsl:element name="h{string(number($qalevel)+1)}">
+ <xsl:attribute name="class">
+ <xsl:value-of select="name(.)"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandadiv">
+ <xsl:variable name="title" select="title"/>
+ <xsl:variable name="rest" select="*[name(.)!='title']"/>
+
+ <div class="{name(.)}">
+ <xsl:apply-templates select="$title"/>
+ <xsl:if test="$generate.qandadiv.toc != '0'">
+ <xsl:call-template name="process.qanda.toc"/>
+ </xsl:if>
+ <xsl:apply-templates select="$rest"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="qandadiv/title">
+ <xsl:variable name="qalevel">
+ <xsl:call-template name="qandadiv.section.level"/>
+ </xsl:variable>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:element name="h{string(number($qalevel)+1)}">
+ <xsl:attribute name="class">
+ <xsl:value-of select="name(.)"/>
+ </xsl:attribute>
+ <a name="{$id}">
+ <xsl:apply-templates select="parent::qandadiv" mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </a>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="qandaentry">
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="question">
+ <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+ <xsl:variable name="restch" select="(*[name(.)!='label'])[position()!=1]"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <p>
+ <a name="{$id}">
+ <b>
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ </b>
+ <xsl:apply-templates select="$firstch" mode="no.wrapper.mode"/>
+ </a>
+ </p>
+ <xsl:apply-templates select="$restch"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="answer">
+ <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+ <xsl:variable name="restch" select="(*[name(.)!='label'])[position()!=1]"/>
+
+ <div class="{name(.)}">
+ <p>
+ <b>
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ </b>
+ <xsl:apply-templates select="$firstch" mode="no.wrapper.mode"/>
+ </p>
+ <xsl:apply-templates select="$restch"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="label">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="process.qanda.toc">
+ <dl>
+ <xsl:apply-templates select="qandadiv" mode="qandatoc.mode"/>
+ <xsl:apply-templates select="qandaentry" mode="qandatoc.mode"/>
+ </dl>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="qandatoc.mode">
+ <dt><xsl:apply-templates select="title" mode="qandatoc.mode"/></dt>
+ <dd><xsl:call-template name="process.qanda.toc"/></dd>
+</xsl:template>
+
+<xsl:template match="qandadiv/title" mode="qandatoc.mode">
+ <xsl:variable name="qalevel">
+ <xsl:call-template name="qandadiv.section.level"/>
+ </xsl:variable>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:apply-templates select="parent::qandadiv" mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+
+<xsl:template match="qandaentry" mode="qandatoc.mode">
+ <xsl:apply-templates mode="qandatoc.mode"/>
+</xsl:template>
+
+<xsl:template match="question" mode="qandatoc.mode">
+ <xsl:variable name="firstch" select="(*[name(.)!='label'])[1]"/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <dt>
+ <xsl:apply-templates select="." mode="label.content"/>
+ <xsl:text> </xsl:text>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="parent::*"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:value-of select="$firstch"/>
+ </a>
+ </dt>
+</xsl:template>
+
+<xsl:template match="answer|revhistory" mode="qandatoc.mode">
+ <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="no.wrapper.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/refentry.xsl b/help-converters/docbook/docbook/html/refentry.xsl
new file mode 100644
index 0000000..0d8dc36
--- /dev/null
+++ b/help-converters/docbook/docbook/html/refentry.xsl
@@ -0,0 +1,212 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="reference">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <xsl:if test="@id">
+ <a name="{$id}"/>
+ </xsl:if>
+ <xsl:call-template name="reference.titlepage"/>
+ <xsl:if test="not(partintro) and $generate.reference.toc != '0'">
+ <xsl:call-template name="division.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="reference" mode="division.number">
+ <xsl:number from="book" count="reference" format="I."/>
+</xsl:template>
+
+<xsl:template match="reference/docinfo"></xsl:template>
+<xsl:template match="reference/referenceinfo"></xsl:template>
+<xsl:template match="reference/title"></xsl:template>
+<xsl:template match="reference/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="refentry">
+ <xsl:variable name="refmeta" select=".//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select=".//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]" mode="title"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]" mode="title"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <h1 class="title">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+ <xsl:copy-of select="$title"/>
+ </h1>
+ <xsl:apply-templates/>
+ <xsl:call-template name="process.footnotes"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="refentry/docinfo|refentry/refentryinfo"></xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refmeta">
+</xsl:template>
+
+<xsl:template match="manvolnum">
+ <xsl:if test="$refentry.xref.manvolnum != 0">
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refmiscinfo">
+</xsl:template>
+
+<xsl:template match="refentrytitle">
+ <xsl:call-template name="inline.charseq"/>
+</xsl:template>
+
+<xsl:template match="refnamediv">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refname">
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::refname">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refname[1]">
+ <xsl:if test="$refentry.generate.name != 0">
+ <h2><xsl:call-template name="gentext.element.name"/></h2>
+ </xsl:if>
+ <xsl:apply-templates/>
+ <xsl:if test="following-sibling::refname">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="refpurpose">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">em-dash</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="refdescriptor">
+ <!-- todo: finish this -->
+</xsl:template>
+
+<xsl:template match="refclass">
+ <p>
+ <b>
+ <xsl:if test="@role">
+ <xsl:value-of select="@role"/>
+ <xsl:text>: </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </b>
+ </p>
+</xsl:template>
+
+<xsl:template match="refsynopsisdiv">
+ <div class="{name(.)}">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+ <h2>Synopsis</h2>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="refsynopsisdivinfo"></xsl:template>
+
+<xsl:template match="refsynopsisdiv/title">
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3">
+ <xsl:call-template name="block.object"/>
+</xsl:template>
+
+<xsl:template match="refsect1/title">
+ <h2>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::refsect1"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </a>
+ <xsl:apply-templates/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="refsect2/title">
+ <h3>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::refsect2"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </a>
+ <xsl:apply-templates/>
+ </h3>
+</xsl:template>
+
+<xsl:template match="refsect3/title">
+ <h4>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="ancestor::refsect3"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </a>
+ <xsl:apply-templates/>
+ </h4>
+</xsl:template>
+
+<xsl:template match="refsect1info"></xsl:template>
+<xsl:template match="refsect2info"></xsl:template>
+<xsl:template match="refsect3info"></xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/sections.xsl b/help-converters/docbook/docbook/html/sections.xsl
new file mode 100644
index 0000000..ea7eb22
--- /dev/null
+++ b/help-converters/docbook/docbook/html/sections.xsl
@@ -0,0 +1,236 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="section">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="section.titlepage"/>
+ <xsl:if test="$generate.section.toc != '0'
+ or refentry">
+ <xsl:call-template name="section.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.mode">
+ <xsl:variable name="section" select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5)[last()]"/>
+ <xsl:call-template name="section.heading">
+ <xsl:with-param name="section" select="$section"/>
+ <xsl:with-param name="level">
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="$section" mode="title.ref">
+ <xsl:with-param name="label-wrapper" select="'span'"/>
+ <xsl:with-param name="label-wrapper-class" select="'label'"/>
+ <xsl:with-param name="title-wrapper" select="'span'"/>
+ <xsl:with-param name="title-wrapper-class" select="'title'"/>
+ <xsl:with-param name="allow-anchors" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="sect1">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="sect1.titlepage"/>
+ <xsl:if test="$generate.section.toc != '0'
+ or refentry">
+ <xsl:call-template name="section.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.mode">
+ <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect2">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="sect2.titlepage"/>
+ <xsl:if test="$generate.section.toc != '0'
+ or refentry">
+ <xsl:call-template name="section.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.mode">
+ <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect3">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="sect3.titlepage"/>
+
+ <xsl:if test="$generate.section.toc != '0'
+ or refentry">
+ <xsl:call-template name="section.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.mode">
+ <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect4">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="sect4.titlepage"/>
+ <xsl:if test="$generate.section.toc != '0'
+ or refentry">
+ <xsl:call-template name="section.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.mode">
+ <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="sect5">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="sect5.titlepage"/>
+ <xsl:if test="$generate.section.toc != '0'
+ or refentry">
+ <xsl:call-template name="section.toc"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.mode">
+ <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="simplesect">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:call-template name="simplesect.titlepage"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.mode">
+ <xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</xsl:template>
+
+<xsl:template match="section/title"></xsl:template>
+<xsl:template match="section/subtitle"></xsl:template>
+<xsl:template match="sectioninfo"></xsl:template>
+
+<xsl:template match="sect1/title"></xsl:template>
+<xsl:template match="sect1/subtitle"></xsl:template>
+<xsl:template match="sect1info"></xsl:template>
+
+<xsl:template match="sect2/title"></xsl:template>
+<xsl:template match="sect2/subtitle"></xsl:template>
+<xsl:template match="sect2info"></xsl:template>
+
+<xsl:template match="sect3/title"></xsl:template>
+<xsl:template match="sect3/subtitle"></xsl:template>
+<xsl:template match="sect3info"></xsl:template>
+
+<xsl:template match="sect4/title"></xsl:template>
+<xsl:template match="sect4/subtitle"></xsl:template>
+<xsl:template match="sect4info"></xsl:template>
+
+<xsl:template match="sect5/title"></xsl:template>
+<xsl:template match="sect5/subtitle"></xsl:template>
+<xsl:template match="sect5info"></xsl:template>
+
+<xsl:template match="simplesect/title"></xsl:template>
+<xsl:template match="simplesect/subtitle"></xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="section.heading">
+ <xsl:param name="section" select="."/>
+ <xsl:param name="level" select="'1'"/>
+ <xsl:param name="title"/>
+ <xsl:element name="h{$level}">
+ <xsl:attribute name="class">title</xsl:attribute>
+ <xsl:if test="$css.decoration != '0'">
+ <xsl:if test="$level<3">
+ <xsl:attribute name="style">clear: all</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$section"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </a>
+ <xsl:copy-of select="$title"/>
+ </xsl:element>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="bridgehead">
+ <!-- need to calculate depth! -->
+ <h3><xsl:apply-templates/></h3>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/synop.xsl b/help-converters/docbook/docbook/html/synop.xsl
new file mode 100644
index 0000000..9c0f30d
--- /dev/null
+++ b/help-converters/docbook/docbook/html/synop.xsl
@@ -0,0 +1,939 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [
+<!ENTITY RE " ">
+<!ENTITY nbsp " ">
+]>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<!-- synopsis is in verbatim -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="cmdsynopsis">
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <div class="{name(.)}" id="{$id}">
+ <a name="{$id}"/>
+ <xsl:apply-templates/>
+ </div>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command">
+ <br/>
+ <xsl:call-template name="inline.monoseq"/>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis/command[1]" priority="2">
+ <xsl:call-template name="inline.monoseq"/>
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template match="group|arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:variable name="sepchar">
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::*/@sepchar">
+ <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="position()>1"><xsl:value-of select="$sepchar"/></xsl:if>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:value-of select="$arg.choice.plain.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.open.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.open.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.open.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates/>
+ <xsl:choose>
+ <xsl:when test="$rep='repeat'">
+ <xsl:value-of select="$arg.rep.repeat.str"/>
+ </xsl:when>
+ <xsl:when test="$rep='norepeat'">
+ <xsl:value-of select="$arg.rep.norepeat.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.rep.def.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$choice='plain'">
+ <xsl:value-of select="$arg.choice.plain.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='req'">
+ <xsl:value-of select="$arg.choice.req.close.str"/>
+ </xsl:when>
+ <xsl:when test="$choice='opt'">
+ <xsl:value-of select="$arg.choice.opt.close.str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$arg.choice.def.close.str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="group/arg">
+ <xsl:variable name="choice" select="@choice"/>
+ <xsl:variable name="rep" select="@rep"/>
+ <xsl:if test="position()>1"><xsl:value-of select="$arg.or.sep"/></xsl:if>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="sbr">
+ <br/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="synopfragmentref">
+ <xsl:variable name="target" select="id(@linkend)"/>
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="$target" mode="synopfragment.number"/>
+ </xsl:variable>
+ <i>
+ <a href="{ linkend}">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ </a>
+ </i>
+</xsl:template>
+
+<xsl:template match="synopfragment" mode="synopfragment.number">
+ <xsl:number format="1"/>
+</xsl:template>
+
+<xsl:template match="synopfragment">
+ <xsl:variable name="snum">
+ <xsl:apply-templates select="." mode="synopfragment.number"/>
+ </xsl:variable>
+ <p>
+ <a name="#{ id}">
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$snum"/>
+ <xsl:text>)</xsl:text>
+ </a>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates/>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcsynopsis">
+ <xsl:call-template name="informal.object"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsisinfo">
+ <pre class="{name(.)}"><xsl:apply-templates/></pre>
+</xsl:template>
+
+<xsl:template match="funcprototype">
+ <p>
+ <code>
+ <xsl:apply-templates/>
+ <xsl:if test="$funcsynopsis.style='kr'">
+ <xsl:apply-templates select="./paramdef" mode="kr-funcsynopsis-mode"/>
+ </xsl:if>
+ </code>
+ </p>
+</xsl:template>
+
+<xsl:template match="funcdef">
+ <code class="{name(.)}">
+ <xsl:apply-templates/>
+ </code>
+</xsl:template>
+
+<xsl:template match="funcdef/function">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <b class="fsfunc"><xsl:apply-templates/></b>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="void">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.style='ansi'">
+ <xsl:text>(void);</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>();</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="varargs">
+ <xsl:text>(...);</xsl:text>
+</xsl:template>
+
+<xsl:template match="paramdef">
+ <xsl:variable name="paramnum">
+ <xsl:number count="paramdef" format="1"/>
+ </xsl:variable>
+ <xsl:if test="$paramnum=1">(</xsl:if>
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.style='ansi'">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="./parameter"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="following-sibling::paramdef">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>);</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="paramdef/parameter">
+ <xsl:choose>
+ <xsl:when test="$funcsynopsis.decoration != 0">
+ <var class="pdparam">
+ <xsl:apply-templates/>
+ </var>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="following-sibling::parameter">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
+ <br/>
+ <xsl:apply-templates/>
+ <xsl:text>;</xsl:text>
+</xsl:template>
+
+<xsl:template match="funcparams">
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text>)</xsl:text>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
+
+<xsl:template match="classsynopsis">
+ <xsl:param name="language">
+ <xsl:choose>
+ <xsl:when test="@language">
+ <xsl:value-of select="@language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-classsynopsis-language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$language='java'">
+ <xsl:apply-templates select="." mode="java"/>
+ </xsl:when>
+ <xsl:when test="$language='perl'">
+ <xsl:apply-templates select="." mode="perl"/>
+ </xsl:when>
+ <xsl:when test="$language='idl'">
+ <xsl:apply-templates select="." mode="idl"/>
+ </xsl:when>
+ <xsl:when test="$language='cpp'">
+ <xsl:apply-templates select="." mode="cpp"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized language on classsynopsis: </xsl:text>
+ <xsl:value-of select="$language"/>
+ </xsl:message>
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="language"
+ select="$default-classsynopsis-language"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ===== Java ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="java">
+ <pre class="{name(.)}">
+ <xsl:apply-templates select="ooclass[1]" mode="java"/>
+ <xsl:if test="ooclass[position() > 1]">
+ <xsl:text> extends</xsl:text>
+ <xsl:apply-templates select="ooclass[position() > 1]" mode="java"/>
+ <xsl:if test="oointerface|ooexception">
+ <xsl:text>&RE; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text>implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="java"/>
+ <xsl:if test="ooexception">
+ <xsl:text>&RE; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text>throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="java"/>
+ </xsl:if>
+ <xsl:text> {&RE;&RE;</xsl:text>
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="java"/>
+ <xsl:text>}</xsl:text>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="java">
+ <xsl:apply-templates mode="java"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="java">
+ <xsl:choose>
+ <xsl:when test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="java">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="java">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="java">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="java">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="java">
+ <div class="{name(.)}">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates mode="java"/>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<xsl:template match="type" mode="java">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="java">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="java">
+ <span class="{name(.)}">
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="java">
+ <span class="{name(.)}">
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="java">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="java">
+ <xsl:param name="indent">0</xsl:param>
+ <xsl:if test="position() > 1">
+ <xsl:text>,&RE;</xsl:text>
+ <xsl:if test="$indent > 0">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string"> </xsl:with-param>
+ <xsl:with-param name="count" select="$indent + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="java">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="java"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="java"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="decl">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$modifiers" mode="java"/>
+
+ <!-- type -->
+ <xsl:if test="name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="java"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="java"/>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <xsl:copy-of select="$decl"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="java">
+ <xsl:with-param name="indent" select="string-length($decl)"/>
+ </xsl:apply-templates>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <xsl:text>&RE; throws </xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="java"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<!-- ===== C++ ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="cpp">
+ <pre class="{name(.)}">
+ <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
+ <xsl:if test="ooclass[position() > 1]">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="ooclass[position() > 1]" mode="cpp"/>
+ <xsl:if test="oointerface|ooexception">
+ <xsl:text>&RE; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text> implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="cpp"/>
+ <xsl:if test="ooexception">
+ <xsl:text>&RE; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text> throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="cpp"/>
+ </xsl:if>
+ <xsl:text> {&RE;&RE;</xsl:text>
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="cpp"/>
+ <xsl:text>}</xsl:text>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="cpp">
+ <xsl:apply-templates mode="cpp"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="cpp">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="cpp">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="cpp">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="cpp">
+ <div class="{name(.)}">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<xsl:template match="type" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="cpp">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="cpp">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="cpp"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="cpp"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="type">
+ </xsl:variable>
+ <div class="{name(.)}">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$modifiers" mode="cpp"/>
+
+ <!-- type -->
+ <xsl:if test="name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="cpp"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="cpp"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <xsl:text>&RE; throws </xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="cpp"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<!-- ===== IDL ========================================================= -->
+
+<xsl:template match="classsynopsis" mode="idl">
+ <pre class="{name(.)}">
+ <xsl:text>interface </xsl:text>
+ <xsl:apply-templates select="ooclass[1]" mode="idl"/>
+ <xsl:if test="ooclass[position() > 1]">
+ <xsl:text>: </xsl:text>
+ <xsl:apply-templates select="ooclass[position() > 1]" mode="idl"/>
+ <xsl:if test="oointerface|ooexception">
+ <xsl:text>&RE; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="oointerface">
+ <xsl:text> implements</xsl:text>
+ <xsl:apply-templates select="oointerface" mode="idl"/>
+ <xsl:if test="ooexception">
+ <xsl:text>&RE; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ooexception">
+ <xsl:text> throws</xsl:text>
+ <xsl:apply-templates select="ooexception" mode="idl"/>
+ </xsl:if>
+ <xsl:text> {&RE;&RE;</xsl:text>
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="idl"/>
+ <xsl:text>}</xsl:text>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="idl">
+ <xsl:apply-templates mode="idl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="idl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="idl">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="idl">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="idl">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="idl">
+ <div class="{name(.)}">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<xsl:template match="type" mode="idl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="idl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="idl">
+ <span class="{name(.)}">
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="idl">
+ <span class="{name(.)}">
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="idl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="idl">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="idl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="idl"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="idl"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="type">
+ </xsl:variable>
+ <div class="{name(.)}">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$modifiers" mode="idl"/>
+
+ <!-- type -->
+ <xsl:if test="name($notmod[1]) != 'methodname'">
+ <xsl:apply-templates select="$notmod[1]" mode="idl"/>
+ </xsl:if>
+
+ <xsl:apply-templates select="methodname" mode="idl"/>
+ <xsl:text>(</xsl:text>
+ <xsl:apply-templates select="methodparam" mode="idl"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="exceptionname">
+ <xsl:text>&RE; raises(</xsl:text>
+ <xsl:apply-templates select="exceptionname" mode="idl"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<!-- ===== Perl ======================================================== -->
+
+<xsl:template match="classsynopsis" mode="perl">
+ <pre class="{name(.)}">
+ <xsl:text>package </xsl:text>
+ <xsl:apply-templates select="ooclass[1]" mode="perl"/>
+ <xsl:text>;&RE;</xsl:text>
+
+ <xsl:if test="ooclass[position() > 1]">
+ <xsl:text>@ISA = (</xsl:text>
+ <xsl:apply-templates select="ooclass[position() > 1]" mode="perl"/>
+ <xsl:text>);&RE;</xsl:text>
+ </xsl:if>
+
+ <xsl:apply-templates select="constructorsynopsis
+ |destructorsynopsis
+ |fieldsynopsis
+ |methodsynopsis
+ |classsynopsisinfo" mode="perl"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="classsynopsisinfo" mode="perl">
+ <xsl:apply-templates mode="perl"/>
+</xsl:template>
+
+<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modifier" mode="perl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="classname" mode="perl">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'classname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="interfacename" mode="perl">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'interfacename'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="exceptionname" mode="perl">
+ <xsl:if test="name(preceding-sibling::*[1]) = 'exceptionname'">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="fieldsynopsis" mode="perl">
+ <div class="{name(.)}">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text>;</xsl:text>
+ </div>
+</xsl:template>
+
+<xsl:template match="type" mode="perl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="varname" mode="perl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ <xsl:text> </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="initializer" mode="perl">
+ <span class="{name(.)}">
+ <xsl:text>= </xsl:text>
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="void" mode="perl">
+ <span class="{name(.)}">
+ <xsl:text>void </xsl:text>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodname" mode="perl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="methodparam" mode="perl">
+ <xsl:if test="position() > 1">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template match="parameter" mode="perl">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="perl"/>
+ </span>
+</xsl:template>
+
+<xsl:template mode="perl"
+ match="constructorsynopsis|destructorsynopsis|methodsynopsis">
+ <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="type">
+ </xsl:variable>
+ <div class="{name(.)}">
+ <xsl:text>sub </xsl:text>
+
+ <xsl:apply-templates select="methodname" mode="perl"/>
+ <xsl:text> { ... };</xsl:text>
+ </div>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/table.xsl b/help-converters/docbook/docbook/html/table.xsl
new file mode 100644
index 0000000..7245295
--- /dev/null
+++ b/help-converters/docbook/docbook/html/table.xsl
@@ -0,0 +1,625 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ xmlns:tbl="http://nwalsh.com/com.nwalsh.saxon6.Table"
+ exclude-result-prefixes="doc tbl"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="tgroup">
+ <table>
+ <xsl:choose>
+ <!-- If there's a <?dbhtml table-summary="foo"?> PI, use it for
+ the HTML table summary attribute -->
+ <xsl:when test="processing-instruction('dbhtml')">
+ <xsl:variable name="summary">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis"
+ select="processing-instruction('dbhtml')[1]"/>
+ <xsl:with-param name="attribute" select="'table-summary'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$summary != ''">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="$summary"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <!-- Otherwise, if there's a title, use that -->
+ <xsl:when test="../title">
+ <xsl:attribute name="summary">
+ <xsl:value-of select="string(../title)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- Otherwise, forget the whole idea -->
+ <xsl:otherwise><!-- nevermind --></xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="../@pgwide=1">
+ <xsl:attribute name="width">100%</xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="../@frame='none'">
+ <xsl:attribute name="border">0</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="border">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:variable name="colgroup">
+ <colgroup>
+ <xsl:call-template name="generate.colgroup">
+ <xsl:with-param name="cols" select="@cols"/>
+ </xsl:call-template>
+ </colgroup>
+ </xsl:variable>
+
+ <xsl:variable name="explicit.table.width">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis"
+ select="../processing-instruction('dbhtml')[1]"/>
+ <xsl:with-param name="attribute" select="'table-width'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="table.width">
+ <xsl:choose>
+ <xsl:when test="$explicit.table.width != ''">
+ <xsl:value-of select="$explicit.table.width"/>
+ </xsl:when>
+ <xsl:when test="$default.table.width = ''">
+ <xsl:text>100%</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default.table.width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="$default.table.width != ''
+ or $explicit.table.width != ''">
+ <xsl:attribute name="width">
+ <xsl:choose>
+ <xsl:when test="contains($table.width, '%')">
+ <xsl:value-of select="$table.width"/>
+ </xsl:when>
+ <xsl:when test="contains($vendor, 'SAXON 6')
+ and $saxon.extensions != 0
+ and $saxon.tablecolumns != 0">
+ <xsl:value-of select="tbl:convertLength($table.width)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$table.width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')
+ and $saxon.extensions != 0
+ and $saxon.tablecolumns != 0">
+ <xsl:copy-of select="tbl:adjustColumnWidths($colgroup)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$colgroup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:apply-templates/>
+
+ <xsl:if test=".//footnote">
+ <tr>
+ <td colspan="{ cols}">
+ <xsl:apply-templates select=".//footnote"
+ mode="table.footnote.mode"/>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+</xsl:template>
+
+<xsl:template match="tgroup/processing-instruction('dbhtml')">
+ <xsl:variable name="summary">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="pis" select="."/>
+ <xsl:with-param name="attribute" select="'table-summary'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- Suppress the table-summary PI -->
+ <xsl:if test="$summary = ''">
+ <xsl:processing-instruction name="dbhtml">
+ <xsl:value-of select="."/>
+ </xsl:processing-instruction>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="colspec"></xsl:template>
+
+<xsl:template match="spanspec"></xsl:template>
+
+<xsl:template match="thead|tfoot">
+ <xsl:element name="{name(.)}">
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+ <tbody>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ </tbody>
+</xsl:template>
+
+<xsl:template match="row">
+ <tr>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:apply-templates/>
+ </tr>
+</xsl:template>
+
+<xsl:template match="thead/row/entry">
+ <xsl:call-template name="process.cell">
+ <xsl:with-param name="cellgi">th</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tbody/row/entry">
+ <xsl:call-template name="process.cell">
+ <xsl:with-param name="cellgi">td</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="tfoot/row/entry">
+ <xsl:call-template name="process.cell">
+ <xsl:with-param name="cellgi">th</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="process.cell">
+ <xsl:param name="cellgi">td</xsl:param>
+ <xsl:variable name="empty.cell" select="count(node()) = 0"/>
+
+ <xsl:variable name="entry.colnum">
+ <xsl:call-template name="entry.colnum"/>
+ </xsl:variable>
+
+ <xsl:if test="$entry.colnum != ''">
+ <xsl:variable name="prev.entry" select="preceding-sibling::*[1]"/>
+ <xsl:variable name="prev.ending.colnum">
+ <xsl:choose>
+ <xsl:when test="$prev.entry">
+ <xsl:call-template name="entry.ending.colnum">
+ <xsl:with-param name="entry" select="$prev.entry"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:call-template name="add-empty-entries">
+ <xsl:with-param name="number">
+ <xsl:choose>
+ <xsl:when test="$prev.ending.colnum = ''">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$entry.colnum - $prev.ending.colnum - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:element name="{$cellgi}">
+ <xsl:if test="@morerows">
+ <xsl:attribute name="rowspan">
+ <xsl:value-of select="@morerows+1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@namest">
+ <xsl:attribute name="colspan">
+ <xsl:call-template name="calculate.colspan"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@valign">
+ <xsl:attribute name="valign">
+ <xsl:value-of select="@valign"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="not(preceding-sibling::*)
+ and ancestor::row/@id">
+ <a name="{ancestor::row/@id}"/>
+ </xsl:if>
+
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$empty.cell">
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template name="add-empty-entries">
+ <xsl:param name="number" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="$number <= 0"></xsl:when>
+ <xsl:otherwise>
+ <td> </td>
+ <xsl:call-template name="add-empty-entries">
+ <xsl:with-param name="number" select="$number - 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<doc:template name="add-empty-entries" xmlns="">
+<refpurpose>Insert empty TDs into a table row</refpurpose>
+<refdescription>
+<para>This template inserts empty TDs into a table row.</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>number</term>
+<listitem>
+<para>The number of empty TDs to add.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+<refreturn>
+<para>Nothing</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="entry.colnum">
+ <xsl:param name="entry" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$entry/@colname">
+ <xsl:variable name="colname" select="$entry/@colname"/>
+ <xsl:variable name="colspec"
+ select="$entry/ancestor::tgroup/colspec[ colname=$colname]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$entry/@namest">
+ <xsl:variable name="namest" select="$entry/@namest"/>
+ <xsl:variable name="colspec"
+ select="$entry/ancestor::tgroup/colspec[ colname=$namest]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="count($entry/preceding-sibling::*) = 0">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pcol">
+ <xsl:call-template name="entry.ending.colnum">
+ <xsl:with-param name="entry"
+ select="$entry/preceding-sibling::*[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$pcol + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<doc:template name="entry.colnum" xmlns="">
+<refpurpose>Determine the column number in which a given entry occurs</refpurpose>
+<refdescription>
+<para>If an <sgmltag>entry</sgmltag> has a
+<sgmltag class="attribute">colname</sgmltag> or
+<sgmltag class="attribute">namest</sgmltag> attribute, this template
+will determine the number of the column in which the entry should occur.
+For other <sgmltag>entry</sgmltag>s, nothing is returned.</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>entry</term>
+<listitem>
+<para>The <sgmltag>entry</sgmltag>-element which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns the column number if it can be determined,
+or nothing (the empty string)</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="entry.ending.colnum">
+ <xsl:param name="entry" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="$entry/@colname">
+ <xsl:variable name="colname" select="$entry/@colname"/>
+ <xsl:variable name="colspec"
+ select="$entry/ancestor::tgroup/colspec[ colname=$colname]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$entry/@nameend">
+ <xsl:variable name="nameend" select="$entry/@nameend"/>
+ <xsl:variable name="colspec"
+ select="$entry/ancestor::tgroup/colspec[ colname=$nameend]"/>
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec" select="$colspec"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="count($entry/preceding-sibling::*) = 0">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pcol">
+ <xsl:call-template name="entry.ending.colnum">
+ <xsl:with-param name="entry"
+ select="$entry/preceding-sibling::*[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$pcol + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="colspec.colnum">
+ <xsl:param name="colspec" select="."/>
+ <xsl:choose>
+ <xsl:when test="$colspec/@colnum">
+ <xsl:value-of select="$colspec/@colnum"/>
+ </xsl:when>
+ <xsl:when test="$colspec/preceding-sibling::colspec">
+ <xsl:variable name="prec.colspec.colnum">
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec"
+ select="$colspec/preceding-sibling::colspec[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$prec.colspec.colnum + 1"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.colgroup">
+ <xsl:param name="cols" select="1"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$count>$cols"></xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="generate.col">
+ <xsl:with-param name="countcol" select="$count"/>
+ </xsl:call-template>
+ <xsl:call-template name="generate.colgroup">
+ <xsl:with-param name="cols" select="$cols"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="generate.col">
+ <xsl:param name="countcol">1</xsl:param>
+ <xsl:param name="colspecs" select="./colspec"/>
+ <xsl:param name="count">1</xsl:param>
+ <xsl:param name="colnum">1</xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count>count($colspecs)">
+ <col/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+ <xsl:variable name="colspec.colnum">
+ <xsl:choose>
+ <xsl:when test="$colspec/@colnum">
+ <xsl:value-of select="$colspec/@colnum"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$colnum"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$colspec.colnum=$countcol">
+ <col>
+ <xsl:if test="$colspec/@colwidth
+ and $saxon.extensions != 0
+ and $saxon.tablecolumns != 0">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$colspec/@colwidth"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$colspec/@align">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$colspec/@align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$colspec/@char">
+ <xsl:attribute name="char">
+ <xsl:value-of select="$colspec/@char"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$colspec/@charoff">
+ <xsl:attribute name="charoff">
+ <xsl:value-of select="$colspec/@charoff"/>
+ </xsl:attribute>
+ </xsl:if>
+ </col>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="generate.col">
+ <xsl:with-param name="countcol" select="$countcol"/>
+ <xsl:with-param name="colspecs" select="$colspecs"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ <xsl:with-param name="colnum">
+ <xsl:choose>
+ <xsl:when test="$colspec/@colnum">
+ <xsl:value-of select="$colspec/@colnum + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$colnum + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+
+</xsl:template>
+
+<xsl:template name="colspec.colwidth">
+ <!-- when this macro is called, the current context must be an entry -->
+ <xsl:param name="colname"></xsl:param>
+ <!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
+ <xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
+ <xsl:param name="count">1</xsl:param>
+ <xsl:choose>
+ <xsl:when test="$count>count($colspecs)"></xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
+ <xsl:choose>
+ <xsl:when test="$colspec/@colname=$colname">
+ <xsl:value-of select="$colspec/@colwidth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="colspec.colwidth">
+ <xsl:with-param name="colname" select="$colname"/>
+ <xsl:with-param name="colspecs" select="$colspecs"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="calculate.colspan">
+ <xsl:param name="entry" select="."/>
+ <xsl:variable name="namest" select="$entry/@namest"/>
+ <xsl:variable name="nameend" select="$entry/@nameend"/>
+
+ <xsl:variable name="scol">
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec"
+ select="$entry/ancestor::tgroup/colspec[ colname=$namest]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="ecol">
+ <xsl:call-template name="colspec.colnum">
+ <xsl:with-param name="colspec"
+ select="$entry/ancestor::tgroup/colspec[ colname=$nameend]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$ecol - $scol + 1"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/help-converters/docbook/docbook/html/titlepage.templates.xsl b/help-converters/docbook/docbook/html/titlepage.templates.xsl
new file mode 100644
index 0000000..e6f6ca8
--- /dev/null
+++ b/help-converters/docbook/docbook/html/titlepage.templates.xsl
@@ -0,0 +1,1986 @@
+<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- This stylesheet was created by template/titlepage.xsl; do not edit it by hand. -->
+
+<xsl:template name="article.titlepage.recto">
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="(articleinfo/title|artheader/title|title)[1]"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="(articleinfo/subtitle|artheader/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/corpauthor|artheader/corpauthor"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/authorgroup|artheader/authorgroup"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/author|artheader/author"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/releaseinfo|artheader/releaseinfo"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/copyright|artheader/copyright"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/legalnotice|artheader/legalnotice"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/pubdate|artheader/pubdate"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revision|artheader/revision"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/revhistory|artheader/revhistory"/>
+ <xsl:apply-templates mode="article.titlepage.recto.auto.mode" select="articleinfo/abstract|artheader/abstract"/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="article.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="article.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="article.titlepage.before.recto"/>
+ <xsl:call-template name="article.titlepage.recto"/>
+ <xsl:call-template name="article.titlepage.before.verso"/>
+ <xsl:call-template name="article.titlepage.verso"/>
+ <xsl:call-template name="article.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="article.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="article.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="article.titlepage.recto.style">
+<xsl:apply-templates select="." mode="article.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="set.titlepage.recto">
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="(setinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="(setinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/corpauthor"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/authorgroup"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/author"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/releaseinfo"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/copyright"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/legalnotice"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/pubdate"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revision"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/revhistory"/>
+ <xsl:apply-templates mode="set.titlepage.recto.auto.mode" select="setinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="set.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="set.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="set.titlepage.before.recto"/>
+ <xsl:call-template name="set.titlepage.recto"/>
+ <xsl:call-template name="set.titlepage.before.verso"/>
+ <xsl:call-template name="set.titlepage.verso"/>
+ <xsl:call-template name="set.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="set.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="set.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="set.titlepage.recto.style">
+<xsl:apply-templates select="." mode="set.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="book.titlepage.recto">
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="(bookinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="(bookinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/corpauthor"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/author"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/releaseinfo"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/copyright"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/legalnotice"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/pubdate"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revision"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/revhistory"/>
+ <xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="book.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="book.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="book.titlepage.before.recto"/>
+ <xsl:call-template name="book.titlepage.recto"/>
+ <xsl:call-template name="book.titlepage.before.verso"/>
+ <xsl:call-template name="book.titlepage.verso"/>
+ <xsl:call-template name="book.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="book.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="book.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="book.titlepage.recto.style">
+<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="part.titlepage.recto">
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="(partinfo/title|docinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="(partinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="part.titlepage.recto.auto.mode" select="partinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="part.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="part.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="part.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="part.titlepage.before.recto"/>
+ <xsl:call-template name="part.titlepage.recto"/>
+ <xsl:call-template name="part.titlepage.before.verso"/>
+ <xsl:call-template name="part.titlepage.verso"/>
+ <xsl:call-template name="part.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="part.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="part.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="part.titlepage.recto.style">
+<xsl:apply-templates select="." mode="part.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.recto">
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="(partintroinfo/title|docinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="(partintroinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="partintro.titlepage.recto.auto.mode" select="partintroinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="partintro.titlepage">
+ <div>
+ <xsl:call-template name="partintro.titlepage.before.recto"/>
+ <xsl:call-template name="partintro.titlepage.recto"/>
+ <xsl:call-template name="partintro.titlepage.before.verso"/>
+ <xsl:call-template name="partintro.titlepage.verso"/>
+ <xsl:call-template name="partintro.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="partintro.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="partintro.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="partintro.titlepage.recto.style">
+<xsl:apply-templates select="." mode="partintro.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.recto">
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="(referenceinfo/title|docinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="(referenceinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="reference.titlepage.recto.auto.mode" select="referenceinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.separator"><hr/>
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="reference.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="reference.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="reference.titlepage.before.recto"/>
+ <xsl:call-template name="reference.titlepage.recto"/>
+ <xsl:call-template name="reference.titlepage.before.verso"/>
+ <xsl:call-template name="reference.titlepage.verso"/>
+ <xsl:call-template name="reference.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="reference.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="reference.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="reference.titlepage.recto.style">
+<xsl:apply-templates select="." mode="reference.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.recto">
+ <div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::dedication[1]"/>
+</xsl:call-template></div>
+ <xsl:apply-templates mode="dedication.titlepage.recto.auto.mode" select="(dedicationinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="dedication.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="dedication.titlepage.before.recto"/>
+ <xsl:call-template name="dedication.titlepage.recto"/>
+ <xsl:call-template name="dedication.titlepage.before.verso"/>
+ <xsl:call-template name="dedication.titlepage.verso"/>
+ <xsl:call-template name="dedication.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="dedication.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="dedication.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="dedication.titlepage.recto.style">
+<xsl:apply-templates select="." mode="dedication.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.recto">
+ <div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:call-template name="component.title">
+<xsl:with-param name="node" select="ancestor-or-self::preface[1]"/>
+</xsl:call-template></div>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="(prefaceinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="preface.titlepage.recto.auto.mode" select="prefaceinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="preface.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="preface.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="preface.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="preface.titlepage.before.recto"/>
+ <xsl:call-template name="preface.titlepage.recto"/>
+ <xsl:call-template name="preface.titlepage.before.verso"/>
+ <xsl:call-template name="preface.titlepage.verso"/>
+ <xsl:call-template name="preface.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="preface.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="preface.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="preface.titlepage.recto.style">
+<xsl:apply-templates select="." mode="preface.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.recto">
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="(chapterinfo/title|docinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="(chapterinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="chapter.titlepage.recto.auto.mode" select="chapterinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="chapter.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="chapter.titlepage.before.recto"/>
+ <xsl:call-template name="chapter.titlepage.recto"/>
+ <xsl:call-template name="chapter.titlepage.before.verso"/>
+ <xsl:call-template name="chapter.titlepage.verso"/>
+ <xsl:call-template name="chapter.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="chapter.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="chapter.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="chapter.titlepage.recto.style">
+<xsl:apply-templates select="." mode="chapter.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.recto">
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="(appendixinfo/title|docinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="(appendixinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="appendix.titlepage.recto.auto.mode" select="appendixinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.separator">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="appendix.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="appendix.titlepage.before.recto"/>
+ <xsl:call-template name="appendix.titlepage.recto"/>
+ <xsl:call-template name="appendix.titlepage.before.verso"/>
+ <xsl:call-template name="appendix.titlepage.verso"/>
+ <xsl:call-template name="appendix.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="appendix.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="appendix.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="appendix.titlepage.recto.style">
+<xsl:apply-templates select="." mode="appendix.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="section.titlepage.recto">
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="(sectioninfo/title|title)[1]"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="(sectioninfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/corpauthor"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/authorgroup"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/author"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/releaseinfo"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/copyright"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/legalnotice"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/pubdate"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revision"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/revhistory"/>
+ <xsl:apply-templates mode="section.titlepage.recto.auto.mode" select="sectioninfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="section.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="section.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="section.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="section.titlepage.before.recto"/>
+ <xsl:call-template name="section.titlepage.recto"/>
+ <xsl:call-template name="section.titlepage.before.verso"/>
+ <xsl:call-template name="section.titlepage.verso"/>
+ <xsl:call-template name="section.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="section.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="section.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="section.titlepage.recto.style">
+<xsl:apply-templates select="." mode="section.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.recto">
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="(sect1info/title|title)[1]"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="(sect1info/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/corpauthor"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/authorgroup"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/author"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/releaseinfo"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/copyright"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/legalnotice"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/pubdate"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revision"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/revhistory"/>
+ <xsl:apply-templates mode="sect1.titlepage.recto.auto.mode" select="sect1info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect1.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="sect1.titlepage.before.recto"/>
+ <xsl:call-template name="sect1.titlepage.recto"/>
+ <xsl:call-template name="sect1.titlepage.before.verso"/>
+ <xsl:call-template name="sect1.titlepage.verso"/>
+ <xsl:call-template name="sect1.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect1.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect1.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect1.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect1.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.recto">
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="(sect2info/title|title)[1]"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="(sect2info/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/corpauthor"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/authorgroup"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/author"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/releaseinfo"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/copyright"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/legalnotice"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/pubdate"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revision"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/revhistory"/>
+ <xsl:apply-templates mode="sect2.titlepage.recto.auto.mode" select="sect2info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect2.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="sect2.titlepage.before.recto"/>
+ <xsl:call-template name="sect2.titlepage.recto"/>
+ <xsl:call-template name="sect2.titlepage.before.verso"/>
+ <xsl:call-template name="sect2.titlepage.verso"/>
+ <xsl:call-template name="sect2.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect2.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect2.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect2.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect2.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.recto">
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="(sect3info/title|title)[1]"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="(sect3info/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/corpauthor"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/authorgroup"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/author"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/releaseinfo"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/copyright"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/legalnotice"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/pubdate"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revision"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/revhistory"/>
+ <xsl:apply-templates mode="sect3.titlepage.recto.auto.mode" select="sect3info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect3.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="sect3.titlepage.before.recto"/>
+ <xsl:call-template name="sect3.titlepage.recto"/>
+ <xsl:call-template name="sect3.titlepage.before.verso"/>
+ <xsl:call-template name="sect3.titlepage.verso"/>
+ <xsl:call-template name="sect3.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect3.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect3.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect3.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect3.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.recto">
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="(sect4info/title|title)[1]"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="(sect4info/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/corpauthor"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/authorgroup"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/author"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/releaseinfo"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/copyright"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/legalnotice"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/pubdate"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revision"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/revhistory"/>
+ <xsl:apply-templates mode="sect4.titlepage.recto.auto.mode" select="sect4info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect4.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="sect4.titlepage.before.recto"/>
+ <xsl:call-template name="sect4.titlepage.recto"/>
+ <xsl:call-template name="sect4.titlepage.before.verso"/>
+ <xsl:call-template name="sect4.titlepage.verso"/>
+ <xsl:call-template name="sect4.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect4.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect4.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect4.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect4.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.recto">
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="(sect5info/title|title)[1]"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="(sect5info/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/corpauthor"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/authorgroup"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/author"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/releaseinfo"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/copyright"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/legalnotice"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/pubdate"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revision"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/revhistory"/>
+ <xsl:apply-templates mode="sect5.titlepage.recto.auto.mode" select="sect5info/abstract"/>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="sect5.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="sect5.titlepage.before.recto"/>
+ <xsl:call-template name="sect5.titlepage.recto"/>
+ <xsl:call-template name="sect5.titlepage.before.verso"/>
+ <xsl:call-template name="sect5.titlepage.verso"/>
+ <xsl:call-template name="sect5.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="sect5.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="sect5.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="sect5.titlepage.recto.style">
+<xsl:apply-templates select="." mode="sect5.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.recto">
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="(simplesectinfo/title|docinfo/title|title)[1]"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="(simplesectinfo/subtitle|docinfo/subtitle|subtitle)[1]"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/corpauthor|docinfo/corpauthor"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/authorgroup|docinfo/authorgroup"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/author|docinfo/author"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/releaseinfo|docinfo/releaseinfo"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/copyright|docinfo/copyright"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/legalnotice|docinfo/legalnotice"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/pubdate|docinfo/pubdate"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revision|docinfo/revision"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/revhistory|docinfo/revhistory"/>
+ <xsl:apply-templates mode="simplesect.titlepage.recto.auto.mode" select="simplesectinfo/abstract|docinfo/abstract"/>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.separator"><xsl:if test="count(parent::*)='0'"><hr/></xsl:if>
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.recto">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage.before.verso">
+</xsl:template>
+
+<xsl:template name="simplesect.titlepage">
+ <div class="titlepage">
+ <xsl:call-template name="simplesect.titlepage.before.recto"/>
+ <xsl:call-template name="simplesect.titlepage.recto"/>
+ <xsl:call-template name="simplesect.titlepage.before.verso"/>
+ <xsl:call-template name="simplesect.titlepage.verso"/>
+ <xsl:call-template name="simplesect.titlepage.separator"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.recto.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="*" mode="simplesect.titlepage.verso.mode">
+ <!-- if an element isn't found in this mode, -->
+ <!-- try the generic titlepage.mode -->
+ <xsl:apply-templates select="." mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="title" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="author" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="copyright" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="legalnotice" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revision" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+<xsl:template match="abstract" mode="simplesect.titlepage.recto.auto.mode">
+<div xsl:use-attribute-sets="simplesect.titlepage.recto.style">
+<xsl:apply-templates select="." mode="simplesect.titlepage.recto.mode"/>
+</div>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/help-converters/docbook/docbook/html/titlepage.xsl b/help-converters/docbook/docbook/html/titlepage.xsl
new file mode 100644
index 0000000..f2da969
--- /dev/null
+++ b/help-converters/docbook/docbook/html/titlepage.xsl
@@ -0,0 +1,598 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:attribute-set name="book.titlepage.recto.style"/>
+<xsl:attribute-set name="book.titlepage.verso.style"/>
+
+<xsl:attribute-set name="article.titlepage.recto.style"/>
+<xsl:attribute-set name="article.titlepage.verso.style"/>
+
+<xsl:attribute-set name="set.titlepage.recto.style"/>
+<xsl:attribute-set name="set.titlepage.verso.style"/>
+
+<xsl:attribute-set name="part.titlepage.recto.style"/>
+<xsl:attribute-set name="part.titlepage.verso.style"/>
+
+<xsl:attribute-set name="partintro.titlepage.recto.style"/>
+<xsl:attribute-set name="partintro.titlepage.verso.style"/>
+
+<xsl:attribute-set name="reference.titlepage.recto.style"/>
+<xsl:attribute-set name="reference.titlepage.verso.style"/>
+
+<xsl:attribute-set name="dedication.titlepage.recto.style"/>
+<xsl:attribute-set name="dedication.titlepage.verso.style"/>
+
+<xsl:attribute-set name="preface.titlepage.recto.style"/>
+<xsl:attribute-set name="preface.titlepage.verso.style"/>
+
+<xsl:attribute-set name="chapter.titlepage.recto.style"/>
+<xsl:attribute-set name="chapter.titlepage.verso.style"/>
+
+<xsl:attribute-set name="appendix.titlepage.recto.style"/>
+<xsl:attribute-set name="appendix.titlepage.verso.style"/>
+
+<xsl:attribute-set name="section.titlepage.recto.style"/>
+<xsl:attribute-set name="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect1.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect1.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect2.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect2.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect3.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect3.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect4.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect4.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="sect5.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="sect5.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="simplesect.titlepage.recto.style"
+ use-attribute-sets="section.titlepage.recto.style"/>
+<xsl:attribute-set name="simplesect.titlepage.verso.style"
+ use-attribute-sets="section.titlepage.verso.style"/>
+
+<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
+<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
+
+<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
+<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="*" mode="titlepage.mode">
+ <!-- if an element isn't found in this mode, try the default mode -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="abbrev" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="abstract" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <xsl:call-template name="formal.object.heading">
+ <xsl:with-param name="title">
+ <xsl:apply-templates select="." mode="title.ref"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="abstract/title" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="address" mode="titlepage.mode">
+<!-- this won't do quite what's desired... -->
+ <pre class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="affiliation" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="artpagenums" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="author" mode="titlepage.mode">
+ <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+ <xsl:apply-templates mode="titlepage.mode" select="./affiliation"/>
+</xsl:template>
+
+<xsl:template match="authorblurb" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="authorgroup" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="authorinitials" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="bibliomisc" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="bibliomset" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="collab" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="confgroup" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractnum" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contractsponsor" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="contrib" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="copyright" mode="titlepage.mode">
+ <xsl:variable name="years" select="year"/>
+ <xsl:variable name="holders" select="holder"/>
+
+ <p class="{name(.)}">
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="gentext.by"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="year" mode="titlepage.mode">
+ <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+
+<xsl:template match="year[position()=last()]" mode="titlepage.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="holder" mode="titlepage.mode">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="corpauthor" mode="titlepage.mode">
+ <h3 class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </h3>
+</xsl:template>
+
+<xsl:template match="corpname" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="date" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="edition" mode="titlepage.mode">
+ <p class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="gentext.element.name"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="editor" mode="titlepage.mode">
+ <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+</xsl:template>
+
+<xsl:template match="editor[position()=1]" mode="titlepage.mode">
+ <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
+ <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+</xsl:template>
+
+<xsl:template match="firstname" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="graphic" mode="titlepage.mode">
+ <!-- use the normal graphic handling code -->
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="honorific" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issn" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="itermset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="invpartnumber" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="issuenum" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="jobtitle" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="keywordset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="legalnotice " mode="titlepage.mode">
+ <div class="{local-name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="legalnotice/title" mode="titlepage.mode">
+ <p class="legalnotice-title"><b><xsl:apply-templates/></b></p>
+</xsl:template>
+
+<xsl:template match="lineage" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="modespec" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="orgdiv" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="orgname" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="othercredit" mode="titlepage.mode">
+ <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
+ <xsl:apply-templates mode="titlepage.mode"
+ select="./affiliation"/>
+</xsl:template>
+
+<xsl:template match="othername" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pagenums" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="printhistory" mode="titlepage.mode">
+ <div class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </div>
+</xsl:template>
+
+<xsl:template match="productname" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="productnumber" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubdate" mode="titlepage.mode">
+ <p class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </p>
+</xsl:template>
+
+<xsl:template match="publishername" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="pubsnumber" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="revhistory" mode="titlepage.mode">
+ <xsl:variable name="numcols">
+ <xsl:choose>
+ <xsl:when test="//authorinitials">3</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <div class="{name(.)}">
+ <table border="1" width="100%" summary="Revision history">
+ <tr>
+ <th align="left" valign="top" colspan="{$numcols}">
+ <b><xsl:call-template name="gentext.element.name"/></b>
+ </th>
+ </tr>
+ <xsl:apply-templates mode="titlepage.mode">
+ <xsl:with-param name="numcols" select="$numcols"/>
+ </xsl:apply-templates>
+ </table>
+ </div>
+</xsl:template>
+
+<xsl:template match="revhistory/revision" mode="titlepage.mode">
+ <xsl:param name="numcols" select="'3'"/>
+ <xsl:variable name="revnumber" select=".//revnumber"/>
+ <xsl:variable name="revdate" select=".//date"/>
+ <xsl:variable name="revauthor" select=".//authorinitials"/>
+ <xsl:variable name="revremark" select=".//revremark|.//revdescription"/>
+ <tr>
+ <td align="left">
+ <xsl:if test="$revnumber">
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
+ </xsl:if>
+ </td>
+ <td align="left">
+ <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
+ </td>
+ <xsl:choose>
+ <xsl:when test="$revauthor">
+ <td align="left">
+ <xsl:apply-templates select="$revauthor[1]" mode="titlepage.mode"/>
+ </td>
+ </xsl:when>
+ <xsl:when test="$numcols > 2">
+ <td> </td>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ <xsl:if test="$revremark">
+ <tr>
+ <td align="left" colspan="{$numcols}">
+ <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
+ </td>
+ </tr>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="revision/revnumber" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/date" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/authorinitials" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revremark" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="revision/revdescription" mode="titlepage.mode">
+ <xsl:apply-templates mode="titlepage.mode"/>
+</xsl:template>
+
+<xsl:template match="seriesvolnums" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="shortaffil" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="subjectset" mode="titlepage.mode">
+</xsl:template>
+
+<xsl:template match="subtitle" mode="titlepage.mode">
+ <h2 class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </h2>
+</xsl:template>
+
+<xsl:template match="surname" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="title" mode="titlepage.mode">
+ <xsl:variable name="id">
+ <xsl:choose>
+ <!-- if title is in an *info wrapper, get the grandparent -->
+ <xsl:when test="contains(local-name(..), 'info')">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="../.."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <h1 class="{name(.)}">
+ <a name="{$id}"/>
+ <xsl:choose>
+ <xsl:when test="$show.revisionflag and @revisionflag">
+ <span class="{ revisionflag}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="titlepage.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h1>
+</xsl:template>
+
+<xsl:template match="titleabbrev" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<xsl:template match="volumenum" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/toc.xsl b/help-converters/docbook/docbook/html/toc.xsl
new file mode 100644
index 0000000..55d4716
--- /dev/null
+++ b/help-converters/docbook/docbook/html/toc.xsl
@@ -0,0 +1,31 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="toc">
+</xsl:template>
+
+<xsl:template match="tocpart|tocchap|tocfront|tocback|tocentry">
+</xsl:template>
+
+<xsl:template match="toclevel1|toclevel2|toclevel3|toclevel4|toclevel5">
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="lot|lotentry">
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/verbatim.xsl b/help-converters/docbook/docbook/html/verbatim.xsl
new file mode 100644
index 0000000..58a051c
--- /dev/null
+++ b/help-converters/docbook/docbook/html/verbatim.xsl
@@ -0,0 +1,280 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:verb5="http://nwalsh.com/com.nwalsh.saxon.Verbatim"
+ xmlns:verb6="http://nwalsh.com/com.nwalsh.saxon6.Verbatim"
+ exclude-result-prefixes="verb5 verb6"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<xsl:template match="programlisting|screen|synopsis">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+ <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
+
+ <!-- Obey the <?dbhtml linenumbering.everyNth="x"?> PI -->
+ <xsl:variable name="default.linenumbering.everyNth"
+ select="$linenumbering.everyNth"/>
+
+ <xsl:variable name="pi.linenumbering.everyNth">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="attribute" select="'everyNth'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="linenumbering.everyNth">
+ <xsl:choose>
+ <xsl:when test="$pi.linenumbering.everyNth != ''">
+ <xsl:value-of select="$pi.linenumbering.everyNth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default.linenumbering.everyNth"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- Obey the <?dbhtml linenumbering.separator="x"?> PI -->
+ <xsl:variable name="default.linenumbering.separator"
+ select="$linenumbering.separator"/>
+
+ <xsl:variable name="pi.linenumbering.separator">
+ <xsl:call-template name="dbhtml-attribute">
+ <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="linenumbering.separator">
+ <xsl:choose>
+ <xsl:when test="$pi.linenumbering.separator != ''">
+ <xsl:value-of select="$pi.linenumbering.separator"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default.linenumbering.separator"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="@id">
+ <a href="{$id}"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $saxon.extensions != '0'
+ and $saxon.linenumbering != '0'">
+ <xsl:variable name="rtf">
+ <xsl:apply-templates/>
+ </xsl:variable>
+ <pre class="{name(.)}">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <xsl:copy-of select="verb6:numberLines($rtf)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="verb5:numberLines($rtf,
+ $linenumbering.everyNth,
+ $linenumbering.width,
+ $linenumbering.separator)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pre>
+ </xsl:when>
+ <xsl:otherwise>
+ <pre class="{name(.)}">
+ <xsl:apply-templates/>
+ </pre>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:variable name="rtf">
+ <xsl:apply-templates/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $saxon.extensions != '0'
+ and $saxon.linenumbering != '0'">
+ <xsl:choose>
+ <xsl:when test="@class='monospaced'">
+ <pre class="{name(.)}">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <xsl:copy-of select="verb6:numberLines($rtf)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="verb5:numberLines($rtf,
+ $linenumbering.everyNth,
+ $linenumbering.width,
+ $linenumbering.separator)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </pre>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="{name(.)}">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <xsl:copy-of select="verb6:numberLines($rtf)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="verb5:numberLines($rtf,
+ $linenumbering.everyNth,
+ $linenumbering.width,
+ $linenumbering.separator)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@class='monospaced'">
+ <pre class="{name(.)}">
+ <xsl:copy-of select="$rtf"/>
+ </pre>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="{name(.)}">
+ <xsl:copy-of select="$rtf"/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="literallayout[not(@class)
+ or @class != 'monospaced']//text()">
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="text" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="address">
+ <xsl:param name="suppress-numbers" select="'0'"/>
+ <xsl:variable name="vendor" select="system-property('xsl:vendor')"/>
+
+ <xsl:variable name="rtf">
+ <xsl:apply-templates/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$suppress-numbers = '0'
+ and @linenumbering = 'numbered'
+ and $saxon.extensions != '0'
+ and $saxon.linenumbering != '0'">
+ <div class="{name(.)}">
+ <xsl:choose>
+ <xsl:when test="contains($vendor, 'SAXON 6')">
+ <xsl:copy-of select="verb6:numberLines($rtf)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="verb5:numberLines($rtf,
+ $linenumbering.everyNth,
+ $linenumbering.width,
+ $linenumbering.separator)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <div class="{name(.)}">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="address//text()">
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="text" select="."/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="make-verbatim">
+ <xsl:param name="text" select="''"/>
+
+ <xsl:variable name="starts-with-space"
+ select="substring($text, 1, 1) = ' '"/>
+
+ <xsl:variable name="starts-with-nl"
+ select="substring($text, 1, 1) = '
'"/>
+
+ <xsl:variable name="before-space">
+ <xsl:if test="contains($text, ' ')">
+ <xsl:value-of select="substring-before($text, ' ')"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="before-nl">
+ <xsl:if test="contains($text, '
')">
+ <xsl:value-of select="substring-before($text, '
')"/>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$starts-with-space">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="text" select="substring($text,2)"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$starts-with-nl">
+ <br/><xsl:text>
</xsl:text>
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="text" select="substring($text,2)"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- if the string before a space is shorter than the string before
+ a newline, fix the space...-->
+ <xsl:when test="$before-space != ''
+ and ((string-length($before-space)
+ < string-length($before-nl))
+ or $before-nl = '')">
+ <xsl:value-of select="$before-space"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="text" select="substring-after($text, ' ')"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- if the string before a newline is shorter than the string before
+ a space, fix the newline...-->
+ <xsl:when test="$before-nl != ''
+ and ((string-length($before-nl)
+ < string-length($before-space))
+ or $before-space = '')">
+ <xsl:value-of select="$before-nl"/>
+ <br/><xsl:text>
</xsl:text>
+ <xsl:call-template name="make-verbatim">
+ <xsl:with-param name="text" select="substring-after($text, '
')"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <!-- the string before the newline and the string before the
+ space are the same; which means they must both be empty -->
+ <xsl:otherwise>
+ <xsl:value-of select="$text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/xref.xsl b/help-converters/docbook/docbook/html/xref.xsl
new file mode 100644
index 0000000..b0efbe6
--- /dev/null
+++ b/help-converters/docbook/docbook/html/xref.xsl
@@ -0,0 +1,633 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ ******************************************************************** -->
+
+<!-- ==================================================================== -->
+
+<xsl:template match="anchor">
+ <a>
+ <xsl:attribute name="name">
+ <xsl:call-template name="object.id"/>
+ </xsl:attribute>
+ </a>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="xref">
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+ <xsl:variable name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$refelem=''">
+ <xsl:message>
+ <xsl:text>XRef to nonexistent id: </xsl:text>
+ <xsl:value-of select="@linkend"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+
+ <xsl:when test="$target/@xreflabel">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="xref.xreflabel">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </a>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="@endterm">
+ <xsl:variable name="etargets" select="id(@endterm)"/>
+ <xsl:variable name="etarget" select="$etargets[1]"/>
+ <xsl:choose>
+ <xsl:when test="count($etarget) = 0">
+ <xsl:message>
+ <xsl:value-of select="count($etargets)"/>
+ <xsl:text>Endterm points to nonexistent ID: </xsl:text>
+ <xsl:value-of select="@endterm"/>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$etarget" mode="xref.text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:apply-templates select="$target" mode="xref-to"/>
+ </xsl:otherwise>
+<!--
+ <xsl:when test="$refelem='figure'">
+ <xsl:call-template name="xref.figure">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='example'">
+ <xsl:call-template name="xref.example">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='table'">
+ <xsl:call-template name="xref.table">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='equation'">
+ <xsl:call-template name="xref.equation">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='cmdsynopsis'">
+ <xsl:call-template name="xref.cmdsynopsis">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='funcsynopsis'">
+ <xsl:call-template name="xref.funcsynopsis">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='dedication'">
+ <xsl:call-template name="xref.dedication">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='preface'">
+ <xsl:call-template name="xref.preface">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='chapter'">
+ <xsl:call-template name="xref.chapter">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='appendix'">
+ <xsl:call-template name="xref.appendix">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='bibliography'">
+ <xsl:call-template name="xref.bibliography">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='biblioentry'">
+ <xsl:call-template name="xref.biblioentry">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='bibliomixed'">
+ <xsl:call-template name="xref.biblioentry">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='glossary'">
+ <xsl:call-template name="xref.glossary">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='index'">
+ <xsl:call-template name="xref.index">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='section'
+ or $refelem='simplesect'
+ or $refelem='sect1'
+ or $refelem='sect2'
+ or $refelem='sect3'
+ or $refelem='sect4'
+ or $refelem='sect5'
+ or $refelem='refsect1'
+ or $refelem='refsect2'
+ or $refelem='refsect3'">
+ <xsl:call-template name="xref.section">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='listitem'
+ and local-name($target/..)='orderedlist'">
+ <xsl:apply-templates select="$target" mode="xref"/>
+ </xsl:when>
+
+ <xsl:when test="$refelem='question'">
+ <xsl:call-template name="xref.question">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='answer'">
+ <xsl:call-template name="xref.answer">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='part'">
+ <xsl:call-template name="xref.part">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='reference'">
+ <xsl:call-template name="xref.reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='co'">
+ <xsl:call-template name="xref.co">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:when test="$refelem='book'">
+ <xsl:call-template name="xref.book">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>[Don't know what gentext to create for xref to: "</xsl:text>
+ <xsl:value-of select="$refelem"/>
+ <xsl:text>"]</xsl:text>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+ </xsl:otherwise>
+-->
+ </xsl:choose>
+ </a>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="cross-reference">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+ <xsl:param name="xref.text">
+ <xsl:call-template name="gentext.xref.text">
+ <xsl:with-param name="element.name" select="$refelem"/>
+ <xsl:with-param name="default">%g %n</xsl:with-param>
+ </xsl:call-template>
+ </xsl:param>
+
+ <xsl:call-template name="subst.xref.text">
+ <xsl:with-param name="xref.text" select="$xref.text"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="*" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:message>
+ <xsl:text>[Don't know what gentext to create for xref to: "</xsl:text>
+ <xsl:value-of select="$refelem"/>
+ <xsl:text>"]</xsl:text>
+ </xsl:message>
+ <xsl:text>???</xsl:text>
+</xsl:template>
+
+<xsl:template match="author" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="person.name"/>
+</xsl:template>
+
+<xsl:template match="figure" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="example" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="table" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="equation" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="cmdsynopsis" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:variable name="command" select="($target//command)[1]"/>
+
+ <xsl:apply-templates select="$command" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="funcsynopsis" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:variable name="func" select="($target//function)[1]"/>
+
+ <xsl:apply-templates select="$func" mode="xref"/>
+</xsl:template>
+
+<xsl:template match="dedication" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="preface" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="chapter" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="appendix" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="bibliography" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
+ <!-- handles both biblioentry and bibliomixed -->
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:text>[</xsl:text>
+ <xsl:choose>
+ <xsl:when test="local-name($target/*[1]) = 'abbrev'">
+ <xsl:apply-templates select="$target/*[1]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>]</xsl:text>
+</xsl:template>
+
+<xsl:template match="glossary" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="index" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="section|simplesect
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:choose>
+ <xsl:when test="$section.autolabel">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="$refelem"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$target" mode="label.content"/>
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">the section called</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:apply-templates select="$target" mode="title.content"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="answer" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="part" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="reference" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:call-template name="cross-reference">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="co" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+ <xsl:apply-templates select="$target" mode="callout-bug"/>
+</xsl:template>
+
+<xsl:template match="co" mode="conumber">
+ <xsl:number from="literallayout|programlisting|screen|synopsis"
+ level="single"
+ format="1"/>
+</xsl:template>
+
+<xsl:template match="book" mode="xref-to">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="refelem" select="local-name($target)"/>
+
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$target/title">
+ <xsl:apply-templates select="$target/title" mode="xref"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$target/bookinfo/title"
+ mode="xref"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <i>
+ <xsl:copy-of select="$title"/>
+ </i>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="link">
+ <xsl:variable name="targets" select="id(@linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:call-template name="check.id.unique">
+ <xsl:with-param name="linkend" select="@linkend"/>
+ </xsl:call-template>
+
+ <a>
+ <xsl:if test="@id">
+ <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:if>
+
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$target"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <xsl:apply-templates/>
+ </a>
+</xsl:template>
+
+<xsl:template match="ulink">
+ <a>
+ <xsl:if test="@id">
+ <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
+ <xsl:if test="$ulink.target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$ulink.target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count(child::node())=0">
+ <xsl:value-of select="@url"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+</xsl:template>
+
+<xsl:template match="olink">
+ <xsl:if test="@id">
+ <a name="{ id}"/>
+ </xsl:if>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="title.xref">
+ <xsl:param name="target" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($target) = 'figure'
+ or local-name($target) = 'example'
+ or local-name($target) = 'equation'
+ or local-name($target) = 'table'
+ or local-name($target) = 'dedication'
+ or local-name($target) = 'preface'
+ or local-name($target) = 'bibliography'
+ or local-name($target) = 'glossary'
+ or local-name($target) = 'index'
+ or local-name($target) = 'setindex'
+ or local-name($target) = 'colophon'">
+ <xsl:call-template name="gentext.startquote"/>
+ <xsl:apply-templates select="$target" mode="title.content"/>
+ <xsl:call-template name="gentext.endquote"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <i>
+ <xsl:apply-templates select="$target" mode="title.content"/>
+ </i>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="number.xref">
+ <xsl:param name="target" select="."/>
+ <xsl:apply-templates select="$target" mode="label.content"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="xref.xreflabel">
+ <!-- called to process an xreflabel...you might use this to make -->
+ <!-- xreflabels come out in the right font for different targets, -->
+ <!-- for example. -->
+ <xsl:param name="target" select="."/>
+ <xsl:value-of select="$target/@xreflabel"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="title" mode="xref">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="command" mode="xref">
+ <xsl:call-template name="inline.boldseq"/>
+</xsl:template>
+
+<xsl:template match="function" mode="xref">
+ <xsl:call-template name="inline.monoseq"/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/docbook/html/xtchunk.xsl b/help-converters/docbook/docbook/html/xtchunk.xsl
new file mode 100644
index 0000000..aeb41b5
--- /dev/null
+++ b/help-converters/docbook/docbook/html/xtchunk.xsl
@@ -0,0 +1,36 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xt="http://www.jclark.com/xt"
+ extension-element-prefixes="xt"
+ version="1.0">
+
+<xsl:include href="chunk-common.xsl"/>
+
+<xsl:template name="make-relative-filename">
+ <xsl:param name="base.dir" select="'./'"/>
+ <xsl:param name="base.name" select="''"/>
+
+ <!-- XT makes chunks relative -->
+ <xsl:choose>
+ <xsl:when test="count(parent::*) = 0">
+ <xsl:value-of select="concat($base.dir,$base.name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$base.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="write.chunk">
+ <xsl:param name="filename" select="''"/>
+ <xsl:param name="method" select="'html'"/>
+ <xsl:param name="encoding" select="'ISO-8859-1'"/>
+ <xsl:param name="content" select="''"/>
+
+ <xt:document href="{$filename}"
+ method="{$method}"
+ encoding="{$encoding}">
+ <xsl:copy-of select="$content"/>
+ </xt:document>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/help-converters/docbook/docbook/lib/lib.xsl b/help-converters/docbook/docbook/lib/lib.xsl
new file mode 100644
index 0000000..7aa690b
--- /dev/null
+++ b/help-converters/docbook/docbook/lib/lib.xsl
@@ -0,0 +1,242 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ This module implements DTD-independent functions
+
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Library Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<xsl:template name="dot.count">
+ <!-- Returns the number of "." characters in a string -->
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="count" select="0"/>
+ <xsl:choose>
+ <xsl:when test="contains($string, '.')">
+ <xsl:call-template name="dot.count">
+ <xsl:with-param name="string" select="substring-after($string, '.')"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<xsl:template name="copy-string">
+ <!-- returns 'count' copies of 'string' -->
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="count" select="0"/>
+ <xsl:param name="result"></xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count>0">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="result">
+ <xsl:value-of select="$result"/>
+ <xsl:value-of select="$string"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$result"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="string.subst" xmlns="">
+<refpurpose>Substitute one text string for another in a string</refpurpose>
+<refdescription>
+<para>The <function>string.subst</function> template replaces all
+occurances of <param>target</param> in <param>string</param>
+with <param>replacement</param> and returns the result.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="string.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target"></xsl:param>
+ <xsl:param name="replacement"></xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $target)">
+ <xsl:variable name="rest">
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $target)"/>
+ <xsl:with-param name="target" select="$target"/>
+ <xsl:with-param name="replacement" select="$replacement"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat(substring-before($string, $target),
+ $replacement,
+ $rest)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="xpointer.idref" xmlns="">
+<refpurpose>Extract IDREF from an XPointer</refpurpose>
+<refdescription>
+<para>The <function>xpointer.idref</function> template returns the
+ID portion of an XPointer which is a pointer to an ID within the current
+document, or the empty string if it is not.</para>
+<para>In other words, <function>xpointer.idref</function> returns
+<quote>foo</quote> when passed either <literal>#foo</literal>
+or <literal>#xpointer(id('foo'))</literal>, otherwise it returns
+the empty string.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="xpointer.idref">
+ <xsl:param name="xpointer">http://...</xsl:param>
+ <xsl:choose>
+ <xsl:when test="starts-with($xpointer, '#xpointer(id(')">
+ <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/>
+ <xsl:variable name="quote" select="substring($rest, 1, 1)"/>
+ <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/>
+ </xsl:when>
+ <xsl:when test="starts-with($xpointer, '#')">
+ <xsl:value-of select="substring-after($xpointer, '#')"/>
+ </xsl:when>
+ <!-- otherwise it's a pointer to some other document -->
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-magnitude" xmlns="">
+<refpurpose>Return the unqualified dimension from a length specification</refpurpose>
+<refdescription>
+<para>The <function>length-magnitude</function> template returns the
+unqualified length ("20" for "20pt") from a dimension.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-magnitude">
+ <xsl:param name="length" select="'0pt'"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($length) = 0"/>
+ <xsl:when test="substring($length,1,1) = '0'
+ or substring($length,1,1) = '1'
+ or substring($length,1,1) = '2'
+ or substring($length,1,1) = '3'
+ or substring($length,1,1) = '4'
+ or substring($length,1,1) = '5'
+ or substring($length,1,1) = '6'
+ or substring($length,1,1) = '7'
+ or substring($length,1,1) = '8'
+ or substring($length,1,1) = '9'
+ or substring($length,1,1) = '.'">
+ <xsl:value-of select="substring($length,1,1)"/>
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="substring($length,2)"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-spec" xmlns="">
+<refpurpose>Return a fully qualified length specification</refpurpose>
+<refdescription>
+<para>The <function>length-spec</function> template returns the
+qualified length from a dimension. If an unqualified length is given,
+the <param>default.units</param> will be added to it.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-spec">
+ <xsl:param name="length" select="'0pt'"/>
+ <xsl:param name="default.units" select="'pt'"/>
+ <xsl:variable name="magnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="$length"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="units">
+ <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$magnitude"/>
+ <xsl:choose>
+ <xsl:when test="$units='cm'
+ or $units='mm'
+ or $units='in'
+ or $units='pt'
+ or $units='pc'
+ or $units='px'
+ or $units='em'">
+ <xsl:value-of select="$units"/>
+ </xsl:when>
+ <xsl:when test="$units = ''">
+ <xsl:value-of select="$default.units"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized unit of measure: </xsl:text>
+ <xsl:value-of select="$units"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/help-converters/docbook/gnome-customization/gnome-customization.xsl b/help-converters/docbook/gnome-customization/gnome-customization.xsl
new file mode 100644
index 0000000..cdb8a56
--- /dev/null
+++ b/help-converters/docbook/gnome-customization/gnome-customization.xsl
@@ -0,0 +1,155 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets-1.29/docbook/html/chunk-common.xsl"/>
+<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets-1.29/docbook/html/docbook.xsl"/>
+
+<xsl:param name="gdb_docname" />
+
+<xsl:param name="gdb_pathname" />
+
+<xsl:output encoding="ISO-8859-1" />
+
+<!-- don't render the legalnotice on the titlepage -->
+<xsl:template match="legalnotice " mode="titlepage.mode">
+</xsl:template>
+
+
+<!-- customize the copyright notice to be a link to the legalnotice -->
+<xsl:template match="copyright" mode="titlepage.mode">
+ <xsl:variable name="years" select="year"/>
+ <xsl:variable name="holders" select="holder"/>
+
+ <p class="{name(.)}">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="$gdb_docname"/>
+ <xsl:text>?legalnotice</xsl:text>
+ </xsl:attribute>
+ <xsl:call-template name="gentext.element.name"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="dingbat">
+ <xsl:with-param name="dingbat">copyright</xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="$years" mode="titlepage.mode"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:call-template name="gentext.by"/>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
+ </a>
+ </p>
+</xsl:template>
+
+<xsl:template match="releaseinfo" mode="titlepage.mode">
+ <span class="{name(.)}">
+ <xsl:apply-templates mode="titlepage.mode"/>
+ <br/>
+ </span>
+</xsl:template>
+
+<!--
+<xsl:template match="graphic">
+ <p>
+ <img>
+ <xsl:attribute name="src">
+ <xsl:text>file://</xsl:text>
+ <xsl:value-of select="$gdb_pathname"/>
+ <xsl:text>/figures/example_panel.png</xsl:text>
+ </xsl:attribute>
+ </img>
+ </p>
+</xsl:template>
+-->
+
+<xsl:template name="process.image">
+ <!-- When this template is called, the current node should be -->
+ <!-- a graphic, inlinegraphic, imagedata, or videodata. All -->
+ <!-- those elements have the same set of attributes, so we can -->
+ <!-- handle them all in one place. -->
+ <xsl:param name="tag" select="'img'"/>
+ <xsl:param name="alt"/>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'graphic'
+ or local-name(.) = 'inlinegraphic'">
+ <xsl:choose>
+ <xsl:when test="@fileref">
+ <xsl:value-of select="@fileref"/>
+ </xsl:when>
+ <xsl:when test="@entityref">
+ <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>A fileref or entityref is required on </xsl:text>
+ <xsl:value-of select="local-name(.)"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- imagedata, videodata, audiodata -->
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select=".."/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="width">
+ <xsl:choose>
+ <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when>
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="height">
+ <xsl:choose>
+ <xsl:when test="@scale"></xsl:when>
+ <xsl:when test="@depth"><xsl:value-of select="@depth"/></xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="align">
+ <xsl:value-of select="@align"/>
+ </xsl:variable>
+
+ <xsl:element name="{$tag}">
+ <xsl:attribute name="src">
+
+ <xsl:text>file://</xsl:text>
+ <xsl:value-of select="$gdb_pathname"/>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.png</xsl:text>
+ </xsl:attribute>
+
+ <xsl:if test="$align != ''">
+ <xsl:attribute name="align">
+ <xsl:value-of select="$align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$height != ''">
+ <xsl:attribute name="height">
+ <xsl:value-of select="$height"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$width != ''">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$alt != ''">
+ <xsl:attribute name="alt">
+ <xsl:value-of select="$alt"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/help-converters/docbook/gnome-db2html3.c b/help-converters/docbook/gnome-db2html3.c
new file mode 100644
index 0000000..6bbd82b
--- /dev/null
+++ b/help-converters/docbook/gnome-db2html3.c
@@ -0,0 +1,131 @@
+/*
+ * gnome-db2html3 - by John Fleck - based on Daniel Veillard's
+ * xsltproc: user program for the XSL Transformation engine
+ *
+ * Copyright (C) John Fleck, 2001
+ *
+ */
+
+#include <glib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <libxml/xmlversion.h>
+#include <libxml/xmlmemory.h>
+#include <libxml/debugXML.h>
+#include <libxml/HTMLtree.h>
+#include <libxml/DOCBparser.h>
+#include <libxml/catalog.h>
+#include <libxslt/xslt.h>
+#include <libxslt/xsltInternals.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+
+extern int xmlLoadExtDtdDefaultValue;
+
+int
+main(int argc, char **argv) {
+
+ xsltStylesheetPtr gdb_xslreturn;
+ xmlDocPtr gdb_doc, gdb_results;
+ const char *params[16 + 1];
+ char *gdb_docname; /* name of doc to be parsed */
+ char *gdb_pathname; /* path to the file to be parsed */
+ char *gdb_rootid; /* id of sect, chapt, etc to be parsed */
+ char *gdb_stylesheet; /* stylesheet to be used */
+ char **gdb_split_docname; /* placeholder for file type determination */
+ char *ptr;
+ const char *gdb_catalogs; /* catalog(s) name */
+ gboolean has_rootid;
+
+ has_rootid = FALSE;
+ /* stylesheet location based on Linux Standard Base *
+ * http://www.linuxbase.org/spec/gLSB/gLSB/sgmlr002.html */
+ gdb_stylesheet = g_strconcat (PREFIXDIR, "/share/sgml/docbook/gnome-customization-0.1/gnome-customization.xsl", NULL);
+
+ if (argc <= 1) {
+ g_print("Usage: %s file?rootid, where file\n", argv[0]);
+ g_print("is the name of the file to be parsed and rootid\n");
+ g_print("is the id of the section to be displayed\n");
+ return(0);
+ }
+
+ /* use libxml2 catalog routine to retrieve catalog *
+ * info to speed dtd resolution */
+ gdb_catalogs = getenv("SGML_CATALOG_FILES");
+ if (gdb_catalogs == NULL) {
+ fprintf(stderr, "Variable $SGML_CATALOG_FILES not set\n");
+ } else {
+ xmlLoadCatalogs(gdb_catalogs);
+ }
+
+ gdb_docname = argv[1];
+
+ /* check to see if gdb_docname has a ?sectid included */
+ for (ptr = gdb_docname; *ptr; ptr++){
+ if (*ptr == '?') {
+ *ptr = '\000';
+ if (*(ptr + 1)) {
+ gdb_rootid = ptr;
+ has_rootid = TRUE;
+ }
+ }
+ }
+
+ /* libxml housekeeping */
+ xmlSubstituteEntitiesDefault(1);
+ xmlLoadExtDtdDefaultValue = 1;
+
+ /* parse the stylesheet */
+ gdb_xslreturn = xsltParseStylesheetFile((const xmlChar *)gdb_stylesheet);
+ if (gdb_xslreturn != NULL) {
+ g_printerr ("Stylesheet %s successfully parsed\n", gdb_stylesheet);
+ }
+
+ /* check the file type by looking at name
+ * FIXME - we need to be more sophisticated about this
+ * then parse as either xml or sgml */
+ gdb_split_docname = g_strsplit(gdb_docname, ".", 2);
+ if (!strcmp(gdb_split_docname[1], "xml")) {
+ gdb_doc = xmlParseFile(gdb_docname);
+ }
+ else if (!strcmp(gdb_split_docname[1], "sgml")) {
+ gdb_doc = docbParseFile(gdb_docname, "UTF-8");
+ }
+ else if (gdb_doc == NULL) {
+ g_printerr ("Document not parsed successfully. \n");
+ return (0);
+ }
+ else {
+ g_printerr ("Document %s successfully parsed\n", gdb_docname);
+ }
+
+ /* retrieve path component of filename passed in at
+ command line */
+ gdb_pathname = g_dirname (gdb_doc->URL);
+
+ /* set params to be passed to stylesheet */
+ params[0] = "gdb_docname";
+ params[1] = g_strconcat("\"", gdb_doc->URL, "\"", NULL) ;
+ params[2] = "gdb_pathname";
+ params[3] = g_strconcat("\"", gdb_pathname, "\"", NULL) ;
+ params[4] = NULL;
+
+ if (has_rootid) {
+ params[4] = "rootid";
+ params[5] = g_strconcat("\"", gdb_rootid + 1, "\"", NULL) ;
+ params[6] = NULL;
+ }
+
+ gdb_results = xsltApplyStylesheet(gdb_xslreturn, gdb_doc, params);
+
+ if (gdb_results != NULL) {
+ g_printerr ("Stylesheet successfully applied\n");
+ }
+
+ /* print out the results */
+ xsltSaveResultToFile(stdout, gdb_results, gdb_xslreturn);
+
+ return (1);
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]