123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- <?xml version='1.0'?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:exsl="http://exslt.org/common"
- version='1.0'>
- <!-- ********************************************************************
- $Id: inline.xsl 7897 2008-03-10 15:46:03Z xmldoc $
- ********************************************************************
- This file is part of the XSL DocBook Stylesheet distribution.
- See ../README or http://docbook.sf.net/release/xsl/current/ for
- copyright and other information.
- ******************************************************************** -->
- <!-- ==================================================================== -->
- <xsl:template match="replaceable|varname|structfield">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:call-template name="italic">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="option|userinput|envar|errorcode|constant|markup">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:call-template name="bold">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="classname">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:apply-templates/>
- </xsl:template>
- <xsl:template match="command">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:call-template name="bold">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="type[not(ancestor::cmdsynopsis) and
- not(ancestor::funcsynopsis)]">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:call-template name="bold">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="function[not(ancestor::cmdsynopsis) and
- not(ancestor::funcsynopsis)]">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:call-template name="bold">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="parameter[not(ancestor::cmdsynopsis) and
- not(ancestor::funcsynopsis)]">
- <xsl:if test="$man.hyphenate.computer.inlines = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <xsl:call-template name="italic">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="filename">
- <!-- * add hyphenation suppression in Filename output only if -->
- <!-- * break.after.slash is also non-zero -->
- <xsl:if test="$man.hyphenate.filenames = 0 and
- $man.break.after.slash = 0">
- <xsl:call-template name="suppress.hyphenation"/>
- </xsl:if>
- <!-- * part of the old man(7) man page, now man-pages(7), says, -->
- <!-- * "Filenames (whether pathnames, or references to files in the -->
- <!-- * /usr/include directory) are always in italics". But that's dumb, -->
- <!-- * and looks like crap in PS/printed/PDF output, and there's no -->
- <!-- * sound rationale for it, so we don't do it. -->
- <xsl:call-template name="inline.monoseq"/>
- </xsl:template>
- <xsl:template match="emphasis">
- <xsl:choose>
- <xsl:when test="
- @role = 'bold' or
- @role = 'strong' or
- @remap = 'B'">
- <xsl:call-template name="bold">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="italic">
- <xsl:with-param name="node" select="."/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template match="optional">
- <xsl:value-of select="$arg.choice.opt.open.str"/>
- <xsl:apply-templates/>
- <xsl:value-of select="$arg.choice.opt.close.str"/>
- </xsl:template>
- <xsl:template name="do-citerefentry">
- <xsl:param name="refentrytitle" select="''"/>
- <xsl:param name="manvolnum" select="''"/>
- <xsl:variable name="title">
- <xsl:value-of select="$refentrytitle"/>
- </xsl:variable>
- <xsl:call-template name="bold">
- <xsl:with-param name="node" select="exsl:node-set($title)"/>
- <xsl:with-param name="context" select="."/>
- </xsl:call-template>
- <xsl:text>(</xsl:text>
- <xsl:value-of select="$manvolnum"/>
- <xsl:text>)</xsl:text>
- </xsl:template>
- <xsl:template match="citerefentry">
- <xsl:call-template name="do-citerefentry">
- <xsl:with-param name="refentrytitle" select="refentrytitle"/>
- <xsl:with-param name="manvolnum" select="manvolnum"/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template match="trademark|productname">
- <xsl:apply-templates/>
- <xsl:choose>
- <!-- * Just use true Unicode chars for copyright, trademark, etc., -->
- <!-- * symbols (by default, we later automatically translate them -->
- <!-- * with the apply-string-subst-map template, or with the -->
- <!-- * default character map, if man.charmap.enabled is true). -->
- <xsl:when test="@class = 'copyright'">
- <xsl:text>©</xsl:text>
- </xsl:when>
- <xsl:when test="@class = 'registered'">
- <xsl:text>®</xsl:text>
- </xsl:when>
- <xsl:when test="@class = 'service'">
- <xsl:text>℠</xsl:text>
- </xsl:when>
- <xsl:when test="@class = 'trade'">
- <xsl:text>™</xsl:text>
- </xsl:when>
- <!-- * for Trademark element, render a trademark symbol by default -->
- <!-- * even if no "class" value is specified -->
- <xsl:when test="self::trademark" >
- <xsl:text>™</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <!-- * otherwise we have a Productname with no value for the -->
- <!-- * "class" attribute, so don't render any symbol by default -->
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- * span seems to sneak through into output sometimes, possibly due -->
- <!-- * to failed Olink processing; so we need to catch it -->
- <xsl:template match="span">
- <xsl:apply-templates/>
- </xsl:template>
- <xsl:template match="inlinemediaobject">
- <xsl:apply-templates/>
- </xsl:template>
- <!-- * indexterm instances produce groff comments like this: -->
- <!-- * .\" primary: secondary: tertiary -->
- <xsl:template match="indexterm">
- <xsl:text>.\" </xsl:text>
- <xsl:apply-templates/>
- <xsl:text> </xsl:text>
- </xsl:template>
- <xsl:template match="primary">
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:template>
- <xsl:template match="secondary|tertiary">
- <xsl:text>: </xsl:text>
- <xsl:value-of select="normalize-space(.)"/>
- </xsl:template>
- <!-- * non-empty remark instances produce groff comments -->
- <xsl:template match="remark">
- <xsl:variable name="content" select="normalize-space(.)"/>
- <xsl:if test="not($content = '')">
- <xsl:text>.\" </xsl:text>
- <xsl:value-of select="$content"/>
- <xsl:text> </xsl:text>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
|