diff options
author | Shaun McCance <shaunm@shaunmlxlap.localdomain> | 2009-06-08 15:19:16 -0500 |
---|---|---|
committer | Shaun McCance <shaunm@shaunmlxlap.localdomain> | 2009-06-08 15:22:37 -0500 |
commit | d0e0103028d9d3d32b44e7f0f2b2997da828496a (patch) | |
tree | 42e0b971ad37a4467d5ff6d38d24729aaad422f8 /xslt/common/utils.xsl | |
parent | b6eb32f41becc5550c1f512ea7635de786d7ac3b (diff) | |
download | yelp-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.xsl | 82 |
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, '
')"> + <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)) = '
'"> + <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> |