mirror of
https://github.com/boostorg/boostbook.git
synced 2025-05-09 02:43:58 +00:00
The footer template has code to generate revision number, which was never updated to git and therefore generates no text, but still generates a somewhat complex table structure. This commit removes code for version numbers, and makes output a simple div. I've also added a hook to use pick content of whatever paragraph with role of 'copyright' the document has, since right now we pick copyright only from 'bookinfo' element, and Docbook renders bookinfo element right at the start, and for Boost.Build documentation I want documentation to start with some hints how to start, not with a copyright statement.
380 lines
14 KiB
XML
380 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
|
|
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt)
|
|
-->
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"
|
|
version="1.0">
|
|
|
|
<xsl:param name="html.stylesheet">
|
|
<xsl:choose>
|
|
<xsl:when test = "$boost.defaults = 'Boost'">
|
|
<xsl:value-of select = "concat($boost.root, '/doc/src/boostbook.css')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
boostbook.css
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:param>
|
|
|
|
<xsl:param name="boost.graphics.root">
|
|
<xsl:choose>
|
|
<xsl:when test = "$boost.defaults = 'Boost'">
|
|
<xsl:value-of select = "concat($boost.root, '/doc/src/images/')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select = "'images/'"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:param>
|
|
|
|
<xsl:param name="boost.mathjax" select="0"/>
|
|
<xsl:param name="boost.mathjax.script"
|
|
select="'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'"/>
|
|
<!--See usage below for explanation of this param-->
|
|
<xsl:param name="boost.noexpand.chapter.toc" select="0"/>
|
|
|
|
<xsl:param name="admon.style"/>
|
|
<xsl:param name="admon.graphics">1</xsl:param>
|
|
<xsl:param name="boostbook.verbose" select="0"/>
|
|
<xsl:param name="navig.graphics" select="1"/>
|
|
<xsl:param name="navig.graphics.extension" select="'.png'"/>
|
|
<xsl:param name="chapter.autolabel" select="1"/>
|
|
<xsl:param name="use.id.as.filename" select="1"/>
|
|
<xsl:param name="refentry.generate.name" select="0"/>
|
|
<xsl:param name="refentry.generate.title" select="1"/>
|
|
<xsl:param name="make.year.ranges" select="1"/>
|
|
<xsl:param name="generate.manifest" select="1"/>
|
|
<xsl:param name="generate.section.toc.level" select="3"/>
|
|
<xsl:param name="doc.standalone">false</xsl:param>
|
|
<xsl:param name="chunker.output.indent">yes</xsl:param>
|
|
<xsl:param name="chunker.output.encoding">US-ASCII</xsl:param>
|
|
<xsl:param name="chunk.quietly" select="not(number($boostbook.verbose))"/>
|
|
<xsl:param name="toc.max.depth">2</xsl:param>
|
|
<xsl:param name="callout.graphics.number.limit">15</xsl:param>
|
|
<xsl:param name = "admon.graphics.path" select="$boost.graphics.root" />
|
|
<xsl:param name = "navig.graphics.path" select="$boost.graphics.root" />
|
|
<xsl:param name = "callout.graphics.path"
|
|
select = "concat($boost.graphics.root, 'callouts/')"/>
|
|
|
|
|
|
<xsl:param name="admon.style">
|
|
<!-- Remove the style. Let the CSS do the styling -->
|
|
</xsl:param>
|
|
|
|
<!-- Always have graphics -->
|
|
<xsl:param name="admon.graphics" select="1"/>
|
|
|
|
<xsl:param name="generate.toc">
|
|
appendix toc,title
|
|
article/appendix nop
|
|
article toc,title
|
|
book toc,title
|
|
chapter toc,title
|
|
part toc,title
|
|
preface toc,title
|
|
qandadiv toc
|
|
qandaset toc
|
|
reference toc,title
|
|
sect1 toc
|
|
sect2 toc
|
|
sect3 toc
|
|
sect4 toc
|
|
sect5 toc
|
|
section toc
|
|
set toc,title
|
|
</xsl:param>
|
|
|
|
|
|
<xsl:template name="format.cvs.revision">
|
|
<xsl:param name="text"/>
|
|
|
|
<!-- Remove the "$Date: " -->
|
|
<xsl:variable name="text.noprefix"
|
|
select="substring-after($text, '$Date: ')"/>
|
|
|
|
<!-- Grab the year -->
|
|
<xsl:variable name="year" select="substring-before($text.noprefix, '/')"/>
|
|
<xsl:variable name="text.noyear"
|
|
select="substring-after($text.noprefix, '/')"/>
|
|
|
|
<!-- Grab the month -->
|
|
<xsl:variable name="month" select="substring-before($text.noyear, '/')"/>
|
|
<xsl:variable name="text.nomonth"
|
|
select="substring-after($text.noyear, '/')"/>
|
|
|
|
<!-- Grab the year -->
|
|
<xsl:variable name="day" select="substring-before($text.nomonth, ' ')"/>
|
|
<xsl:variable name="text.noday"
|
|
select="substring-after($text.nomonth, ' ')"/>
|
|
|
|
<!-- Get the time -->
|
|
<xsl:variable name="time" select="substring-before($text.noday, ' ')"/>
|
|
|
|
<xsl:variable name="month.name">
|
|
<xsl:choose>
|
|
<xsl:when test="$month=1">January</xsl:when>
|
|
<xsl:when test="$month=2">February</xsl:when>
|
|
<xsl:when test="$month=3">March</xsl:when>
|
|
<xsl:when test="$month=4">April</xsl:when>
|
|
<xsl:when test="$month=5">May</xsl:when>
|
|
<xsl:when test="$month=6">June</xsl:when>
|
|
<xsl:when test="$month=7">July</xsl:when>
|
|
<xsl:when test="$month=8">August</xsl:when>
|
|
<xsl:when test="$month=9">September</xsl:when>
|
|
<xsl:when test="$month=10">October</xsl:when>
|
|
<xsl:when test="$month=11">November</xsl:when>
|
|
<xsl:when test="$month=12">December</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<xsl:value-of select="concat($month.name, ' ', $day, ', ', $year, ' at ',
|
|
$time, ' GMT')"/>
|
|
</xsl:template>
|
|
|
|
|
|
<xsl:template name="format.svn.revision">
|
|
<xsl:param name="text"/>
|
|
|
|
<!-- Remove the "$Date: " or "$Date:: " -->
|
|
<xsl:variable name="text.noprefix"
|
|
select="substring-after($text, ': ')"/>
|
|
|
|
<!-- Grab the year -->
|
|
<xsl:variable name="year" select="substring-before($text.noprefix, '-')"/>
|
|
<xsl:variable name="text.noyear"
|
|
select="substring-after($text.noprefix, '-')"/>
|
|
|
|
<!-- Grab the month -->
|
|
<xsl:variable name="month" select="substring-before($text.noyear, '-')"/>
|
|
<xsl:variable name="text.nomonth"
|
|
select="substring-after($text.noyear, '-')"/>
|
|
|
|
<!-- Grab the year -->
|
|
<xsl:variable name="day" select="substring-before($text.nomonth, ' ')"/>
|
|
<xsl:variable name="text.noday"
|
|
select="substring-after($text.nomonth, ' ')"/>
|
|
|
|
<!-- Get the time -->
|
|
<xsl:variable name="time" select="substring-before($text.noday, ' ')"/>
|
|
<xsl:variable name="text.notime"
|
|
select="substring-after($text.noday, ' ')"/>
|
|
|
|
<!-- Get the timezone -->
|
|
<xsl:variable name="timezone" select="substring-before($text.notime, ' ')"/>
|
|
|
|
<xsl:variable name="month.name">
|
|
<xsl:choose>
|
|
<xsl:when test="$month=1">January</xsl:when>
|
|
<xsl:when test="$month=2">February</xsl:when>
|
|
<xsl:when test="$month=3">March</xsl:when>
|
|
<xsl:when test="$month=4">April</xsl:when>
|
|
<xsl:when test="$month=5">May</xsl:when>
|
|
<xsl:when test="$month=6">June</xsl:when>
|
|
<xsl:when test="$month=7">July</xsl:when>
|
|
<xsl:when test="$month=8">August</xsl:when>
|
|
<xsl:when test="$month=9">September</xsl:when>
|
|
<xsl:when test="$month=10">October</xsl:when>
|
|
<xsl:when test="$month=11">November</xsl:when>
|
|
<xsl:when test="$month=12">December</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<xsl:value-of select="concat($month.name, ' ', $day, ', ', $year)"/>
|
|
<xsl:if test="$time != ''">
|
|
<xsl:value-of select="concat(' at ', $time, ' ', $timezone)"/>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<!-- Footer Copyright -->
|
|
<xsl:template match="copyright" mode="boost.footer">
|
|
<xsl:if test="position() > 1">
|
|
<br/>
|
|
</xsl:if>
|
|
<xsl:call-template name="gentext">
|
|
<xsl:with-param name="key" select="'Copyright'"/>
|
|
</xsl:call-template>
|
|
<xsl:call-template name="gentext.space"/>
|
|
<xsl:call-template name="dingbat">
|
|
<xsl:with-param name="dingbat">copyright</xsl:with-param>
|
|
</xsl:call-template>
|
|
<xsl:call-template name="gentext.space"/>
|
|
<xsl:call-template name="copyright.years">
|
|
<xsl:with-param name="years" select="year"/>
|
|
<xsl:with-param name="print.ranges" select="$make.year.ranges"/>
|
|
<xsl:with-param name="single.year.ranges"
|
|
select="$make.single.year.ranges"/>
|
|
</xsl:call-template>
|
|
<xsl:call-template name="gentext.space"/>
|
|
<xsl:apply-templates select="holder" mode="titlepage.mode"/>
|
|
</xsl:template>
|
|
|
|
<!-- Footer License -->
|
|
<xsl:template match="legalnotice" mode="boost.footer">
|
|
<xsl:apply-templates select="para" mode="titlepage.mode" />
|
|
</xsl:template>
|
|
|
|
<xsl:template name="user.footer.content">
|
|
<div class = "copyright-footer">
|
|
<xsl:apply-templates select="ancestor::*/*/copyright"
|
|
mode="boost.footer"/>
|
|
<xsl:apply-templates select="ancestor::*/*/legalnotice"
|
|
mode="boost.footer"/>
|
|
<xsl:apply-templates select="ancestor::*/*/para[@role='copyright']"/>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<!-- We don't want refentry's to show up in the TOC because they
|
|
will merely be redundant with the synopsis. -->
|
|
<xsl:template match="refentry" mode="toc"/>
|
|
|
|
<!-- override the behaviour of some DocBook elements for better
|
|
rendering facilities -->
|
|
|
|
<xsl:template match = "programlisting[ancestor::informaltable]">
|
|
<pre class = "table-{name(.)}"><xsl:apply-templates/></pre>
|
|
</xsl:template>
|
|
|
|
<xsl:template match = "refsynopsisdiv">
|
|
<h2 class = "{name(.)}-title">Synopsis</h2>
|
|
<div class = "{name(.)}">
|
|
<xsl:apply-templates/>
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="generate.html.title"/>
|
|
|
|
<xsl:template match="*" mode="detect-math">
|
|
<xsl:variable name="is-chunk">
|
|
<xsl:call-template name="chunk"/>
|
|
</xsl:variable>
|
|
<xsl:if test="$is-chunk = '0'">
|
|
<xsl:apply-templates mode="detect-math"/>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="text()" mode="detect-math"/>
|
|
|
|
<xsl:template match="textobject[@role='tex']" mode="detect-math">
|
|
<xsl:text>1</xsl:text>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="user.head.content">
|
|
<xsl:if test="$boost.mathjax = 1">
|
|
<xsl:variable name="has-math">
|
|
<xsl:apply-templates mode="detect-math" select="*"/>
|
|
</xsl:variable>
|
|
<xsl:if test="string($has-math) != ''">
|
|
<script type="text/javascript" src="{$boost.mathjax.script}"/>
|
|
</xsl:if>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="inlinemediaobject">
|
|
<xsl:choose>
|
|
<xsl:when test="$boost.mathjax = 1 and textobject[@role='tex']">
|
|
<xsl:variable name="content" select="string(textobject[@role='tex'])"/>
|
|
<xsl:variable name="plain-content">
|
|
<xsl:choose>
|
|
<!--strip $$-->
|
|
<xsl:when test="substring($content, 1, 1) = '$' and
|
|
substring($content, string-length($content), 1) = '$'">
|
|
<xsl:value-of select="substring($content, 2, string-length($content) - 2)"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$content"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<script type="math/tex">
|
|
<xsl:value-of select="$plain-content"/>
|
|
</script>
|
|
<noscript>
|
|
<xsl:apply-imports/>
|
|
</noscript>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-imports/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- ============================================================ -->
|
|
|
|
<xsl:template name="output.html.stylesheets">
|
|
<xsl:param name="stylesheets" select="''"/>
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="contains($stylesheets, ' ')">
|
|
<link rel="stylesheet">
|
|
<xsl:attribute name="href">
|
|
<xsl:call-template name="href.target.relative">
|
|
<xsl:with-param name="target" select="substring-before($stylesheets, ' ')"/>
|
|
</xsl:call-template>
|
|
</xsl:attribute>
|
|
<xsl:if test="$html.stylesheet.type != ''">
|
|
<xsl:attribute name="type">
|
|
<xsl:value-of select="$html.stylesheet.type"/>
|
|
</xsl:attribute>
|
|
</xsl:if>
|
|
</link>
|
|
<xsl:call-template name="output.html.stylesheets">
|
|
<xsl:with-param name="stylesheets" select="substring-after($stylesheets, ' ')"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:when test="$stylesheets != ''">
|
|
<link rel="stylesheet">
|
|
<xsl:attribute name="href">
|
|
<xsl:call-template name="href.target.relative">
|
|
<xsl:with-param name="target" select="$stylesheets"/>
|
|
</xsl:call-template>
|
|
</xsl:attribute>
|
|
<xsl:if test="$html.stylesheet.type != ''">
|
|
<xsl:attribute name="type">
|
|
<xsl:value-of select="$html.stylesheet.type"/>
|
|
</xsl:attribute>
|
|
</xsl:if>
|
|
</link>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="itemizedlist[@role = 'index']" mode="class.value">
|
|
<xsl:value-of select="'index'"/>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="preface|chapter|appendix|article" mode="toc">
|
|
<xsl:param name="toc-context" select="."/>
|
|
|
|
<!--
|
|
When boost.noexpand.chapter.toc is set to 1, then the TOC for
|
|
chapters is only one level deep (ie toc.max.depth has no effect)
|
|
and nested sections within chapters are not shown. TOC's and LOC's
|
|
at other levels are not effected and respond to toc.max.depth as normal.
|
|
-->
|
|
<xsl:choose>
|
|
<xsl:when test="local-name($toc-context) = 'book' and $boost.noexpand.chapter.toc = 1">
|
|
<xsl:call-template name="subtoc">
|
|
<xsl:with-param name="toc-context" select="$toc-context"/>
|
|
<xsl:with-param name="nodes" select="foo"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="subtoc">
|
|
<xsl:with-param name="toc-context" select="$toc-context"/>
|
|
<xsl:with-param name="nodes"
|
|
select="section|sect1|glossary|bibliography|index
|
|
|bridgehead[$bridgehead.in.toc != 0]"/>
|
|
</xsl:call-template>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|
|
|
|
|