topic2textonly.xsl 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?xml version="1.0"?>
  2. <!--
  3. This file is part of the DITA Open Toolkit project.
  4. Copyright 2010 IBM Corporation
  5. See the accompanying LICENSE file for applicable license.
  6. -->
  7. <xsl:stylesheet version="2.0"
  8. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  9. xmlns:dita-ot="http://dita-ot.sourceforge.net/ns/201007/dita-ot"
  10. exclude-result-prefixes="dita-ot"
  11. >
  12. <!-- DEFAULT RULE: FOR EVERY ELEMENT, ONLY PROCESS TEXT CONTENT -->
  13. <xsl:template match="*" mode="dita-ot:text-only">
  14. <xsl:apply-templates select="text()|*|processing-instruction()" mode="dita-ot:text-only"/>
  15. </xsl:template>
  16. <xsl:template match="text()" mode="dita-ot:text-only">
  17. <xsl:value-of select="."/>
  18. </xsl:template>
  19. <!-- add "'" for q -->
  20. <xsl:template match="*[contains(@class,' topic/q ')]" mode="dita-ot:text-only">
  21. <xsl:call-template name="getVariable">
  22. <xsl:with-param name="id" select="'OpenQuote'"/>
  23. </xsl:call-template>
  24. <xsl:apply-templates mode="dita-ot:text-only"/>
  25. <xsl:call-template name="getVariable">
  26. <xsl:with-param name="id" select="'CloseQuote'"/>
  27. </xsl:call-template>
  28. </xsl:template>
  29. <xsl:template match="processing-instruction()" mode="dita-ot:text-only"/>
  30. <!-- ELEMENTS THAT SHOULD BE DROPPED FROM DEFAULT TEXT-ONLY RENDITIONS -->
  31. <xsl:template match="*[contains(@class,' topic/indexterm ')]" mode="dita-ot:text-only"/>
  32. <xsl:template match="*[contains(@class,' topic/draft-comment ')]" mode="dita-ot:text-only"/>
  33. <xsl:template match="*[contains(@class,' topic/required-cleanup ')]" mode="dita-ot:text-only"/>
  34. <xsl:template match="*[contains(@class,' topic/data ')]" mode="dita-ot:text-only"/>
  35. <xsl:template match="*[contains(@class,' topic/data-about ')]" mode="dita-ot:text-only"/>
  36. <xsl:template match="*[contains(@class,' topic/unknown ')]" mode="dita-ot:text-only"/>
  37. <xsl:template match="*[contains(@class,' topic/foreign ')]" mode="dita-ot:text-only"/>
  38. <!-- EXCEPTIONS -->
  39. <xsl:template match="*[contains(@class,' topic/image ')]" mode="dita-ot:text-only">
  40. <xsl:choose>
  41. <xsl:when test="*[contains(@class,' topic/alt ')]"><xsl:apply-templates mode="dita-ot:text-only"/></xsl:when>
  42. <xsl:when test="@alt"><xsl:value-of select="@alt"/></xsl:when>
  43. </xsl:choose>
  44. </xsl:template>
  45. <!-- Footnote as text-only: should just create the number in parens -->
  46. <xsl:template match="*[contains(@class,' topic/fn ')]" mode="dita-ot:text-only">
  47. <xsl:variable name="fnid"><xsl:number from="/" level="any"/></xsl:variable>
  48. <xsl:choose>
  49. <xsl:when test="@callout">(<xsl:value-of select="@callout"/>)</xsl:when>
  50. <xsl:otherwise>(<xsl:value-of select="$fnid"/>)</xsl:otherwise>
  51. </xsl:choose>
  52. </xsl:template>
  53. <xsl:template match="*[contains(@class,' topic/xref ')]" mode="dita-ot:text-only">
  54. <xsl:apply-templates select="node()[not(contains(@class,' topic/desc '))]" mode="dita-ot:text-only"/>
  55. </xsl:template>
  56. <xsl:template match="*[contains(@class,' topic/boolean ')]" mode="dita-ot:text-only">
  57. <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="@state"/>
  58. </xsl:template>
  59. <xsl:template match="*[contains(@class,' topic/state ')]" mode="dita-ot:text-only">
  60. <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="@name"/><xsl:text>=</xsl:text><xsl:value-of select="@value"/>
  61. </xsl:template>
  62. </xsl:stylesheet>