diff options
Diffstat (limited to 'net-misc/ntp/files/man-pages/ntp.xsl')
-rw-r--r-- | net-misc/ntp/files/man-pages/ntp.xsl | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/net-misc/ntp/files/man-pages/ntp.xsl b/net-misc/ntp/files/man-pages/ntp.xsl new file mode 100644 index 0000000..ed9c1f8 --- /dev/null +++ b/net-misc/ntp/files/man-pages/ntp.xsl @@ -0,0 +1,218 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> + +<!-- +Description: + Stylesheet for converting the HTML documentation + for various ntp commands into proper manual pages + (in troff format). + +Author: + Per Cederberg, <per at percederberg dot net> +--> + +<!DOCTYPE stylesheet [ +<!ENTITY newline " +"> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + + <!-- ### INPUT PARAMETERS ### --> + <xsl:param name="version" select="''" /> + + + <!-- ### OUTPUT DECLARATION ### --> + <xsl:output method="text" + encoding="ISO-8859-1" /> + + <xsl:strip-space elements="html" /> + + + <!-- ### TEMPLATES ### --> + <xsl:template match="/"> + <xsl:text>.\" Automatically generated from HTML source. </xsl:text> + <xsl:text>DO NOT EDIT!&newline;</xsl:text> + <xsl:apply-templates /> + </xsl:template> + + <xsl:template match="head"> + <xsl:text>.TH </xsl:text> + <xsl:value-of select="substring-before(title, ' ')" /> + <xsl:text> 1 "" "ntp </xsl:text> + <xsl:value-of select="$version" /> + <xsl:text>"</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:text>.SH NAME</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:value-of select="title" /> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="body"> + <xsl:apply-templates select="*[preceding-sibling::hr]" /> + </xsl:template> + + <xsl:template match="h3"> + </xsl:template> + + <xsl:template match="h4"> + <xsl:variable name="text"> + <xsl:call-template name="stringToUpper"> + <xsl:with-param name="str" select="." /> + </xsl:call-template> + </xsl:variable> + <xsl:if test="name(preceding-sibling::*[1]) = 'tt'"> + <xsl:text>&newline;</xsl:text> + </xsl:if> + <xsl:text>.SH </xsl:text> + <xsl:value-of select="$text" /> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="address"> + <xsl:text>.SH AUTHOR</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:apply-templates /> + </xsl:template> + + <xsl:template match="p"> + <xsl:variable name="text"> + <xsl:apply-templates /> + </xsl:variable> + <xsl:if test="starts-with($text, 'Disclaimer:')"> + <xsl:text>&newline;</xsl:text> + </xsl:if> + <xsl:text>.P</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:value-of select="$text" /> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="dd/p"> + <xsl:text>&newline;</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:apply-templates /> + </xsl:template> + + <xsl:template match="hr"> + </xsl:template> + + <xsl:template match="pre"> + <xsl:text>&newline;</xsl:text> + <xsl:text>.ft CW</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:text>.nf</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:call-template name="trim-newlines"> + <xsl:with-param name="str" select="." /> + </xsl:call-template> + <xsl:text>&newline;</xsl:text> + <xsl:text>.ft R</xsl:text> + <xsl:text>&newline;</xsl:text> + <xsl:text>.fi</xsl:text> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="ul"> + </xsl:template> + + <xsl:template match="nobr"> + <xsl:text> </xsl:text> + <xsl:apply-templates /> + <xsl:text> </xsl:text> + </xsl:template> + + <xsl:template match="dl"> + <xsl:apply-templates /> + </xsl:template> + + <xsl:template match="dt"> + <xsl:text>.TP&newline;</xsl:text> + <xsl:text>.B </xsl:text> + <xsl:value-of select="normalize-space(.)" /> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="dd"> + <xsl:apply-templates /> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="tr"> + <xsl:if test="position() > 1"> + <xsl:apply-templates /> + <xsl:text>&newline;</xsl:text> + <xsl:text>&newline;</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template match="tt"> + <xsl:text>&newline;</xsl:text> + <xsl:text>\fB</xsl:text> + <xsl:apply-templates /> + <xsl:text>\fR </xsl:text> + </xsl:template> + + <xsl:template match="i"> + <xsl:text>&newline;</xsl:text> + <xsl:text>\fI</xsl:text> + <xsl:apply-templates /> + <xsl:text>\fR </xsl:text> + </xsl:template> + + <xsl:template match="a"> + <xsl:text> </xsl:text> + <xsl:apply-templates /> + <xsl:text> </xsl:text> + </xsl:template> + + <xsl:template match="br"> + <xsl:text>&newline;</xsl:text> + </xsl:template> + + <xsl:template match="text()"> + <xsl:value-of select="normalize-space(.)" /> + </xsl:template> + + + <!-- ### HELPER FUNCTIONS ### --> + <xsl:template name="stringToUpper"> + <xsl:param name="str" /> + <xsl:value-of select="translate($str, + 'abcdefghijklmnopqrstuvwxyz', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" /> + </xsl:template> + + <xsl:template name="trim-newlines"> + <xsl:param name="str" /> + <xsl:choose> + <xsl:when test="starts-with($str,'&newline;')"> + <xsl:call-template name="trim-newlines"> + <xsl:with-param name="str" select="substring($str, 2)" /> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="trim-newlines-tail"> + <xsl:with-param name="str" select="$str" /> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="trim-newlines-tail"> + <xsl:param name="str" /> + <xsl:variable name="len" select="string-length($str)" /> + <xsl:choose> + <xsl:when test="substring($str,$len) = '&newline;'"> + <xsl:call-template name="trim-newlines-tail"> + <xsl:with-param name="str" select="substring($str, 1, $len - 1)" /> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$str" /> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> |