diff --git a/mindmapping_to_hdoc/samples/the_witcher.mm b/mindmapping_to_hdoc/samples/the_witcher.mm index 322ac86e31d0a5d33334fa97540a4465f42fe00a..c4f45e70ec6f4b7c2135e509035c0bfa4586e1b7 100644 --- a/mindmapping_to_hdoc/samples/the_witcher.mm +++ b/mindmapping_to_hdoc/samples/the_witcher.mm @@ -1,6 +1,8 @@ + + @@ -36,8 +38,6 @@ - - diff --git a/mindmapping_to_hdoc/xslt/sect.xsl b/mindmapping_to_hdoc/xslt/sect.xsl index 8d23c7fa1ecbcab64fe6d975146dfe05d454c1b6..3dff62ba8bfaae1ab683a263acbc044661a072a8 100755 --- a/mindmapping_to_hdoc/xslt/sect.xsl +++ b/mindmapping_to_hdoc/xslt/sect.xsl @@ -5,8 +5,10 @@ + + RNGSchema="http://scenari.utc.fr/hdoc/schemas/xhtml/hdoc1-xhtml.rng" type="xml" @@ -22,7 +24,7 @@ - + <xsl:value-of select="@TEXT"/> @@ -41,7 +43,26 @@ <xsl:value-of select="richcontent"/> </h1> </header> + <!--Introduction--> + <xsl:if test="child::*[contains(@TEXT, '#intro')]"> + <xsl:element name="section"> + <xsl:attribute name="data-hdoc-type">introduction</xsl:attribute> + <xsl:value-of + select="utc:string-remove-all(child::*[contains(@TEXT, '#intro')][1]/@TEXT, '#intro ')" + /> + </xsl:element> + </xsl:if> + <!-- Process children --> <xsl:apply-templates select="node"/> + <!--Conclusion--> + <xsl:if test="child::*[contains(@TEXT, '#conclu')]"> + <xsl:element name="section"> + <xsl:attribute name="data-hdoc-type">conclusion</xsl:attribute> + <xsl:value-of + select="utc:string-remove-all(child::*[contains(@TEXT, '#conclu')][1]/@TEXT, '#conclu ')" + /> + </xsl:element> + </xsl:if> </xsl:element> </xsl:template> @@ -51,11 +72,16 @@ priority="1"> <xd:doc xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"> <xd:desc> - <xd:p/> + <xd:p/> </xd:desc> </xd:doc> <xsl:element name="section"> <xsl:attribute name="data-hdoc-type">unit-of-content</xsl:attribute> + <xsl:if test="child::attribute[@NAME='anchor']"> + <xsl:attribute name="id"> + <xsl:value-of select="child::attribute[@NAME='anchor'][1]/@VALUE"></xsl:value-of> + </xsl:attribute> + </xsl:if> <header> <h1> <xsl:value-of select="@TEXT"/> @@ -66,12 +92,14 @@ </xsl:element> </xsl:template> + <!-- Paragraph --> <xsl:template match="node[contains(@TEXT, '#p')]" priority="2"> <xsl:element name="p"> <xsl:value-of select="utc:string-remove-all(@TEXT, '#p ')"/> </xsl:element> </xsl:template> + <!-- Link : need to use anchor attribute ? --> <xsl:template match="node[contains(@TEXT, '#a')]" priority="2"> <xsl:element name="a"> <xsl:attribute name="href"> @@ -82,12 +110,14 @@ </xsl:element> </xsl:template> + <!-- Default behavior for intro and conclu nodes : do nothing --> + <xsl:template match="node[contains(@TEXT, '#intro')] | node[contains(@TEXT, '#conclu')]" priority="3"/> + <xsl:template match="richcontent"> <xsl:value-of select="html/body/p"/> </xsl:template> <!-- Utility functions --> - <xsl:function name="utc:string-remove-all" as="xs:string"> <xsl:param name="text" as="xs:string"/> <xsl:param name="replace" as="xs:string"/> @@ -97,7 +127,7 @@ <xsl:with-param name="replace" select="$replace"/> </xsl:call-template> </xsl:variable> - <xsl:value-of select="$ret"></xsl:value-of> + <xsl:value-of select="$ret"/> </xsl:function> <xsl:template name="string-remove-all">