jstext.xsl 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!--
  2. This file is part of the DITA Open Toolkit project hosted on
  3. Sourceforge.net. See the accompanying license.txt file for
  4. applicable licenses.
  5. (C) Copyright Shawn McKenzie, 2007. All Rights Reserved.
  6. *-->
  7. <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  8. <!-- this template will stip out funky chars used for js variable names -->
  9. <xsl:template name="stripstring">
  10. <xsl:param name="jsvarstring"/>
  11. <!-- this should simply strip strange characters from the param so it can
  12. be used as a JavaScript variable name -->
  13. <!-- can't use the following chars in xsl, so make vars -->
  14. <xsl:variable name="apos">'</xsl:variable>
  15. <xsl:variable name="comma">,</xsl:variable>
  16. <xsl:variable name="colon">:</xsl:variable>
  17. <xsl:variable name="gt">&gt;</xsl:variable>
  18. <xsl:variable name="lt">&lt;</xsl:variable>
  19. <xsl:value-of select="translate(translate(translate(translate(translate(translate($jsvarstring,
  20. '/\^&amp;|\¬`*.-) (%?$£!+=1234567890[]{}',
  21. ''), $apos, ''), $comma, ''), $colon, ''), $gt, ''), $lt, '')"/>
  22. <!-- above does not catch , ' or : -->
  23. <!-- <xsl:variable name="self"
  24. select="translate(translate(translate(@navtitle, '/', ''), '.', ''), ' ', '')"/>-->
  25. </xsl:template>
  26. <xsl:template name="escapestring">
  27. <xsl:param name="jstextstring"/>
  28. <!-- this might need recursion. I'll need to escape chars in the output
  29. so that these symbols , : ' (others?) look like \, \: \'
  30. I might need recursion because there may be multiple instances of
  31. these chars.-->
  32. <!-- can't use the following chars in xsl, so make vars -->
  33. <xsl:variable name="apos">'</xsl:variable>
  34. <xsl:variable name="jsapos">\'</xsl:variable>
  35. <xsl:variable name="comma">,</xsl:variable>
  36. <xsl:variable name="jscomma">\,</xsl:variable>
  37. <xsl:variable name="colon">:</xsl:variable>
  38. <xsl:variable name="jscolon">\:</xsl:variable>
  39. <!-- use the strip for testing and escape later -->
  40. <xsl:value-of select="translate(translate(translate($jstextstring, '/\^&amp;|\¬`*?.-) (%$£!+=', ''),
  41. $apos, ''), $comma, '')"/>/>
  42. </xsl:template>
  43. </xsl:stylesheet>