Updated the stylesheets and Makefile.

Removed contrib/, index-pdf.xml and goTidy.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@4428 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Manuel Canales Esparcia 2004-12-19 21:17:48 +00:00
parent 6d3af72bf2
commit f7bd105db3
25 changed files with 1268 additions and 306 deletions

View File

@ -20,9 +20,9 @@ lfs:
cp $(XSLROOTDIR)/images/*.png \ cp $(XSLROOTDIR)/images/*.png \
$(BASEDIR)/images $(BASEDIR)/images
cd $(BASEDIR)/; sed -i -e "s@../stylesheets@stylesheets@g" \ cd $(BASEDIR)/; sed -i -e "s@../stylesheets@stylesheets@g" \
index.html part1.html part2.html part3.html longindex.html *.html
cd $(BASEDIR)/; sed -i -e "s@../images@images@g" \ cd $(BASEDIR)/; sed -i -e "s@../images@images@g" \
index.html part1.html part2.html part3.html longindex.html *.html
for filename in `find $(BASEDIR) -name "*.html"`; do \ for filename in `find $(BASEDIR) -name "*.html"`; do \
tidy -config tidy.conf $$filename; \ tidy -config tidy.conf $$filename; \
@ -47,7 +47,7 @@ lfs:
pdf: pdf:
xsltproc --xinclude --nonet --stringparam profile.condition print \ xsltproc --xinclude --nonet --stringparam profile.condition print \
--output $(BASEDIR)/lfs-pdf.xml stylesheets/lfs-profile.xsl index-pdf.xml --output $(BASEDIR)/lfs-pdf.xml stylesheets/lfs-profile.xsl index.xml
xsltproc --nonet --output $(BASEDIR)/lfs-pdf.fo stylesheets/lfs-pdf.xsl \ xsltproc --nonet --output $(BASEDIR)/lfs-pdf.fo stylesheets/lfs-pdf.xsl \
$(BASEDIR)/lfs-pdf.xml $(BASEDIR)/lfs-pdf.xml
sed -i -e "s/inherit/all/" $(BASEDIR)/lfs-pdf.fo sed -i -e "s/inherit/all/" $(BASEDIR)/lfs-pdf.fo

View File

@ -1,29 +0,0 @@
#!/bin/bash
###############################################################################
# #
# File: entResolver #
# #
# Description: Works around libxml2 bug 135713 by preprocessing entity #
# references before performing any stylesheet processing. #
# #
# Author: Manuel Canales Esparcia #
# #
###############################################################################
NAME=`basename "$0"`
DESTDIR="$1"
if [ -z "$1" ]; then
echo "USAGE: $NAME destdir"
exit
fi
mkdir -p ../"$DESTDIR"/chapter0{1,2,3,4,5,6,7,8,9}
mkdir -p ../"$DESTDIR"/prologue
mkdir -p ../"$DESTDIR"/appendix{a,b}
for i in `find . -name "*.xml"`; do
xmllint --nonet --noent "${i}" > ../"$DESTDIR"/"${i}";
done
cp -a stylesheets ../"$DESTDIR"

17
goTidy
View File

@ -1,17 +0,0 @@
#!/bin/bash
#######################################################################
#
# File: goTidy
#
# Description: Tidy is best used inside a loop, but Makefiles don't do
# bash loops well. This file alleviates that problem.
#
# Author: James Robertson
#
########################################################################
for file in `find "$1" -name "*.html"`; do
tidy -config tidy.conf $file
done
exit 0

View File

@ -1,49 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "general.ent">
%general-entities;
]>
<book>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/bookinfo.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/dedication.xml"/>
<preface id="preface">
<title>Preface</title>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/foreword.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/audience.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/prerequisites.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/typography.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/organization.xml"/>
</preface>
<part id="part1">
<title>Introduction</title>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter01/chapter01.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter02/chapter02.xml"/>
</part>
<part id="part2">
<title>Preparing for the build</title>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter03/chapter03.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter04/chapter04.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter05/chapter05.xml"/>
</part>
<part id="part3">
<title>Building the LFS system</title>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter06/chapter06.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter07/chapter07.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter08/chapter08.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="chapter09/chapter09.xml"/>
</part>
<index/>
<appendix><title/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prologue/acknowledgments.xml"/>
</appendix>
</book>

View File

@ -5,8 +5,8 @@
version="1.0"> version="1.0">
<xsl:import href="lfs-chunked2.xsl"/> <xsl:import href="lfs-chunked2.xsl"/>
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.67.2/xhtml/chunk-common.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.66.1/xhtml/chunk-common.xsl"/>
<xsl:include href="http://docbook.sourceforge.net/release/xsl/1.67.2/xhtml/manifest.xsl"/> <xsl:include href="http://docbook.sourceforge.net/release/xsl/1.66.1/xhtml/manifest.xsl"/>
<!-- From the original chunk.xsl file: <!-- From the original chunk.xsl file:
@ -24,7 +24,7 @@
Voila! (Man I hope we can do this better in XSLT 2.0) --> Voila! (Man I hope we can do this better in XSLT 2.0) -->
<xsl:include href="http://docbook.sourceforge.net/release/xsl/1.67.2/xhtml/chunk-code.xsl"/> <xsl:include href="http://docbook.sourceforge.net/release/xsl/1.66.1/xhtml/chunk-code.xsl"/>
<!-- Including our others customized chunks templates --> <!-- Including our others customized chunks templates -->
<xsl:include href="xhtml/lfs-legalnotice.xsl"/> <xsl:include href="xhtml/lfs-legalnotice.xsl"/>

View File

@ -5,14 +5,19 @@
version="1.0"> version="1.0">
<!-- We use XHTML --> <!-- We use XHTML -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.67.2/xhtml/docbook.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.66.1/xhtml/docbook.xsl"/>
<xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/> <xsl:param name="chunker.output.encoding" select="'ISO-8859-1'"/>
<!-- Including our others customized elements templates --> <!-- Including our others customized elements templates -->
<xsl:include href="xhtml/lfs-admon.xsl"/> <xsl:include href="xhtml/lfs-admon.xsl"/>
<xsl:include href="xhtml/lfs-sections.xsl"/>
<xsl:include href="xhtml/lfs-mixed.xsl"/> <xsl:include href="xhtml/lfs-mixed.xsl"/>
<xsl:include href="xhtml/lfs-titles.xsl"/> <xsl:include href="xhtml/lfs-titles.xsl"/>
<xsl:include href="xhtml/lfs-toc.xsl"/> <xsl:include href="xhtml/lfs-toc.xsl"/>
<xsl:include href="xhtml/lfs-xref.xsl"/>
<!-- This file contains our localization strings (for internationalization) -->
<xsl:param name="local.l10n.xml" select="document('lfs-l10n.xml')"/>
<!-- The CSS Stylesheet --> <!-- The CSS Stylesheet -->
<xsl:param name="html.stylesheet" select="'../stylesheets/lfs.css'"/> <xsl:param name="html.stylesheet" select="'../stylesheets/lfs.css'"/>

44
stylesheets/lfs-l10n.xml Normal file
View File

@ -0,0 +1,44 @@
<?xml version='1.0' encoding='US-ASCII'?>
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<!-- Template to add more languages -->
<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
language="xx" english-language-name="xxxxx">
<l:gentext key="description" text=""/>
<l:gentext key="Libraries" text=""/>
<l:gentext key="Others" text=""/>
<l:gentext key="Packages" text=""/>
<l:gentext key="Programs" text=""/>
<l:gentext key="Scripts" text=""/>
</l:l10n>
<!-- English -->
<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
language="en" english-language-name="English">
<l:gentext key="description" text="description"/>
<l:gentext key="Libraries" text="Libraries"/>
<l:gentext key="Others" text="Others"/>
<l:gentext key="Packages" text="Packages"/>
<l:gentext key="Programs" text="Programs"/>
<l:gentext key="Scripts" text="Scripts"/>
</l:l10n>
<!-- Spanish -->
<l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
language="es" english-language-name="Spanish">
<l:gentext key="description" text="descripci&#243;n"/>
<l:gentext key="Libraries" text="Librer&#237;as"/>
<l:gentext key="Others" text="Otros"/>
<l:gentext key="Packages" text="Paquetes"/>
<l:gentext key="Programs" text="Programas"/>
<l:gentext key="Scripts" text="Guiones"/>
</l:l10n>
</l:i18n>

View File

@ -5,7 +5,7 @@
version="1.0"> version="1.0">
<!-- We use XHTML --> <!-- We use XHTML -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.67.2/xhtml/docbook.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.66.1/xhtml/docbook.xsl"/>
<!-- Fix encoding issues with default UTF-8 output of the xhtml stylesheet --> <!-- Fix encoding issues with default UTF-8 output of the xhtml stylesheet -->
<xsl:output method="html" encoding="ISO-8859-1" indent="no" /> <xsl:output method="html" encoding="ISO-8859-1" indent="no" />
@ -14,13 +14,54 @@
<xsl:include href="xhtml/lfs-admon.xsl"/> <xsl:include href="xhtml/lfs-admon.xsl"/>
<xsl:include href="xhtml/lfs-index.xsl"/> <xsl:include href="xhtml/lfs-index.xsl"/>
<xsl:include href="xhtml/lfs-mixed.xsl"/> <xsl:include href="xhtml/lfs-mixed.xsl"/>
<xsl:include href="xhtml/lfs-navigational.xsl"/> <xsl:include href="xhtml/lfs-sections.xsl"/>
<xsl:include href="xhtml/lfs-toc.xsl"/> <xsl:include href="xhtml/lfs-toc.xsl"/>
<xsl:include href="xhtml/lfs-xref.xsl"/>
<!-- This file contains our localization strings (for internationalization) -->
<xsl:param name="local.l10n.xml" select="document('lfs-l10n.xml')"/>
<!-- Dropping some unwanted style attributes --> <!-- Dropping some unwanted style attributes -->
<xsl:param name="ulink.target" select="''"></xsl:param> <xsl:param name="ulink.target" select="''"></xsl:param>
<xsl:param name="css.decoration" select="0"></xsl:param> <xsl:param name="css.decoration" select="0"></xsl:param>
<!-- To drop the remainig dot when title is empty (from lfs-titles.xsl)-->
<xsl:template name="sect2.titlepage">
<xsl:choose>
<xsl:when test="string-length(title) = 0"/>
<xsl:otherwise>
<div class="titlepage">
<xsl:if test="@id">
<a id="{@id}" name="{@id}"/>
</xsl:if>
<h3 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/>
</h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Added the role param for proper punctuation in xref calls
(from lfs-titles.xsl). -->
<xsl:template match="*" mode="insert.title.markup">
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="title"/>
<xsl:param name="role"/>
<xsl:choose>
<xsl:when test="$purpose = 'xref' and titleabbrev">
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$title"/>
<xsl:value-of select="$role"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- The CSS Stylesheet --> <!-- The CSS Stylesheet -->
<xsl:template name='user.head.content'> <xsl:template name='user.head.content'>
<style type="text/css"> <style type="text/css">
@ -173,6 +214,12 @@ div.segmentedlist p {
margin: 0px auto; margin: 0px auto;
} }
/* itemizedlist */
div.itemizedlist {
margin-left: 1em;
}
/* Indented blocks */ /* Indented blocks */
p, ul, dl, code, blockquote { p, ul, dl, code, blockquote {
padding-left: 1em; padding-left: 1em;

View File

@ -4,7 +4,7 @@
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0"> version="1.0">
<!-- We use FO and FOP as the processor --> <!-- We use FO and FOP as the processor -->
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.67.2/fo/docbook.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.66.1/fo/docbook.xsl"/>
<xsl:param name="fop.extensions" select="1"/> <xsl:param name="fop.extensions" select="1"/>
<xsl:param name="draft.mode" select="'no'"/> <xsl:param name="draft.mode" select="'no'"/>
@ -12,7 +12,12 @@
<xsl:include href="pdf/lfs-index.xsl"/> <xsl:include href="pdf/lfs-index.xsl"/>
<xsl:include href="pdf/lfs-pagesetup.xsl"/> <xsl:include href="pdf/lfs-pagesetup.xsl"/>
<xsl:include href="pdf/lfs-sections.xsl"/> <xsl:include href="pdf/lfs-sections.xsl"/>
<xsl:include href="pdf/lfs-admon.xsl"/>
<xsl:include href="pdf/lfs-mixed.xsl"/> <xsl:include href="pdf/lfs-mixed.xsl"/>
<xsl:include href="pdf/lfs-xref.xsl"/>
<!-- This file contains our localization strings (for internationalization) -->
<xsl:param name="local.l10n.xml" select="document('lfs-l10n.xml')"/>
<!-- Paper size required by the publisher --> <!-- Paper size required by the publisher -->
<xsl:param name="paper.type" select="'Customized'"/> <xsl:param name="paper.type" select="'Customized'"/>
@ -25,7 +30,7 @@
<xsl:param name="alignment">justify</xsl:param> <xsl:param name="alignment">justify</xsl:param>
<!-- Font size --> <!-- Font size -->
<xsl:param name="body.font.master">10</xsl:param> <xsl:param name="body.font.master">9</xsl:param>
<xsl:param name="body.font.size">12pt</xsl:param> <xsl:param name="body.font.size">12pt</xsl:param>
<!-- TOC stuff --> <!-- TOC stuff -->

View File

@ -4,6 +4,6 @@
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0"> version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.67.2/profiling/profile.xsl"/> <xsl:import href="http://docbook.sourceforge.net/release/xsl/1.66.1/profiling/profile.xsl"/>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -110,7 +110,7 @@ div.toc, div.dedication {
padding-left: 1em; padding-left: 1em;
} }
li.preface { li.preface, li.appendix {
margin-left: 1em; margin-left: 1em;
} }
@ -230,6 +230,11 @@ tt, code, kbd, pre, .command {
font-family: monospace; font-family: monospace;
} }
pre {
margin-top: .5em;
margin-bottom: .5em;
}
pre.userinput { pre.userinput {
color: #101310; color: #101310;
background-color: #e5e5e5; background-color: #e5e5e5;
@ -239,6 +244,10 @@ pre.userinput {
font-weight: bold; font-weight: bold;
} }
.literal {
font-weight: normal;
}
pre.screen { pre.screen {
color: #000; color: #000;
background-color: #e9e9e9; background-color: #e9e9e9;
@ -285,11 +294,11 @@ div.installation h2, div.content h2 {
margin: 0; margin: 0;
} }
div.book, div.preface, div.part, div.chapter, div.sect1, div.index { div.book, div.preface, div.part, div.chapter, div.sect1, div.appendix, div.index {
padding-bottom: 0.5em; padding-bottom: 0.5em;
} }
div.preface h1, div.part h1, div.chapter h1, div.sect1 h1, div.index h1 { div.preface h1, div.part h1, div.chapter h1, div.sect1 h1, div.appendix h1, div.index h1 {
background: #f5f6f7; background: #f5f6f7;
border-bottom: .1em solid #dbddec; border-bottom: .1em solid #dbddec;
margin: 0px auto; margin: 0px auto;

View File

@ -32,23 +32,27 @@
<xsl:template match="//ulink"> <xsl:template match="//ulink">
<xsl:if test="contains(@url, '.patch') and contains(@url, '&patches-root;')"> <xsl:if test="contains(@url, '.patch') and contains(@url, '&patches-root;')">
<xsl:choose>
<xsl:when test="ancestor-or-self::*/@condition = 'pdf'"/>
<xsl:otherwise>
<xsl:text> cp </xsl:text> <xsl:text> cp </xsl:text>
<xsl:text>/home/httpd/</xsl:text> <xsl:text>/home/httpd/</xsl:text>
<xsl:value-of select="substring-before (substring-after ('&patches-root;', 'http://'), $links.directory)"/> <xsl:value-of select="substring-before (substring-after ('&patches-root;', 'http://'), $links.directory)"/>
<xsl:text>downloads/</xsl:text> <xsl:text>downloads/</xsl:text>
<xsl:if test="contains (@url, '-')"> <xsl:if test="contains (@url, '-')">
<xsl:variable name="cut" select="translate (@url, '0123456789', '2222222222')"/> <xsl:variable name="cut" select="translate (@url, '0123456789', '2222222222')"/>
<xsl:variable name="links.directory2" select="translate ($links.directory, '0123456789', '2222222222')"/>
<xsl:choose> <xsl:choose>
<xsl:when test="contains ($cut, ',')"> <xsl:when test="contains ($cut, ',')">
<xsl:value-of select="substring-before (substring-after($cut, $links.directory), ',2')"/> <xsl:value-of select="substring-before (substring-after($cut, $links.directory2), ',2')"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:choose> <xsl:choose>
<xsl:when test="contains ($cut, '-src-2')"> <xsl:when test="contains ($cut, '-src-2')">
<xsl:value-of select="substring-before (substring-after($cut, $links.directory), '-src-2')"/> <xsl:value-of select="substring-before (substring-after($cut, $links.directory2), '-src-2')"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="substring-before (substring-after($cut, $links.directory), '-2')"/> <xsl:value-of select="substring-before (substring-after($cut, $links.directory2), '-2')"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:otherwise> </xsl:otherwise>
@ -57,6 +61,8 @@
<xsl:text>/</xsl:text> <xsl:text>/</xsl:text>
<xsl:value-of select="substring-after(@url, $links.directory)"/> <xsl:value-of select="substring-after(@url, $links.directory)"/>
<xsl:text> . &#x0a;</xsl:text> <xsl:text> . &#x0a;</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>

View File

@ -0,0 +1,95 @@
<?xml version='1.0' encoding='ISO-8859-1'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<!-- Graphics in admonitions -->
<xsl:param name="admon.graphics" select="1"/>
<xsl:param name="admon.graphics.path"
select="'/usr/share/xml/docbook/xsl-stylesheets-current/images/'"/>
<!-- Admonition block properties -->
<xsl:template match="important|warning|caution">
<xsl:choose>
<xsl:when test="$admon.graphics != 0">
<fo:block space-before.minimum="0.4em" space-before.optimum="0.6em"
space-before.maximum="0.8em" border-style="solid" border-width="1pt"
border-color="#500" background-color="#FFFFE6">
<xsl:call-template name="graphical.admonition"/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="nongraphical.admonition"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="note|tip">
<xsl:choose>
<xsl:when test="$admon.graphics != 0">
<fo:block space-before.minimum="0.4em" space-before.optimum="0.6em"
space-before.maximum="0.8em" border-style="solid" border-width="1pt"
border-color="#E0E0E0" background-color="#FFFFE6">
<xsl:call-template name="graphical.admonition"/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="nongraphical.admonition"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Admonitions text properties -->
<xsl:attribute-set name="admonition.properties">
<xsl:attribute name="margin-right">6pt</xsl:attribute>
</xsl:attribute-set>
<!-- Adding left space to the graphics and color to the titles -->
<xsl:template name="graphical.admonition">
<xsl:variable name="id">
<xsl:call-template name="object.id"/>
</xsl:variable>
<xsl:variable name="graphic.width">
<xsl:call-template name="admon.graphic.width"/>
</xsl:variable>
<fo:block id="{$id}">
<fo:list-block provisional-distance-between-starts="{$graphic.width} + 18pt"
provisional-label-separation="18pt" xsl:use-attribute-sets="list.block.spacing">
<fo:list-item>
<fo:list-item-label end-indent="label-end()">
<fo:block margin-left="4pt">
<fo:external-graphic width="auto" height="auto"
content-width="{$graphic.width}" >
<xsl:attribute name="src">
<xsl:call-template name="admon.graphic"/>
</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<xsl:if test="$admon.textlabel != 0 or title">
<fo:block xsl:use-attribute-sets="admonition.title.properties">
<xsl:if test="ancestor-or-self::important">
<xsl:attribute name="color">#500</xsl:attribute>
</xsl:if>
<xsl:if test="ancestor-or-self::warning">
<xsl:attribute name="color">#500</xsl:attribute>
</xsl:if>
<xsl:if test="ancestor-or-self::caution">
<xsl:attribute name="color">#500</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="." mode="object.title.markup"/>
</fo:block>
</xsl:if>
<fo:block xsl:use-attribute-sets="admonition.properties">
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
</fo:block>
</xsl:template>
</xsl:stylesheet>

View File

@ -13,7 +13,9 @@
<!--Title--> <!--Title-->
<xsl:template match="index" mode="title.markup"> <xsl:template match="index" mode="title.markup">
<xsl:param name="allow-anchors" select="0"/> <xsl:param name="allow-anchors" select="0"/>
<xsl:text>Index</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Index</xsl:with-param>
</xsl:call-template>
</xsl:template> </xsl:template>
<!-- Divisions--> <!-- Divisions-->
@ -30,19 +32,29 @@
<xsl:with-param name="titlecontent"> <xsl:with-param name="titlecontent">
<xsl:choose> <xsl:choose>
<xsl:when test="$divtitle = 'A'"> <xsl:when test="$divtitle = 'A'">
<xsl:text>Packages</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Packages</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'B'"> <xsl:when test="$divtitle = 'B'">
<xsl:text>Programs</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Programs</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'C'"> <xsl:when test="$divtitle = 'C'">
<xsl:text>Libraries</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Libraries</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'D'"> <xsl:when test="$divtitle = 'D'">
<xsl:text>Scripts</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Scripts</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'E'"> <xsl:when test="$divtitle = 'E'">
<xsl:text>Others</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Others</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="$divtitle"/> <xsl:value-of select="$divtitle"/>

View File

@ -5,20 +5,94 @@
version="1.0"> version="1.0">
<!-- This is a hack and isn't correct semantically. The beginpage tags must <!-- This is a hack and isn't correct semantically. Theoretically, the beginpage
be placed in the XML source only to render the final PDF output, and must tags should be placed in the XML source only to render the PDF output and
be removed after.--> should be removed after it. But there is no a better way and we need this.-->
<xsl:template match="beginpage"> <xsl:template match="beginpage">
<fo:block break-after="page"/> <fo:block break-after="page"/>
</xsl:template> </xsl:template>
<!-- Split URLs --> <!-- Allow forced line breaks inside paragraphs emulating literallayout. -->
<xsl:template name="hyphenate-url"> <xsl:template match="para">
<xsl:choose>
<xsl:when test="./@remap='verbatim'">
<fo:block wrap-option="no-wrap"
white-space-collapse="false"
white-space-treatment="preserve"
text-align="start"
linefeed-treatment="preserve">
<xsl:call-template name="anchor"/>
<xsl:apply-templates/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<xsl:apply-imports/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Show URLs in italic font -->
<xsl:template match="ulink" name="ulink">
<fo:inline font-style="italic">
<fo:basic-link xsl:use-attribute-sets="xref.properties">
<xsl:attribute name="external-destination">
<xsl:call-template name="fo-external-image">
<xsl:with-param name="filename" select="@url"/>
</xsl:call-template>
</xsl:attribute>
<xsl:choose>
<xsl:when test="count(child::node())=0">
<xsl:call-template name="hyphenate-url">
<xsl:with-param name="url" select="@url"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</fo:basic-link>
</fo:inline>
<xsl:if test="count(child::node()) != 0
and string(.) != @url
and $ulink.show != 0">
<!-- yes, show the URI -->
<xsl:choose>
<xsl:when test="$ulink.footnotes != 0 and not(ancestor::footnote)">
<xsl:text>&#xA0;</xsl:text>
<fo:footnote>
<xsl:call-template name="ulink.footnote.number"/>
<fo:footnote-body font-family="{$body.fontset}"
font-size="{$footnote.font.size}">
<fo:block>
<xsl:call-template name="ulink.footnote.number"/>
<xsl:text> </xsl:text>
<fo:inline>
<xsl:value-of select="@url"/>
</fo:inline>
</fo:block>
</fo:footnote-body>
</fo:footnote>
</xsl:when>
<xsl:otherwise>
<fo:inline hyphenate="false">
<xsl:text> [</xsl:text>
<xsl:call-template name="hyphenate-url">
<xsl:with-param name="url" select="@url"/>
</xsl:call-template>
<xsl:text>]</xsl:text>
</fo:inline>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!-- Split URLs (obsolete, keeped as reference) -->
<!--<xsl:template name="hyphenate-url">
<xsl:param name="url" select="''"/> <xsl:param name="url" select="''"/>
<xsl:choose> <xsl:choose>
<xsl:when test="ancestor::varlistentry"> <xsl:when test="ancestor::varlistentry">
<xsl:choose> <xsl:choose>
<xsl:when test="string-length($url) > 88"> <xsl:when test="string-length($url) > 90">
<xsl:value-of select="substring($url, 1, 50)"/> <xsl:value-of select="substring($url, 1, 50)"/>
<xsl:param name="rest" select="substring($url, 51)"/> <xsl:param name="rest" select="substring($url, 51)"/>
<xsl:value-of select="substring-before($rest, '/')"/> <xsl:value-of select="substring-before($rest, '/')"/>
@ -31,15 +105,15 @@
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="$url"/> <xsl:value-of select="$url"/>-->
<!-- <xsl:value-of select="substring-before($url, '//')"/> <!-- <xsl:value-of select="substring-before($url, '//')"/>
<xsl:text>// </xsl:text> <xsl:text>// </xsl:text>
<xsl:call-template name="split-url"> <xsl:call-template name="split-url">
<xsl:with-param name="url2" select="substring-after($url, '//')"/> <xsl:with-param name="url2" select="substring-after($url, '//')"/>
</xsl:call-template>--> </xsl:call-template>-->
</xsl:otherwise> <!-- </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>-->
<!--<xsl:template name="split-url"> <!--<xsl:template name="split-url">
<xsl:choose> <xsl:choose>
@ -60,88 +134,6 @@
<!-- Shade screen --> <!-- Shade screen -->
<xsl:param name="shade.verbatim" select="1"/> <xsl:param name="shade.verbatim" select="1"/>
<!-- Graphics in admonitions -->
<xsl:param name="admon.graphics" select="1"/>
<xsl:param name="admon.graphics.path"
select="'/usr/share/xml/docbook/xsl-stylesheets-1.67.2/images/'"/>
<!-- Admonition block properties -->
<xsl:template match="important|warning|caution">
<xsl:choose>
<xsl:when test="$admon.graphics != 0">
<fo:block space-before.minimum="0.4em" space-before.optimum="0.6em"
space-before.maximum="0.8em" border-style="solid" border-width="1pt"
border-color="#500" background-color="#FFFFE6">
<xsl:call-template name="graphical.admonition"/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="nongraphical.admonition"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="note|tip">
<xsl:choose>
<xsl:when test="$admon.graphics != 0">
<fo:block space-before.minimum="0.4em" space-before.optimum="0.6em"
space-before.maximum="0.8em" border-style="solid" border-width="1pt"
border-color="#E0E0E0" background-color="#FFFFE6">
<xsl:call-template name="graphical.admonition"/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="nongraphical.admonition"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Admonitions text properties -->
<xsl:attribute-set name="admonition.properties">
<xsl:attribute name="margin-right">6pt</xsl:attribute>
</xsl:attribute-set>
<!-- Adding left space to the graphics and color to the titles -->
<xsl:template name="graphical.admonition">
<xsl:variable name="id">
<xsl:call-template name="object.id"/>
</xsl:variable>
<fo:block id="{$id}">
<fo:list-block xsl:use-attribute-sets="list.block.spacing">
<fo:list-item>
<fo:list-item-label end-indent="label-end()">
<fo:block margin-left="4pt">
<fo:external-graphic width="auto" height="auto">
<xsl:attribute name="src">
<xsl:call-template name="admon.graphic"/>
</xsl:attribute>
</fo:external-graphic>
</fo:block>
</fo:list-item-label>
<fo:list-item-body start-indent="body-start()">
<xsl:if test="$admon.textlabel != 0 or title">
<fo:block xsl:use-attribute-sets="admonition.title.properties">
<xsl:if test="ancestor-or-self::important">
<xsl:attribute name="color">#500</xsl:attribute>
</xsl:if>
<xsl:if test="ancestor-or-self::warning">
<xsl:attribute name="color">#500</xsl:attribute>
</xsl:if>
<xsl:if test="ancestor-or-self::caution">
<xsl:attribute name="color">#500</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="." mode="object.title.markup"/>
</fo:block>
</xsl:if>
<fo:block xsl:use-attribute-sets="admonition.properties">
<xsl:apply-templates/>
</fo:block>
</fo:list-item-body>
</fo:list-item>
</fo:list-block>
</fo:block>
</xsl:template>
<!-- How is rendered by default a variablelist --> <!-- How is rendered by default a variablelist -->
<xsl:param name="variablelist.as.blocks" select="1"/> <xsl:param name="variablelist.as.blocks" select="1"/>
<xsl:param name="variablelist.max.termlength">32</xsl:param> <xsl:param name="variablelist.max.termlength">32</xsl:param>
@ -177,4 +169,79 @@
</xsl:choose>--> </xsl:choose>-->
</xsl:template> </xsl:template>
<!-- Presentation of literal tag -->
<xsl:template match="literal">
<fo:inline font-weight="normal">
<xsl:call-template name="inline.monoseq"/>
</fo:inline>
</xsl:template>
<!-- Left alingnament for itemizedlist -->
<xsl:template match="itemizedlist">
<xsl:variable name="id">
<xsl:call-template name="object.id"/>
</xsl:variable>
<xsl:variable name="label-width">
<xsl:call-template name="dbfo-attribute">
<xsl:with-param name="pis"
select="processing-instruction('dbfo')"/>
<xsl:with-param name="attribute" select="'label-width'"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="title">
<xsl:apply-templates select="title" mode="list.title.mode"/>
</xsl:if>
<!-- Preserve order of PIs and comments -->
<xsl:apply-templates
select="*[not(self::listitem
or self::title
or self::titleabbrev)]
|comment()[not(preceding-sibling::listitem)]
|processing-instruction()[not(preceding-sibling::listitem)]"/>
<fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
provisional-label-separation="0.2em" text-align="left">
<xsl:attribute name="provisional-distance-between-starts">
<xsl:choose>
<xsl:when test="$label-width != ''">
<xsl:value-of select="$label-width"/>
</xsl:when>
<xsl:otherwise>1.5em</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:apply-templates
select="listitem
|comment()[preceding-sibling::listitem]
|processing-instruction()[preceding-sibling::listitem]"/>
</fo:list-block>
</xsl:template>
<!-- Addibg a bullet, and left alignament, for packages and paches list. -->
<xsl:template match="varlistentry" mode="vl.as.blocks">
<xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
<xsl:choose>
<xsl:when test="ancestor::variablelist/@role = 'materials'">
<fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing"
keep-together.within-column="always"
keep-with-next.within-column="always" text-align="left">
<xsl:text>&#x2022; </xsl:text>
<xsl:apply-templates select="term"/>
</fo:block>
<fo:block margin-left="0.1in" text-align="left">
<xsl:apply-templates select="listitem"/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing"
keep-together.within-column="always"
keep-with-next.within-column="always">
<xsl:apply-templates select="term"/>
</fo:block>
<fo:block margin-left="0.25in">
<xsl:apply-templates select="listitem"/>
</fo:block>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -62,6 +62,17 @@
</fo:block> </fo:block>
</xsl:template> </xsl:template>
<!-- Font size for chapter title. -->
<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
xsl:use-attribute-sets="chapter.titlepage.recto.style"
font-size="21pt" font-weight="bold" text-align="left">
<xsl:call-template name="component.title">
<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
</xsl:call-template>
</fo:block>
</xsl:template>
<!-- Margins --> <!-- Margins -->
<xsl:param name="page.margin.inner">0.5in</xsl:param> <xsl:param name="page.margin.inner">0.5in</xsl:param>
<xsl:param name="page.margin.outer">0.375in</xsl:param> <xsl:param name="page.margin.outer">0.375in</xsl:param>

View File

@ -0,0 +1,283 @@
<?xml version='1.0' encoding='ISO-8859-1'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<!-- Making a proper punctuation in xref (only for English language).-->
<xsl:template match="xref" name="xref">
<xsl:variable name="targets" select="key('id',@linkend)"/>
<xsl:variable name="target" select="$targets[1]"/>
<xsl:variable name="refelem" select="local-name($target)"/>
<xsl:variable name="role" select="@role"/>
<xsl:call-template name="check.id.unique">
<xsl:with-param name="linkend" select="@linkend"/>
</xsl:call-template>
<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">
<fo:basic-link internal-destination="{@linkend}"
xsl:use-attribute-sets="xref.properties">
<xsl:call-template name="xref.xreflabel">
<xsl:with-param name="target" select="$target"/>
</xsl:call-template>
</fo:basic-link>
</xsl:when>
<xsl:otherwise>
<fo:basic-link internal-destination="{@linkend}"
xsl:use-attribute-sets="xref.properties">
<xsl:apply-templates select="$target" mode="xref-to">
<xsl:with-param name="referrer" select="."/>
<xsl:with-param name="role" select="$role"/>
<xsl:with-param name="xrefstyle">
<xsl:value-of select="@xrefstyle"/>
</xsl:with-param>
</xsl:apply-templates>
</fo:basic-link>
</xsl:otherwise>
</xsl:choose>
<!-- Add standard page reference? -->
<xsl:if test="not(starts-with(normalize-space(@xrefstyle), 'select:') != ''
and (contains(@xrefstyle, 'page')
or contains(@xrefstyle, 'Page')))
and ( $insert.xref.page.number = 'yes'
or $insert.xref.page.number = '1')
or local-name($target) = 'para'">
<fo:basic-link internal-destination="{@linkend}"
xsl:use-attribute-sets="xref.properties">
<xsl:apply-templates select="$target" mode="page.citation">
<xsl:with-param name="id" select="@linkend"/>
</xsl:apply-templates>
</fo:basic-link>
</xsl:if>
</xsl:template>
<xsl:template match="section|simplesect|sect1|sect2|sect3|sect4|sect5
|refsect1|refsect2|refsect3|refsection" mode="xref-to">
<xsl:param name="referrer"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="role"/>
<xsl:apply-templates select="." mode="object.xref.markup">
<xsl:with-param name="purpose" select="'xref'"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
<xsl:with-param name="role" select="$role"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="*" mode="object.xref.markup">
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="referrer"/>
<xsl:param name="role"/>
<xsl:variable name="template">
<xsl:choose>
<xsl:when test="starts-with(normalize-space($xrefstyle), 'select:')">
<xsl:call-template name="make.gentext.template">
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="referrer" select="$referrer"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(normalize-space($xrefstyle), 'template:')">
<xsl:value-of select="substring-after(normalize-space($xrefstyle), 'template:')"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="object.xref.template">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$template = ''">
<xsl:message>
<xsl:text>object.xref.markup: empty xref template</xsl:text>
<xsl:text> for linkend="</xsl:text>
<xsl:value-of select="@id"/>
<xsl:text>" and @xrefstyle="</xsl:text>
<xsl:value-of select="$xrefstyle"/>
<xsl:text>"</xsl:text>
</xsl:message>
</xsl:if>
<xsl:call-template name="substitute-markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
<xsl:with-param name="template" select="$template"/>
<xsl:with-param name="role" select="$role"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="substitute-markup">
<xsl:param name="template" select="''"/>
<xsl:param name="allow-anchors" select="'0'"/>
<xsl:param name="title" select="''"/>
<xsl:param name="subtitle" select="''"/>
<xsl:param name="label" select="''"/>
<xsl:param name="pagenumber" select="''"/>
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="referrer"/>
<xsl:param name="role"/>
<xsl:choose>
<xsl:when test="contains($template, '%')">
<xsl:value-of select="substring-before($template, '%')"/>
<xsl:variable name="candidate"
select="substring(substring-after($template, '%'), 1, 1)"/>
<xsl:choose>
<xsl:when test="$candidate = 't'">
<xsl:apply-templates select="." mode="insert.title.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="role" select="$role"/>
<xsl:with-param name="title">
<xsl:choose>
<xsl:when test="$title != ''">
<xsl:copy-of select="$title"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="title.markup">
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 's'">
<xsl:apply-templates select="." mode="insert.subtitle.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="subtitle">
<xsl:choose>
<xsl:when test="$subtitle != ''">
<xsl:copy-of select="$subtitle"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="subtitle.markup">
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 'n'">
<xsl:apply-templates select="." mode="insert.label.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="label">
<xsl:choose>
<xsl:when test="$label != ''">
<xsl:copy-of select="$label"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="label.markup"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 'p'">
<xsl:apply-templates select="." mode="insert.pagenumber.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="pagenumber">
<xsl:choose>
<xsl:when test="$pagenumber != ''">
<xsl:copy-of select="$pagenumber"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="pagenumber.markup"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 'd'">
<xsl:apply-templates select="." mode="insert.direction.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="direction">
<xsl:choose>
<xsl:when test="$referrer">
<xsl:variable name="referent-is-below">
<xsl:for-each select="preceding::xref">
<xsl:if test="generate-id(.) = generate-id($referrer)">1</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:choose>
<xsl:when test="$referent-is-below = ''">
<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'above'"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'below'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:message>Attempt to use %d in gentext with no referrer!</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = '%' ">
<xsl:text>%</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>%</xsl:text><xsl:value-of select="$candidate"/>
</xsl:otherwise>
</xsl:choose>
<!-- recurse with the rest of the template string -->
<xsl:variable name="rest"
select="substring($template,
string-length(substring-before($template, '%'))+3)"/>
<xsl:call-template name="substitute-markup">
<xsl:with-param name="template" select="$rest"/>
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
<xsl:with-param name="title" select="$title"/>
<xsl:with-param name="subtitle" select="$subtitle"/>
<xsl:with-param name="label" select="$label"/>
<xsl:with-param name="pagenumber" select="$pagenumber"/>
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
<xsl:with-param name="role" select="$role"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$template"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="*" mode="insert.title.markup">
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="title"/>
<xsl:param name="role"/>
<xsl:choose>
<xsl:when test="$purpose = 'xref' and titleabbrev">
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$title"/>
<xsl:value-of select="$role"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@ -21,19 +21,20 @@
<xsl:otherwise>Note</xsl:otherwise> <xsl:otherwise>Note</xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:variable> </xsl:variable>
<xsl:variable name="alt">
<xsl:call-template name="gentext">
<xsl:with-param name="key" select="$admon.type"/>
</xsl:call-template>
</xsl:variable>
<div class="{name(.)}"> <div class="{name(.)}">
<div class ="admonhead"> <div class ="admonhead">
<img alt="[{$admon.type}]"> <img alt="[{$alt}]">
<xsl:attribute name="src"> <xsl:attribute name="src">
<xsl:call-template name="admon.graphic"/> <xsl:call-template name="admon.graphic"/>
</xsl:attribute> </xsl:attribute>
</img> </img>
<h3 class="admontitle"> <h3 class="admontitle">
<xsl:value-of select="$admon.type"/> <xsl:apply-templates select="." mode="object.title.markup"/>
<xsl:if test="title">
<xsl:text>: </xsl:text>
<xsl:value-of select="title"/>
</xsl:if>
</h3> </h3>
</div> </div>
<div class="admonbody"> <div class="admonbody">

View File

@ -16,16 +16,20 @@
</xsl:template> </xsl:template>
<!--Title--> <!--Title-->
<xsl:param name="index-title">Index of packages and important installed files</xsl:param> <xsl:param name="index-title">Index</xsl:param>
<xsl:template match="index" mode="title.markup"> <xsl:template match="index" mode="title.markup">
<xsl:value-of select="$index-title"/> <xsl:call-template name="gentext">
<xsl:with-param name="key" select="$index-title"/>
</xsl:call-template>
</xsl:template> </xsl:template>
<xsl:template name="index.titlepage"> <xsl:template name="index.titlepage">
<div class="titlepage"> <div class="titlepage">
<h1 class="index"> <h1 class="index">
<xsl:value-of select="$index-title"/> <xsl:call-template name="gentext">
<xsl:with-param name="key" select="$index-title"/>
</xsl:call-template>
</h1> </h1>
</div> </div>
</xsl:template> </xsl:template>
@ -42,19 +46,29 @@
<h2> <h2>
<xsl:choose> <xsl:choose>
<xsl:when test="$divtitle = 'A'"> <xsl:when test="$divtitle = 'A'">
<xsl:text>Packages</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Packages</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'B'"> <xsl:when test="$divtitle = 'B'">
<xsl:text>Programs</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Programs</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'C'"> <xsl:when test="$divtitle = 'C'">
<xsl:text>Libraries</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Libraries</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'D'"> <xsl:when test="$divtitle = 'D'">
<xsl:text>Scripts</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Scripts</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:when test="$divtitle = 'E'"> <xsl:when test="$divtitle = 'E'">
<xsl:text>Others</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">Others</xsl:with-param>
</xsl:call-template>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="$divtitle"/> <xsl:value-of select="$divtitle"/>
@ -162,7 +176,9 @@
<xsl:with-param name="object" select="$target2[1]"/> <xsl:with-param name="object" select="$target2[1]"/>
</xsl:call-template> </xsl:call-template>
</xsl:attribute> </xsl:attribute>
<xsl:text>description</xsl:text> <xsl:call-template name="gentext">
<xsl:with-param name="key">description</xsl:with-param>
</xsl:call-template>
</a> </a>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>

View File

@ -9,9 +9,7 @@
<xsl:choose> <xsl:choose>
<xsl:when test="child::* = userinput"> <xsl:when test="child::* = userinput">
<pre class="userinput"> <pre class="userinput">
<kbd class="command"> <xsl:apply-templates/>
<xsl:value-of select="."/>
</kbd>
</pre> </pre>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
@ -22,6 +20,20 @@
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
<xsl:template match="userinput">
<xsl:choose>
<xsl:when test="ancestor::screen">
<kbd class="command">
<xsl:apply-templates/>
</kbd>
</xsl:when>
<xsl:otherwise>
<xsl:apply-imports/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- variablelist --> <!-- variablelist -->
<xsl:template match="variablelist"> <xsl:template match="variablelist">
<div class="{name(.)}"> <div class="{name(.)}">
@ -60,48 +72,27 @@
</xsl:attribute> </xsl:attribute>
</xsl:template> </xsl:template>
<!-- Sect1 attributes --> <!-- External URLs in italic font -->
<xsl:template match="sect1"> <xsl:template match="ulink" name="ulink">
<div> <a>
<xsl:choose> <xsl:if test="@id">
<xsl:when test="@role"> <xsl:attribute name="id">
<xsl:attribute name="class"> <xsl:value-of select="@id"/>
<xsl:value-of select="@role"/>
</xsl:attribute> </xsl:attribute>
</xsl:if>
<xsl:attribute name="href"><xsl:value-of select="@url"/></xsl:attribute>
<i>
<xsl:choose>
<xsl:when test="count(child::node())=0">
<xsl:value-of select="@url"/>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:attribute name="class"> <xsl:apply-templates/>
<xsl:value-of select="name(.)"/>
</xsl:attribute>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:call-template name="language.attribute"/> </i>
<xsl:call-template name="sect1.titlepage"/> </a>
<xsl:apply-templates/>
<xsl:call-template name="process.chunk.footnotes"/>
</div>
</xsl:template> </xsl:template>
<!-- Sect2 attributes -->
<xsl:template match="sect2">
<div>
<xsl:choose>
<xsl:when test="@role">
<xsl:attribute name="class">
<xsl:value-of select="@role"/>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">
<xsl:value-of select="name(.)"/>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="language.attribute"/>
<xsl:call-template name="sect2.titlepage"/>
<xsl:apply-templates/>
<xsl:call-template name="process.chunk.footnotes"/>
</div>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -68,14 +68,32 @@
</xsl:call-template> </xsl:call-template>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="title"> <xsl:attribute name="title">
<xsl:choose>
<xsl:when test="local-name($next)='index'">
<xsl:call-template name="gentext">
<xsl:with-param name="key">Index</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$next/title"/> <xsl:value-of select="$next/title"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute> </xsl:attribute>
<xsl:call-template name="navig.content"> <xsl:call-template name="navig.content">
<xsl:with-param name="direction" select="'next'"/> <xsl:with-param name="direction" select="'next'"/>
</xsl:call-template> </xsl:call-template>
</a> </a>
<p> <p>
<xsl:choose>
<xsl:when test="local-name($next)='index'">
<xsl:call-template name="gentext">
<xsl:with-param name="key">Index</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$next/title"/> <xsl:value-of select="$next/title"/>
</xsl:otherwise>
</xsl:choose>
</p> </p>
</li> </li>
</xsl:if> </xsl:if>
@ -160,14 +178,32 @@
</xsl:call-template> </xsl:call-template>
</xsl:attribute> </xsl:attribute>
<xsl:attribute name="title"> <xsl:attribute name="title">
<xsl:choose>
<xsl:when test="local-name($next)='index'">
<xsl:call-template name="gentext">
<xsl:with-param name="key">Index</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$next/title"/> <xsl:value-of select="$next/title"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute> </xsl:attribute>
<xsl:call-template name="navig.content"> <xsl:call-template name="navig.content">
<xsl:with-param name="direction" select="'next'"/> <xsl:with-param name="direction" select="'next'"/>
</xsl:call-template> </xsl:call-template>
</a> </a>
<p> <p>
<xsl:choose>
<xsl:when test="local-name($next)='index'">
<xsl:call-template name="gentext">
<xsl:with-param name="key">Index</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$next/title"/> <xsl:value-of select="$next/title"/>
</xsl:otherwise>
</xsl:choose>
</p> </p>
</li> </li>
</xsl:if> </xsl:if>

View File

@ -0,0 +1,105 @@
<?xml version='1.0' encoding='ISO-8859-1'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
version="1.0">
<!-- Sect1 attributes -->
<xsl:template match="sect1">
<div>
<xsl:choose>
<xsl:when test="@role">
<xsl:attribute name="class">
<xsl:value-of select="@role"/>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">
<xsl:value-of select="name(.)"/>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="language.attribute"/>
<xsl:call-template name="sect1.titlepage"/>
<xsl:apply-templates/>
<xsl:call-template name="process.chunk.footnotes"/>
</div>
</xsl:template>
<!-- Sect2 attributes -->
<xsl:template match="sect2">
<div>
<xsl:choose>
<xsl:when test="@role">
<xsl:attribute name="class">
<xsl:value-of select="@role"/>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">
<xsl:value-of select="name(.)"/>
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="language.attribute"/>
<xsl:call-template name="sect2.titlepage"/>
<xsl:apply-templates/>
<xsl:call-template name="process.chunk.footnotes"/>
</div>
</xsl:template>
<!-- Sections numbering -->
<xsl:param name="section.autolabel" select="1"/>
<xsl:param name="section.label.includes.component.label" select="1"/>
<!-- Skip numeraration for sections with empty title -->
<xsl:template match="sect2|sect3|sect4|sect5" mode="label.markup">
<xsl:if test="string-length(title) > 0">
<!-- label the parent -->
<xsl:variable name="parent.label">
<xsl:apply-templates select=".." mode="label.markup"/>
</xsl:variable>
<xsl:if test="$parent.label != ''">
<xsl:apply-templates select=".." mode="label.markup"/>
<xsl:apply-templates select=".." mode="intralabel.punctuation"/>
</xsl:if>
<xsl:choose>
<xsl:when test="@label">
<xsl:value-of select="@label"/>
</xsl:when>
<xsl:when test="$section.autolabel != 0">
<xsl:choose>
<xsl:when test="local-name(.) = 'sect2'">
<xsl:choose>
<!-- If the first sect2 isn't numbered, renumber the remainig sections -->
<xsl:when test="string-length(../sect2[1]/title) = 0">
<xsl:variable name="totalsect2">
<xsl:number count="sect2"/>
</xsl:variable>
<xsl:number value="$totalsect2 - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:number count="sect2"/>
</xsl:otherwise>
</xsl:choose>
</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.markup: this can't happen!</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

View File

@ -7,6 +7,8 @@
<xsl:template name="part.titlepage"> <xsl:template name="part.titlepage">
<div class="titlepage"> <div class="titlepage">
<h1 class="{name(.)}"> <h1 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/> <xsl:value-of select="title"/>
</h1> </h1>
</div> </div>
@ -15,6 +17,8 @@
<xsl:template name="chapter.titlepage"> <xsl:template name="chapter.titlepage">
<div class="titlepage"> <div class="titlepage">
<h1 class="{name(.)}"> <h1 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/> <xsl:value-of select="title"/>
</h1> </h1>
</div> </div>
@ -28,6 +32,16 @@
</div> </div>
</xsl:template> </xsl:template>
<xsl:template name="appendix.titlepage">
<div class="titlepage">
<h1 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/>
</h1>
</div>
</xsl:template>
<xsl:template name="sect1.titlepage"> <xsl:template name="sect1.titlepage">
<xsl:choose> <xsl:choose>
<!-- I should find a better test --> <!-- I should find a better test -->
@ -37,6 +51,8 @@
<a id="{@id}" name="{@id}"/> <a id="{@id}" name="{@id}"/>
</xsl:if> </xsl:if>
<h2 class="{name(.)}"> <h2 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/> <xsl:value-of select="title"/>
</h2> </h2>
</div> </div>
@ -44,6 +60,8 @@
<xsl:otherwise> <xsl:otherwise>
<div class="titlepage"> <div class="titlepage">
<h1 class="{name(.)}"> <h1 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/> <xsl:value-of select="title"/>
</h1> </h1>
</div> </div>
@ -60,6 +78,8 @@
<a id="{@id}" name="{@id}"/> <a id="{@id}" name="{@id}"/>
</xsl:if> </xsl:if>
<h2 class="{name(.)}"> <h2 class="{name(.)}">
<xsl:apply-templates select="." mode="label.markup"/>
<xsl:text>. </xsl:text>
<xsl:value-of select="title"/> <xsl:value-of select="title"/>
</h2> </h2>
</div> </div>
@ -75,4 +95,21 @@
</div> </div>
</xsl:template> </xsl:template>
<!-- Added the role param for proper punctuation in xref calls. -->
<xsl:template match="*" mode="insert.title.markup">
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="title"/>
<xsl:param name="role"/>
<xsl:choose>
<xsl:when test="$purpose = 'xref' and titleabbrev">
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$title"/>
<xsl:value-of select="$role"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -6,7 +6,7 @@
<!-- General settings --> <!-- General settings -->
<xsl:param name="generate.toc"> <xsl:param name="generate.toc">
appendix toc appendix nop
book toc,title,figure,table,example,equation book toc,title,figure,table,example,equation
chapter nop chapter nop
part toc part toc
@ -93,6 +93,23 @@
<xsl:apply-templates select="." mode="titleabbrev.markup"/> <xsl:apply-templates select="." mode="titleabbrev.markup"/>
</a> </a>
</xsl:when> </xsl:when>
<xsl:when test="local-name(.) = 'appendix'">
<a>
<xsl:attribute name="href">
<xsl:call-template name="href.target">
<xsl:with-param name="context" select="$toc-context"/>
</xsl:call-template>
</xsl:attribute>
<xsl:variable name="label">
<xsl:apply-templates select="." mode="label.markup"/>
</xsl:variable>
<xsl:copy-of select="$label"/>
<xsl:if test="$label != ''">
<xsl:value-of select="$autotoc.label.separator"/>
</xsl:if>
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</a>
</xsl:when>
<xsl:when test="local-name(.) = 'chapter' or local-name(.) = 'preface'"> <xsl:when test="local-name(.) = 'chapter' or local-name(.) = 'preface'">
<h4> <h4>
<xsl:variable name="label"> <xsl:variable name="label">

View File

@ -0,0 +1,270 @@
<?xml version='1.0' encoding='ISO-8859-1'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
version="1.0">
<!-- Making a proper punctuation in xref (only for English language).-->
<xsl:template match="xref" name="xref">
<xsl:variable name="targets" select="key('id',@linkend)"/>
<xsl:variable name="target" select="$targets[1]"/>
<xsl:variable name="refelem" select="local-name($target)"/>
<xsl:variable name="role" select="@role"/>
<xsl:call-template name="check.id.unique">
<xsl:with-param name="linkend" select="@linkend"/>
</xsl:call-template>
<xsl:call-template name="anchor"/>
<xsl:choose>
<xsl:when test="count($target) = 0">
<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>
<xsl:variable name="href">
<xsl:call-template name="href.target">
<xsl:with-param name="object" select="$target"/>
</xsl:call-template>
</xsl:variable>
<xsl:apply-templates select="$target" mode="xref-to-prefix"/>
<a href="{$href}">
<xsl:if test="$target/title or $target/*/title">
<xsl:attribute name="title">
<xsl:apply-templates select="$target" mode="xref-title"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="$target" mode="xref-to">
<xsl:with-param name="referrer" select="."/>
<xsl:with-param name="role" select="$role"/>
<xsl:with-param name="xrefstyle">
<xsl:value-of select="@xrefstyle"/>
</xsl:with-param>
</xsl:apply-templates>
</a>
<xsl:apply-templates select="$target" mode="xref-to-suffix"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="section|simplesect|sect1|sect2|sect3|sect4|sect5|refsect1
|refsect2|refsect3|refsection" mode="xref-to">
<xsl:param name="referrer"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="role"/>
<xsl:apply-templates select="." mode="object.xref.markup">
<xsl:with-param name="purpose" select="'xref'"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
<xsl:with-param name="role" select="$role"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="*" mode="object.xref.markup">
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="referrer"/>
<xsl:param name="role"/>
<xsl:variable name="template">
<xsl:choose>
<xsl:when test="starts-with(normalize-space($xrefstyle), 'select:')">
<xsl:call-template name="make.gentext.template">
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="referrer" select="$referrer"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with(normalize-space($xrefstyle), 'template:')">
<xsl:value-of select="substring-after(normalize-space($xrefstyle), 'template:')"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="object.xref.template">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$template = ''">
<xsl:message>
<xsl:text>object.xref.markup: empty xref template</xsl:text>
<xsl:text> for linkend="</xsl:text>
<xsl:value-of select="@id"/>
<xsl:text>" and @xrefstyle="</xsl:text>
<xsl:value-of select="$xrefstyle"/>
<xsl:text>"</xsl:text>
</xsl:message>
</xsl:if>
<xsl:call-template name="substitute-markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
<xsl:with-param name="template" select="$template"/>
<xsl:with-param name="role" select="$role"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="substitute-markup">
<xsl:param name="template" select="''"/>
<xsl:param name="allow-anchors" select="'0'"/>
<xsl:param name="title" select="''"/>
<xsl:param name="subtitle" select="''"/>
<xsl:param name="label" select="''"/>
<xsl:param name="pagenumber" select="''"/>
<xsl:param name="purpose"/>
<xsl:param name="xrefstyle"/>
<xsl:param name="referrer"/>
<xsl:param name="role"/>
<xsl:choose>
<xsl:when test="contains($template, '%')">
<xsl:value-of select="substring-before($template, '%')"/>
<xsl:variable name="candidate"
select="substring(substring-after($template, '%'), 1, 1)"/>
<xsl:choose>
<xsl:when test="$candidate = 't'">
<xsl:apply-templates select="." mode="insert.title.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="role" select="$role"/>
<xsl:with-param name="title">
<xsl:choose>
<xsl:when test="$title != ''">
<xsl:copy-of select="$title"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="title.markup">
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 's'">
<xsl:apply-templates select="." mode="insert.subtitle.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="subtitle">
<xsl:choose>
<xsl:when test="$subtitle != ''">
<xsl:copy-of select="$subtitle"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="subtitle.markup">
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 'n'">
<xsl:apply-templates select="." mode="insert.label.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="label">
<xsl:choose>
<xsl:when test="$label != ''">
<xsl:copy-of select="$label"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="label.markup"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 'p'">
<xsl:apply-templates select="." mode="insert.pagenumber.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="pagenumber">
<xsl:choose>
<xsl:when test="$pagenumber != ''">
<xsl:copy-of select="$pagenumber"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="." mode="pagenumber.markup"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = 'd'">
<xsl:apply-templates select="." mode="insert.direction.markup">
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="direction">
<xsl:choose>
<xsl:when test="$referrer">
<xsl:variable name="referent-is-below">
<xsl:for-each select="preceding::xref">
<xsl:if test="generate-id(.) = generate-id($referrer)">1</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:choose>
<xsl:when test="$referent-is-below = ''">
<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'above'"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'below'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:message>Attempt to use %d in gentext with no referrer!</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$candidate = '%' ">
<xsl:text>%</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>%</xsl:text><xsl:value-of select="$candidate"/>
</xsl:otherwise>
</xsl:choose>
<!-- recurse with the rest of the template string -->
<xsl:variable name="rest"
select="substring($template,
string-length(substring-before($template, '%'))+3)"/>
<xsl:call-template name="substitute-markup">
<xsl:with-param name="template" select="$rest"/>
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
<xsl:with-param name="title" select="$title"/>
<xsl:with-param name="subtitle" select="$subtitle"/>
<xsl:with-param name="label" select="$label"/>
<xsl:with-param name="pagenumber" select="$pagenumber"/>
<xsl:with-param name="purpose" select="$purpose"/>
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
<xsl:with-param name="referrer" select="$referrer"/>
<xsl:with-param name="role" select="$role"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$template"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>