summaryrefslogtreecommitdiff
path: root/xslt/common/utils.xsl
diff options
context:
space:
mode:
authorShaun McCance <shaunm@shaunmlxlap.localdomain>2009-06-08 15:19:16 -0500
committerShaun McCance <shaunm@shaunmlxlap.localdomain>2009-06-08 15:22:37 -0500
commitd0e0103028d9d3d32b44e7f0f2b2997da828496a (patch)
tree42e0b971ad37a4467d5ff6d38d24729aaad422f8 /xslt/common/utils.xsl
parentb6eb32f41becc5550c1f512ea7635de786d7ac3b (diff)
downloadyelp-tools-d0e0103028d9d3d32b44e7f0f2b2997da828496a.tar.gz
[mallard] Rename pages to .page, XSLT fixed for Yelp
Diffstat (limited to 'xslt/common/utils.xsl')
-rw-r--r--xslt/common/utils.xsl82
1 files changed, 82 insertions, 0 deletions
diff --git a/xslt/common/utils.xsl b/xslt/common/utils.xsl
new file mode 100644
index 0000000..55315d5
--- /dev/null
+++ b/xslt/common/utils.xsl
@@ -0,0 +1,82 @@
+<?xml version='1.0' encoding='UTF-8'?><!-- -*- indent-tabs-mode: nil -*- -->
+<!--
+This program is free software; you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; see the file COPYING.LGPL. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<!--!!==========================================================================
+Common XSLT Utilities
+
+REMARK: Describe this module
+-->
+
+
+<!--**==========================================================================
+utils.strip_newlines
+Strips leading or trailing newlines from a string
+$string: The string to strip newlines from
+$leading: Whether to strip leading newlines
+$trailing: Whether to strip trailing newlines
+
+This template strips at most one leading and one trailing newline from
+${string}. This is useful for preformatted block elements where leading and
+trailing newlines are ignored to make source formatting easier for authors.
+-->
+<xsl:template name="utils.strip_newlines">
+ <xsl:param name="string"/>
+ <xsl:param name="leading" select="false()"/>
+ <xsl:param name="trailing" select="false()"/>
+ <xsl:choose>
+ <xsl:when test="$leading">
+ <xsl:variable name="new">
+ <xsl:choose>
+ <xsl:when test="starts-with($string, '&#x000A;')">
+ <xsl:value-of select="substring($string, 2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$trailing">
+ <xsl:call-template name="utils.strip_newlines">
+ <xsl:with-param name="string" select="$new"/>
+ <xsl:with-param name="leading" select="false()"/>
+ <xsl:with-param name="trailing" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$new"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$trailing">
+ <xsl:choose>
+ <xsl:when test="substring($string, string-length($string)) = '&#x000A;'">
+ <xsl:value-of select="substring($string, 1, string-length($string) - 1 )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>