Programmes pour la gestion d'EXEMAALT |
Les programmes et les entetes latex sont ici
Chaque exercice est stocké dans un fichier indépendant.
Le principe est que chaque exo contient des commandes latex (\titre
, \niveau
...) qui servent à la fois à trier les exos, et qui sont utilisées
par LATEXpour mettre en forme l'exo. Toute la partie mise en forme est faite par latex, la partie tri et indexation est faite par les scripts.
La plupart des autres operations sont effectuées par des petits scripts ecrit en shell bash (sous unix).
Initialement, chaque exo et les figures correspondantes sont supposés être dans un répertoire ayant le même nom que l'exo (moins le suffixe .tex.) situes dans le repertoire fred ou vincent du repertoire sources. Le site web est créé dans un repertoire EXEMAALT.
La compilation des recueils est faite par exos-compile, la compilation des exos individuels par exos-indiv.
exos-compile peut recevoir l'argument ``-1'' pour ne compiler qu'un recueil exercice en guise de test. exos-indiv peut recevoir un argument (ou plusieurs) pour compiler un exo individuel particulier (pour le tester par exemple).
exos-tout part de zero et construit toute la base de donnee EXEMAALT dans un repertoire EXEMAALT. exos-cree-reperts crée la structure de sous-repertoires de EXEMAALT. exos-variables charge quelques variables (chemins d'acces...)
exos-installe-reste compile et copie les pages html (mode d'emploi etc...), cree le plug-and-play.
exos-nombre compte le nombre d'exos et l'écrit dans la page d'entrée du serveur.
Ce programme fait beaucoup de choses à la fois... Il lit les titres, auteurs, themes etc des exos
(1ere partie du programme) en verifiant que chaque exo est complet et n'a pas deux fois la meme commande...
Il trie les exos par categorie (par theme par exemple) et il cree le recueil correspondant et l'index correspondant. Un exo peut etre reference a plusieurs endroit de l'index, mais a un seul endroit du recueil (d'ou les commande \Theme
et \ThemeSecondaires
).
La creation des recueils est faite dans la 2eme partie du programme, la creation des index dans la troisieme.
Le programme fait la différence entre les categories officielles, c'est à dire standard, des catégories non-officielles (qui apparaissent plus brièvement dans les index).
Il regarde si l'exo est nouveau ou pas (pour mettre la petite étoile rouge avec la commande LATEX\nouveau
) et pour l'inclure ou non dans le recueil des exos nouveaux.
Il met a jour l'annee de copyright en fonction de la date, il ajoute le nom de fichier dans l'exo (pour faire un lien vers le fichier source), et il crée une liste des exos arrivés depuis le dernier mail envoye aux abonnés...
Pour plus de détails, voir les commentaires des scripts eux-mêmes.
On obtient alors le recueil par concatenation de fichiers comme entete1_a4 (ou entete1_a4), entete2_niveau (ou entete1_theme), entete3_commune, entete4_exos_individuels (ou entete4_exos_tries), les exos eux-memes, et un fichier final fin_niveau (ou fin_theme). Par exemple, le fichier plug_and_play est construit comme concatenation de 4 entetes et une d'une fin.
\titre
, \niveau
etc. n'écrivent rien elles-mêmes.
Elles mettent à jour des variables \ecrittitre
, \ecritniveau
etc.
qui sont utilisées par l'environnement exo pour mettre l'exo en forme.
Ceci a l'avantage qu'elles peuvent se trouver dans n'importe quel ordre, quel que
soit le type de recueil compilé.
Il y a un peu plus de détails dans les entêtes (l'entête 3 commune en particulier).
Les programmes et les entetes latex sont ici