Update of /cvsroot/cdk/cdk/doc/website/source/xsl/html In directory usw-pr-cvs1:/tmp/cvs-serv11407/xsl/html Added Files: ChangeLog admon.xsl autoidx.xsl autotoc.xsl biblio.xsl block.xsl calc-chunks.xsl callout.xsl changebars.xsl chunk-common.xsl chunk-experimental.xsl chunk.xsl chunker.xsl component.xsl division.xsl docbook.xsl ebnf.xsl expchunk.xsl footnote.xsl formal.xsl glossary.xsl graphics.xsl html.xsl index.xsl info.xsl inline.xsl keywords.xsl lists.xsl math.xsl oldchunker.xsl onechunk.xsl param.xsl pi.xsl qandaset.xsl refentry.xsl sections.xsl synop.xsl table.xsl titlepage.templates.xml titlepage.templates.xsl titlepage.xsl toc.xsl verbatim.xsl xref.xsl xtchunk.xsl xtchunker.xsl Log Message: Added files for new Website 2.0 DTD conform website. --- NEW FILE: ChangeLog --- 2001-09-26 Norman Walsh <nw...@us...> * admon.xsl, biblio.xsl, block.xsl, callout.xsl, component.xsl, division.xsl, ebnf.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, inline.xsl, lists.xsl, qandaset.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, verbatim.xsl, xref.xsl: Bug #464487: use (new) anchor template to consistently generate HTML anchors (usually conditionally, in other words, only for elements that actually have an ID) 2001-09-25 Norman Walsh <nw...@us...> * chunk-common.xsl: Fix gentext.nav.* templates * param.xsl, titlepage.xsl: Support automatic collation of year ranges in copyright 2001-09-24 Norman Walsh <nw...@us...> * refentry.xsl, synop.xsl: Added some paras to improve spacing * verbatim.xsl: Implemented changes suggested by Paul Winder, Sam Brow, and John Dreystadt of Arbortext to make 'make-verbatim' less memory intensive; also added paras to literallayout and address divs for better spacing in NS6 2001-09-22 Norman Walsh <nw...@us...> * changebars.xsl: sgmltag is an inline * chunk-common.xsl: Feature request #439053: support generate.legalnotice.link * xref.xsl: Bug #462830: allow %p in templates * xref.xsl: Bug #463033: allow xref to list items (in orderedlists) and varlistentrys 2001-09-09 Norman Walsh <nw...@us...> * onechunk.xsl: New file. 2001-08-29 Norman Walsh <nw...@us...> * lists.xsl: Fix orderedlist numerations 2001-08-25 Norman Walsh <nw...@us...> * sections.xsl: Bug #451005: no id anchor for bridgehead 2001-08-14 Norman Walsh <nw...@us...> * xref.xsl: Display the ID when gentext cannot be created 2001-08-11 Robert Stayton <bob...@us...> * param.xsl: Removed the '?' from olink resolver parameter because the olink template will add that (or not, depending on how that template is customized). 2001-08-08 Norman Walsh <nw...@us...> * param.xsl, verbatim.xsl: Support shade.verbatim parameter 2001-08-05 Norman Walsh <nw...@us...> * param.xsl: Removed the FormatDingbatCallout classes, they were the same as the FormatUnicodeCallout classes but with a font wrapper. Added a callout.unicode.font parameter to wrap Unicode callouts 2001-08-04 Norman Walsh <nw...@us...> * autotoc.xsl: Add '.' to the autotoc.label.separator; suppress the separator if there is no label * chunker.xsl: Added a quiet parameter to suppress the Writing... message * refentry.xsl: Don't output anchor for refsect*, the anchor is output as part of the title processing 2001-08-02 Robert Stayton <bob...@us...> * sections.xsl: Allow anchors in section titles * xref.xsl: Changed <link> to process its endterm if the element content is empty. 2001-08-01 Norman Walsh <nw...@us...> * component.xsl: Don't calculate ids where they aren't used; don't put ids on divs because anchors will be output in the component title * footnote.xsl: Process simpara in footnote; warn if something unexpected turns up in a footnote * formal.xsl: Allow anchors in formal object titles * graphics.xsl: Output anchors for images that have IDs * lists.xsl: Output anchors for list elements with IDs * param.xsl: Leave ../ out of graphics paths by default; that doesn't make sense anymore * param.xsl, xref.xsl: First crude beginnings of olink support * qandaset.xsl: Remove unnecessary spaces * titlepage.templates.xml: Don't suppress othercredit on titlepages * titlepage.xsl: Handle othercredits on title pages 2001-07-21 Norman Walsh <nw...@us...> * block.xsl, param.xsl: Fix title-end punctuation problems on formalparas 2001-07-17 Robert Stayton <bob...@us...> * graphics.xsl: Fixed bug #442160. Parameter graphic.default.extension is now used also for <graphic> and <inlinegraphic> not only for <imagedata>. * xref.xsl: xref element with endterm attribute now uses normal templates to process the children of the element pointed to by the endterm ID. Formerly it just used the built-in template and rendered just the text nodes. 2001-07-16 Norman Walsh <nw...@us...> * inline.xsl, param.xsl: Added phrase.propagates.style and emphasis.propagates.style: if true, wrap a span around phrase and emphasis elements with the role attribute propagated to the class attribute * sections.xsl: added null templates for section titleabbrev in normal mode * table.xsl: Wrap tbody around table footnotes (so that the HTML table model is not broken) 2001-07-15 Norman Walsh <nw...@us...> * param.xsl: Make generate.section.toc.level 0 by default 2001-07-10 Norman Walsh <nw...@us...> * chunk.xsl: Remove extension namespace declarations; they aren't actually used in this module * chunker.xsl: Make exsl:document the first choice * chunker.xsl: Fix EXSLT namespace name for exsl:document element * chunker.xsl, oldchunker.xsl, param.xsl: Move declaration for default.encoding and saxon.character.representation from param.xsl to (old)chunker.xsl so that chunker.xsl can be used by any stylesheet (indepedent of docbook.xsl). Maybe this should get moved to lib... * pi.xsl: Irrelevant encoding change 2001-07-09 Norman Walsh <nw...@us...> * autotoc.xsl: Fixed typo in reference to annotate.toc variable 2001-07-08 Norman Walsh <nw...@us...> * calc-chunks.xsl, chunk-experimental.xsl: Break chunk calculation and chunking into two tasks; *requires* every chunk to have an ID * chunker.xsl: Use element-available function not vendor to find chunking elements * exsltchunk.xsl, exsltchunker.xsl: These have been integrated into the regular chunker now that it's based on extension-available() * keywords.xsl: Tweaked handling of keywords to avoid multiple templates * oldchunker.xsl: New file. * qandaset.xsl: Improve QandA formatting; make question bold if defaultlabel=none (FR #419315) * xref.xsl: Support xref to bridgehead 2001-07-07 Norman Walsh <nw...@us...> * param.xsl: Added callout.dingbats parameter (for extension support; not really used in HTML) 2001-07-06 Norman Walsh <nw...@us...> * chunk-experimental.xsl, expchunk.xsl: New file. 2001-07-05 Norman Walsh <nw...@us...> * block.xsl: Whitespace * block.xsl, lists.xsl: FR #422097, make a listitem containing a single simpara output an li with only inline content * chunk-common.xsl: Patch #418401, add accesskey attributes to HTML navigation * chunk-common.xsl: Patch #428987, use the id of the root element if use.id.as.filename is non-zero; also chunk a /section properly * param.xsl, sections.xsl: SR #431040, added generate.section.toc.level parameter to control depth of sections which get a TOC * param.xsl, sections.xsl: Change semantics of generate.section.toc.level; 0 no longer means ignored it now means less than 1 :-) * titlepage.xsl: Patch #415865, output contrib for authors and othercontribs 2001-07-04 <uid...@us...> * autotoc.xsl: Support annotated TOCs * biblio.xsl, param.xsl, xref.xsl: Support an external bibliography collection * chunk-common.xsl, docbook.xsl, param.xsl: Bug #418968: replaced body.attrs attribute-set with body.attributes template * component.xsl, sections.xsl: Remove internal references to *.titlepage.recto.mode and *.titlepage.verso.mode * ebnf.xsl: Minor presentation bug fixes * xref.xsl: Bug #429011, fix xref to qandset elements 2001-06-22 Norman Walsh <nw...@us...> * docbook.xsl, ebnf.xsl: Support EBNF * param.xsl: Remove unused parameter: check.idref 2001-06-21 Norman Walsh <nw...@us...> * lists.xsl, param.xsl, xref.xsl: Use common code to calculate step numbers; support xref to procedures and steps; added formal.procedures parameter 2001-06-20 Norman Walsh <nw...@us...> * formal.xsl: Generate formal titles correctly * graphics.xsl: Don't put span around inlinemediaobject in programlistings or screens (causes problems with line numbering and callouts) * refentry.xsl: Bug 434102: fix refentry inside of chapter and fix refsynopsisdiv formatting in both FO and HTML * xref.xsl: Support xref to authorgroup 2001-06-18 Norman Walsh <nw...@us...> * chunk-common.xsl: Reordered erroneous test: only link to top-level sections, even if the first one is a chunk 2001-06-17 Norman Walsh <nw...@us...> * exsltchunk.xsl, exsltchunker.xsl: New file. 2001-06-15 Norman Walsh <nw...@us...> * component.xsl: Handle subtitle in articleinfo 2001-06-13 Norman Walsh <nw...@us...> * chunk-common.xsl: Make sure the root element gets processed correctly so that it generates the right titlepage * component.xsl: Don't output ID attributes on DIVs with required titles since they conflict with the NAME attributes on the subsequently output A tags. * docbook.xsl: Pass the current node to user.head.content * index.xsl: Updated comment 2001-06-07 Jirka Kosek <ko...@us...> * lists.xsl: Things preceding steps in procedure are placed before OL list. 2001-06-04 Norman Walsh <nw...@us...> * lists.xsl: Fixed typo in compact list support; backed out procedure step changes * sections.xsl: Fixed CSS typo; clear: all should be clear: both 2001-06-02 Jirka Kosek <ko...@us...> * lists.xsl: Fixed bug #424926. Things preceding steps in procedure are not placed inside OL list. 2001-05-23 Norman Walsh <nw...@us...> * component.xsl: Reorganized templates for clarity * graphics.xsl: Fix dup. template bug with is.graphic.* * titlepage.xsl: Added template for publisher 2001-05-21 Norman Walsh <nw...@us...> * autotoc.xsl: Make the TOC label/title separator a parameter * callout.xsl, verbatim.xsl: Move calculation of linenumber.* parameters into the number.rtf.lines template * changebars.xsl: Add link and member as inlines * sections.xsl: Refactor the section title code * titlepage.templates.xml: Reworked titlepage template processing to support use of more interesting predicates. Note: in previous versions, at most one title, subtitle, or titleabbrev element would be processed for each title page. In the new design, if you have multiple title, subtitle, or titleabbrev elements inside an info wrapper (you shouldn't!), they will all be processed. 2001-05-13 Norman Walsh <nw...@us...> * param.xsl: Fixed ID typo * synop.xsl: Fixed synopfragmentref link (suggested by Philippe Martin) 2001-05-12 Norman Walsh <nw...@us...> * autotoc.xsl, param.xsl: Mostly failed attempt to add bridgeheads to the automatic TOC; this option is turned off by default and you should leave it that way. * sections.xsl: Calculate the heading level for bridgeheads 2001-05-03 Norman Walsh <nw...@us...> * lists.xsl: Output anchors for procedures and steps * table.xsl: Process head/body/foot in the right order 2001-04-29 Norman Walsh <nw...@us...> * chunk-common.xsl, chunk.xsl, xtchunk.xsl: Automatically make an index when chunking with a processor other than XT 2001-04-26 Norman Walsh <nw...@us...> * changebars.xsl: Support a few more elements * inline.xsl: Make glossterms hot if they're links. And make them italic. * lists.xsl: Improve procedure step/substep enumeration 2001-04-24 Norman Walsh <nw...@us...> * chunk-common.xsl: Feature request 416507: added chunk.sections and chunk.first.sections to provide greater chunking flexibility * chunk-common.xsl: Fix chunking bug * chunker.xsl: Output ID in message * glossary.xsl: Fix bug that caused duplicated glossary entries * qandaset.xsl: Bug #418100: fix qandaentry anchors; also fixed formatting bug in questions with indexterms 2001-04-21 Jirka Kosek <ko...@us...> * chunker.xsl, param.xsl: Added parameters for changing output encoding in chunked HTML * inline.xsl: Improve processing of trademarks 2001-04-20 Norman Walsh <nw...@us...> * inline.xsl: Restoring accidentally deleted citetitle template 2001-04-18 Norman Walsh <nw...@us...> * autoidx.xsl: Fix bug: lowercase and uppercase need to be strings (not element names :-) * inline.xsl, param.xsl: Bug #413982, easy support for man page CGI links on citerefentry 2001-04-17 Norman Walsh <nw...@us...> * docbook.xsl, param.xsl: Move label.from.part parameter into param.xsl; default it to 0 so that chapters and appendixes are numbered monotonically throughout a book by default. Moved param.xsl up in the include list, just for good measure 2001-04-16 Norman Walsh <nw...@us...> * component.xsl: Fix bug in processing of subtitle content on components * glossary.xsl, titlepage.templates.xml: Fix formatting of glossarys--things were really broken * xref.xsl: Patches Tracker #415439: support title attribute on HTML anchors associated with xrefs 2001-04-15 Norman Walsh <nw...@us...> * chunk-common.xsl: Process footnotes correctly when chunking; add summary attribute to navigation tables * docbook.xsl: Support inheriting of *info keywords * footnote.xsl, sections.xsl: Process footnotes correctly when chunking * formal.xsl: Use gentext templates for formal object titles * param.xsl: Added new parameters: inherit.keywords, process.source.toc, and process.empty.source.toc; changed the default for spacing.paras to 0 * table.xsl: Improve support for align attribute on tgroup * toc.xsl: Support DocBook toc markup * xref.xsl: Make a title attribute on HTML anchors for links to things with titles 2001-04-05 Norman Walsh <nw...@us...> * table.xsl: Don't translate tgroup align into HTML table align--they don't mean the same thing * titlepage.xsl: Suppress titleabbrev on the title page 2001-04-04 Norman Walsh <nw...@us...> * chunk-common.xsl: Move xsl:message about chunks into the chunker modules * chunker.xsl: Support indent and doctype public/system on chunks (for Saxon, anyway, Xalan's multiple-document extension doesn't seem to support this) * xtchunker.xsl: Use xsl:choose to support xml, html, and text output methods 2001-04-03 Norman Walsh <nw...@us...> * callout.xsl: Fix bug 412487, make XSL-generated callout marks honor callout mark parameters * chunk-common.xsl: Remove unnecessary xmlns declarations * chunker.xsl: Patch to make saxon not produce xml version=1.1 documents * param.xsl: Documentation fixes * qandaset.xsl: Apply patch 412510 by Jon Willeke, make xref to Question work correctly * xref.xsl: Remove unnecessary parameter assignment 2001-04-02 Norman Walsh <nw...@us...> * .cvsignore, Makefile, admon.xsl, autoidx.xsl, autotoc.xsl, biblio.xsl, block.xsl, callout.xsl, changebars.xsl, chunk-common.xsl, chunk.xsl, chunker.xsl, component.xsl, division.xsl, docbook.xsl, ebnf.xsl, footnote.xsl, formal.xsl, glossary.xsl, graphics.xsl, html.xsl, index.xsl, info.xsl, inline.xsl, keywords.xsl, lists.xsl, math.xsl, param.xsl, pi.xsl, qandaset.xsl, refentry.xsl, sections.xsl, synop.xsl, table.xsl, titlepage.templates.xml, titlepage.xsl, toc.xsl, verbatim.xsl, xref.xsl, xtchunk.xsl, xtchunker.xsl: New file. * Makefile: Use the cvstools version of saxon --- NEW FILE: admon.xsl --- <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <!-- ******************************************************************** $Id: admon.xsl,v 1.1 2001/12/13 13:47:34 egonw Exp $ ******************************************************************** This file is part of the XSL DocBook Stylesheet distribution. See ../README or http://nwalsh.com/docbook/xsl/ for copyright and other information. ******************************************************************** --> <xsl:template name="admon.graphic.width"> <xsl:param name="node" select="."/> <xsl:text>25</xsl:text> </xsl:template> <xsl:template match="note|important|warning|caution|tip"> <xsl:choose> <xsl:when test="$admon.graphics != 0"> <xsl:call-template name="graphical.admonition"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="nongraphical.admonition"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="admon.graphic"> <xsl:param name="node" select="."/> <xsl:value-of select="$admon.graphics.path"/> <xsl:choose> <xsl:when test="name($node)='note'">note</xsl:when> <xsl:when test="name($node)='warning'">warning</xsl:when> <xsl:when test="name($node)='caution'">caution</xsl:when> <xsl:when test="name($node)='tip'">tip</xsl:when> <xsl:when test="name($node)='important'">important</xsl:when> <xsl:otherwise>note</xsl:otherwise> </xsl:choose> <xsl:value-of select="$admon.graphics.extension"/> </xsl:template> <xsl:template name="graphical.admonition"> <div class="{name(.)}"> <xsl:if test="$admon.style != ''"> <xsl:attribute name="style"> <xsl:value-of select="$admon.style"/> </xsl:attribute> </xsl:if> <table border="0"> <tr> <td rowspan="2" align="center" valign="top"> <xsl:attribute name="width"> <xsl:call-template name="admon.graphic.width"/> </xsl:attribute> <img> <xsl:attribute name="src"> <xsl:call-template name="admon.graphic"/> </xsl:attribute> </img> </td> <th> <xsl:call-template name="anchor"/> <xsl:apply-templates select="." mode="object.title.markup"/> </th> </tr> <tr> <td colspan="2" align="left" valign="top"> <xsl:apply-templates/> </td> </tr> </table> </div> </xsl:template> <xsl:template name="nongraphical.admonition"> <div class="{name(.)}"> <xsl:if test="$admon.style"> <xsl:attribute name="style"> <xsl:value-of select="$admon.style"/> </xsl:attribute> </xsl:if> <h3 class="title"> <xsl:call-template name="anchor"/> <xsl:apply-templates select="." mode="object.title.markup"/> </h3> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="note/title"></xsl:template> <xsl:template match="important/title"></xsl:template> <xsl:template match="warning/title"></xsl:template> <xsl:template match="caution/title"></xsl:template> <xsl:template match="tip/title"></xsl:template> </xsl:stylesheet> --- NEW FILE: autoidx.xsl --- <?xml version="1.0"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'"> <!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"> <!ENTITY primary 'concat(primary/@sortas, primary[not(@sortas)])'> <!ENTITY secondary 'concat(secondary/@sortas, secondary[not(@sortas)])'> <!ENTITY tertiary 'concat(tertiary/@sortas, tertiary[not(@sortas)])'> <!ENTITY section '(ancestor-or-self::set |ancestor-or-self::book |ancestor-or-self::part |ancestor-or-self::reference |ancestor-or-self::partintro |ancestor-or-self::chapter |ancestor-or-self::appendix |ancestor-or-self::preface |ancestor-or-self::section |ancestor-or-self::sect1 |ancestor-or-self::sect2 |ancestor-or-self::sect3 |ancestor-or-self::sect4 |ancestor-or-self::sect5 |ancestor-or-self::refsect1 |ancestor-or-self::refsect2 |ancestor-or-self::refsect3 |ancestor-or-self::simplesect |ancestor-or-self::bibliography |ancestor-or-self::glossary |ancestor-or-self::index)[last()]'> <!ENTITY section.id 'generate-id(§ion;)'> <!ENTITY sep '" "'> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:import href="docbook.xsl"/> <!-- ==================================================================== --> <!-- Jeni Tennison gets all the credit for what follows. I think I understand it :-) Anyway, I've hacked it a bit, so the bugs are mine. --> <xsl:key name="letter" match="indexterm" use="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/> <xsl:key name="primary" match="indexterm" use="&primary;"/> <xsl:key name="secondary" match="indexterm" use="concat(&primary;, &sep;, &secondary;)"/> <xsl:key name="tertiary" match="indexterm" use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/> <xsl:key name="primary-section" match="indexterm[not(secondary) and not(see)]" use="concat(&primary;, &sep;, §ion.id;)"/> <xsl:key name="secondary-section" match="indexterm[not(tertiary) and not(see)]" use="concat(&primary;, &sep;, &secondary;, &sep;, §ion.id;)"/> <xsl:key name="tertiary-section" match="indexterm[not(see)]" use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, §ion.id;)"/> <xsl:key name="see-also" match="indexterm[seealso]" use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso)"/> <xsl:key name="see" match="indexterm[see]" use="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see)"/> <xsl:key name="sections" match="*[@id]" use="@id"/> <xsl:template name="generate-index"> <xsl:variable name="terms" select="//indexterm[count(.|key('letter', translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[1]) = 1]"/> <xsl:variable name="alphabetical" select="$terms[contains(concat(&lowercase;, &uppercase;), substring(&primary;, 1, 1))]"/> <xsl:variable name="others" select="$terms[not(contains(concat(&lowercase;, &uppercase;), substring(&primary;, 1, 1)))]"/> <div class="index"> <xsl:if test="$others"> <div class="indexdiv"> <h3> <xsl:call-template name="gentext"> <xsl:with-param name="key" select="'index symbols'"/> </xsl:call-template> </h3> <dl> <xsl:apply-templates select="$others[count(.|key('primary', &primary;)[1]) = 1]" mode="index-primary"> <xsl:sort select="&primary;"/> </xsl:apply-templates> </dl> </div> </xsl:if> <xsl:apply-templates select="$alphabetical[count(.|key('letter', translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;))[1]) = 1]" mode="index-div"> <xsl:sort select="&primary;"/> </xsl:apply-templates> </div> </xsl:template> <xsl:template match="indexterm" mode="index-div"> <xsl:variable name="key" select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/> <div class="indexdiv"> <h3> <xsl:value-of select="translate($key, &lowercase;, &uppercase;)"/> </h3> <dl> <xsl:apply-templates select="key('letter', $key)[count(.|key('primary', &primary;)[1]) = 1]" mode="index-primary"> <xsl:sort select="&primary;"/> </xsl:apply-templates> </dl> </div> </xsl:template> <xsl:template match="indexterm" mode="index-primary"> <xsl:variable name="key" select="&primary;"/> <xsl:variable name="refs" select="key('primary', $key)"/> <dt> <xsl:value-of select="primary"/> <xsl:for-each select="$refs[generate-id() = generate-id(key('primary-section', concat($key, &sep;, §ion.id;))[1])]"> <xsl:apply-templates select="." mode="reference"/> </xsl:for-each> </dt> <xsl:if test="$refs/secondary or $refs[not(secondary)]/*[self::see or self::seealso]"> <dd> <dl> <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &sep;, &sep;, see))[1])]" mode="index-see"> <xsl:sort select="see"/> </xsl:apply-templates> <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &sep;, &sep;, seealso))[1])]" mode="index-seealso"> <xsl:sort select="seealso"/> </xsl:apply-templates> <xsl:apply-templates select="$refs[secondary and count(.|key('secondary', concat($key, &sep;, &secondary;))[1]) = 1]" mode="index-secondary"> <xsl:sort select="&secondary;"/> </xsl:apply-templates> </dl> </dd> </xsl:if> </xsl:template> <xsl:template match="indexterm" mode="index-secondary"> <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;)"/> <xsl:variable name="refs" select="key('secondary', $key)"/> <dt> <xsl:value-of select="secondary"/> <xsl:for-each select="$refs[generate-id() = generate-id(key('secondary-section', concat($key, &sep;, §ion.id;))[1])]"> <xsl:apply-templates select="." mode="reference"/> </xsl:for-each> </dt> <xsl:if test="$refs/tertiary or $refs[not(tertiary)]/*[self::see or self::seealso]"> <dd> <dl> <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, see))[1])]" mode="index-see"> <xsl:sort select="see"/> </xsl:apply-templates> <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &sep;, seealso))[1])]" mode="index-seealso"> <xsl:sort select="seealso"/> </xsl:apply-templates> <xsl:apply-templates select="$refs[tertiary and count(.|key('tertiary', concat($key, &sep;, &tertiary;))[1]) = 1]" mode="index-tertiary"> <xsl:sort select="&tertiary;"/> </xsl:apply-templates> </dl> </dd> </xsl:if> </xsl:template> <xsl:template match="indexterm" mode="index-tertiary"> <xsl:variable name="key" select="concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;)"/> <xsl:variable name="refs" select="key('tertiary', $key)"/> <dt> <xsl:value-of select="tertiary"/> <xsl:for-each select="$refs[generate-id() = generate-id(key('tertiary-section', concat($key, &sep;, §ion.id;))[1])]"> <xsl:apply-templates select="." mode="reference"/> </xsl:for-each> </dt> <xsl:variable name="see" select="$refs/see | $refs/seealso"/> <xsl:if test="$see"> <dd> <dl> <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, see))[1])]" mode="index-see"> <xsl:sort select="see"/> </xsl:apply-templates> <xsl:apply-templates select="$refs[generate-id() = generate-id(key('see-also', concat(&primary;, &sep;, &secondary;, &sep;, &tertiary;, &sep;, seealso))[1])]" mode="index-seealso"> <xsl:sort select="seealso"/> </xsl:apply-templates> </dl> </dd> </xsl:if> </xsl:template> <xsl:template match="indexterm" mode="reference"> <xsl:text>, </xsl:text> <xsl:choose> <xsl:when test="@zone and string(@zone)"> <xsl:call-template name="reference"> <xsl:with-param name="zones" select="normalize-space(@zone)"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <a> <xsl:variable name="title"> <xsl:apply-templates select="§ion;" mode="title.markup"/> </xsl:variable> <xsl:attribute name="href"> <xsl:call-template name="href.target"> <xsl:with-param name="object" select="§ion;"/> </xsl:call-template> </xsl:attribute> <xsl:value-of select="$title"/> <!-- text only --> </a> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="reference"> <xsl:param name="zones"/> <xsl:choose> <xsl:when test="contains($zones, ' ')"> <xsl:variable name="zone" select="substring-before($zones, ' ')"/> <xsl:variable name="target" select="key('sections', $zone)"/> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"> <xsl:with-param name="object" select="$target[1]"/> </xsl:call-template> </xsl:attribute> <xsl:apply-templates select="$target[1]" mode="index-title-content"/> </a> <xsl:text>, </xsl:text> <xsl:call-template name="reference"> <xsl:with-param name="zones" select="substring-after($zones, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:variable name="zone" select="$zones"/> <xsl:variable name="target" select="key('sections', $zone)"/> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"> <xsl:with-param name="object" select="$target[1]"/> </xsl:call-template> </xsl:attribute> <xsl:apply-templates select="$target[1]" mode="index-title-content"/> </a> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="indexterm" mode="index-see"> <dt><xsl:value-of select="see"/></dt> </xsl:template> <xsl:template match="indexterm" mode="index-seealso"> <dt><xsl:value-of select="seealso"/></dt> </xsl:template> <xsl:template match="*" mode="index-title-content"> <xsl:variable name="title"> <xsl:apply-templates select="§ion;" mode="title.markup"/> </xsl:variable> <xsl:value-of select="$title"/> </xsl:template> </xsl:stylesheet> --- NEW FILE: autotoc.xsl --- <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <!-- ******************************************************************** $Id: autotoc.xsl,v 1.1 2001/12/13 13:47:34 egonw Exp $ ******************************************************************** This file is part of the XSL DocBook Stylesheet distribution. See ../README or http://nwalsh.com/docbook/xsl/ for copyright and other information. ******************************************************************** --> <xsl:param name="autotoc.label.separator" select="'. '"/> <xsl:template name="href.target"> <xsl:param name="object" select="."/> <xsl:text>#</xsl:text> <xsl:call-template name="object.id"> <xsl:with-param name="object" select="$object"/> </xsl:call-template> </xsl:template> <xsl:variable name="toc.listitem.type"> <xsl:choose> <xsl:when test="$toc.list.type = 'dl'">dt</xsl:when> <xsl:otherwise>li</xsl:otherwise> </xsl:choose> </xsl:variable> <!-- this is just hack because dl and ul aren't completely isomorphic --> <xsl:variable name="toc.dd.type"> <xsl:choose> <xsl:when test="$toc.list.type = 'dl'">dd</xsl:when> <xsl:otherwise></xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:template name="set.toc"> <xsl:variable name="nodes" select="book|setindex"/> <xsl:if test="$nodes"> <div class="toc"> <p> <b> <xsl:call-template name="gentext"> <xsl:with-param name="key">TableofContents</xsl:with-param> </xsl:call-template> </b> </p> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="$nodes" mode="toc"/> </xsl:element> </div> </xsl:if> </xsl:template> <xsl:template name="division.toc"> <xsl:if test="$generate.division.toc != 0"> <xsl:variable name="nodes" select="part|reference |preface|chapter|appendix |article |bibliography|glossary|index |refentry |bridgehead"/> <xsl:if test="$nodes"> <div class="toc"> <p> <b> <xsl:call-template name="gentext"> <xsl:with-param name="key">TableofContents</xsl:with-param> </xsl:call-template> </b> </p> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="$nodes" mode="toc"/> </xsl:element> </div> </xsl:if> </xsl:if> </xsl:template> <xsl:template name="component.toc"> <xsl:if test="$generate.component.toc != 0"> <xsl:variable name="nodes" select="section|sect1|refentry |article|bibliography|glossary |appendix|bridgehead[not(@renderas)] |.//bridgehead[@renderas='sect1']"/> <xsl:if test="$nodes"> <div class="toc"> <p> <b> <xsl:call-template name="gentext"> <xsl:with-param name="key">TableofContents</xsl:with-param> </xsl:call-template> </b> </p> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="$nodes" mode="toc"/> </xsl:element> </div> </xsl:if> </xsl:if> </xsl:template> <xsl:template name="section.toc"> <xsl:variable name="nodes" select="section|sect1|sect2|sect3|sect4|sect5|refentry |bridgehead"/> <xsl:if test="$nodes"> <div class="toc"> <p> <b> <xsl:call-template name="gentext"> <xsl:with-param name="key">TableofContents</xsl:with-param> </xsl:call-template> </b> </p> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="$nodes" mode="toc"/> </xsl:element> </div> </xsl:if> </xsl:template> <!-- ==================================================================== --> <xsl:template match="book|setindex" mode="toc"> <xsl:variable name="nodes" select="part|reference |preface|chapter|appendix |article |bibliography|glossary|index |refentry |bridgehead"/> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates mode="toc" select="$nodes"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>0 and count($nodes)>0"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>0 and count($nodes)>0"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="part|reference" mode="toc"> <xsl:variable name="nodes" select="appendix|chapter|article |index|glossary|bibliography |preface|reference|refentry |bridgehead"/> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="$nodes" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>0 and count($nodes) > 0"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>0 and count($nodes) > 0"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="preface|chapter|appendix|article" mode="toc"> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="section|sect1|bridgehead" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>0 and section|sect1"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>0 and section|sect1"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="sect1" mode="toc"> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="sect2|bridgehead" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>1 and sect2"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>1 and sect2"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="sect2" mode="toc"> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="sect3|bridgehead" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>2 and sect3"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>2 and sect3"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="sect3" mode="toc"> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="sect4|bridgehead" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>3 and sect4"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>3 and sect4"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="sect4" mode="toc"> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="sect5|bridgehead" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toc.section.depth>4 and sect5"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toc.section.depth>4 and sect5"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="sect5" mode="toc"> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> </xsl:element> </xsl:template> <xsl:template match="section" mode="toc"> <xsl:variable name="subtoc"> <xsl:element name="{$toc.list.type}"> <xsl:apply-templates select="section|bridgehead" mode="toc"/> </xsl:element> </xsl:variable> <xsl:variable name="subtoc.list"> <xsl:choose> <xsl:when test="$toc.dd.type = ''"> <xsl:copy-of select="$subtoc"/> </xsl:when> <xsl:otherwise> <xsl:element name="{$toc.dd.type}"> <xsl:copy-of select="$subtoc"/> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="toodeep"> <xsl:choose> <!-- if the depth is less than 2, we're already deep enough --> <xsl:when test="$toc.section.depth < 2">yes</xsl:when> <!-- if the current section has n-1 section ancestors --> <!-- then we've already reached depth n --> <xsl:when test="ancestor::section[position()=$toc.section.depth - 1]"> <xsl:text>yes</xsl:text> </xsl:when> <!-- otherwise, keep going --> <xsl:otherwise>no</xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <xsl: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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> <xsl:if test="$toc.listitem.type = 'li' and $toodeep='no' and section"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:element> <xsl:if test="$toc.listitem.type != 'li' and $toodeep='no' and section"> <xsl:copy-of select="$subtoc.list"/> </xsl:if> </xsl:template> <xsl:template match="bridgehead" mode="toc"> <xsl:if test="$bridgehead.in.toc != 0"> <xsl:element name="{$toc.listitem.type}"> <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> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates/> </a> </xsl:element> </xsl:if> </xsl:template> <xsl:template match="bibliography|glossary" mode="toc"> <xsl:element name="{$toc.listitem.type}"> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> </xsl:element> </xsl:template> <xsl:template match="index" mode="toc"> <!-- If the index tag is empty, don't point at it from the TOC --> <xsl:if test="* or $generate.index"> <xsl:element name="{$toc.listitem.type}"> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:apply-templates select="." mode="title.markup"/> </a> </xsl:element> </xsl:if> </xsl:template> <xsl:template match="refentry" mode="toc"> <xsl:variable name="refmeta" select=".//refmeta"/> <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/> <xsl:variable name="refnamediv" select=".//refnamediv"/> <xsl:variable name="refname" select="$refnamediv//refname"/> <xsl:variable name="title"> <xsl:choose> <xsl:when test="$refentrytitle"> <xsl:apply-templates select="$refentrytitle[1]" mode="title"/> </xsl:when> <xsl:when test="$refname"> <xsl:apply-templates select="$refname[1]" mode="title"/> </xsl:when> <xsl:otherwise></xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:element name="{$toc.listitem.type}"> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"/> </xsl:attribute> <xsl:copy-of select="$title"/> </a> <xsl:if test="$annotate.toc != 0"> <xsl:text> - </xsl:text> <xsl:value-of select="refnamediv/refpurpose"/> </xsl:if> </xsl:element> </xsl:template> <xsl:template match="title" mode="toc"> <a> <xsl:attribute name="href"> <xsl:call-template name="href.target"> <xsl:with-param name="object" select=".."/> </xsl:call-template> </xsl:attribute> <xsl:apply-templates/> </a> </xsl:template> </xsl:stylesheet> --- NEW FILE: biblio.xsl --- <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <!-- ******************************************************************** $Id: biblio.xsl,v 1.1 2001/12/13 13:47:34 egonw Exp $ ******************************************************************** This file is part of the XSL DocBook Stylesheet distribution. See ../README or http://nwalsh.com/docbook/xsl/ for copyright and other information. ******************************************************************** --> <!-- ==================================================================== --> <xsl:template match="bibliography"> <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> <div id="{$id}" class="{name(.)}"> <xsl:call-template name="bibliography.titlepage"/> <xsl:apply-templates/> <xsl:call-template name="process.footnotes"/> </div> </xsl:template> <xsl:template match="bibliography/bibliographyinfo"></xsl:template> <xsl:template match="bibliography/title"></xsl:template> <xsl:template match="bibliography/subtitle"></xsl:template> <xsl:template match="bibliography/titleabbrev"></xsl:template> <xsl:template match="bibliography/title" mode="component.title.mode"> <h2 class="title"> <xsl:call-template name="anchor"> <xsl:with-param name="node" select=".."/> </xsl:call-template> <xsl:apply-templates/> </h2> </xsl:template> <xsl:template match="bibliography/subtitle" mode="component.title.mode"> <h3> <i><xsl:apply-templates/></i> </h3> </xsl:template> <!-- ==================================================================== --> <xsl:template match="bibliodiv"> <div class="{name(.)}"> <xsl:apply-templates/> </div> </xsl:template> <xsl:template match="bibliodiv/title"> <h3 class="{name(.)}"> <xsl:call-template name="anchor"> <xsl:with-param name="node" select=".."/> </xsl:call-template> <xsl:apply-templates/> </h3> </xsl:template> <!-- ==================================================================== --> <xsl:template match="biblioentry"> <xsl:variable name="id"> <xsl:call-template name="object.id"/> </xsl:variable> <xsl:choose> <xsl:when test="string(.) = ''"> <xsl:variable name="bib" select="document($bibliography.collection)"/> <xsl:variable name="entry" select="$bib/bibliography/*[@id=$id][1]"/> <xsl:choose> <xsl:when test="$entry"> <xsl:apply-templates select="$entry"/> </xsl:when> <xsl:otherwise> <xsl:message> <xsl:text>No bibliography entry: </xsl:text> <xsl:value-of select="$id"/> <xsl:text> found in </xsl:text> <xsl:value-of select="$bibliography.collection"/> </xsl:message> <div class="{name(.)}"> <xsl:call-template name="anchor"/> <p> <xsl:text>Error: no bibliography entry: </xsl:text> <xsl:value-of select="$id"/> <xsl:text> found in </xsl:text> <xsl:value-of select="$bibliography.collection"/> </p> </div> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <div class="{name(.)}"> <xsl:call-template name="anchor"/> <p> <xsl:apply-templates mode="bibliography.mode"/> </p> </div> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="bibliomixed"> <xsl:variable name="id"> <xsl:call-template name="object.id"/> </xsl:variable> <xsl:choose> <xsl:when test="string(.) = ''"> <xsl:variable name="bib" select="document($bibliography.collection)"/> <xsl:variable name="entry" select="$bib/bibliography/*[@id=$id][1]"/> <xsl:choose> <xsl:when test="$entry"> <xsl:apply-templates select="$entry"/> </xsl:when> <xsl:otherwise> <xsl:message> <xsl:text>No bibliography entry: </xsl:text> <xsl:value-of select="$id"/> <xsl:text> found in </xsl:text> <xsl:value-of select="$bibliography.collection"/> </xsl:message> <div id="{$id}" class="{name(.)}"> <xsl:call-template name="anchor"/> <p> <xsl:text>Error: no bibliography entry: </xsl:text> <xsl:value-of select="$id"/> <xsl:text> found in </xsl:text> <xsl:value-of select="$bibliography.collection"/> </p> </div> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <div id="{$id}" class="{name(.)}"> <xsl:call-template name="anchor"/> <p> <xsl:choose> <xsl:when test="local-name(*[1]) = 'abbrev'"> <xsl:apply-templates select="*[position()>1]|text()" mode="bibliomixed.mode"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates mode="bibliomixed.mode"/> </xsl:otherwise> </xsl:choose> </p> </div> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- ==================================================================== --> <xsl:template match="*" mode="bibliography.mode"> <xsl:apply-templates select="."/><!-- try the default mode --> </xsl:template> <xsl:template match="abbrev" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:text>[</xsl:text> <xsl:apply-templates mode="bibliography.mode"/> <xsl:text>] </xsl:text> </span> </xsl:template> <xsl:template match="abstract" mode="bibliography.mode"> <!-- suppressed --> </xsl:template> <xsl:template match="address" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="affiliation" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="shortaffil" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="jobtitle" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="artheader|articleinfo" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="artpagenums" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="author" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:call-template name="person.name"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="authorblurb" mode="bibliography.mode"> <!-- suppressed --> </xsl:template> <xsl:template match="authorgroup" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:call-template name="person.name.list"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="authorinitials" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="bibliomisc" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="bibliomset" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <!-- ================================================== --> <xsl:template match="biblioset" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> </span> </xsl:template> <xsl:template match="biblioset/title|biblioset/citetitle" mode="bibliography.mode"> <xsl:variable name="relation" select="../@relation"/> <xsl:choose> <xsl:when test="$relation='article'"> <xsl:call-template name="dingbat"> <xsl:with-param name="dingbat">ldquo</xsl:with-param> </xsl:call-template> <xsl:apply-templates/> <xsl:call-template name="dingbat"> <xsl:with-param name="dingbat">rdquo</xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <I><xsl:apply-templates/></I> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$biblioentry.item.separator"/> </xsl:template> <!-- ================================================== --> <xsl:template match="bookbiblio" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="citetitle" mode="bibliography.mode"> <span class="{name(.)}"> <i><xsl:apply-templates mode="bibliography.mode"/></i> <xsl:value-of select="$biblioentry.item.separator"/> </span> </xsl:template> <xsl:template match="collab" mode="bibliography.mode"> <span class="{name(.)}"> <xsl:apply-templates mode="bibliography.mode"/> <xsl:value-of select="$biblioentry.item.... [truncated message content] |