rigobert9 / Cours-MP2I

Cours en MP2I 2022-2023
GNU General Public License v3.0
8 stars 2 forks source link

Création d'un script pour compiler le projet directement en pdf. #1

Open Loatchi opened 2 years ago

Loatchi commented 2 years ago

Je voudrais aider pour le projet. Et surtout je voudrais qu'on puisse discuter des modalités de mise en place, dans la mesure ou tu souhaites pouvoir avoir des outils pour le faire.

Quel langage utiliser ?

On a le choix, on peut utiliser des langages qui sont indépendants de la platforme: Python, Java, C#, peut-importe.
On peut également décider d'opter pour des simples fichiers scripts en bash pour Linux et Mac et des scripts PowerShell pour Windows. Cela permettrait d'être facilement éxecutable, cependant cela rendrait la maintenance plus complexe.

On peut également offrir toutes les solutions si le travail n'est pas trop lourd.

Solution alternative

Il est également possible que l'auteur du repo partage par exemple chaque semaine un zip avec ses fichiers déjà compilés. C'est une solution complexe qui permet facilement à quelqu'un d'accéder au projet.

MichelMelhem commented 2 years ago

Ca serait top car je n'arrive pas à lire les éléments LaTex du fichier markdown.

rigobert9 commented 2 years ago

J'ai commencé à regarder, et j'essaierai de bricoler au moins une solution fichier par fichier demain. Autrement, je me prononce plutôt pour un script bash/bat avec des outils assez standards, sauf s'il existe des trucs genre make pour les projets Latex. Aussi je colle demain la config minimale vim pour pouvoir le lire, y'a juste à installer Vim-markdown et un activer une option, dsl de pas l'avoir encore fait.

Loatchi commented 2 years ago

Petit retour d'expérience.

J'ai utilisé 3 méthodes différentes pour tenter de transformer les markdowns en pdf.

J'ai essayé:

Ce qui revient de ces expériences et que le résultat des compilations ignorent le LaTeX entre les balises. Ce qui est déjà connu.

Ceci dit, pandoc arrive à compiler les fichiers en format pdf. Il a simplement du mal avec certaines sequences LaTeX. Par exemple sur le fichier /Mathematiques/Vocabulaire-logique.md, il n'arrive pas à reconnaitre la balise \lt et renvoie ainsi une erreur. Pour le reste il arrive à afficher le LaTeX.

Pour la balise \lt, tex stack echange propose la solution de les transformer en \ensuremath <.

Conclusion

pandoc avec tex installé est à mes yeux la solution priviligiée, en essayant de faire en sorte que des balises qui marchent sur le renderer de Github fonctionne toujours sur les machines de chacun.

Un petit tutoriel en ayant installé pandoc et tex. (app-text/texlive app-text/pandoc sur les repos de Portage:gentoo, je laisserai le soin à des personnes compétentes sur d'autres package manager de partager le reste)

1.Remplacer les balises qui ne fonctionnent pas sed -i "s/\\\\lt/\\\\ensuremath </g" ./Mathematiques/Vocabulaire-logique-dm.md 2.Compiler vers un pdf pandoc --read=gfm --output=Vocab-logique.pdf --standalone --mathjax ./Mathematiques/Vocabulaire-logique.md

Pour voir l'erreur des balises, simplement lancer la seconde commande. De mon côté le résultat est largement satisfaisant.

L'exemple ci-dessus peut-être aisément itéré sur un répertoire, et les balises non-fonctionnelles (le temps qu'une solution permanente soit trouvée) peuvent être partagées dans un ./latex_fix où on partage ligne par ligne une balise et son remplacement (ce qui est plus simple que d'avoir à changer manuellement chaque fichier).

On partage ensuite un script qui modifie chaque fichier au besoin et on les compile. Cette étape est simple à mettre en place.

Avant d'implémenter cette méthode, qui ne devrait pas être permanente, il faudrait voir en détail pourquoi pandoc n'arrive pas détecter des balises.

rigobert9 commented 2 years ago

J'aurai du mieux communiquer, mais mon expérience a été grosso modo la même. Je n'ai pas pu essayer Pandoc, et grip ne supportait pas le LaTeX dont on a tant besoin. J'ai néanmoins l'impression d'avoir trouvé une autre solution en la présence de https://github.com/phseiff/github-flavored-markdown-to-html , qui semble faire exactement ce que je veux sans faille. Seul petit problème, mon installation sort une erreur obscure, j'ai ouvert une issue mais mon Fedora ne le fait pas marcher pour l'instant. Tu pourrais le télécharger et l'essayer de ton côté pour pouvoir comparer les deux méthodes ?

rigobert9 commented 2 years ago

N'ayant toujours pas de réponse dudit projet, je pense m'orienter vers une solution basée sur Pandoc. Je commence donc à expérimenter avec pour constater les problèmes de compatibilité et évetuellement les régler dans mes notes ou par des scripts. À priori, le moyen de tout compiler consistera en un script ou des commandes simples permettant de faire faire le travail à Pandoc tout d'un coup. Les cours sortiront en PDF à télécharger pour tous à chaque fin de chapitre dans la section releases.

rigobert9 commented 2 years ago

Après un peu de furetage et de tests, pandoc marche bien et les commandes sont dans le README. Je vais peut-être ajouter des GH actions pour autocompiler et mettre à disposition pour le téléchargement.

rigobert9 commented 1 year ago

En cours d'ajout de GH actions pour auto-créer des pages web avec le cours dedans : une fois le site un peu peaufiné, il me suffira d'adapter un peu le script pour proposer directement le téléchargement des PDF