11 décembre 2014 · 3 min de lecture
Jekyll est un outil de création de site internet. Il permet de générer des pages HTML à partir de votre contenu rédigé dans de simples fichiers textes.
Finis les sites en CMS avec du PHP/MySQL : Pourquoi créer des pages dynamiques en interrogeant une base de données quand il suffit de créer directement la page finale ?
C’est ce que permet Jekyll, tout en offrant un accès plus rapide et sécurisé à votre site.
Vous aurez besoin de Linux, Unix, ou Mac OS X. Pour les utilisateurs de Windows… utilisez une machine virtuelle ?
Jekyll utilise le langage Ruby et nécessite une librairie Javascript telle que NodeJS en guise de serveur web. Mais ne craignez rien, il n’est pas nécessaire de savoir les utiliser. Tapez simplement les commandes suivantes dans une console pour procéder à l’installation :
sudo apt-get install ruby-dev
sudo gem install jekyll
sudo apt-get install nodejs
Créez un dossier dans lequel vous allez travailler :
jekyll new dossier
cd dossier
Envoyez la purée :
jekyll serve
Ouvrez votre navigateur internet et allez à l’adresse http://localhost:4000
. Un site par défaut apparait.
Pour arrêter le serveur, tapez les touches CTRL+C dans la console.
Rédigez vos articles au format markdown. Il s’agit d’un simple fichier texte avec une syntaxe particulière pour la mise en forme.
Voici un exemple :
---
layout: post
title: "Mon titre"
permalink: /:year/:title.html
date: 2014-12-11 18:54:00
---
# Titre de paragraphe
Ceci est mon premier article.
Dans l’exemple ci-dessus :
_layouts/post.html
;Nommez impérativement vos fichiers markdown de la façon suivante : ANNEE-MOIS-JOUR-titre.mkd
.
Par exemple : 2014-12-24-mon-article.mkd
.
Placez ces fichiers dans le dossier _posts
.
Et c’est là que la magie opère. A chaque création, modification, ou suppression d’un fichier, toutes les pages du site sont générées automatiquement dans le dossier _site
.
Ouvrez la page index.html
du dossier principal. On peut voir que le listing des articles est généré de la façon suivante :
{% raw %}
<ul class="post-list">
{% for post in site.posts %}
...
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
...
{% endfor %}
</ul>
{% endraw %}
Vous disposez de plusieurs variables qui permettent de récupérer des informations sur :
Bref, de quoi créer dynamiquement vos pages statiques :)
Voir la documentation sur la syntaxe de Liquid pour en savoir plus.
Un site intéractif c’est mieux. Vous pouvez utiliser les services de DISQUS, ou Facebook qui proposent un système de commentaires. Il suffira de copier-coller quelques lignes de code HTML/Javascript dans votre template, par exemple dans _layouts/post.html
.
Vous utilisez les services d’un hébergeur
Transférez simplement par FTP le contenu du dossier _site
.
Vous utilisez Jekyll directement sur le serveur web
Il est possible de générer les pages dans le dossier web au lieu de _site
. Pour cela, modifiez la variable destination
dans le fichier de configuration _config.yml
.
Hébergez votre site gratuitement sur GitHub
GitHub propose un hébergement gratuit sur https://pages.github.com/ avec des pages “powered by Jekyll”. Il est également possible d’effectuer une redirection de votre nom de domaine.
Il existe d’autres solutions de publication, plus ou moins complexes, mais dans tous les cas cela se résume à une synchronisation de dossiers.
Pour aller plus loin je recommande la lecture de la documentation sur le site officiel de Jekyll (en anglais).