Utiliser des plugins Jekyll sur GitHub Pages
Mise à jour: GitHub Actions permet maintenant de publier un site Jekyll quels que soient les plugins utilisés.
Nous allons voir que cette opération est facilement automatisable à l’aide d’un fichier Rakefile
, la manière la plus courante en Ruby de créer des tâches.
Prérequis
Nous partons du principe que vous avez déjà un site qui tourne avec Jekyll sur GitHub, si ce n’est pas le cas, reportez-vous à la documentation officielle.
Comme nous allons utiliser rake
pour écrire une tâche automatisée, il vous
faut ajoutez la dépendance à votre fichier Gemfile
, si elle n’est pas déjà
présente :
gem "rake"
Une fois que c’est fait, lancez bundle install
pour installer rake
.
Maintenant que vous êtes parés sous allons voir les deux cas de figures possibles dans Github : les pages utilisateurs ou organisation et les pages projets.
Pages utilisateur et organisation
Pour activer la génération automatique par GitHub Pages d’un dépôt de compte
utilisateur ou organisation, il suffit de respecter la nomenclature
username/username.github.io
.
GitHub va utiliser la branche master
de ces dépôts et publier les pages. Cela
fait que nous aurons une branche master
qui contient le site généré et une
branche source
avec les sources de notre site.
Configuration du dépôt
La préparation du dépôt se résume à créer la branche source
en ligne de
commande :
git checkout -b source master
git push -u origin source
Maintenant que vous avez créé la branche source
, vous pouvez en faire la
branche par défaut dans GitHub :
Publication automatique
Maintenant que le dépôt est configuré, vous pouvez générer votre site et pousser
les fichiers générés sur la branche master
. Mais plutôt que de s’embêter à
faire ça manuellement, créons un simple tâche rake
. Créez (si vous n’en avez
pas déjà un) un fichier Rakefile
à la racine de votre site et ajoutez le
contenu suivant 1 :
Maintenant vous pouvez simplement lancer la commande rake publish
pour générer
et publier votre site sur GitHub Pages.
Si vous utilisez un nom de domaine personnalisé, vérifiez bien que le fichier CNAME est bien présent dans la branche générée.
Pages projet
Les pages projet sont presque pareilles que les pages utilisateur et
organisation, à une différence près : la branche gh-pages
est utilisée à la
place de la branche master
pour générer et publier les pages.
Il n’y a aucune configuration supplémentaire à faire, il faut simplement
apporter quelques petites modifications au fichier Rakefile
:
Vous pouvez maintenant lancer rake site:publish
pour générer votre site et le
publier sur GitHub. Jetez également un coup d’œil au fichier Rakefile de
Jekyll pour une implémentation alternative de la tâche
rake site:publish
.
Enfin, sachez qu’il existe d’autres solutions d’hébergement comme GitLab Pages, Netlify, Cloudcannon, Siteleaf ou Forestry.io qui vous permettent d’utiliser les plugins de votre choix, sans avoir recours à ce genre de hack.