7. Publier une page en ligne
La séance se termine par la publication de la recette qui fait consensus dans le binôme.
Les forges offrent un hébergement web gratuit pour l’utilisateurice dans une certaine mesure (pour des fichiers trop larges, comme de la vidéo, il faudra recourir à un autre type d’hébergement).
github, la forge de Microsoft permet de publier des pages à partir de fichiers écrits en markdown ou en html au moyen d’un générateur de site statique installé par défaut : Jeckyll. Cette fonction de github s’appelle github Actions.
Pour cette formation, on a décidé de se passer de Github et d’utiliser des forges gitlab. Le processus de publication consiste à :
- créer une page d’accueil à partir d’un fichier qui aura comme nom ‘index’ (si on veut que le fichier recette.rmd apparaisse en entrant l’URL issue de la mise en ligne, renommer le ficher recettes.rmd en index.md)
- rédiger des instructions de transformation des pages et de mise en ligne à chaque (instructions rédigées dans le fichier gitlab-ci.yml). Ces instructions qu’on appelle font partie du service d’ de la forge.
- s’assurer que tous les internautes ont bien accès aux résultats de cette transformation, à savoir les pages web générées.
rôle du fichier index :
si on ne crée pas de fichier index.md (ou index.html), l’URL généré ira vers une page vide (type erreur 404) On peut soit renommer son document maître (recette.md) en document index.md. Ou bien si on veut publier plusieurs pages et conserver une page d’atterrissage qui permettra de renvoyer vers les autres pages, par exemple celle générée à partir de recette.md, on peut créer un fichier index.md et juste y ajouter le lien vers la page recette.md :
[lien vers la recette](recette.html)création d’un pipeline
cliquer dans le menu de gauche sur pipeline editor (où on va pouvoir ajouter le script mentionné plus haut)

Dans le champ à éditer, supprimer ce qui apparaît déjà et le remplacer par le script suivant :
pages:
image: fastexitlane/pandoc-latex:latest #choix de l'image
stage: deploy # but du pipeline : déployer des pages web
script: # dans script, entrer les commandes qui vont permettre de déployer les pages
- mkdir -p public # crée un dossier public dans la forge, toutes les pages (=artefacts) qui seront générées par le script doivent y être envoyées
- for file in *.md; do pandoc --standalone "$file" -o "public/${file%.md}.html"; done # boucle permettant d'appliquer à tous les fichiers en markdown du dépôt le même traitement, à savoir la conversion grâce à Pandoc du fichier markdown en page web autonome (standalone) et l'envoi de ces pages web dans le dossier public
artifacts:
paths:
- public # sélection du chemin vers les pages à déployer (en l'occurrence le contenu du dossier public)
only:
- main # choix de la branche sur lequel s'exerce le script (ici la branche principale)écrire un message dans le formulaire, sous le code qu’on vient d’ajouter (là où il y a écrit “update .gitlab-ci.yml” qu’on peut remplacer par ce que l’on veut) de commit et committer. Si la syntaxe du texte entré est valide, un processus va se mettre en place qui va requérir l’intervention d’une machine virtuelle.
Cette machine virtuelle, appelée va tirer depuis le serveur qui l’héberge l’image précisée dans le script en deuxième ligne (fastexistlane/pandoc:latest). A partir de ce socle logiciel (l’image contient Debian, un système d’exploitation complet, sur laquelle on a chargé le convertisseur universel pandoc, le va exécuter toutes les actions qui sont énumérées dans ce script et notamment la commande pandoc qui permet ici de convertir tous les fichiers en markdown présents dans notre répertoire en fichier html et faire en sorte que ces fichiers soient envoyés dans l’espace à partir duquel les documents présents dans la forge seront publiés.
Pour accéder aux pages créées, toujours dans le menu de gauche, cliquer sur Deploy puis sur Page si tout s’est bien passé on doit arriver à cette page, comportant l’URL qu’on cherche à obtenir :
S’il y a un fichier index.md dans le repository, le lien devrait mener à l’équivalent html de ce fichier. Sinon, l’URL de la page est vide ; à cette URL, ajouter le nom du fichier recette.html : vous devriez voir apparaître votre recette.
Les URL fournies par la forge gitlab-humanum sont peu engageantes : https://introduction-git-et-gitlab-c9f528.gitpages.huma-num.fr/
Avec Framagit, on peut appliquer son nom de domaine (si on en loue un) pour obtenir une URL plus simple. Mais c’est une fonctionnalité qui n’est pas rendue possible par les administrateurices de la forge gitlab.huma-num.