[PATCH sgml-doctools] DocBook/XML: add support for docbook external references

Gaetan Nadon memsize at videotron.ca
Wed Mar 23 18:59:39 PDT 2011


Documents external references
-----------------------------
A new feature with version 1.7 is references to documents in other
packages. For example a protocol specifications may refer to another
one or to a library implementing it.

This feature works with PDF, HTML, PS (and epub?) generated documents
and will generate links to the other versions of the same type, i.e. html
docs will link to other html docs,  and pdf docs will link to other pdf
docs.

Due to the modular nature of the X window System and the flexibility
it provides to O/S builders, one should not expect all links to
be resolved all the time. A more recent version of a package may be
installed or an older version may be retained for a long period of time.
Not all packages are installed either.

Build challenges
----------------
The X Window System is composed of over 200 packages. The documentation is
included with the package it documents so the information matches the code.
The build is organized to satisfy C code building requirements, but this
paradigm does not fit very well for building documentation.

For a document to build a reference to another document, it needs to have
information about this document which may or may not be there, or may be
at an unexpected version. The document it refers to may also wish to refer
to the former document.

Local X builds
--------------
When building X as a sandbox on a workstation, using a simple build script
to configure and build all packages in the right order is all you need
to get a working system, including documentation. You will not get all
the links in the documentation resolved correctly due to build order
and/or bi-directional references.

Unless you are updating or testing the documentation, you do not need to
worry about this glitch. A simple workaround is to build each affected
package using "make clean install && make clean install" in any order.
This will give a chance to each package to get information about the other one
through the installed files.

O/S X builds
------------
O/S builders often repackage X code and documentation, however they face the
same challenges as described above. Users can update packages through
the package management system or install additional packages. To use the
earlier example, if a protocol is installed without its implementing
library there will be a broken reference.

Build assumptions
-----------------
Packages provide great flexibility, including the one to install each package
documentation in a separate, totally unrelated directory using the --docdir
configure option. For external references to work, it is assumed that
the each package installs the documentation using the relative
doc/${PACKAGE_TARNAME} location.

The Docbook stylesheet technology will create references with paths relative
to this location. It will navigate up to "doc" using ../ and then navigate
down to the document it refers to.

Diagnosing a broken reference
-----------------------------
A document reference is created at build time while the document is being
transformed from Docbook/XML to HTML or another format. If this reference
is missing, the document must be rebuilt.

To build the reference, the docbook stylesheet consults a database stored
in this package which is called masterdb.xml. This database supplies the
relative directory structure of where the documents are located as well
as including target document references in the various *.db files.
These files are generated and installed while the documents are being build.

This is what a Docbook/XML reference from docA to docB looks like (docA.xml):
<olink targetdoc='docB' targetptr='docBfragment'>Title</olink>

This is what an HTML reference from docA to docB looks like (docA.html):
<a href="docB.html#docBfragment" class="olink">Title</a>

This is what an HTML targetdoc for docB looks like (docB.html.db):
<div element="article" href="#docBfragment" number="" targetptr="docBfragment">

This is what an HTML reference from docA to docB looks like (docA.html)
when the reference cannot be resolved:
<span class="olink">Title</span>

This can be caused by one or more of the following:

   - docB may not longer contain the text (targetptr) docA is referring to.
   - docB.html.db file may not have been installed by docB package
   - masterdb.html.xml is missing a <document/> entry for docB
   - masterdb.html.xml cannot be loaded so all refs are broken.
   - an XSLT processor which does not support xinclude is being used
   - docB.html.db was generated without --xinclude option for the processor
   - xsltproc is not at version 1.1.26 or later
   - for PDF/PS formats, the fragment is ignored, always points to top of docB

Some pitfalls
-------------------------
<book id="docA"> in docA.xml: the id must match the file basename.
In xorg-*.xsl, <xsl:param name="current.docid" select="/*/@id"/>
supplies docid for *.db. The document id must be unique across
all documents.

The baseuri attribute in masterdb.xml is required for pdf/ps references
to work. It cannot be replaced with olink.base.uri in the makefile.

The pdf/ps "inside the document" references only started working with
docbook-xsl v 1.76.1 which is not yet available to your favorite O/S.
In xorg-fo.xsl, insert.olink.pdf.frag must be set to zero which allows
the reference to at least point to the top of the document.

XSL toolchain
-------------
The following minimum versions are needed for external references to work:
XSLT processor:	1.1.26
libxml2:	2.7.6
libxslt1.1:	1.1.26
The exact triplet may vary by distribution, sometimes a version is skipped.
If you are close enough, try it.

References
----------
http://docbook.org/tdg/en/html/docbook.html
http://docbook.sourceforge.net/release/xsl/current/doc/html/
http://docbook.sourceforge.net/release/xsl/current/doc/fo/
http://www.sagehill.net/docbookxsl/OlinkPrintOutput.html

Co-authored-by: Matt Dew <marcoz at osource.org>

Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
---
 Makefile.am           |    8 +-
 README                |  133 ++++++++++++++++
 configure.ac          |    3 +
 masterdb/.gitignore   |    4 +
 masterdb/Makefile.am  |   26 +++
 masterdb/masterdb.xml |  422 +++++++++++++++++++++++++++++++++++++++++++++++++
 xorg-fo.xsl           |   87 ++++++++++
 xorg-xhtml.xsl        |   51 ++++++
 xorg.xsl              |    1 -
 9 files changed, 732 insertions(+), 3 deletions(-)
 create mode 100644 masterdb/.gitignore
 create mode 100644 masterdb/Makefile.am
 create mode 100644 masterdb/masterdb.xml
 create mode 100644 xorg-fo.xsl
 create mode 100644 xorg-xhtml.xsl

diff --git a/Makefile.am b/Makefile.am
index e3fcca5..74fe5cb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,9 +19,13 @@
 #  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 #  PERFORMANCE OF THIS SOFTWARE.
 
-sgmldir = $(sgmlrootdir)/X11
+SUBDIRS = masterdb
 
-dist_sgml_DATA = defs.ent xorg.css xorg.xsl
+dist_sgmlx11_DATA =		\
+	defs.ent xorg.css	\
+	xorg.xsl		\
+	xorg-xhtml.xsl		\
+	xorg-fo.xsl
 
 pkgconfigdir = $(datadir)/pkgconfig
 pkgconfig_DATA = xorg-sgml-doctools.pc
diff --git a/README b/README
index 5d60900..6eb45ce 100644
--- a/README
+++ b/README
@@ -5,6 +5,139 @@ source who want to produce formatted documentation from their builds,
 or those who have installed the HTML version of the documentation,
 which refers to the included common xorg.css stylesheet.
 
+Documents external references
+-----------------------------
+A new feature with version 1.7 is references to documents in other
+packages. For example a protocol specifications may refer to another
+one or to a library implementing it.
+
+This feature works with PDF, HTML, PS (and epub?) generated documents 
+and will generate links to the other versions of the same type, i.e. html 
+docs will link to other html docs,  and pdf docs will link to other pdf 
+docs.
+
+Due to the modular nature of the X window System and the flexibility
+it provides to O/S builders, one should not expect all links to
+be resolved all the time. A more recent version of a package may be
+installed or an older version may be retained for a long period of time.
+Not all packages are installed either.
+
+Build challenges
+----------------
+The X Window System is composed of over 200 packages. The documentation is
+included with the package it documents so the information matches the code.
+The build is organized to satisfy C code building requirements, but this
+paradigm does not fit very well for building documentation.
+
+For a document to build a reference to another document, it needs to have
+information about this document which may or may not be there, or may be
+at an unexpected version. The document it refers to may also wish to refer
+to the former document.
+
+Local X builds
+--------------
+When building X as a sandbox on a workstation, using a simple build script
+to configure and build all packages in the right order is all you need
+to get a working system, including documentation. You will not get all
+the links in the documentation resolved correctly due to build order
+and/or bi-directional references.
+
+Unless you are updating or testing the documentation, you do not need to
+worry about this glitch. A simple workaround is to build each affected
+package using "make clean install && make clean install" in any order.
+This will give a chance to each package to get information about the other one
+through the installed files.
+
+O/S X builds
+------------
+O/S builders often repackage X code and documentation, however they face the
+same challenges as described above. Users can update packages through
+the package management system or install additional packages. To use the
+earlier example, if a protocol is installed without its implementing
+library there will be a broken reference.
+
+Build assumptions
+-----------------
+Packages provide great flexibility, including the one to install each package
+documentation in a separate, totally unrelated directory using the --docdir
+configure option. For external references to work, it is assumed that
+the each package installs the documentation using the relative
+doc/${PACKAGE_TARNAME} location.
+
+The Docbook stylesheet technology will create references with paths relative
+to this location. It will navigate up to "doc" using ../ and then navigate
+down to the document it refers to.
+
+Diagnosing a broken reference
+-----------------------------
+A document reference is created at build time while the document is being
+transformed from Docbook/XML to HTML or another format. If this reference
+is missing, the document must be rebuilt.
+
+To build the reference, the docbook stylesheet consults a database stored
+in this package which is called masterdb.xml. This database supplies the
+relative directory structure of where the documents are located as well
+as including target document references in the various *.db files.
+These files are generated and installed while the documents are being build.
+
+This is what a Docbook/XML reference from docA to docB looks like (docA.xml):
+<olink targetdoc='docB' targetptr='docBfragment'>Title</olink>
+
+This is what an HTML reference from docA to docB looks like (docA.html):
+<a href="docB.html#docBfragment" class="olink">Title</a>
+
+This is what an HTML targetdoc for docB looks like (docB.html.db):
+<div element="article" href="#docBfragment" number="" targetptr="docBfragment">
+
+This is what an HTML reference from docA to docB looks like (docA.html)
+when the reference cannot be resolved:
+<span class="olink">Title</span>
+
+This can be caused by one or more of the following:
+
+   - docB may not longer contain the text (targetptr) docA is referring to.
+   - docB.html.db file may not have been installed by docB package
+   - masterdb.html.xml is missing a <document/> entry for docB
+   - masterdb.html.xml cannot be loaded so all refs are broken.
+   - an XSLT processor which does not support xinclude is being used
+   - docB.html.db was generated without --xinclude option for the processor
+   - xsltproc is not at version 1.1.26 or later
+   - for PDF/PS formats, the fragment is ignored, always points to top of docB
+
+Some pitfalls
+-------------------------
+<book id="docA"> in docA.xml: the id must match the file basename.
+In xorg-*.xsl, <xsl:param name="current.docid" select="/*/@id"/>
+supplies docid for *.db. The document id must be unique across
+all documents.
+
+The baseuri attribute in masterdb.xml is required for pdf/ps references
+to work. It cannot be replaced with olink.base.uri in the makefile.
+
+The pdf/ps "inside the document" references only started working with
+docbook-xsl v 1.76.1 which is not yet available to your favorite O/S.
+In xorg-fo.xsl, insert.olink.pdf.frag must be set to zero which allows
+the reference to at least point to the top of the document.
+
+XSL toolchain
+-------------
+The following minimum versions are needed for external references to work:
+XSLT processor:	1.1.26
+libxml2:	2.7.6
+libxslt1.1:	1.1.26
+The exact triplet may vary by distribution, sometimes a version is skipped.
+If you are close enough, try it.
+
+References
+----------
+http://docbook.org/tdg/en/html/docbook.html
+http://docbook.sourceforge.net/release/xsl/current/doc/html/
+http://docbook.sourceforge.net/release/xsl/current/doc/fo/
+http://www.sagehill.net/docbookxsl/OlinkPrintOutput.html
+
+
+-------------------------------------------------------------------------------
+
 All questions regarding this software should be directed at the
 Xorg mailing list:
 
diff --git a/configure.ac b/configure.ac
index c4b0940..9f28636 100644
--- a/configure.ac
+++ b/configure.ac
@@ -35,7 +35,10 @@ XORG_MACROS_VERSION(1.8)
 XORG_DEFAULT_OPTIONS
 
 AC_SUBST([sgmlrootdir],['${datarootdir}/sgml'])
+AC_SUBST([sgmlx11dir],['${sgmlrootdir}/X11'])
+AC_SUBST([sgmldbsdir],['${sgmlx11dir}/dbs'])
 
 AC_CONFIG_FILES([Makefile
+		masterdb/Makefile
 		xorg-sgml-doctools.pc])
 AC_OUTPUT
diff --git a/masterdb/.gitignore b/masterdb/.gitignore
new file mode 100644
index 0000000..f0a77b4
--- /dev/null
+++ b/masterdb/.gitignore
@@ -0,0 +1,4 @@
+masterdb.html.xml
+masterdb.pdf.xml
+masterdb.ps.xml
+masterdb.txt.xml
diff --git a/masterdb/Makefile.am b/masterdb/Makefile.am
new file mode 100644
index 0000000..b967d68
--- /dev/null
+++ b/masterdb/Makefile.am
@@ -0,0 +1,26 @@
+
+master_PRE = masterdb.xml
+sgmldbs_DATA =				\
+	$(master_PRE:xml=html.xml)	\
+	$(master_PRE:xml=pdf.xml)	\
+	$(master_PRE:xml=ps.xml)	\
+	$(master_PRE:xml=txt.xml)
+
+EXTRA_DIST = $(master_PRE)
+CLEANFILES = $(sgmldbs_DATA)
+
+%.html.xml: %.xml
+	$(AM_V_GEN)$(SED) -e 's|__ext__|html|g' \
+	-e 's|__db__|html|g' < $< > $@
+
+%.txt.xml: %.xml
+	$(AM_V_GEN)$(SED) -e 's|__ext__|txt|g' \
+	-e 's|__db__|html|g' < $< > $@
+
+%.pdf.xml: %.xml
+	$(AM_V_GEN)$(SED) -e 's|__ext__|pdf|g' \
+	-e 's|__db__|fo|g' < $< > $@
+
+%.ps.xml: %.xml
+	$(AM_V_GEN)$(SED) -e 's|__ext__|ps|g' \
+	-e 's|__db__|fo|g' < $< > $@
diff --git a/masterdb/masterdb.xml b/masterdb/masterdb.xml
new file mode 100644
index 0000000..7480f21
--- /dev/null
+++ b/masterdb/masterdb.xml
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE targetset   SYSTEM
+"http://docbook.sourceforge.net/release/xsl/current/common/targetdatabase.dtd" [
+<!--
+   target database files are text files that contain references to every
+   tag within a file that contains an 'id' attribute.  This allows external
+   documents to link directly to those tags.  xsltproc will generate a target
+   database for each document.
+
+   The master database files is a list of all
+   target databases within a collection.  This allows the xslt processor
+   (xsltproc) to resolve references between documents in the collection.
+
+    Together this creates live/clickable links between documents.   The
+    author doesn't have to worry about managing the links.   The tool
+    will do it.
+-->
+]
+>
+<targetset>
+  <targetsetinfo>
+This is the X.org document collection. All documentation in X is (should be)
+listed here. This allows crosslinking between documents.
+  </targetsetinfo>
+  <!--
+	The sitemap represent the directory structure of the installed X docs
+	The toplevel directory name "doc" is irrelevant, just being the root node
+	Example of a computed href in an xorg-docs/specs/Xserver pointing to libX11:
+	href="../../../libX11/libX11.html#libX11"
+	The href first "climbs up" to the "doc" dir and then descends into libX11
+
+	The baseuri attribute cannot be replaced with stringparam olink.base.uri "$@"
+	on the command line. It is required by the pdf msterdb for propor linking. Details:
+	http://www.sagehill.net/docbookxsl/OlinkPrintOutput.html
+  -->
+  <sitemap>
+    <dir name="doc">
+    <!-- Libraries -->
+      <dir name="libICE">
+        <document targetdoc="ICElib" baseuri="ICElib.__ext__">
+          <xi:include href="ICElib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="ice" baseuri="ice.__ext__">
+          <xi:include href="ice.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libSM">
+        <document targetdoc="SMlib" baseuri="SMlib.__ext__">
+          <xi:include href="SMlib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="xsmp" baseuri="xsmp.__ext__">
+          <xi:include href="xsmp.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libX11">
+        <document targetdoc="libX11" baseuri="libX11.__ext__">
+          <xi:include href="libX11.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <dir name="framework">
+          <document targetdoc="framework" baseuri="framework.__ext__">
+            <xi:include href="framework.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="localedb">
+          <document targetdoc="localedb" baseuri="localedb.__ext__">
+            <xi:include href="localedb.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="trans">
+          <document targetdoc="trans" baseuri="trans.__ext__">
+            <xi:include href="trans.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="XIM">
+            <document targetdoc="xim" baseuri="xim.__ext__">
+              <xi:include href="xim.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+                <xi:fallback></xi:fallback>
+              </xi:include>
+            </document>
+        </dir>
+        <dir name="XKB">
+            <document targetdoc="xkblib" baseuri="xkblib.__ext__">
+              <xi:include href="xkblib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+                <xi:fallback></xi:fallback>
+              </xi:include>
+            </document>
+        </dir>
+      </dir>
+      <dir name="libXaw">
+        <document targetdoc="libXaw" baseuri="libXaw.__ext__">
+          <xi:include href="libXaw.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libXdmcp">
+        <document targetdoc="xdmcp" baseuri="xdmcp.__ext__">
+          <xi:include href="xdmcp.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libXext">
+        <document targetdoc="dbelib" baseuri="dbelib.__ext__">
+          <xi:include href="dbelib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="dpmslib" baseuri="dpmslib.__ext__">
+          <xi:include href="dpmslib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="shapelib" baseuri="shapelib.__ext__">
+          <xi:include href="shapelib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="synclib" baseuri="synclib.__ext__">
+          <xi:include href="synclib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="xtest1" baseuri="xtest1.__ext__">
+          <xi:include href="xtest1.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libXi">
+        <document targetdoc="inputlib" baseuri="inputlib.__ext__">
+          <xi:include href="inputlib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="porting" baseuri="porting.__ext__">
+          <xi:include href="porting.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libXmu">
+        <document targetdoc="Xmu" baseuri="Xmu.__ext__">
+          <xi:include href="Xmu.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="libXtst">
+        <document targetdoc="recordlib" baseuri="recordlib.__ext__">
+          <xi:include href="recordlib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="xtestlib" baseuri="xtestlib.__ext__">
+          <xi:include href="xtestlib.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="xtrans">
+        <document targetdoc="xtrans" baseuri="xtrans.__ext__">
+          <xi:include href="xtrans.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+    <!-- Protocols -->
+      <dir name="bigreqsproto">
+        <document targetdoc="bigreq" baseuri="bigreq.__ext__">
+          <xi:include href="bigreq.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="fontsproto">
+        <document targetdoc="fsproto" baseuri="fsproto.__ext__">
+          <xi:include href="fsproto.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="kbproto">
+        <document targetdoc="xkbproto" baseuri="xkbproto.__ext__">
+          <xi:include href="xkbproto.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="recordproto">
+        <document targetdoc="record" baseuri="record.__ext__">
+          <xi:include href="record.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="scrnsaverproto">
+        <document targetdoc="saver" baseuri="saver.__ext__">
+          <xi:include href="saver.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="xcmiscproto">
+        <document targetdoc="xc-misc" baseuri="xc-misc.__ext__">
+          <xi:include href="xc-misc.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="xextproto">
+        <document targetdoc="appgrp" baseuri="appgrp.__ext__">
+          <xi:include href="appgrp.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="dbe" baseuri="dbe.__ext__">
+          <xi:include href="dbe.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="dpms" baseuri="dpms.__ext__">
+          <xi:include href="dpms.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="evi" baseuri="evi.__ext__">
+          <xi:include href="evi.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="geproto" baseuri="geproto.__ext__">
+          <xi:include href="geproto.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="lbx" baseuri="lbx.__ext__">
+          <xi:include href="lbx.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="multibuf" baseuri="multibuf.__ext__">
+          <xi:include href="multibuf.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="security" baseuri="security.__ext__">
+          <xi:include href="security.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="shape" baseuri="shape.__ext__">
+          <xi:include href="shape.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="shm" baseuri="shm.__ext__">
+          <xi:include href="shm.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="sync" baseuri="sync.__ext__">
+          <xi:include href="sync.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="tog-cup" baseuri="tog-cup.__ext__">
+          <xi:include href="tog-cup.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="xtest" baseuri="xtest.__ext__">
+          <xi:include href="xtest.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+      <dir name="xproto">
+        <document targetdoc="x11protocol" baseuri="x11protocol.__ext__">
+          <xi:include href="x11protocol.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+    <!-- X.Org System Documentation -->
+      <dir name="xorg-docs">
+        <document targetdoc="License" baseuri="License.__ext__">
+          <xi:include href="License.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="README" baseuri="README.__ext__">
+          <xi:include href="README.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="ReleaseNotes" baseuri="ReleaseNotes.__ext__">
+          <xi:include href="ReleaseNotes.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <document targetdoc="Versions" baseuri="Versions.__ext__">
+          <xi:include href="Versions.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+        <dir name="fonts">
+          <document targetdoc="fonts" baseuri="fonts.__ext__">
+            <xi:include href="fonts.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="graphics">
+          <document targetdoc="dps" baseuri="dps.__ext__">
+            <xi:include href="dps.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="input">
+          <document targetdoc="XKB-Config" baseuri="XKB-Config.__ext__">
+            <xi:include href="XKB-Config.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+          <document targetdoc="XKB-Enhancing" baseuri="XKB-Enhancing.__ext__">
+            <xi:include href="XKB-Enhancing.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="platforms">
+          <document targetdoc="Darwin" baseuri="Darwin.__ext__">
+            <xi:include href="Darwin.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+          <document targetdoc="Solaris" baseuri="Solaris.__ext__">
+            <xi:include href="Solaris.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="ctext">
+          <document targetdoc="ctext" baseuri="ctext.__ext__">
+            <xi:include href="ctext.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="icccm">
+          <document targetdoc="icccm" baseuri="icccm.__ext__">
+            <xi:include href="icccm.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="xext">
+          <document targetdoc="lbxalg" baseuri="lbxalg.__ext__">
+            <xi:include href="lbxalg.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="xfld">
+          <document targetdoc="xlfd" baseuri="xlfd.__ext__">
+            <xi:include href="xlfd.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+        <dir name="xserver">
+          <document targetdoc="appgroup" baseuri="appgroup.__ext__">
+            <xi:include href="appgroup.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+          <document targetdoc="analysis" baseuri="analysis.__ext__">
+            <xi:include href="analysis.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+          <document targetdoc="secint" baseuri="secint.__ext__">
+            <xi:include href="secint.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+          <document targetdoc="XACE-Spec" baseuri="XACE-Spec.__ext__">
+            <xi:include href="XACE-Spec.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+              <xi:fallback></xi:fallback>
+            </xi:include>
+          </document>
+        </dir>
+      </dir>
+    <!-- X Server -->
+      <dir name="xorg-server">
+        <document targetdoc="Xserver-DTrace" baseuri="Xserver-DTrace.__ext__">
+          <xi:include href="Xserver-DTrace.__db__.db" xmlns:xi="http://www.w3.org/2001/XInclude">
+            <xi:fallback></xi:fallback>
+          </xi:include>
+        </document>
+      </dir>
+    </dir>
+  </sitemap>
+</targetset>
diff --git a/xorg-fo.xsl b/xorg-fo.xsl
new file mode 100644
index 0000000..d57f7ac
--- /dev/null
+++ b/xorg-fo.xsl
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+			X.Org DocBook/XML customization
+
+	DocBook XSL Stylesheets FO Parameters
+	http://docbook.sourceforge.net/release/xsl/current/doc/fo/
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
+
+
+			<!-- Reference Pages HTML/FO Parameters -->
+
+  <!-- The formatting of a function element will include generated parentheses -->
+  <xsl:param name="function.parens" select="1"/>
+
+  <!-- ANSI-style function synopses are generated for a funcsynopsis element -->
+  <xsl:param name="funcsynopsis.style" select="ansi"/>
+
+			<!-- Linking HTML/FO Parameters -->
+
+  <!-- open new PDF documents in new tab, don't replace doc in current window -->
+  <xsl:attribute-set name="olink.properties">
+    <xsl:attribute name="show-destination">new</xsl:attribute>
+  </xsl:attribute-set>
+
+			<!-- Miscellaneous HTML/FO Parameters-->
+
+  <!-- SVG will be considered an acceptable image format -->
+  <xsl:param name="use.svg" select="1"/>
+
+			<!-- Pagination and General Styles FO Parameters -->
+  <!--
+     Speed up ps & pdf creation by not creating pages with "draft" image,
+     thus not needing to wait for http fetch of draft.png from docbook website.
+    -->
+  <xsl:param name="draft.mode" select="no"/>
+
+			<!-- Processor Extensions FO Parameters-->
+
+  <!-- PDF bookmarks extensions for FOP version 0.90 and later will be used. -->
+  <xsl:param name="fop.extensions" select="0"></xsl:param>
+  <xsl:param name="fop1.extensions" select="1"></xsl:param>
+
+			<!-- Cross Refrences FO Parameters-->
+
+  <!-- Make links in pdf output blue so it's easier to tell they're internal
+       links
+   -->
+  <xsl:attribute-set name="xref.properties">
+    <xsl:attribute name="color">blue</xsl:attribute>
+  </xsl:attribute-set>
+
+  <!-- Make links in pdf output green so it's easier to tell they're external
+       links
+  -->
+  <xsl:attribute-set name="olink.properties">
+    <xsl:attribute name="color">green</xsl:attribute>
+  </xsl:attribute-set>
+
+  <!-- Linking to a target inside a pdf document.
+       This feature is only available as of docbook-xsl-1.76.1.
+       When set to zero, the link will point to the document -->
+  <xsl:param name="insert.olink.pdf.frag" select="0"></xsl:param>
+
+
+			<!-- Font Families FO Parameters -->
+
+  <!--
+     Since a number of documents, especially the credits section in the
+     ReleaseNotes, use characters not found in the fop default base-14
+     PostScript fonts, set the fonts for the fop generated documents to
+     use the free DejaVu and GNU Unifont fonts which cover a much wider
+     range of characters.
+
+     DejaVu is available from http://dejavu-fonts.org/
+     GNU Unifont is available from http://unifoundry.com/unifont.html
+
+     To set fop font paths to find them after installing, see
+     http://xmlgraphics.apache.org/fop/1.0/fonts.html#basics
+    -->
+  <xsl:param name="body.font.family">DejaVu Serif</xsl:param>
+  <xsl:param name="symbol.font.family">serif,Symbol,AR PL UMing CN,AR PL ShanHeiSun Uni,GNU Unifont</xsl:param>
+
+</xsl:stylesheet>
diff --git a/xorg-xhtml.xsl b/xorg-xhtml.xsl
new file mode 100644
index 0000000..fc2e95d
--- /dev/null
+++ b/xorg-xhtml.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+			X.Org DocBook/XML customization
+
+	DocBook XSL Stylesheets HTML Parameters
+	http://docbook.sourceforge.net/release/xsl/current/doc/html/
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"/>
+
+			<!-- Reference Pages HTML/FO Parameters -->
+
+  <!-- The formatting of a function element will include generated parentheses -->
+  <xsl:param name="function.parens" select="1"/>
+
+  <!-- ANSI-style function synopses are generated for a funcsynopsis element -->
+  <xsl:param name="funcsynopsis.style" select="ansi"/>
+
+			<!-- Miscellaneous HTML/FO Parameters-->
+
+  <!-- SVG will be considered an acceptable image format -->
+  <xsl:param name="use.svg" select="1"/>
+
+			<!-- Pagination and General Styles HTML/FO Parameters -->
+  <!--
+     Speed up ps & pdf creation by not creating pages with "draft" image,
+     thus not needing to wait for http fetch of draft.png from docbook website.
+    -->
+  <xsl:param name="draft.mode" select="no"/>
+
+			<!-- ToC/LoT/Index Generation HTML Parameters -->
+
+  <!-- Index links should point to indexterm location, not start of section -->
+  <xsl:param name="index.links.to.section" select="0"/>
+
+			<!-- HTML Parameters -->
+
+  <!-- Uses XSLT Extension to provide more valid and better formatted elements-->
+  <xsl:param name="html.cleanup" select="1"/>
+
+			<!-- Meta/*Info and Titlepages HTML Parameters-->
+
+  <!-- Suppress abstract on title pages -->
+  <xsl:param name="abstract.notitle.enabled" select="1"/>
+
+  <!-- Lists HTML Parameters-->
+  <xsl:param name="variablelist.as.table" select="1"/>
+
+</xsl:stylesheet>
diff --git a/xorg.xsl b/xorg.xsl
index 5ab03c9..0a2ff62 100644
--- a/xorg.xsl
+++ b/xorg.xsl
@@ -74,5 +74,4 @@ DEALINGS IN THE SOFTWARE.
   <xsl:param name="body.font.family">DejaVu Serif</xsl:param>
   <xsl:param name="symbol.font.family">serif,Symbol,AR PL UMing CN,AR PL ShanHeiSun Uni,GNU Unifont</xsl:param>
 
-
 </xsl:stylesheet>
-- 
1.6.0.4



More information about the xorg-devel mailing list