last_transformer.xsl 2.03 KB
Newer Older
1
<?xml version="1.0" encoding="UTF-8"?>
2
3

<xsl:stylesheet
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
  xpath-default-namespace="http://www.w3.org/1999/xhtml"
  xmlns="http://www.w3.org/1999/xhtml">

  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <!-- Traitement du titre et des auteurs du document -->
  <xsl:template match="body">
    <body>
      <h1><xsl:value-of select="/html/head/title"/></h1>
      <p class="authors"><xsl:value-of select="/html/head/meta[@name='author']/@content"/></p>
bperraud's avatar
bperraud committed
21

22
23
24
      <xsl:apply-templates select="node()|@*"/>
    </body>
  </xsl:template>
bperraud's avatar
bperraud committed
25

bperraud's avatar
bperraud committed
26
27
28
29
30
  <!-- Suppression des div de section -->
  <xsl:template match="div[@class='section']">
    <xsl:apply-templates select="node()"/>
  </xsl:template>

31
32
33
34
35
36
37
38
39
40
  <!-- Suppression des div de micro-formats -->
  <xsl:template match="div[@data-hdoc-type=('definition', 'example', 'remark', 'advice', 'warning', 'complement', 'emphasis')]">
    <xsl:apply-templates select="node()"/>
  </xsl:template>

  <!-- Suppression des div génériques -->
  <xsl:template match="div">
    <xsl:apply-templates select="node()"/>
  </xsl:template>

41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  <!-- Traitement des liens hypertextes pour autoriser le saut à la ligne-->
  <xsl:template match="a">
    <a>
      <xsl:copy-of select="@*" />
      <xsl:call-template name="addWordBreak">
        <xsl:with-param name="input" select="."/>
      </xsl:call-template>
    </a>
  </xsl:template>

  <xsl:template name="addWordBreak">
    <xsl:param name="input"/>
    <xsl:value-of select="substring($input,1,1)"/><wbr />
    <xsl:if test="substring($input,2)">
      <xsl:call-template name="addWordBreak">
        <xsl:with-param name="input" select="substring($input,2)"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>

61
62
  <!-- Cleaning des footers vides -->
  <xsl:template match="footer[not(node())]"/>
bperraud's avatar
bperraud committed
63

bperraud's avatar
bperraud committed
64
  <!-- Cleaning des tags -->
65
  <xsl:template match="div[@data-hdoc-type='tags']"/>
bperraud's avatar
bperraud committed
66

67
</xsl:stylesheet>