12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?xml version='1.0'?>
- <xsl:stylesheet
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <!-- normalized screens, courtesy of Peter Kullmann [email protected] -->
- <xsl:template match="screen/text()|literallayout/text()|programlisting/text()">
- <xsl:variable name="before" select="preceding-sibling::node()"/>
- <xsl:variable name="after" select="following-sibling::node()"/>
- <xsl:variable name="conts" select="."/>
- <xsl:variable name="contsl">
- <xsl:choose>
- <xsl:when test="count($before) = 0">
- <xsl:call-template name="remove-lf-left">
- <xsl:with-param name="astr" select="$conts"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$conts"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="contslr">
- <xsl:choose>
- <xsl:when test="count($after) = 0">
- <xsl:call-template name="remove-ws-right">
- <xsl:with-param name="astr" select="$contsl"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$contsl"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:value-of select="$contslr"/>
-
- </xsl:template>
-
- <!-- eats linefeeds from the left -->
- <xsl:template name="remove-lf-left">
- <xsl:param name="astr"/>
-
- <xsl:choose>
- <xsl:when test="starts-with($astr,'
') or
- starts-with($astr,'
')">
- <xsl:call-template name="remove-lf-left">
- <xsl:with-param name="astr" select="substring($astr, 2)"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$astr"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- eats whitespace from the right -->
- <xsl:template name="remove-ws-right">
- <xsl:param name="astr"/>
-
- <xsl:variable name="last-char">
- <xsl:value-of select="substring($astr, string-length($astr), 1)"/>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="($last-char = '
') or
- ($last-char = '
') or
- ($last-char = ' ') or
- ($last-char = '	')">
- <xsl:call-template name="remove-ws-right">
- <xsl:with-param name="astr"
- select="substring($astr, 1, string-length($astr) - 1)"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$astr"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- </xsl:stylesheet>
|