Closed firm1 closed 10 years ago
J'ai déjà récupéré les tutos de Ths depuis le serveur ZdS, pas de souci à ce niveau.
Pour le nombre de tutos "propres", difficile à estimer précisément. A la louche, doit y'en avoir entre 50 et 100 qui sont impactés par des trucs plus ou moins critiques (certains ont des tableaux pourris, d'autres un peu de zCode foireux, etc.).
Mais les seuls qui posent vraiment souci, c'est ceux pour lesquels il faut corriger le tuto dans sa version zCode puis le re-parser derrière. Pour ceux dans lesquels il reste une ou deux balises ou incohérences par ci par là (c'est la majorité des problèmes rencontrés), je corrigerai ce que je peux manuellement avant l'import. les quelques trucs qui passeront à travers les mailles du filet, on s'en rendra compte sur le tas, et on traitera ça directement à coup d'éditions mineures depuis l'interface de ZdS.
O_o mais ça veut dire que tu seras doublement productif :-P
Ou pas ! Nouvel an chinois, banquets, alcool, etc. :-°
A defaut de pouvoir les corriger automatiquement, est ce que ton code peut au moins détecter les trucs louches ? Si il te sort un avertissement à chaque fois, idéalement en specifiant ou est le prob, on peut gagner du temps pour la correction manuel.
Bon boulot sinon !
A defaut de pouvoir les corriger automatiquement, est ce que ton code peut au moins détecter les trucs louches ?
Je ne me rappelle plus très bien, mais il me semble que THS avait un fichier DTD pour vérifier la structure des fichiers. Tu coup, en appliquant cette DTD sur tous les tutos, on peut savoir quelles sont ceux qui sont bien formés ou pas.
A defaut de pouvoir les corriger automatiquement, est ce que ton code peut au moins détecter les trucs louches ?
C'est le cas pour certains problèmes, mais pas tous.
il me semble que THS avait un fichier DTD pour vérifier la structure des fichiers.
Excellente nouvelle. =)
Coucou,
Pour certains besoins, on va devoir gérer les images des tutos en mode relatifs. Donc, dans ton convertisseur, au lieu de prendre en compte le chemin absolu (url vers le sdz), tu devrais prendre en compte le chemin relatif (à l'intérieur des balises
De mon coté, je vais rajouter l'import des images en même temps que l'import du tuto.
Est-ce que tu peux gérer ça ?
En fait, Ths a déjà modifié les URL des images avec une URL relative dans les .tuto. Ils pointent tous vers le dossier ./images/<nom_image>.<ext>
présent à côté de chaque fichier tuto. Je te laisse regarder un exemple dans l'arborescence complète qu'il a uploadée sur ZdS.
Oui c'est pour celà que je voudrais que tu charges les balises ![]()
avec les url relatives contenus dans les .tuto, et pas avec les urls absolus. De mon coté, il faudra que je prépare un champ pour uploader les images (du dossier image de THS) vers le serveur lors de l'import
Quand tu le fais, j'aimerais bien avoir le résultat du .tuto sur la 3D avec irrlicht converti pour faire mes tests d'import.
Ce que je veux dire c'est qu'à partir du moment où je parse un .tuto fourni par Ths, les URL y étant déjà relatives, y'a aucun souci les .tuto en sortie contiendront bien des ![]()
avec URL relatives aussi. :)
Je n'ai pas les tutos de Ths avec moi maintenant, je te fais ça ce soir en rentrant.
Dans ce cas, peux tu me reparser le .tuto sur la 3D irrlicht ?
Euh...
Je n'ai pas les tutos de Ths avec moi maintenant, je te fais ça ce soir en rentrant.
Si tu le veux ce matin, envoie-le moi par mail. ^^ Je ne peux pas faire de SSH depuis le boulot pour aller récupérer le tuto sur le serveur ZdS.
J'avais oublié que ton parseur est en ligne. Je l'ai utilisé pour parser moi même.
Ok. Tu noteras que j'ai pas encore poussé sur GH les dernières modifs apportées à la syntaxe md (vidéos, légende et citations).
Finalement ma connexion en Chine n'est pas si pourrie, j'ai mis en ligne les dernières modifs faites sur la syntaxe des vidéos et des citations.
Ah nice.
Par contre, j'aurais une doléance pour toi. Finalement, il nous faudrait dans le contenu en markdown, les images avec chemin absolu. pensens tu pouvoir mettre à jour ton parseur pour qu'il intègre des chemin absolu (à partir des fichiers de THS plus complet) ?
[...] les images avec chemin absolu
À partir des fichiers de Ths, qu'est-ce que tu appelles "chemin absolu" pour une image exactement ? Ths a déjà modifié toutes les URLs pour les transformer en relatives, tu veux que je les re-transforme en URL absolues pointant vers le SdZ, ou vers ZdS ?
Oui exactement. Ou tu peux aussi voir si THS a encore ses .tuto d'origine (c'est a dire avant téléchargement des images).
Moi je veux bien, au niveau du parseur c'est pas grand chose à changer, mais je ne comprends pas trop la finalité du truc : on va importer les tutos, mais récupérer les images depuis le SdZ ? On avait, il me semble, statué sur le fait qu'il était obligatoire d'associer les images à chaque tuto en local, pas d'appels à des images distantes.
[Edit] par ailleurs, je croyais qu'on créait un repo Git contenant directement les images du tuto, du coup, c'est pas hyper simple de le faire à coup de mv
depuis l'architecture déposée par Ths ?
Je viens de voir ça : https://github.com/Taluu/ZesteDeSavoir/pull/120
Du coup, ça implique quoi pour moi ? Je laisse les URL de Ths telles quelles ?
ouaip.
Est-ce que @Coy0te pourrait nous packager son convertisseur en un unique .jar de tel sorte qu'en lançant la commande : java -jar convert_tuto_to_markdown.jar /mon/repertoire/de/tuto/
, l'outil convertisse tous les fichiers .xml en prennant soin de les renommer en .tuto ?
Pour chaque problème de conversion sur un tuto, il faudra que ça rollback et donc, tout les fichiers .xml seront ceux qui ont échoués la conversion et les .tuto seront ceux qui ont réussis.
Je compte lancer cette commande directement sur le serveur ou sont stockés les tutos.
J'ai déjà récupéré tous les tutos en local.
Si on me confirme que la syntaxe markdown ne bougera plus, je lance la conversion en local chez moi, regarde ce qui a merdé (quelques tableaux malformés que j'ai identifiés notamment, mais pas seulement), et je corrige à la mano les quelques .tuto qui déconnent avant de tout réinjecter sur le serveur ZdS en version convertie en md.
C'est ce qui me paraît le plus simple et le plus judicieux (j'ai déjà répertorié les quelques tutos qui posent problème, je sais quoi y modifier pour que la conversion se passe bien).
Le 20 février 2014 16:00, firm1 notifications@github.com a écrit :
Est-ce que @Coy0te https://github.com/Coy0te pourrait nous packager son convertisseur en un unique .jar de tel sorte qu'en lançant la commande : java -jar convert_tuto_to_markdown /mon/repertoire/de/tuto/ , l'outil convertisse tous les fichiers .xml en prennant soin de les renommer en .tuto ?
Pour chaque problème de conversion sur un tuto, il faudra que ça rollback et donc, tout les fichiers .xml seront ceux qui ont échoués la conversion et les .tuto seront ceux qui ont réussis.
Je compte lancer cette commande directement sur le serveur ou sont stockés les tutos.
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-35629462 .
Je pense que notre syntaxe markdown est stable.
Tu peux lancer les conversions. On en aura besoin pour les tests.
Ceci dit, si tu peux, il faut que chaque tuto soit accompagné d'un fichier images.zip qui contient le dossier des images liés au tuto.
Il te faut les images directement placées à la racine du zip ? Genre : /dossier_tuto_1 -> tuto_1.tuto -> images.zip /dossier_tuto_2 -> tuto_2.tuto -> images.zip
etc.
?
Le 20 février 2014 16:52, firm1 notifications@github.com a écrit :
Je pense que notre syntaxe markdown est stable.
Tu peux lancer les conversions. On en aura besoin pour les tests.
Ceci dit, si tu peux, il faut que chaque tuto soit accompagné d'un fichier images.zip qui contient le dossier des images liés au tuto.
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-35635609 .
Oui
Ok. Je fais ça dès que possible, et le met en ligne sur le serveur dans la foulée (probablement d'ici dimanche, si ma freebox arrive d'ici là).
2014-02-20 17:04 GMT+01:00 firm1 notifications@github.com:
Oui
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-35637006 .
Je fais ça dès que possible, et le met en ligne sur le serveur dans la foulée
Petit coucou sur cette issue.
Alors tu as retrouvé free ? tu as tout compris ?
Haha, j'ai tout compris depuis quelques jours déjà, je vais pouvoir uploader tout ça. Avec un peu de chance, j'aurai le temps de m'en occuper ce soir !
Le 25 mars 2014 15:06, firm1 notifications@github.com a écrit :
Je fais ça dès que possible, et le met en ligne sur le serveur dans la foulée
Petit coucou sur cette issue.
Alors tu as retrouvé free ? tu as tout compris ?
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-38567605 .
Cookie....
C'est bon, j'ai enfin le temps de me repencher sur ZdS ! J'ai reparsé tous les cours et fait une liste des cours contenant des tableaux foireux (qu'il faudra éditer à la main).
J'ai aussi zippé tous les dossiers images.
J'envoie tout ça demain sur le serveur.
C'est fait, tout est dans le dossier ~/tutos_sdzv3/Sources_md/
Bon bah, y'a encore un léger effort a faire sur la conversion des tutos. C'est un cas super spécifique sur lequel je suis tombé et qui peut se généraliser.
Je prend en exemple le tuto de mateo sur git.
Quand on le télécharge en regardant le fichier .tuto on trouve des lignes de ce genre :
![Dossier de travail de Git](uploads/fr/files/236001_237000/236994.png)
c'est à dire, qu'on doit avoir dans le dossier d'images ce fichier. Problème, le fichier n'existe pas dans le dossier images.
Le problème vient du fait que mateo a surement intégré à l'époque un chemin relatif que THS n'a pas téléchargé.
Pour résoudre ce problème, il faudrait que Coyote, dans le parseur, remplace systématiquement chaque chaine qui suit le modèle suivant : ![Dossier de travail de Git](uploads/fr/files/236001_237000/236994.png)
par ![Dossier de travail de Git](http://uploads.siteduzero.com/files/236001_237000/236994.png)
en gros, ça revient à remplacer toutes les occurences de ](uploads/fr/files
par ](http://uploads.siteduzero.com/files
Au pire on peut faire un script linux à passer directement sur le serveur pour faire le replace.
Ça arrive souvent, ou seulement dans quelques cours de Mateo ?
J'avoue que j'ai pas vérifié les URL des images dans les fichiers de Ths, j'ai assumé qu'il avait fait du bon boulot... :p
Le 10 avril 2014 18:04, firm1 notifications@github.com a écrit :
Bon bah, y'a encore un léger effort a faire sur la conversion des tutos. C'est un cas super spécifique sur lequel je suis tombé et qui peut se généraliser.
Je prend en exemple le tuto de mateo sur githttp://zestedesavoir.com/author-files/process.php?email=mateo21@siteduzero.com . Quand on le télécharge en regardant le fichier .tuto on trouve des lignes de ce genre : c'est à dire, qu'on doit avoir dans le dossier d'images ce fichier. Problème, le fichier n'existe pas dans le dossier images.
Le problème vient du fait que mateo a surement intégré à l'époque un chemin relatif que THS n'a pas téléchargé.
Pour résoudre ce problème, il faudrait que Coyote, dans le parseur, remplace systématiquement chaque chaine qui suit le modèle suivant : par
en gros, ça revient à remplacer toutes les occurences de ](](uploads/fr/files par ](http://uploads.siteduzero.com/files
Au pire on peut faire un script linux à passer directement sur le serveur pour faire le replace.
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40104380 .
Aucune idée sur la fréquence d'apparition. Premier testé premier planté
$ grep -r --include "*.tuto" "](uploads/fr/files" . | wc -l
739
La liste complète ici : http://pastebin.com/JNSQPM3c
Est-ce que c'est des images qui sont bien présentes dans le dossier /images, mais dont les liens n'ont pas été "relativisés" ? Ou bien est-ce que c'est des images qui sont absentes localement ?
2014-04-10 21:04 GMT+02:00 SpaceFox notifications@github.com:
$ grep -r --include "*.tuto" "](uploads/fr/files" . | wc -l739
La liste complète ici : http://pastebin.com/JNSQPM3c
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40125235 .
Il en manque au moins une partie. Par exemple le images.zip du tuto 263 fait 0 octets.
2014-04-10 22:54 GMT+02:00 Coyote notifications@github.com:
Est-ce que c'est des images qui sont bien présentes dans le dossier /images, mais dont les liens n'ont pas été "relativisés" ? Ou bien est-ce que c'est des images qui sont absentes localement ?
2014-04-10 21:04 GMT+02:00 SpaceFox notifications@github.com:
$ grep -r --include "*.tuto" "](uploads/fr/files" . | wc -l739
La liste complète ici : http://pastebin.com/JNSQPM3c
Reply to this email directly or view it on GitHub< https://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40125235> .
Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40141147 .
Normalement en appliquant la règle de remplacement que j'ai donné les problèmes sont résolus car lors de l'import du .tuto la règle appliqué est : "si l'image est une url alors telecharge la toi même".
Donc si la super commande de Spacefox pzut etre mixée avec un replace ça serait parfait.
Je me suis pris une erreur Python en essayant de publier mon tuto en preprod. Ça parle a priori d'une URL en http://uploads.siteduzero...
:
IOError at /tutoriels/validation/valid
[Errno 2] No such file or directory: u'/opt/zdsenv/ZesteDeSavoir/tutoriels-public/44_creez-votre-application-web-avec-java-ee/http://uploads.siteduzero.com/files/369001_370000/369034.png'
Request Method: POST
Request URL: http://178.32.53.245:8001/tutoriels/validation/valid
Django Version: 1.6.2
Exception Type: IOError
Exception Value:
[Errno 2] No such file or directory: u'/opt/zdsenv/ZesteDeSavoir/tutoriels-public/44_creez-votre-application-web-avec-java-ee/http://uploads.siteduzero.com/files/369001_370000/369034.png'
Exception Location: /usr/lib/python2.7/urllib.py in retrieve, line 243
Python Executable: /opt/zdsenv/bin/python
Python Version: 2.7.3
Par ailleurs, je me prends aussi des erreurs 500 ou d'autres erreurs python (une histoire de character encoding), en me balladant en lecture offline dans les chapitres :
UnicodeEncodeError at /tutoriels/off/44/creez-votre-application-web-avec-java-ee/une-bonne-vue-grace-a-la-jstl/la-bibliotheque-core/
'ascii' codec can't encode character u'\xe0' in position 498: ordinal not in range(128)
Request Method: GET
Request URL: http://178.32.53.245:8001/tutoriels/off/44/creez-votre-application-web-avec-java-ee/une-bonne-vue-grace-a-la-jstl/la-bibliotheque-core/?version=ae9448827ee398ed4fe2131c15d7238a902b0263
Django Version: 1.6.2
Exception Type: UnicodeEncodeError
Exception Value:
'ascii' codec can't encode character u'\xe0' in position 498: ordinal not in range(128)
Exception Location: /usr/lib/python2.7/xml/etree/ElementTree.py in feed, line 1641
Python Executable: /opt/zdsenv/bin/python
Python Version: 2.7.3
Enfin, les titres des parties sont bons, mais les titres des sous-parties sont mauvais (du genre "introduction-a-mysql-et-jdbc" au lieu de "Introduction à MySQL et JDBC").
Je me suis pris une erreur Python en essayant de publier mon tuto en preprod. Ça parle a priori d'une URL en http://uploads.siteduzero...
A traiter
Par ailleurs, je me prends aussi des erreurs 500 ou d'autres erreurs python (une histoire de character encoding), en me balladant en lecture offline dans les chapitres :
Erreur due à l'intégration du nouveau design. Si t'en trouve encore, signale les avec plus de précision quand même :)
Enfin, les titres des parties sont bons, mais les titres des sous-parties sont mauvais (du genre "introduction-a-mysql-et-jdbc" au lieu de "Introduction à MySQL et JDBC").
Ah ouais, a corriger.
Mais globalement, vaut mieux créer des issues séparées pour ce type de bug, ça permet de mieux cibler leurs résolutions.
Du coup, tu as faire le remplacement des upload comme prévu sur le serveur ?
Du coup, tu as faire le remplacement des upload comme prévu sur le serveur ?
C'est pas SpaceFox qui s'en est chargé ? Un coup de sed ou replace ou je sais pas quoi sur la liste d'occurrences qu'il a pondue, ça devrait le faire non ? :-°
C'est pas SpaceFox qui s'en est chargé ?
Ha non, pas du tout :D Mais je peux le faire, si nécessaire.
Le 14 avril 2014 17:00, Coyote notifications@github.com a écrit :
Du coup, tu as faire le remplacement des upload comme prévu sur le serveur ?
C'est pas SpaceFox qui s'en est chargé ? Un coup de sed ou replace ou je sais pas quoi sur la liste d'occurrences qu'il a pondue, ça devrait le faire non ? :-°
— Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40375427 .
Mais je peux le faire, si nécessaire.
Vendu et cool.
Vendu et cool.
+1 !
Testé en local uniquement. Sauf erreur de ma part, la commande à lancer sur le serveur est :
find . -name *.tuto -type f -exec sed -i 's/](uploads\/fr\/files/](http:\/\/uploads.siteduzero.com\/files/g' {} \;
Ça prend 2-3 minutes et tous les .tuto sont convertis. Vérification avec :
spacefox@cthulhu:/data/zds/tutos_sdzv3/Sources_md$ grep -r --include "*.tuto" "](uploads/fr/files" . | wc -l
0
Si personne n'y voit d'erreur flagrante je fais une sauvegarde et la lance sur le serveur.
Si t'as pas le temps (y'a une chiée de fichiers), t'emmerdes pas à faire une sauvegarde des tutos, j'ai tout le contenu uploadé sur le serveur ici en local.
Ouais mais ça prends 10 plombes à réuploader, alors qu'une sauvegarde c'est juste un tar à créer :)
Le 14 avril 2014 23:01, Coyote notifications@github.com a écrit :
Si t'as pas le temps (y'a une chiée de fichiers), t'emmerdes pas à faire une sauvegarde des tutos, j'ai tout le contenu uploadé sur le serveur ici en local.
— Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40417583 .
(J'ai parlé de sauvegarde, pas de faire dans le détail !)
Le 14 avril 2014 23:10, SpaceFox ujueseo.yeou@gmail.com a écrit :
Ouais mais ça prends 10 plombes à réuploader, alors qu'une sauvegarde c'est juste un tar à créer :)
Le 14 avril 2014 23:01, Coyote notifications@github.com a écrit :
Si t'as pas le temps (y'a une chiée de fichiers), t'emmerdes pas à faire
une sauvegarde des tutos, j'ai tout le contenu uploadé sur le serveur ici en local.
— Reply to this email directly or view it on GitHubhttps://github.com/Taluu/ZesteDeSavoir/issues/13#issuecomment-40417583 .
Quelqu'un a passé le script sur la prod (dossier /home/zds/tutos_sdzv3/Sources_md) ?
Si oui, c'eut été cool de prévenir ici, que je ne refasse pas une sauvegarde pour rien :(
Sinon, y'a un truc que je ne comprends pas.
C'est pas moi mon commandant :-)
Et que ne comprends tu pas ?
Implementer un convertisseur du formats .tuto vers markdown en langage python.
Il s' agit donc de corriger la fonction tuto_to_markdown presente dans la view.py des tutorial.
La principale difficulté reside en l'ecriture de la regxp associée.
La spécification du markdown utilisé sur ZdS est ici
Pour info, le texte qui sert d'exemple est celui-ci :