1<?xml version='1.0'?> 2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 3 version='1.0'> 4 5<!-- ******************************************************************** 6 $Id$ 7 ******************************************************************** 8 9 This file is part of the XSL DocBook Stylesheet distribution. 10 See /README or http://nwalsh.com/docbook/xsl/ for copyright 11 and other information. 12 13 ******************************************************************** --> 14 15<!-- ==================================================================== --> 16 17<xsl:template match="section"> 18 <xsl:variable name="id"> 19 <xsl:call-template name="object.id"/> 20 </xsl:variable> 21 22 <div class="{name(.)}"> 23 <a name="{$id}"/> 24 <xsl:call-template name="section.titlepage"/> 25 <xsl:if test="$generate.section.toc != '0' 26 or refentry"> 27 <xsl:call-template name="section.toc"/> 28 </xsl:if> 29 <xsl:apply-templates/> 30 <xsl:call-template name="process.chunk.footnotes"/> 31 </div> 32</xsl:template> 33 34<xsl:template name="section.title"> 35 <!-- the context node should be the title of a section when called --> 36 <xsl:variable name="section" select="(ancestor::section 37 |ancestor::simplesect 38 |ancestor::sect1 39 |ancestor::sect2 40 |ancestor::sect3 41 |ancestor::sect4 42 |ancestor::sect5)[last()]"/> 43 44 <xsl:variable name="level"> 45 <xsl:call-template name="section.level"> 46 <xsl:with-param name="node" select="$section"/> 47 </xsl:call-template> 48 </xsl:variable> 49 50 <xsl:call-template name="section.heading"> 51 <xsl:with-param name="section" select=".."/> 52 <xsl:with-param name="level" select="$level"/> 53 <xsl:with-param name="title"> 54 <xsl:apply-templates select="$section" mode="object.title.markup"/> 55 </xsl:with-param> 56 </xsl:call-template> 57</xsl:template> 58 59<xsl:template match="title" mode="section.titlepage.recto.mode"> 60 <xsl:call-template name="section.title"/> 61</xsl:template> 62 63<xsl:template match="x-title" mode="section.titlepage.recto.mode"> 64 <xsl:variable name="section" select="(ancestor::section 65 |ancestor::simplesect 66 |ancestor::sect1 67 |ancestor::sect2 68 |ancestor::sect3 69 |ancestor::sect4 70 |ancestor::sect5)[last()]"/> 71 72 <xsl:variable name="level"> 73 <xsl:call-template name="section.level"> 74 <xsl:with-param name="node" select="$section"/> 75 </xsl:call-template> 76 </xsl:variable> 77 78 <xsl:message>Level: <xsl:value-of select="$level"/>: <xsl:value-of select="."/></xsl:message> 79 80 <xsl:element name="h{$level}"> 81 <xsl:attribute name="class">title</xsl:attribute> 82 <xsl:if test="$css.decoration != '0'"> 83 <xsl:if test="$level<3"> 84 <xsl:attribute name="style">clear: both</xsl:attribute> 85 </xsl:if> 86 </xsl:if> 87 <a> 88 <xsl:attribute name="name"> 89 <xsl:call-template name="object.id"> 90 <xsl:with-param name="object" select="$section"/> 91 </xsl:call-template> 92 </xsl:attribute> 93 </a> 94 <xsl:apply-templates select="$section" mode="object.title.markup"/> 95 </xsl:element> 96</xsl:template> 97 98<xsl:template match="sect1"> 99 <xsl:variable name="id"> 100 <xsl:call-template name="object.id"/> 101 </xsl:variable> 102 103 <div class="{name(.)}"> 104 <a name="{$id}"/> 105 <xsl:call-template name="sect1.titlepage"/> 106 <xsl:if test="$generate.section.toc != '0' 107 or refentry"> 108 <xsl:call-template name="section.toc"/> 109 </xsl:if> 110 <xsl:apply-templates/> 111 <xsl:call-template name="process.chunk.footnotes"/> 112 </div> 113</xsl:template> 114 115<xsl:template match="title" mode="sect1.titlepage.recto.mode"> 116 <xsl:call-template name="section.title"/> 117</xsl:template> 118 119<xsl:template match="sect2"> 120 <xsl:variable name="id"> 121 <xsl:call-template name="object.id"/> 122 </xsl:variable> 123 124 <div class="{name(.)}"> 125 <a name="{$id}"/> 126 <xsl:call-template name="sect2.titlepage"/> 127 <xsl:if test="$generate.section.toc != '0' 128 or refentry"> 129 <xsl:call-template name="section.toc"/> 130 </xsl:if> 131 <xsl:apply-templates/> 132 </div> 133</xsl:template> 134 135<xsl:template match="title" mode="sect2.titlepage.recto.mode"> 136 <xsl:call-template name="section.title"/> 137</xsl:template> 138 139<xsl:template match="sect3"> 140 <xsl:variable name="id"> 141 <xsl:call-template name="object.id"/> 142 </xsl:variable> 143 144 <div class="{name(.)}"> 145 <a name="{$id}"/> 146 <xsl:call-template name="sect3.titlepage"/> 147 148 <xsl:if test="$generate.section.toc != '0' 149 or refentry"> 150 <xsl:call-template name="section.toc"/> 151 </xsl:if> 152 <xsl:apply-templates/> 153 </div> 154</xsl:template> 155 156<xsl:template match="title" mode="sect3.titlepage.recto.mode"> 157 <xsl:call-template name="section.title"/> 158</xsl:template> 159 160<xsl:template match="sect4"> 161 <xsl:variable name="id"> 162 <xsl:call-template name="object.id"/> 163 </xsl:variable> 164 165 <div class="{name(.)}"> 166 <a name="{$id}"/> 167 <xsl:call-template name="sect4.titlepage"/> 168 <xsl:if test="$generate.section.toc != '0' 169 or refentry"> 170 <xsl:call-template name="section.toc"/> 171 </xsl:if> 172 <xsl:apply-templates/> 173 </div> 174</xsl:template> 175 176<xsl:template match="title" mode="sect4.titlepage.recto.mode"> 177 <xsl:call-template name="section.title"/> 178</xsl:template> 179 180<xsl:template match="sect5"> 181 <xsl:variable name="id"> 182 <xsl:call-template name="object.id"/> 183 </xsl:variable> 184 185 <div class="{name(.)}"> 186 <a name="{$id}"/> 187 <xsl:call-template name="sect5.titlepage"/> 188 <xsl:if test="$generate.section.toc != '0' 189 or refentry"> 190 <xsl:call-template name="section.toc"/> 191 </xsl:if> 192 <xsl:apply-templates/> 193 </div> 194</xsl:template> 195 196<xsl:template match="title" mode="sect5.titlepage.recto.mode"> 197 <xsl:call-template name="section.title"/> 198</xsl:template> 199 200<xsl:template match="simplesect"> 201 <xsl:variable name="id"> 202 <xsl:call-template name="object.id"/> 203 </xsl:variable> 204 205 <div class="{name(.)}"> 206 <a name="{$id}"/> 207 <xsl:call-template name="simplesect.titlepage"/> 208 <xsl:apply-templates/> 209 </div> 210</xsl:template> 211 212<xsl:template match="title" mode="simplesect.titlepage.recto.mode"> 213 <xsl:call-template name="section.title"/> 214</xsl:template> 215 216<xsl:template match="section/title"></xsl:template> 217<xsl:template match="section/subtitle"></xsl:template> 218<xsl:template match="sectioninfo"></xsl:template> 219 220<xsl:template match="sect1/title"></xsl:template> 221<xsl:template match="sect1/subtitle"></xsl:template> 222<xsl:template match="sect1info"></xsl:template> 223 224<xsl:template match="sect2/title"></xsl:template> 225<xsl:template match="sect2/subtitle"></xsl:template> 226<xsl:template match="sect2info"></xsl:template> 227 228<xsl:template match="sect3/title"></xsl:template> 229<xsl:template match="sect3/subtitle"></xsl:template> 230<xsl:template match="sect3info"></xsl:template> 231 232<xsl:template match="sect4/title"></xsl:template> 233<xsl:template match="sect4/subtitle"></xsl:template> 234<xsl:template match="sect4info"></xsl:template> 235 236<xsl:template match="sect5/title"></xsl:template> 237<xsl:template match="sect5/subtitle"></xsl:template> 238<xsl:template match="sect5info"></xsl:template> 239 240<xsl:template match="simplesect/title"></xsl:template> 241<xsl:template match="simplesect/subtitle"></xsl:template> 242 243<!-- ==================================================================== --> 244 245<xsl:template name="section.heading"> 246 <xsl:param name="section" select="."/> 247 <xsl:param name="level" select="'1'"/> 248 <xsl:param name="title"/> 249 <xsl:element name="h{$level}"> 250 <xsl:attribute name="class">title</xsl:attribute> 251 <xsl:if test="$css.decoration != '0'"> 252 <xsl:if test="$level<3"> 253 <xsl:attribute name="style">clear: both</xsl:attribute> 254 </xsl:if> 255 </xsl:if> 256 <a> 257 <xsl:attribute name="name"> 258 <xsl:call-template name="object.id"> 259 <xsl:with-param name="object" select="$section"/> 260 </xsl:call-template> 261 </xsl:attribute> 262 </a> 263 <xsl:copy-of select="$title"/> 264 </xsl:element> 265</xsl:template> 266 267<!-- ==================================================================== --> 268 269<xsl:template match="bridgehead"> 270 <xsl:variable name="container" 271 select="(ancestor::appendix 272 |ancestor::article 273 |ancestor::bibliography 274 |ancestor::chapter 275 |ancestor::glossary 276 |ancestor::glossdiv 277 |ancestor::index 278 |ancestor::partintro 279 |ancestor::preface 280 |ancestor::refsect1 281 |ancestor::refsect2 282 |ancestor::refsect3 283 |ancestor::sect1 284 |ancestor::sect2 285 |ancestor::sect3 286 |ancestor::sect4 287 |ancestor::sect5 288 |ancestor::section 289 |ancestor::setindex 290 |ancestor::simplesect)[last()]"/> 291 292 <xsl:variable name="clevel"> 293 <xsl:choose> 294 <xsl:when test="local-name($container) = 'appendix' 295 or local-name($container) = 'chapter' 296 or local-name($container) = 'article' 297 or local-name($container) = 'bibliography' 298 or local-name($container) = 'glossary' 299 or local-name($container) = 'index' 300 or local-name($container) = 'partintro' 301 or local-name($container) = 'preface' 302 or local-name($container) = 'setindex'">2</xsl:when> 303 <xsl:when test="local-name($container) = 'glossdiv'"> 304 <xsl:value-of select="count(ancestor::glossdiv)+2"/> 305 </xsl:when> 306 <xsl:when test="local-name($container) = 'sect1' 307 or local-name($container) = 'sect2' 308 or local-name($container) = 'sect3' 309 or local-name($container) = 'sect4' 310 or local-name($container) = 'sect5' 311 or local-name($container) = 'refsect1' 312 or local-name($container) = 'refsect2' 313 or local-name($container) = 'refsect3' 314 or local-name($container) = 'section' 315 or local-name($container) = 'simplesect'"> 316 <xsl:variable name="slevel"> 317 <xsl:call-template name="section.level"> 318 <xsl:with-param name="node" select="$container"/> 319 </xsl:call-template> 320 </xsl:variable> 321 <xsl:value-of select="$slevel + 1"/> 322 </xsl:when> 323 <xsl:otherwise>2</xsl:otherwise> 324 </xsl:choose> 325 </xsl:variable> 326 327 <xsl:variable name="level"> 328 <xsl:choose> 329 <xsl:when test="@renderas = 'sect1'">2</xsl:when> 330 <xsl:when test="@renderas = 'sect2'">3</xsl:when> 331 <xsl:when test="@renderas = 'sect3'">4</xsl:when> 332 <xsl:when test="@renderas = 'sect4'">5</xsl:when> 333 <xsl:when test="@renderas = 'sect5'">6</xsl:when> 334 <xsl:otherwise> 335 <xsl:value-of select="$clevel"/> 336 </xsl:otherwise> 337 </xsl:choose> 338 </xsl:variable> 339 340 <xsl:element name="h{$level}"> 341 <xsl:apply-templates/> 342 </xsl:element> 343</xsl:template> 344 345</xsl:stylesheet> 346 347