diff options
author | Philip Hazel <ph10@hermes.cam.ac.uk> | 2005-06-16 10:32:31 +0000 |
---|---|---|
committer | Philip Hazel <ph10@hermes.cam.ac.uk> | 2005-06-16 10:32:31 +0000 |
commit | 168e428fc4dfcf7f4d377d137743d8332784fa35 (patch) | |
tree | afdd32a3a7f9f28dfce516421077baf3383c87d0 /doc/doc-docbook/MyStyle-html.xsl | |
parent | 612ba564e598548543eb4d3e2313d7be687beb9b (diff) |
Install all the files that comprise the new DocBook way of making the
documentation.
Diffstat (limited to 'doc/doc-docbook/MyStyle-html.xsl')
-rw-r--r-- | doc/doc-docbook/MyStyle-html.xsl | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/doc/doc-docbook/MyStyle-html.xsl b/doc/doc-docbook/MyStyle-html.xsl new file mode 100644 index 000000000..e0b7537f3 --- /dev/null +++ b/doc/doc-docbook/MyStyle-html.xsl @@ -0,0 +1,171 @@ +<!-- $Cambridge: exim/doc/doc-docbook/MyStyle-html.xsl,v 1.1 2005/06/16 10:32:31 ph10 Exp $ --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> + +<!-- This stylesheet driver imports my common stylesheet that makes some +changes that are wanted for all forms of output. Then it makes changes that are +specific to HTML output. --> + +<xsl:import href="MyStyle.xsl"/> + +<xsl:param name="shade.verbatim" select="1"></xsl:param> + +<xsl:attribute-set name="shade.verbatim.style"> + <xsl:attribute name="bgcolor">#F0F0E0</xsl:attribute> + <xsl:attribute name="width">100%</xsl:attribute> + <xsl:attribute name="cellpadding">2</xsl:attribute> + <xsl:attribute name="border">0</xsl:attribute> +</xsl:attribute-set> + +<!-- This is how you can make use of a CSS stylesheet, but at present I'm +not doing so. --> + +<!-- +<xsl:param name="html.stylesheet" select="'Myhtml.css'"/> +--> + + +<!-- This removes the title of the current page from the top of the page - +redundant because each page is a chapter, whose title shows just below. It also +removes the titles of the next/prev at the bottom of the page, but I don't +think that matters too much. --> + +<xsl:param name="navig.showtitles" select="'0'"/> + + +<!-- This allows for the setting of RevisionFlag on elements. --> + +<xsl:param name="show.revisionflag" select="'1'"/> + +<xsl:template name="system.head.content"> +<style type="text/css"> +<xsl:text> +div.added { background-color: #ffff99; } +div.deleted { text-decoration: line-through; + background-color: #FF7F7F; } +div.changed { background-color: #99ff99; } +div.off { } + +span.added { background-color: #ffff99; } +span.deleted { text-decoration: line-through; + background-color: #FF7F7F; } +span.changed { background-color: #99ff99; } +span.off { } +</xsl:text> +</style> +</xsl:template> + +<xsl:template match="*[@revisionflag]"> + <xsl:choose> + <xsl:when test="local-name(.) = 'para' or local-name(.) = 'simpara' or local-name(.) = 'formalpara' or local-name(.) = 'section' or local-name(.) = 'sect1' or local-name(.) = 'sect2' or local-name(.) = 'sect3' or local-name(.) = 'sect4' or local-name(.) = 'sect5' or local-name(.) = 'chapter' or local-name(.) = 'preface' or local-name(.) = 'itemizedlist' or local-name(.) = 'varlistentry' or local-name(.) = 'glossary' or local-name(.) = 'bibliography' or local-name(.) = 'index' or local-name(.) = 'appendix'"> + <div class="{@revisionflag}"> + <xsl:apply-imports/> + </div> + </xsl:when> + <xsl:when test="local-name(.) = 'phrase' or local-name(.) = 'ulink' or local-name(.) = 'link' or local-name(.) = 'filename' or local-name(.) = 'literal' or local-name(.) = 'member' or local-name(.) = 'glossterm' or local-name(.) = 'sgmltag' or local-name(.) = 'quote' or local-name(.) = 'emphasis' or local-name(.) = 'command' or local-name(.) = 'xref'"> + <span class="{@revisionflag}"> + <xsl:apply-imports/> + </span> + </xsl:when> + <xsl:when test="local-name(.) = 'listitem' or local-name(.) = 'entry' or local-name(.) = 'title'"> + <!-- nop; these are handled directly in the stylesheet --> + <xsl:apply-imports/> + </xsl:when> + <xsl:otherwise> + <xsl:message> + <xsl:text>Revisionflag on unexpected element: </xsl:text> + <xsl:value-of select="local-name(.)"/> + <xsl:text> (Assuming block)</xsl:text> + </xsl:message> + <div class="{@revisionflag}"> + <xsl:apply-imports/> + </div> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + + +<!-- The default uses short chapter titles in the TOC! I want them only for +use in footer lines in printed output. So we have to modify this template. I +changed "titleabbrev.markup" to "title.markup". --> + +<xsl:template name="toc.line"> + <xsl:param name="toc-context" select="."/> + <xsl:param name="depth" select="1"/> + <xsl:param name="depth.from.context" select="8"/> + + <span> + <xsl:attribute name="class"><xsl:value-of select="local-name(.)"/></xsl:attribute> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="href.target"> + <xsl:with-param name="context" select="$toc-context"/> + </xsl:call-template> + </xsl:attribute> + + <xsl:variable name="label"> + <xsl:apply-templates select="." mode="label.markup"/> + </xsl:variable> + <xsl:copy-of select="$label"/> + <xsl:if test="$label != ''"> + <xsl:value-of select="$autotoc.label.separator"/> + </xsl:if> + + <xsl:apply-templates select="." mode="title.markup"/> + </a> + </span> +</xsl:template> + + +<!-- The default stylesheets generate both chapters and sections with <h2> +headings in the HTML. The argument is that the HTML headings don't go deep +enough to match the DocBook levels. But surely it would be better to stop them +at the bottom end? Anyway, the Exim documents have only one level of section +within chapters, and even if they went to two, it wouldn't exhaust HTML's +capabilities. So I have copied the style stuff here, making a 1-character +change from "+ 1" to "+ 2" in roughly the middle. --> + +<xsl:template name="section.heading"> + <xsl:param name="section" select="."/> + <xsl:param name="level" select="1"/> + <xsl:param name="allow-anchors" select="1"/> + <xsl:param name="title"/> + <xsl:param name="class" select="'title'"/> + + <xsl:variable name="id"> + <xsl:choose> + <!-- if title is in an *info wrapper, get the grandparent --> + <xsl:when test="contains(local-name(..), 'info')"> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select="../.."/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select=".."/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + + <!-- HTML H level is two higher than section level --> + <xsl:variable name="hlevel" select="$level + 2"/> + <xsl:element name="h{$hlevel}"> + <xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute> + <xsl:if test="$css.decoration != '0'"> + <xsl:if test="$hlevel<3"> + <xsl:attribute name="style">clear: both</xsl:attribute> + </xsl:if> + </xsl:if> + <xsl:if test="$allow-anchors != 0"> + <xsl:call-template name="anchor"> + <xsl:with-param name="node" select="$section"/> + <xsl:with-param name="conditional" select="0"/> + </xsl:call-template> + </xsl:if> + <xsl:copy-of select="$title"/> + </xsl:element> +</xsl:template> + + +</xsl:stylesheet> |