diff options
Diffstat (limited to 'doc/xsl/pre-latex.xsl')
-rw-r--r-- | doc/xsl/pre-latex.xsl | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/doc/xsl/pre-latex.xsl b/doc/xsl/pre-latex.xsl new file mode 100644 index 0000000..9473556 --- /dev/null +++ b/doc/xsl/pre-latex.xsl @@ -0,0 +1,55 @@ +<!-- + - Copyright (C) 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + - + - Permission to use, copy, modify, and/or distribute this software for any + - purpose with or without fee is hereby granted, provided that the above + - copyright notice and this permission notice appear in all copies. + - + - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH + - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, + - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + - PERFORMANCE OF THIS SOFTWARE. +--> + +<!-- $Id: pre-latex.xsl,v 1.6 2007/06/19 23:47:13 tbox Exp $ --> + +<!-- + - Whack — into something that won't choke LaTeX. + - There's probably a better way to do this, but this will work for now. + --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:variable name="mdash" select="'—'"/> + + <xsl:template name="fix-mdash" match="text()[contains(., '—')]"> + <xsl:param name="s" select="."/> + <xsl:choose> + <xsl:when test="contains($s, $mdash)"> + <xsl:value-of select="substring-before($s, $mdash)"/> + <xsl:text>---</xsl:text> + <xsl:call-template name="fix-mdash"> + <xsl:with-param name="s" select="substring-after($s, $mdash)"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$s"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="@*|node()"> + <xsl:copy> + <xsl:copy-of select="@*"/> + <xsl:apply-templates/> + </xsl:copy> + </xsl:template> + + <xsl:template match="/"> + <xsl:apply-templates/> + </xsl:template> + +</xsl:stylesheet> |