Commit 30b4ac46 authored by Fabien Boucaud's avatar Fabien Boucaud
Browse files

Ajout fichier exemple pertinent et screenshots du résultat

parent 8f3bcd38
<!doctype html>
<html lang="en">
<head>
<title>nf29_framapad_to_opale</title>
<meta name="generator" content="Etherpad">
<meta name="author" content="Etherpad">
<meta name="changedby" content="Etherpad">
<meta charset="utf-8">
<style> * { font-family: arial, sans-serif;
font-size: 13px;
line-height: 17px; }ul.indent { list-style-type: none; }ol { list-style-type: none; padding-left:0;}body > ol { counter-reset: first second third fourth fifth sixth seventh eigth ninth tenth eleventh twelth thirteenth fourteenth fifteenth sixteenth; }ol > li:before {content: counter(first) ". " ;counter-increment: first;}ol > ol > li:before {content: counter(first) "." counter(second) ". " ;counter-increment: second;}ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) ". ";counter-increment: third;}ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) ". ";counter-increment: fourth;}ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) ". ";counter-increment: fifth;}ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) ". ";counter-increment: sixth;}ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) ". ";counter-increment: seventh;}ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) ". ";counter-increment: eigth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) ". ";counter-increment: ninth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) ". ";counter-increment: tenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) ". ";counter-increment: eleventh;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) ". ";counter-increment: twelth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) ". ";counter-increment: thirteenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) ". ";counter-increment: fourteenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) ". ";counter-increment: fifteenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) "." counter(sixthteenth) ". ";counter-increment: sixthteenth;}ol{ text-indent: 0px; }ol > ol{ text-indent: 10px; }ol > ol > ol{ text-indent: 20px; }ol > ol > ol > ol{ text-indent: 30px; }ol > ol > ol > ol > ol{ text-indent: 40px; }ol > ol > ol > ol > ol > ol{ text-indent: 50px; }ol > ol > ol > ol > ol > ol > ol{ text-indent: 60px; }ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 70px; }ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 80px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 90px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 100px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 110px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { text-indent: 120px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 130px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 140px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 150px; }sub{vertical-align:sub;font-size:smaller}sub{vertical-align:sup;font-size:smaller}h1{font-size: 2.0em;line-height: 120%;} h2{font-size: 1.5em;line-height: 120%;} h3{font-size: 1.17em;line-height: 120%;} h4{line-height: 120%;} h5{font-size: 0.83em;line-height: 120%;} h6{font-size: 0.75em;line-height: 120%;} code{font-family: monospace;}[data-color="black"], .color\:black { color:black; }
[data-color="red"], .color\:red { color:red; }
[data-color="green"], .color\:green { color:green; }
[data-color="blue"], .color\:blue { color:blue; }
[data-color="yellow"], .color\:yellow { color:yellow; }
[data-color="orange"], .color\:orange { color:orange; }</style>
</head>
<body> <h1>Tests etherpad_to_opale</h1><br> <h2>Résultats des tests</h2><br><ul class="bullet"><li>A l&#x27;heure actuelle un etherpad est transform&#233; en un module Opale avec:</li><ul class="bullet"><li>un grain intitul&#233; &quot;Contenu&quot; par d&#233;faut</li><ul class="bullet"><li>tout le contenu du pad est dans cet unique grain</li></ul></ul><li>Le point pr&#233;c&#233;dent d&#233;coule de ce qu&#x27;il n&#x27;y a ni de gestion de titres (pas de titres dans la version etherpad impl&#233;ment&#233;e &#224; l&#x27;heure actuelle) ni gestion de tags personnalis&#233;s et donc pas de gestion de la structure du document (tout est laiss&#233; dans un seul grain)</li><ul class="bullet"><li>En cons&#233;quence, si il y a des titres dans le pad, ils n&#x27;ont probablement pas &#233;t&#233; transform&#233;s pour prendre en compte le format hdoc et ce que le sch&#233;ma attend, ce qui r&#233;sulte en une erreur de validation et un abandon de la conversion du fichier.</li></ul><li>Les textes barr&#233;s, en italique ou en gras sont tous transform&#233;s en texte mis en emphase dans le r&#233;sultat Opale (pas de mise en forme du texte correspondante disponible)</li><li>Les indentations, cod&#233;es avec &lt;ul class=&quot;indent&quot;&gt;&lt;&#x2F;ul&gt;, sont mal impl&#233;ment&#233;es et donnent des items de liste non-ordonn&#233;e dans le Opale r&#233;sultat, au lieu d&#x27;une indentation.</li><li>Les listes imbriqu&#233;es ne sont pas format&#233;es pour valider le sch&#233;ma hdoc: <em>&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;&lt;&#x2F;ul&gt;</em> devrait &#234;tre <em>&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;li&gt;&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;, </em>c&#x27;est &#224; dire qu&#x27;une nouvelle liste doit &#234;tre encapsul&#233;e dans une balise de list item.</li><ul class="bullet"><li>En cons&#233;quence, le sch&#233;ma ne valide pas le hdoc cr&#233;&#233; par le convertisseur etherpad_to_hdoc et le fichier est abandonn&#233; pour le reste de la conversion.</li></ul></ul><br> <h2>Améliorations à implémenter pour passer à un convertisseur framapad_to_opale</h2><br><ul class="bullet"><li>Mettre en place la gestion des listes imbriqu&#233;es (v&#233;rifier si c&#x27;est g&#233;r&#233; par le convertisseur hdoc_to_opale)</li><li>Mettre en place la gestion des indentations cod&#233;es via <em>&lt;ul class=&quot;indent&quot;&gt;&lt;&#x2F;ul&gt;</em></li><li>Impl&#233;menter la gestion d&#x27;un framapad structur&#233; par des titres</li><li>Ajouter la gestion des nouvelles possibilit&#233;s de mise en forme du texte</li><ul class="bullet"><li>texte color&#233;</li><li>exposants</li><li>indices</li><li>code (pas impl&#233;ment&#233; en hdoc &#224; l&#x27;heure actuelle donc travail plus cons&#233;quent &#224; pr&#233;voir)</li></ul></ul><br> <h1>Convertisseur framapad_to_opale</h1><br> <h2>Comment mettre en place les améliorations ?</h2><br><ul class="bullet"><li>Listes imbriqu&#233;es</li></ul>A priori les listes imbriqu&#233;es sont d&#233;j&#224; impl&#233;ment&#233;es en hdoc (pour autant qu&#x27;on puisse en juger en inspectant le sch&#233;ma du format), donc il s&#x27;agira simplement de s&#x27;assurer que les listes imbriqu&#233;es sont bien construites formellement parlant et que toute nouvelle liste &lt;ul&gt; ou &lt;ol&gt; au sein d&#x27;une premi&#232;re liste soit bien encadr&#233;e d&#x27;une balise &lt;li&gt;&lt;&#x2F;li&gt; (pas le cas &#224; l&#x27;heure actuelle). Il faudra ensuite s&#x27;assurer que les listes imbriqu&#233;es sont bien prises en compte et trait&#233;es par le convertisseur hdoc to opale.<br><br><ul class="bullet"><li>Indentation</li></ul>On parle ici de l&#x27;indentation telle qu&#x27;elle est cod&#233;e en html en dehors des balises &lt;code&gt;, qui sont un cas particulier &#224; &#233;tudier &#224; part. Le plus instinctif serait de traiter les balises &lt;ul class=&quot;indent&quot;&gt; de fa&#231;on sp&#233;cifique par rapport aux balises &lt;ul&gt; classiques et de les remplacer par un simple nouveau paragraphe avec indentation. Etant donn&#233; le principe d&#x27;un framapad, il ne nous semble pas pertinent de prendre en compte de multiples indentations (en tout cas &#224; l&#x27;heure actuelle) successives, puisqu&#x27;on traite du texte et que le texte n&#x27;a <em>a priori</em> l&#x27;utilit&#233; que d&#x27;une indentation maximum pour signifier un nouveau paragraphe.<br><br><ul class="bullet"><li>Titres</li></ul>Pour ce qui est de la gestion des titres, nous avons pu voir qu&#x27;ils sont cod&#233;s de &lt;h1&gt; &#224; &lt;h6&gt; apr&#232;s l&#x27;export en HTML. Il va s&#x27;agir de les transformer pour respecter le sch&#233;ma hdoc, c&#x27;est-&#224;-dire de tout transformer en &lt;h1&gt; ou &lt;h6&gt; et en recr&#233;ant la &quot;profondeur&quot; des titres en cr&#233;ant des divisions ou des sections. Nous proposons que pour chaque &lt;h1&gt; rencontr&#233; dans un fichier de framapad, on cr&#233;e une section dont ce sera le titre. Ensuite, si le titre suivant est autre chose qu&#x27;un &lt;h1&gt;, on produit une nouvelle division &#224; l&#x27;int&#233;rieur de la section dont ce sera le titre. On proc&#233;dera de m&#234;me pour les autres niveaux de titre, ajoutant une nouvelle division &#224; l&#x27;int&#233;rieur de celle du &lt;h1&gt; pr&#233;c&#233;dent pour un &lt;h2&gt;. En revanche, si l&#x27;on tombe sur un deuxi&#232;me &lt;h2&gt;, cela produira une nouvelle division au m&#234;me niveau de profondeur que la pr&#233;c&#233;dente. Enfin, si l&#x27;on devait tomber, au sein du niveau de profondeur d&#x27;un &lt;h1&gt;, sur un &lt;h3&gt; ou &lt;h4&gt;, etc. avant un &lt;h2&gt; par exemple, nous l&#x27;interpr&#233;terons comme s&#x27;il s&#x27;agissait d&#x27;un &lt;h2&gt;. Et ainsi de suite.<br><br><ul class="bullet"><li>Texte color&#233;</li></ul>Ce n&#x27;est apparemment pas une fonctionnalit&#233; propos&#233;e par Opale, aussi nous nous contenterons de proc&#233;der ainsi que l&#x27;ont fait nos pr&#233;d&#233;cesseurs sur le projet avec les autres balises de mise en forme du texte (italique, gras,...): nous remplacerons cela par un &lt;em&gt; g&#233;n&#233;rique.<br><br><ul class="bullet"><li>Exposants&#x2F;indices (&lt; sub &gt; &lt; sup &gt;)</li></ul>Il s&#x27;agit de balises d&#233;j&#224; prises en compte par le format hdoc telles quelles et le convertisseur hdoc to opale les traite <em>a priori</em> &#233;galement. Rien &#224; modifier: il faut juste tester.<br><br><ul class="bullet"><li>Code</li></ul>Am&#233;lioration de plus faible priorit&#233;. Etant donn&#233; que la balise &lt;code&gt;&lt;&#x2F;code&gt; n&#x27;est pas encore impl&#233;ment&#233;e dans le format hdoc, il s&#x27;agira de l&#x27;ajouter au sch&#233;ma et d&#x27;ajouter sa prise en compte dans le convertisseur hdoc to opale, en d&#233;terminant si Opale propose quelque chose du m&#234;me ordre pour la mise en forme d&#x27;un code informatique (et auquel cas le mettre &#224; profit) ou, si ce n&#x27;est pas le cas, comment il faudra traduire le texte concern&#233; au format Opale.<br>Pour l&#x27;instant, &#233;tant donn&#233; le travail que cela repr&#233;sente pour une fonctionnalit&#233; relativement mineure par rapport &#224; la question des titres et des listes imbriqu&#233;es, nous nous contenterons de supprimer les balises &lt;code&gt; de sorte &#224; &#233;viter les erreurs et l&#x27;ajouterons &#224; la liste des fonctionnalit&#233;s non g&#233;r&#233;es &#224; l&#x27;heure actuelle.<br><br> <h3>Tests des améliorations implémentées</h3><br><ul class="bullet"><li>Listes imbriqu&#233;es</li></ul>Apr&#232;s impl&#233;mentation initiale les listes imbriqu&#233;es fonctionnaient bien et &#233;taient bien conserv&#233;es jusqu&#x27;en Opale, mais certains noeuds de texte qui &#233;taient les fr&#232;res directs de noeuds &lt;ul&gt; ou &lt;ol&gt; &#233;taient perdus &#224; cause de la fa&#231;on dont la reconnaissance des paragraphes sont actuellement g&#233;r&#233;s par nos xslt. Le probl&#232;me a cependant &#233;t&#233; r&#233;gl&#233; et on a d&#233;sormais une conversion coh&#233;rente et fid&#232;le de pads contenant des listes imbriqu&#233;es.<br><br><br><ul class="bullet"><li>Indentation</li></ul>Impl&#233;mentation finale pr&#233;vue pour le rendu du 12&#x2F;01.<br><br><ul class="bullet"><li>Titres</li></ul>Les balises titres sont supprim&#233;es &#224; l&#x27;heure actuelle. Impl&#233;mentation de la vraie solution pr&#233;vue pour le rendu du 12&#x2F;01.<br><br><ul class="bullet"><li>Texte color&#233;</li></ul>En appliquant le m&#234;me genre de code que pour les autres balises de mise en forme du texte d&#233;j&#224; impl&#233;ment&#233;es par les groupes pr&#233;c&#233;dents, on arrive bien &#224; remplacer les balises &lt;span data-color=&quot;...&quot;&gt; par des &lt;em&gt;.<br><br><ul class="bullet"><li>Exposants&#x2F;indices (&lt; sub &gt; &lt; sup &gt;)</li></ul>Le test avec un fichier contenant des balises &lt;sub&gt;&lt;&#x2F;sub&gt; et &lt;sup&gt;&lt;&#x2F;sup&gt; s&#x27;est d&#233;roul&#233; sans probl&#232;me: on retrouve bien les indices et les exposants une fois qu&#x27;on a ouvert le .scar produit dans myScenari.<br><br><ul class="bullet"><li>Code</li></ul>La mani&#232;re dont le code est export&#233; par framapad semble probl&#233;matique pour une impl&#233;mentation du traitement des balises &lt;code&gt; dans le convertisseur framapad_to_opale, mais pour l&#x27;instant les balises sont supprim&#233;es et ne g&#234;nent pas la conversion.<br><br> <h1>Indications de revue</h1><br><ul class="bullet"><li>T1: Utiliser le fichier de ce pad export&#233; en html r&#233;sulte actuellement en une erreur et un abandon de la conversion (d&#x27;o&#249; l&#x27;absence d&#x27;output apr&#232;s ex&#233;cution), car les balises titres, entre autres, ne sont pas encore g&#233;r&#233;es par le convertisseur. Il faut donc utiliser un fichier issu d&#x27;un etherpad, potentiellement augment&#233; de quelques balises &lt;sub&gt;&lt;&#x2F;sub&gt; et &lt;sup&gt;&lt;&#x2F;sup&gt; ajout&#233;es manuellement, pour constater le r&#233;sultat actuel du convertisseur. Un tel fichier est pr&#233;sent sur le git: sample.html dans framapad_to_opale&#x2F;input</li></ul><br><ul class="bullet"><li>T2 (05&#x2F;01): Normalement, n&#x27;importe quel framapad export&#233; au format html doit maintenant fournir un r&#233;sultat converti en .scar. Les balises de titre et de code sont pour l&#x27;instant ignor&#233;es (remplac&#233;es par un texte d&#x27;information sur la non prise en compte actuelle de ces balises). Les listes imbriqu&#233;es fonctionnent d&#233;sormais correctement. L&#x27;indentation telle que propos&#233;e par framapad est pour l&#x27;instant traduite en liste non ordonn&#233;e, mais ceci ainsi que la gestion de la structuration du document par les titres devraient &#234;tre fonctionnels pour la prochaine revue.</li></ul><br><ul class="bullet"><li>T3 (12&#x2F;01):</li></ul><br><br> <h1>Mises en forme du texte possibles avec framapad</h1><br><span data-color="black">D&#233;couverte de framapad&nbsp;</span><br><br><ul class="indent"><li>Texte normal avec indentation.</li><li><br></li></ul>titre3<br><ul class="indent"><li><br></li></ul><br>Titre 2: h2 ?<br>#activite-autoeval<br><br>Texte sans indentation avec du <strong>gras</strong>, de l&#x27;<em>italique</em>, du <u>soulign&#233;</u> et du <s>barr&#233;</s> et <span data-color="orange">du texte color&#233;</span>.<br><br>Texte avec un <sup>exposant </sup>et avec un <sub>indice</sub><br><br>Titre 3: h3 ?<br><br><ol class="number"><li>Liste</li><li>Ordonn&#233;e</li></ol><br><ul class="bullet"><li>Liste</li><li>Non</li><li>Ordonn&#233;e</li><ul class="bullet"><li>Avec</li><li>imbri</li><ul class="bullet"><li>cation</li></ul></ul></ul><br> <code>Texte avec mise en forme de code:</code><ul class="indent"><li>auto-indentation {</li></ul> <code> if x blabla then {</code> <code> blabla</code> <code> }</code><ul class="indent"><li>}</li></ul><br>test<br><ul class="indent"><li><br></li></ul></body>
</html>
<!doctype html>
<html lang="en">
<head>
<title>nf29_framapad_to_opale</title>
<meta name="generator" content="Etherpad">
<meta name="author" content="Etherpad">
<meta name="changedby" content="Etherpad">
<meta charset="utf-8">
<style> * { font-family: arial, sans-serif;
font-size: 13px;
line-height: 17px; }ul.indent { list-style-type: none; }ol { list-style-type: none; padding-left:0;}body > ol { counter-reset: first second third fourth fifth sixth seventh eigth ninth tenth eleventh twelth thirteenth fourteenth fifteenth sixteenth; }ol > li:before {content: counter(first) ". " ;counter-increment: first;}ol > ol > li:before {content: counter(first) "." counter(second) ". " ;counter-increment: second;}ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) ". ";counter-increment: third;}ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) ". ";counter-increment: fourth;}ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) ". ";counter-increment: fifth;}ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) ". ";counter-increment: sixth;}ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) ". ";counter-increment: seventh;}ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) ". ";counter-increment: eigth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) ". ";counter-increment: ninth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) ". ";counter-increment: tenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) ". ";counter-increment: eleventh;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) ". ";counter-increment: twelth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) ". ";counter-increment: thirteenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) ". ";counter-increment: fourteenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) ". ";counter-increment: fifteenth;}ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > li:before {content: counter(first) "." counter(second) "." counter(third) "." counter(fourth) "." counter(fifth) "." counter(sixth) "." counter(seventh) "." counter(eigth) "." counter(ninth) "." counter(tenth) "." counter(eleventh) "." counter(twelth) "." counter(thirteenth) "." counter(fourteenth) "." counter(fifteenth) "." counter(sixthteenth) ". ";counter-increment: sixthteenth;}ol{ text-indent: 0px; }ol > ol{ text-indent: 10px; }ol > ol > ol{ text-indent: 20px; }ol > ol > ol > ol{ text-indent: 30px; }ol > ol > ol > ol > ol{ text-indent: 40px; }ol > ol > ol > ol > ol > ol{ text-indent: 50px; }ol > ol > ol > ol > ol > ol > ol{ text-indent: 60px; }ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 70px; }ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 80px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 90px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 100px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 110px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { text-indent: 120px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 130px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 140px; }ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol{ text-indent: 150px; }sub{vertical-align:sub;font-size:smaller}sub{vertical-align:sup;font-size:smaller}h1{font-size: 2.0em;line-height: 120%;} h2{font-size: 1.5em;line-height: 120%;} h3{font-size: 1.17em;line-height: 120%;} h4{line-height: 120%;} h5{font-size: 0.83em;line-height: 120%;} h6{font-size: 0.75em;line-height: 120%;} code{font-family: monospace;}[data-color="black"], .color\:black { color:black; }
[data-color="red"], .color\:red { color:red; }
[data-color="green"], .color\:green { color:green; }
[data-color="blue"], .color\:blue { color:blue; }
[data-color="yellow"], .color\:yellow { color:yellow; }
[data-color="orange"], .color\:orange { color:orange; }</style>
</head>
<body> <h1>Tests etherpad_to_opale</h1><br> <h2>Résultats des tests</h2><br><ul class="bullet"><li>A l&#x27;heure actuelle un etherpad est transform&#233; en un module Opale avec:</li><ul class="bullet"><li>un grain intitul&#233; &quot;Contenu&quot; par d&#233;faut</li><ul class="bullet"><li>tout le contenu du pad est dans cet unique grain</li></ul></ul><li>Le point pr&#233;c&#233;dent d&#233;coule de ce qu&#x27;il n&#x27;y a ni de gestion de titres (pas de titres dans la version etherpad impl&#233;ment&#233;e &#224; l&#x27;heure actuelle) ni gestion de tags personnalis&#233;s et donc pas de gestion de la structure du document (tout est laiss&#233; dans un seul grain)</li><ul class="bullet"><li>En cons&#233;quence, si il y a des titres dans le pad, ils n&#x27;ont probablement pas &#233;t&#233; transform&#233;s pour prendre en compte le format hdoc et ce que le sch&#233;ma attend, ce qui r&#233;sulte en une erreur de validation et un abandon de la conversion du fichier.</li></ul><li>Les textes barr&#233;s, en italique ou en gras sont tous transform&#233;s en texte mis en emphase dans le r&#233;sultat Opale (pas de mise en forme du texte correspondante disponible)</li><li>Les indentations, cod&#233;es avec &lt;ul class=&quot;indent&quot;&gt;&lt;&#x2F;ul&gt;, sont mal impl&#233;ment&#233;es et donnent des items de liste non-ordonn&#233;e dans le Opale r&#233;sultat, au lieu d&#x27;une indentation.</li><li>Les listes imbriqu&#233;es ne sont pas format&#233;es pour valider le sch&#233;ma hdoc: <em>&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;&lt;&#x2F;ul&gt;</em> devrait &#234;tre <em>&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;li&gt;&lt;ul&gt;&lt;li&gt;&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;&lt;&#x2F;li&gt;&lt;&#x2F;ul&gt;, </em>c&#x27;est &#224; dire qu&#x27;une nouvelle liste doit &#234;tre encapsul&#233;e dans une balise de list item.</li><ul class="bullet"><li>En cons&#233;quence, le sch&#233;ma ne valide pas le hdoc cr&#233;&#233; par le convertisseur etherpad_to_hdoc et le fichier est abandonn&#233; pour le reste de la conversion.</li></ul></ul><br> <h2>Améliorations à implémenter pour passer à un convertisseur framapad_to_opale</h2><br><ul class="bullet"><li>Mettre en place la gestion des listes imbriqu&#233;es (v&#233;rifier si c&#x27;est g&#233;r&#233; par le convertisseur hdoc_to_opale)</li><li>Mettre en place la gestion des indentations cod&#233;es via <em>&lt;ul class=&quot;indent&quot;&gt;&lt;&#x2F;ul&gt;</em></li><li>Impl&#233;menter la gestion d&#x27;un framapad structur&#233; par des titres</li><li>Ajouter la gestion des nouvelles possibilit&#233;s de mise en forme du texte</li><ul class="bullet"><li>texte color&#233;</li><li>exposants</li><li>indices</li><li>code (pas impl&#233;ment&#233; en hdoc &#224; l&#x27;heure actuelle donc travail plus cons&#233;quent &#224; pr&#233;voir)</li></ul></ul><br> <h1>Convertisseur framapad_to_opale</h1><br> <h2>Comment mettre en place les améliorations ?</h2><br><ul class="bullet"><li>Listes imbriqu&#233;es</li></ul>A priori les listes imbriqu&#233;es sont d&#233;j&#224; impl&#233;ment&#233;es en hdoc (pour autant qu&#x27;on puisse en juger en inspectant le sch&#233;ma du format), donc il s&#x27;agira simplement de s&#x27;assurer que les listes imbriqu&#233;es sont bien construites formellement parlant et que toute nouvelle liste &lt;ul&gt; ou &lt;ol&gt; au sein d&#x27;une premi&#232;re liste soit bien encadr&#233;e d&#x27;une balise &lt;li&gt;&lt;&#x2F;li&gt; (pas le cas &#224; l&#x27;heure actuelle). Il faudra ensuite s&#x27;assurer que les listes imbriqu&#233;es sont bien prises en compte et trait&#233;es par le convertisseur hdoc to opale.<br><br><ul class="bullet"><li>Indentation</li></ul>On parle ici de l&#x27;indentation telle qu&#x27;elle est cod&#233;e en html en dehors des balises &lt;code&gt;, qui sont un cas particulier &#224; &#233;tudier &#224; part. Le plus instinctif serait de traiter les balises &lt;ul class=&quot;indent&quot;&gt; de fa&#231;on sp&#233;cifique par rapport aux balises &lt;ul&gt; classiques et de les remplacer par un simple nouveau paragraphe avec indentation. Etant donn&#233; le principe d&#x27;un framapad, il ne nous semble pas pertinent de prendre en compte de multiples indentations (en tout cas &#224; l&#x27;heure actuelle) successives, puisqu&#x27;on traite du texte et que le texte n&#x27;a <em>a priori</em> l&#x27;utilit&#233; que d&#x27;une indentation maximum pour signifier un nouveau paragraphe.<br><br><ul class="bullet"><li>Titres</li></ul>Pour ce qui est de la gestion des titres, nous avons pu voir qu&#x27;ils sont cod&#233;s de &lt;h1&gt; &#224; &lt;h6&gt; apr&#232;s l&#x27;export en HTML. Il va s&#x27;agir de les transformer pour respecter le sch&#233;ma hdoc, c&#x27;est-&#224;-dire de tout transformer en &lt;h1&gt; ou &lt;h6&gt; et en recr&#233;ant la &quot;profondeur&quot; des titres en cr&#233;ant des divisions ou des sections. Nous proposons que pour chaque &lt;h1&gt; rencontr&#233; dans un fichier de framapad, on cr&#233;e une section dont ce sera le titre. Ensuite, si le titre suivant est autre chose qu&#x27;un &lt;h1&gt;, on produit une nouvelle division &#224; l&#x27;int&#233;rieur de la section dont ce sera le titre. On proc&#233;dera de m&#234;me pour les autres niveaux de titre, ajoutant une nouvelle division &#224; l&#x27;int&#233;rieur de celle du &lt;h1&gt; pr&#233;c&#233;dent pour un &lt;h2&gt;. En revanche, si l&#x27;on tombe sur un deuxi&#232;me &lt;h2&gt;, cela produira une nouvelle division au m&#234;me niveau de profondeur que la pr&#233;c&#233;dente. Enfin, si l&#x27;on devait tomber, au sein du niveau de profondeur d&#x27;un &lt;h1&gt;, sur un &lt;h3&gt; ou &lt;h4&gt;, etc. avant un &lt;h2&gt; par exemple, nous l&#x27;interpr&#233;terons comme s&#x27;il s&#x27;agissait d&#x27;un &lt;h2&gt;. Et ainsi de suite.<br><br><ul class="bullet"><li>Texte color&#233;</li></ul>Ce n&#x27;est apparemment pas une fonctionnalit&#233; propos&#233;e par Opale, aussi nous nous contenterons de proc&#233;der ainsi que l&#x27;ont fait nos pr&#233;d&#233;cesseurs sur le projet avec les autres balises de mise en forme du texte (italique, gras,...): nous remplacerons cela par un &lt;em&gt; g&#233;n&#233;rique.<br><br><ul class="bullet"><li>Exposants&#x2F;indices (&lt; sub &gt; &lt; sup &gt;)</li></ul>Il s&#x27;agit de balises d&#233;j&#224; prises en compte par le format hdoc telles quelles et le convertisseur hdoc to opale les traite <em>a priori</em> &#233;galement. Rien &#224; modifier: il faut juste tester.<br><br><ul class="bullet"><li>Code</li></ul>Am&#233;lioration de plus faible priorit&#233;. Etant donn&#233; que la balise &lt;code&gt;&lt;&#x2F;code&gt; n&#x27;est pas encore impl&#233;ment&#233;e dans le format hdoc, il s&#x27;agira de l&#x27;ajouter au sch&#233;ma et d&#x27;ajouter sa prise en compte dans le convertisseur hdoc to opale, en d&#233;terminant si Opale propose quelque chose du m&#234;me ordre pour la mise en forme d&#x27;un code informatique (et auquel cas le mettre &#224; profit) ou, si ce n&#x27;est pas le cas, comment il faudra traduire le texte concern&#233; au format Opale.<br>Pour l&#x27;instant, &#233;tant donn&#233; le travail que cela repr&#233;sente pour une fonctionnalit&#233; relativement mineure par rapport &#224; la question des titres et des listes imbriqu&#233;es, nous nous contenterons de supprimer les balises &lt;code&gt; de sorte &#224; &#233;viter les erreurs et l&#x27;ajouterons &#224; la liste des fonctionnalit&#233;s non g&#233;r&#233;es &#224; l&#x27;heure actuelle.<br><br> <h3>Tests des améliorations implémentées</h3><br><ul class="bullet"><li>Listes imbriqu&#233;es</li></ul>Apr&#232;s impl&#233;mentation initiale les listes imbriqu&#233;es fonctionnaient bien et &#233;taient bien conserv&#233;es jusqu&#x27;en Opale, mais certains noeuds de texte qui &#233;taient les fr&#232;res directs de noeuds &lt;ul&gt; ou &lt;ol&gt; &#233;taient perdus &#224; cause de la fa&#231;on dont la reconnaissance des paragraphes sont actuellement g&#233;r&#233;s par nos xslt. Le probl&#232;me a cependant &#233;t&#233; r&#233;gl&#233; et on a d&#233;sormais une conversion coh&#233;rente et fid&#232;le de pads contenant des listes imbriqu&#233;es.<br><br><br><ul class="bullet"><li>Indentation</li></ul>Impl&#233;mentation finale pr&#233;vue pour le rendu du 12&#x2F;01.<br><br><ul class="bullet"><li>Titres</li></ul>Les balises titres sont supprim&#233;es &#224; l&#x27;heure actuelle. Impl&#233;mentation de la vraie solution pr&#233;vue pour le rendu du 12&#x2F;01.<br><br><ul class="bullet"><li>Texte color&#233;</li></ul>En appliquant le m&#234;me genre de code que pour les autres balises de mise en forme du texte d&#233;j&#224; impl&#233;ment&#233;es par les groupes pr&#233;c&#233;dents, on arrive bien &#224; remplacer les balises &lt;span data-color=&quot;...&quot;&gt; par des &lt;em&gt;.<br><br><ul class="bullet"><li>Exposants&#x2F;indices (&lt; sub &gt; &lt; sup &gt;)</li></ul>Le test avec un fichier contenant des balises &lt;sub&gt;&lt;&#x2F;sub&gt; et &lt;sup&gt;&lt;&#x2F;sup&gt; s&#x27;est d&#233;roul&#233; sans probl&#232;me: on retrouve bien les indices et les exposants une fois qu&#x27;on a ouvert le .scar produit dans myScenari.<br><br><ul class="bullet"><li>Code</li></ul>La mani&#232;re dont le code est export&#233; par framapad semble probl&#233;matique pour une impl&#233;mentation du traitement des balises &lt;code&gt; dans le convertisseur framapad_to_opale, mais pour l&#x27;instant les balises sont supprim&#233;es et ne g&#234;nent pas la conversion.<br><br> <h1>Indications de revue</h1><br><ul class="bullet"><li>T1: Utiliser le fichier de ce pad export&#233; en html r&#233;sulte actuellement en une erreur et un abandon de la conversion (d&#x27;o&#249; l&#x27;absence d&#x27;output apr&#232;s ex&#233;cution), car les balises titres, entre autres, ne sont pas encore g&#233;r&#233;es par le convertisseur. Il faut donc utiliser un fichier issu d&#x27;un etherpad, potentiellement augment&#233; de quelques balises &lt;sub&gt;&lt;&#x2F;sub&gt; et &lt;sup&gt;&lt;&#x2F;sup&gt; ajout&#233;es manuellement, pour constater le r&#233;sultat actuel du convertisseur. Un tel fichier est pr&#233;sent sur le git: sample.html dans framapad_to_opale&#x2F;input</li></ul><br><ul class="bullet"><li>T2 (05&#x2F;01): Normalement, n&#x27;importe quel framapad export&#233; au format html doit maintenant fournir un r&#233;sultat converti en .scar. Les balises de titre et de code sont pour l&#x27;instant ignor&#233;es (remplac&#233;es par un texte d&#x27;information sur la non prise en compte actuelle de ces balises). Les listes imbriqu&#233;es fonctionnent d&#233;sormais correctement. L&#x27;indentation telle que propos&#233;e par framapad est pour l&#x27;instant traduite en liste non ordonn&#233;e, mais ceci ainsi que la gestion de la structuration du document par les titres devraient &#234;tre fonctionnels pour la prochaine revue.</li></ul><br><ul class="bullet"><li>T3 (12&#x2F;01):</li></ul><br><br> <h1>Mises en forme du texte possibles avec framapad</h1><br><span data-color="black">D&#233;couverte de framapad&nbsp;</span><br><br><ul class="indent"><li>Texte normal avec indentation.</li><li><br></li></ul>titre3<br><ul class="indent"><li><br></li></ul><br>Titre 2: h2 ?<br>#activite-autoeval<br><br>Texte sans indentation avec du <strong>gras</strong>, de l&#x27;<em>italique</em>, du <u>soulign&#233;</u> et du <s>barr&#233;</s> et <span data-color="orange">du texte color&#233;</span>.<br><br>Texte avec un <sup>exposant </sup>et avec un <sub>indice</sub><br><br>Titre 3: h3 ?<br><br><ol class="number"><li>Liste</li><li>Ordonn&#233;e</li></ol><br><ul class="bullet"><li>Liste</li><li>Non</li><li>Ordonn&#233;e</li><ul class="bullet"><li>Avec</li><li>imbri</li><ul class="bullet"><li>cation</li></ul></ul></ul><br> <code>Texte avec mise en forme de code:</code><ul class="indent"><li>auto-indentation {</li></ul> <code> if x blabla then {</code> <code> blabla</code> <code> }</code><ul class="indent"><li>}</li></ul><br>test<br><ul class="indent"><li><br></li></ul></body>
</html>
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