Commit 6dd9f05d authored by Benoit Villain's avatar Benoit Villain

hdoc_to_canoprof V3

parent 43bbc2ee
...@@ -31,3 +31,39 @@ User Story ...@@ -31,3 +31,39 @@ User Story
* Put the `.hdoc` files in the input folder * Put the `.hdoc` files in the input folder
* Run `run.bat` or `run.sh` according to your operating system * Run `run.bat` or `run.sh` according to your operating system
* The output files are in the output folder * The output files are in the output folder
DONE
---
Opale Hdoc Canoprof
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Module fichier hdoc Programme
Objectif / Introduction / Conclusion du module Section contenant une div avec un header et du texte Séance contenant une activité de type description courte
Division ou activité Section Séance
Grain opale Section contenant une section Activité Texte et multimédia
Parties et sous-partie d’un grain section/section/section... Activité Texte et multimédia
Définition div avec un attribut data-hdoc-type = definiton Définition
Exemple div avec un attribut data-hdoc-type = example Exemple
Remarque div avec un attribut data-hdoc-type = remark Hypothèse (information?)
Conseil div avec un attribut data-hdoc-type = advice Conseil
Attention div avec un attribut data-hdoc-type = warning Attention
Complément div avec un attribut data-hdoc-type = complement Complément
Fondamental div avec un attribut data-hdoc-type = emphasis Méthode
Remarque : le texte, les listes, les tableaux fonctionnent.
TODO
---
Points particuliers de Canoprof :
Questions avec corrigé
Consigne élève
Remarque prof
Blocs :
Information Pas traité (à faire dans Opale_to_Hdoc et Hdoc_to_canoprof)
Méthode Pas traité (à faire dans Opale_to_Hdoc et Hdoc_to_canoprof)
Rappel Pas traité (à faire dans Opale_to_Hdoc et Hdoc_to_canoprof)
Syntaxe Pas traité Pas traité (à faire dans Opale_to_Hdoc et Hdoc_to_canoprof)
Texte légal Pas traité Pas traité (à faire dans Opale_to_Hdoc et Hdoc_to_canoprof)
Simulation Pas traité Pas traité (à faire dans Opale_to_Hdoc et Hdoc_to_canoprof)
\ No newline at end of file
...@@ -77,6 +77,17 @@ ...@@ -77,6 +77,17 @@
<xsl:if test="not(./h:header/h:h1/text())"> Untitled </xsl:if> <xsl:if test="not(./h:header/h:h1/text())"> Untitled </xsl:if>
<xsl:value-of select="./h:header/h:h1"/> <xsl:value-of select="./h:header/h:h1"/>
</sp:title> </sp:title>
<!-- If a SOLO section have a div; this div become a Canoprof's resume of the current seance.
<xsl:if test="./h:div/*">
<sp:abstract>
<cp:txtDesc>
<xsl:apply-templates select="./h:div/*" mode="resume"/>
</cp:txtDesc>
</sp:abstract>
</xsl:if>
-->
</cp:sessionM> </cp:sessionM>
<xsl:apply-templates select="./*"/> <xsl:apply-templates select="./*"/>
</cp:session> </cp:session>
...@@ -144,10 +155,38 @@ ...@@ -144,10 +155,38 @@
</xsl:template> </xsl:template>
<!-- CanoProf's Activite TetM (section) = hdoc's body/Section/Section/(Section...) = Opale's Grain (partie) --> <!-- CanoProf's Activite TetM (section) = hdoc's body/Section/Section/(Section...) = Opale's Grain (partie) -->
<!-- TODO -->
<xsl:template match="h:section" mode="CanoprofSection"> <xsl:template match="h:section" mode="CanoprofSection">
<sp:section>
<cp:textActivity>
<cp:activityM>
<sp:title>
<xsl:if test="not(./h:header/h:h1/text())"> Untitled </xsl:if>
<xsl:value-of select="./h:header/h:h1"/>
</sp:title>
<xsl:if test="(./h:header/h:div[@data-hdoc-type = 'introduction']/text())">
<xsl:apply-templates
select="./h:header/h:div[@data-hdoc-type = 'introduction']"/>
</xsl:if>
</cp:activityM>
<xsl:if test="./h:div/*">
<sp:body>
<cp:blocks>
<xsl:apply-templates select="./h:div"/>
</cp:blocks>
</sp:body>
</xsl:if>
<xsl:if test="./h:section/*">
<xsl:apply-templates select="./h:section" mode="CanoprofSection"/>
</xsl:if>
</cp:textActivity>
</sp:section>
</xsl:template> </xsl:template>
<!-- TODO : intro/conlcusion/obj d'une activité....
<xsl:template match="h:section[@data-hdoc-type = 'introduction'] | h:section[@data-hdoc-type = 'conclusion']">
</xsl:template>
-->
<!-- Div related templates --> <!-- Div related templates -->
<!-- Formatting content based on @data-hdoc-type --> <!-- Formatting content based on @data-hdoc-type -->
<xsl:template match="h:div"> <xsl:template match="h:div">
...@@ -359,6 +398,18 @@ ...@@ -359,6 +398,18 @@
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
<!--
<xsl:template match="h:p | h:ul | h:ol" mode="resume">
<xsl:if test="not(preceding-sibling::h:p)">
<xsl:if test="not(preceding-sibling::h:ul)">
<xsl:if test="not(preceding-sibling::h:ol)">
<xsl:call-template name="blockloop"/>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:template>
-->
<xsl:template name="blockloop"> <xsl:template name="blockloop">
<xsl:for-each select=". | ./following-sibling::*"> <xsl:for-each select=". | ./following-sibling::*">
<xsl:choose> <xsl:choose>
...@@ -401,6 +452,7 @@ ...@@ -401,6 +452,7 @@
</sc:inlineStyle> </sc:inlineStyle>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="h:em"> <xsl:template match="h:em">
<xsl:if test="./* | ./text()"> <xsl:if test="./* | ./text()">
<sc:inlineStyle role="emphasis"> <sc:inlineStyle role="emphasis">
...@@ -408,6 +460,7 @@ ...@@ -408,6 +460,7 @@
</sc:inlineStyle> </sc:inlineStyle>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="h:q"> <xsl:template match="h:q">
<xsl:if test="./* | ./text()"> <xsl:if test="./* | ./text()">
<sc:phrase role="quote"> <sc:phrase role="quote">
...@@ -415,6 +468,7 @@ ...@@ -415,6 +468,7 @@
</sc:phrase> </sc:phrase>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="h:sub"> <xsl:template match="h:sub">
<xsl:if test="./* | ./text()"> <xsl:if test="./* | ./text()">
<sc:textLeaf role="ind"> <sc:textLeaf role="ind">
...@@ -422,6 +476,7 @@ ...@@ -422,6 +476,7 @@
</sc:textLeaf> </sc:textLeaf>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="h:sup"> <xsl:template match="h:sup">
<xsl:if test="./* | ./text()"> <xsl:if test="./* | ./text()">
<sc:textLeaf role="exp"> <sc:textLeaf role="exp">
...@@ -429,6 +484,7 @@ ...@@ -429,6 +484,7 @@
</sc:textLeaf> </sc:textLeaf>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="h:a"> <xsl:template match="h:a">
<xsl:if test="./* | ./text()"> <xsl:if test="./* | ./text()">
<sc:phrase role="url"> <sc:phrase role="url">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment