123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 |
- <?xml version='1.0' encoding='ISO-8859-1'?>
- <!--
- $LastChangedBy$
- $Date$
- -->
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml"
- version="1.0">
- <!-- This stylesheet contains common params and templates for all outputs. -->
- <!-- This file contains our localization strings (for internationalization) -->
- <xsl:param name="local.l10n.xml" select="document('lfs-l10n.xml')"/>
- <!-- INDEX -->
- <!-- Should the Index be generated? 1 = yes, 0 = no -->
- <xsl:param name="generate.index" select="1"></xsl:param>
- <!-- The indexing method used. Only 'basic' is supported by xsltproc -->
- <xsl:param name="index.method" select="'basic'"></xsl:param>
- <!-- The Index title:
- We create this param to can have gentext support in both
- the Index page title and links that point to the Index page.
- It also allow us to change the title, if wanted.
- Note: To change the title involves creating the appropiate
- entries in lfs-l10n.xml -->
- <xsl:param name="index-title">Index</xsl:param>
- <!-- Index title generation. -->
- <!-- The original template is in {docbook-xsl}/common/titles.xsl -->
- <xsl:template match="index" mode="title.markup">
- <xsl:param name="allow-anchors" select="0"/>
- <xsl:call-template name="gentext">
- <xsl:with-param name="key" select="$index-title"/>
- </xsl:call-template>
- </xsl:template>
- <!-- indexterm:
- Dropping unneeded anchors and fo:wraper elemments. -->
- <!-- The original templates are in {docbook-xsl}/{xhtml,fo}/index.xsl -->
- <xsl:template match="indexterm"/>
- <!-- -->
- <!-- LABELS -->
- <!-- Are sections enumerated? 1 = yes, 0 = no -->
- <xsl:param name="section.autolabel" select="1"/>
- <!-- Do section labels include the component label? 1 = yes, 0 = no -->
- <xsl:param name="section.label.includes.component.label" select="1"/>
- <!-- sect1 label.markup:
- Use lowercase roman numbers for sect1 in preface. -->
- <!-- The original template is in {docbook-xsl}/common/labels.xsl -->
- <xsl:template match="sect1" mode="label.markup">
- <!-- if the parent is a component, maybe label that too -->
- <xsl:variable name="parent.is.component">
- <xsl:call-template name="is.component">
- <xsl:with-param name="node" select=".."/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="component.label">
- <xsl:if test="$section.label.includes.component.label != 0
- and $parent.is.component != 0">
- <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:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@label">
- <xsl:value-of select="@label"/>
- </xsl:when>
- <xsl:when test="$section.autolabel != 0">
- <xsl:copy-of select="$component.label"/>
- <xsl:choose>
- <xsl:when test="ancestor::preface">
- <xsl:number format="i" count="sect1"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:number format="1" count="sect1"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
- <!-- sect2 label.markup:
- Skip numeration for sect2 with empty title. -->
- <!-- The original template is in {docbook-xsl}/common/labels.xsl
- It match also sect3, sect4, and sect5, that are unchanged. -->
- <xsl:template match="sect2" mode="label.markup">
- <!-- label the parent -->
- <xsl:variable name="parent.section.label">
- <xsl:call-template name="label.this.section">
- <xsl:with-param name="section" select=".."/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:if test="$parent.section.label != '0'">
- <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>
- <!-- 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:choose>
- </xsl:template>
- <!-- object.title.template:
- Skip numeration for sectX > sect1 in preface. -->
- <!-- The original template is in {docbook-xsl}/common/gentext.xsl. -->
- <xsl:template match="section|sect1|sect2|sect3|sect4|sect5|simplesect|bridgehead"
- mode="object.title.template">
- <xsl:variable name="is.numbered">
- <xsl:call-template name="label.this.section"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$is.numbered != 0 and not(ancestor::preface/sect1)">
- <xsl:call-template name="gentext.template">
- <xsl:with-param name="context" select="'title-numbered'"/>
- <xsl:with-param name="name">
- <xsl:call-template name="xpath.location"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="gentext.template">
- <xsl:with-param name="context" select="'title-unnumbered'"/>
- <xsl:with-param name="name">
- <xsl:call-template name="xpath.location"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- -->
- <!-- XREF (see {xhtml,pdf}/xref.xsl) -->
- <!-- mode object.xref.markup:
- Propagate role to named template substitute-markup -->
- <!-- The original template is in {docbook-xsl}/common/gentext.xsl -->
- <xsl:template match="*" mode="object.xref.markup">
- <xsl:param name="purpose"/>
- <xsl:param name="xrefstyle"/>
- <xsl:param name="referrer"/>
- <xsl:param name="verbose" select="1"/>
- <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 = '' and $verbose != 0">
- <xsl:message>
- <xsl:text>object.xref.markup: empty xref template</xsl:text>
- <xsl:text> for linkend="</xsl:text>
- <xsl:value-of select="@id|@xml: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="verbose" select="$verbose"/>
- <xsl:with-param name="role" select="$role"/>
- </xsl:call-template>
- </xsl:template>
- <!-- substitute-markup:
- Propagate role to mode insert.title.markup -->
- <!-- The original template is in {docbook-xsl}/common/gentext.xsl -->
- <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="docname" 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="verbose"/>
- <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:with-param name="verbose" select="$verbose"/>
- </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 = 'o'">
- <!-- olink target document title -->
- <xsl:apply-templates select="." mode="insert.olink.docname.markup">
- <xsl:with-param name="purpose" select="$purpose"/>
- <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
- <xsl:with-param name="docname">
- <xsl:choose>
- <xsl:when test="$docname != ''">
- <xsl:copy-of select="$docname"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="." mode="olink.docname.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="docname" select="$docname"/>
- <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="verbose" select="$verbose"/>
- <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>
- <!-- -->
- <!-- Total packages size calculation -->
- <!-- returnvalue:
- If the tag is not empty, apply the original template.
- Otherwise apply the calculation template. -->
- <xsl:template match="returnvalue">
- <xsl:choose>
- <xsl:when test="count(*)>0">
- <xsl:apply-imports/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="calculation">
- <xsl:with-param name="scope" select="../../variablelist"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- Self-made calculation template. -->
- <xsl:template name="calculation">
- <xsl:param name="scope"/>
- <xsl:param name="total">0</xsl:param>
- <xsl:param name="position">1</xsl:param>
- <xsl:variable name="tokens" select="count($scope/varlistentry)"/>
- <xsl:variable name="token" select="$scope/varlistentry[$position]/term/token"/>
- <xsl:variable name="size" select="substring-before($token,' KB')"/>
- <xsl:variable name="rawsize">
- <xsl:choose>
- <xsl:when test="contains($size,',')">
- <xsl:value-of select="concat(substring-before($size,','),substring-after($size,','))"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$size"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$position <= $tokens">
- <xsl:call-template name="calculation">
- <xsl:with-param name="scope" select="$scope"/>
- <xsl:with-param name="position" select="$position +1"/>
- <xsl:with-param name="total" select="$total + $rawsize"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test="$total < '1000'">
- <xsl:value-of select="$total"/>
- <xsl:text> KB</xsl:text>
- </xsl:when>
- <xsl:when test="$total > '1000' and $total < '5000'">
- <xsl:value-of select="substring($total,1,1)"/>
- <xsl:text>,</xsl:text>
- <xsl:value-of select="substring($total,2)"/>
- <xsl:text> KB</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="round($total div 1024)"/>
- <xsl:text> MB</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- -->
- </xsl:stylesheet>
|