Logo Jamstatic
Jamstatic
Sites statiques et architectures découplées

Utiliser des plugins Jekyll sur GitHub Pages

· Lecture 3 min · Jekyll

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 :

Paramétrage des branches dans GitHub
Paramétrage des branches 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.

OctoJekyll
OctoJekyll.

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.


  1. Les tâches utilisées dans ce billet ont été écrites par Ixti, le créateur du plugin jekyll-assets