Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
txs:supports:supports_sr_p18:decoupage [2020/02/14 15:22] – ↷ Page déplacée de txs:supports_sr_p18:decoupage à txs:supports:supports_sr_p18:decoupage qduchemi | txs:supports:supports_sr_p18:decoupage [2020/09/16 11:24] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Contributions de Marc ====== | ||
+ | * Correction des modules : [[https:// | ||
+ | * Module PostgreSQL 1 : [[https:// | ||
+ | * Module PostgreSQL 2 : [[https:// | ||
+ | * Module Domain Name System | ||
+ | * Modules Linux journey : Diagrammes UML et le document [[https:// | ||
+ | ===== L' | ||
+ | |||
+ | Nous n' | ||
+ | |||
+ | Pour les modules que j'ai réalisé, j'ai choisi de faire toujours un exercice ou un quiz bilan à la fin de chaque partie. On essayait aussi de proposer autant que possible des manipulations qui sont très efficaces pour faire comprendre des concepts. Dans cette optique, le module DNS a été articulé autour d'une commande. Cela permet de construire petit à petit des connaissances autour de cette commande. L' | ||
+ | |||
+ | Les modules Linux Journey sont un peu particuliers car notre travail était de récupérer le contenu des cours du site [[https:// | ||
+ | |||
+ | ===== Comment créer un module Linux Journey ===== | ||
+ | Vous vous rendez sur ce [[https:// | ||
+ | |||
+ | Sur le [[https:// | ||
+ | |||
+ | Pour obtenir un cours Scenari après cela vous avez simplement à suivre les 3 étapes suivantes: | ||
+ | |||
+ | ==== Etape 1 : utiliser parser.py ==== | ||
+ | |||
+ | Ce parseur va : | ||
+ | - Transformer le fichier en xhtml grâce à une bibliothèque | ||
+ | - Transformer le xhtml dans un xml particulier | ||
+ | |||
+ | Vous utilisez donc ce parseur pour transformer un fichier markdown en fichier xml. | ||
+ | |||
+ | Vous obtenez donc un premier ficheir xml que vous ne pouvez pas utiliser dans Scenari. | ||
+ | |||
+ | ==== Etape 2 : Faire une transformation XSL ==== | ||
+ | Si vous ne connaissez pas XSLT, je vous invite à lire la [[https:// | ||
+ | |||
+ | Il vous suffit de prendre le fichier xml parsé et de la transformer soit grâce à Oxygen XML Editor soit avec le site suivant : [[https:// | ||
+ | |||
+ | Après cette étape, vous avez un nouveau fichier XML utilisable dans Scenari. | ||
+ | |||
+ | === Point d' | ||
+ | Je n'ai pas eu le temps d' | ||
+ | |||
+ | ==== Etape 3 : Déposer le fichier XML sur Scenari ==== | ||
+ | |||
+ | Vous n'avez plus qu'à glisser et déposer le fichier xmlToScenari.xsl dans Scenari. | ||
+ | |||
+ | NB: le XML formera une activité d' | ||
+ | ** | ||
+ | Il ne reste qu'à écrire des TPs pour compléter ce contenu Linux Journey.** | ||
+ | |||
+ | |||
+ | Voici un petit schéma illustrant la transformation depuis fichier source de Linux journey jusqu' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Les choix réalisés lors de la conception du document XSL ===== | ||
+ | |||
+ | === Stockage du titre dans une variable === | ||
+ | Dans ce document, j'ai fait le choix de stocker le titre de chaque cours dans une variable. Ceci était nécessaire car pour que les partie contenu et exercice d'une activité d' | ||
+ | |||
+ | Si par la suite, d' | ||
+ | |||
+ | === Point important: favoriser les ajouts à parser.py plutôt que les modifications === | ||
+ | |||
+ | Il faut bien avoir en tête qu'une modification sur le parsage du fichier Linux Journey entraînera une nécessaire modification du XSL. En effet, le XSL prend en compte le XML parsé sous sa forme actuelle. Si vous modifiez certaines balises, il sera nécessaire de faire un nombre de changements plus ou moins grand sur le XSL. Si vous ajoutez des balises, il suffira d' | ||
+ | |||
+ | |||
+ | == Exemple avec les listes == | ||
+ | |||
+ | Pour illustrer ceci, prenons l' | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | Si un jour, le parsage incluait les listes dans les balises paragraphe, il y aurait des changements importants à faire sur le XSL, particulièrement dans les templates traitant du corps de la leçon, du paragraphe et des listes. | ||
+ | |||
+ | On constate que si un jour vous souhaitiez améliorer le parsage des listes, il faudrait favoriser les ajouts pour éviter de devoir réécrire une grande partie du XSL. | ||
+ | |||
+ | ** | ||
+ | Les listes sont un exemple parmi tant d' | ||
+ | |||
+ | ==== Améliorations à faire sur parser.py ==== | ||
+ | J'ai personnellement remarqué deux points que ne sont pas encore pris en compte dans le parsage: | ||
+ | * les sous-titres | ||
+ | * les liens | ||
+ | |||
+ | Pour effectuer ces améliorations, | ||
+ | |||
+ | EDIT : ces améliorations ont été intégrées au parseur en fin de semestre. Il est désormais nécessaire de mettre à jour la transformation XSL. | ||
+ | |||
+ | Il faut également intégrer la transformation XSL au parseur comme dit précédemment. | ||
+ | |||
+ | |||
+ | ====== Contributions d' | ||
+ | * Correction des modules : [[https:// | ||
+ | * Modules [[https:// | ||
+ | * Fork du projet [[https:// | ||
+ | |||
+ | ===== Docker Basics I ===== | ||
+ | |||
+ | [[https:// | ||
+ | Docker Basics s' | ||
+ | * Philosophie des conteneurs | ||
+ | * Utilisation de Docker | ||
+ | * Dockerfile : une procédure légère et efficace | ||
+ | |||
+ | Pour les deux dernière parties (qui relèvent plus de la pratique que de la théorie), au moins deux exercices complets ont été proposés, basé sur des indices afin que la résolution des questions successives soit guidée et segmentée. | ||
+ | |||
+ | Ce module est donc la prémice du module que j'ai effectué durant l' | ||
+ | |||
+ | ===== Docker Basics II ===== | ||
+ | |||
+ | Initialement appelé Docker Advanced, je me suis vite rendu compte qu'il était un peu prétentieux d' | ||
+ | |||
+ | Avant de pouvoir commencer à élaborer ce module, il m'a fallu une bonne phase de documentation et d' | ||
+ | |||
+ | Ce module est construit de sorte à acquérir une aisance de manipulation de Docker au fur et à mesure de son avancée. On y découvre les principes fondamentaux des notions abordées en pratiquant lors des exercices guidés. | ||
+ | |||
+ | Il serait bon que ce module soit testé par une audience et, j'en suis convaincu, ajusté en conséquence. | ||
+ | ===== Travail effectué sur linuxjourney ===== | ||
+ | |||
+ | Comme dit précédemment, | ||
+ | |||
+ | Il s'est décomposé en 3 phrases. | ||
+ | ==== Récupérer tous les contenus ==== | ||
+ | * Un fork a été effectué, puis un script a été créé afin de pouvoir parcourir l' | ||
+ | ==== Créer un schéma applicable à tous les cours ==== | ||
+ | * Une fois les fichiers accessibles un à un, il a fallu en dégager une structure commune. Ce travail a été commencé en UML par Marc, et je l'ai formalisé dans un schéma //Relax NG//, language de description de fichier XML. | ||
+ | ==== Créer les fichiers xml valides par rapport à notre schéma ==== | ||
+ | * Dans cette partie a eu lieu le véritable //parsing// de l' | ||
+ | * Suite à une non conformité de la méthode utilisée, le script python a du être revu et réécrit afin de switcher de technologie. Désormais le parseur utilise le XSLT, et xpath. Ce choix est logique notamment dans le sens de la maintenance : Marc utilisant cette technologie, | ||
+ | |||
+ | ==== Remarque quant aux fichiers sources ==== | ||
+ | Quelques fichiers sources n' | ||
+ | |||
+ | ==== Résultats ==== | ||
+ | Sur les cours disponibles en anglais, nous avons un taux de 183/185 leçons validées. En français, ce taux est de 29/30. | ||
+ | |||
+ | ==== Repo et sources ==== | ||
+ | Tous les fichiers sources se trouvent sur le repo du GitLab de l'UTC : https:// |