Pour beaucoup, WordPress est la première adresse pour créer un nouveau blog ou une page d’accueil simple pour une en­tre­prise. Mais il existe des si­tua­tions où WordPress dépasse de loin les besoins d’un dé­ve­lop­peur Web avec son immense panel de fonc­tion­na­li­tés. C’est pré­ci­sé­ment la raison pour laquelle des al­ter­na­tives légères comme Jekyll traitent ce problème. Limité aux com­po­sants les plus utiles, le gé­né­ra­teur de site Web permet de faire fonc­tion­ner des pages sans connexion à la base de données ou sans exploiter d’autres logiciels. Des sites Web dy­na­miques mais néanmoins per­for­mants peuvent être mis en œuvre avec le gé­né­ra­teur de site statique en com­bi­nai­son avec des mi­cro­ser­vices comme com­po­santes du Jamstack.

Qu’est-ce que Jekyll ?

En novembre 2008, Tom Preston-Werner, l’un des quatre fon­da­teurs de la pla­te­forme GitHub publiait le gé­né­ra­teur de site Web Jekyll sous licence de logiciel libre MIT. Écrit en Ruby, ce gé­né­ra­teur fonc­tionne sur la base d’un ré­fé­ren­tiel de templates qui contient une série de fichiers texte struc­tu­rés et statiques Markdowns de dif­fé­rents formats. Ils dé­ter­mi­nent non seulement la mise en page mais aussi le contenu de chaque projet Web. Ils peuvent donc être adaptés aux besoins in­di­vi­duels. Le gé­né­ra­teur ne fournit pas l’éditeur WYSIWYG, mais nécessite l’écriture de code classique. À cette fin, il est re­com­mandé d’utiliser l’éditeur de contenu Prose, qui simplifie l’édition de Markdown, et qui est aussi optimisé pour Jekyll.

Avant que les mo­di­fi­ca­tions apportées au code ne soient in­cor­po­rées dans la version live de l’ap­pli­ca­tion Web, elles peuvent être ins­pec­tées grâce au serveur de dé­ve­lop­pe­ment de Jekyll. Le moteur de rendu im­plé­menté s’assure que les fichiers se trans­for­ment en un site Web statique (qui peut ensuite être livré avec n’importe quel serveur Web commun). Ceci génère au­to­ma­ti­que­ment le code HTML lorsque les mo­di­fi­ca­tions sont apportées aux fichiers texte.

Voici comment créer des sites Web Jekyll très simples très ra­pi­de­ment :

Mais des con­cep­tions encore plus complexes sur le plan graphique peuvent aussi être mises en œuvre :

Jekyll, ses avantages et in­con­vé­nients

Créer des pages Web statiques et des blogs avec Jekyll est une al­ter­na­tive aux systèmes de gestion de contenu mais aussi aux outils de création de pages Web. Le principal avantage de cette solution est sa sim­pli­cité, qui ca­rac­té­rise le travail avec le gé­né­ra­teur de sites Web et les projets déjà créés. Puisqu’une base de données n’est pas né­ces­saire, on évite l’ins­tal­la­tion et le processus de con­fi­gu­ra­tion. En outre, le fait que l’accès à la base de données ne soit plus né­ces­saire a un effet positif sur le temps de char­ge­ment du site. Le code mi­ni­ma­liste, réduit aux fonctions et éléments im­por­tants capables de dis­tin­guer tous les thèmes pour Jekyll, contribue à la bonne per­for­mance, au dé­ve­lop­pe­ment et à la main­te­nance facile des projets. Con­trai­re­ment à un CMS tra­di­tion­nel, Jekyll génère des balises prêtes à l’emploi im­mé­dia­te­ment après une mo­di­fi­ca­tion, et pas seulement lorsqu’un uti­li­sa­teur consulte la page.

Jekyll excelle également en matière de stabilité et de sécurité : puisque le serveur Web n’a qu’à fournir des fichiers texte, le risque d’erreur avec Jekyll est beaucoup plus faible que dans le cas de sites Web faits de plusieurs com­po­sants dif­fé­rents. Dans la mesure où aucune mise à jour régulière n’est né­ces­saire, la structure de code stable s’assure que le site Web est hautement dis­po­nible à long terme. La sécurité résulte du fait que Jekyll opère sans aucun CMS, base de données ou scripts avec des éléments dy­na­miques (comme PHP ou Ja­vaS­cript). Par con­sé­quent, il n’offre pra­ti­que­ment aucune surface d’attaque.

Bien que la base de code limitée ne re­pré­sente aucun obstacle pour les dé­ve­lop­peurs ex­pé­ri­men­tés, le gé­né­ra­teur en question pose des dif­fi­cul­tés pour les novices. La version standard de Jekyll n’a pas d’interface graphique, donc l’ins­tal­la­tion doit être effectuée via l’interface en ligne de commande. En ce qui concerne la sélection de thèmes, Jekyll est inférieur à beaucoup de CMS et aux autres outils de dé­ve­lop­pe­ment de sites Web, qui disposent souvent de centaines ou même de milliers de modèles de con­cep­tion. Il en va de même pour l’as­sis­tance uti­li­sa­teur qui tombe en panne en raison de la petite com­mu­nauté et de la faible diffusion.

Le tableau suivant résume les avantages et les in­con­vé­nients prin­ci­paux de Jekyll.

Avantages In­con­vé­nients
Temps de char­ge­ment court En général, il ne dispose pas d’une interface uti­li­sa­teur graphique
Il n’est pas né­ces­saire de créer et gérer le CMS ou les bases de données Procédure de com­pi­la­tion longue
Il n’offre aucune surface d’attaque Peu de thèmes et de plugins
Il n’est pas né­ces­saire d’effectuer des mises à jour ré­gu­lières Petite com­mu­nauté
La procédure de la pro­gram­ma­tion jouit d’une grande liberté (le libre choix d’interface uti­li­sa­teur et l’éditeur) Pas d’éditeur graphique
Pas de dé­pen­dance de certains formats ou d’outils sup­plé­men­taire Script côté serveur in­dis­po­nible (par exemple pour les for­mu­laires)
Hé­ber­ge­ment (gratuit) en régie propre ou sur les serveurs GitHub possible
Propre serveur de dé­ve­lop­pe­ment
Contrôle de version dis­po­nible via GitHub

Jekyll et GitHub : la symbiose parfaite

GitHub est une grosse pointure dans les cercles de l’in­for­ma­tique. Cette pla­te­forme simplifie con­si­dé­ra­ble­ment la gestion des projets et la pu­bli­ca­tion des codes de pro­grammes, surtout lorsque beaucoup de dif­fé­rents dé­ve­lop­peurs prennent part à un projet. Aujourd’hui, GitHub utilise l’ap­pli­ca­tion open source Git pour gérer les codes sur ses serveurs qui sont ensuite stockés dans des ré­per­toires distincts.

D’abord, les ajus­te­ments des projets sont en­re­gis­trés comme forks (scissions), afin que l’auteur puisse recevoir une no­ti­fi­ca­tion ap­pro­priée, et décider s’il doit l’inclure dans le code d’origine.

Jekyll et Github s’har­mo­ni­sent à merveille : les fichiers du gé­né­ra­teur de site statique peuvent être fa­ci­le­ment déplacés vers un ré­fé­ren­tiel. La col­la­bo­ra­tion avec d’autres dé­ve­lop­peurs en est facilitée, qui peuvent tirer parti de la gestion des versions pratique de la pla­te­forme. Vous souhaitez préparer un site Web Jekyll di­rec­te­ment à partir de GitHub ? Avec IONOS Deploy Now, vous pouvez héberger gra­tui­te­ment votre ap­pli­ca­tion à page unique ou votre gé­né­ra­teur de site statique, SSL, pré­pro­duc­tion et bouclier anti-DDoS compris.

Créer des sites Web clients avec Jamstack : rapide, efficace, sûr.

Dans ce livre blanc, vous aborderez les problèmes ren­con­trés avec les CMS clas­siques, les raisons pour les­quelles les pages statiques réalisées avec la Jamstack cons­ti­tuent une véritable al­ter­na­tive et comment ceci peut vous aider à alléger vos flux de travail et à améliorer les résultats pour les clients.

Conseil

Avec Deploy Now, vous pouvez héberger un gé­né­ra­teur de site statique comme Gatsby, Hugo ou Jekyll en toute trans­pa­rence de GitHub vers une in­fras­truc­ture IONOS géo­re­don­dante protégée contre les attaques DDoS. Chaque fois que vous apportez des mo­di­fi­ca­tions à votre gé­né­ra­teur de site statique, Deploy Now déclenche au­to­ma­ti­que­ment une mise à jour des contenus statiques sur votre espace Web en arrière-plan. Deploy Now soutient en plus le pro­vi­sion­ne­ment SSL au­to­ma­tique et l’uti­li­sa­tion d’en­vi­ron­ne­ments de pré­pro­duc­tion.

Qu’est-ce qui distingue Jekyll d’autres gé­né­ra­teurs de blogs et d’autres CMS ?

Le gé­né­ra­teur de site Web permet de créer des pages qui fonc­tion­nent en­tiè­re­ment sans connexion à la base de données. Par ailleurs, la pos­si­bi­lité d’in­cor­po­rer des éléments dy­na­miques fait toutefois défaut, et c’est la raison pour laquelle seules des pages statiques peuvent être créées avec Jekyll. Cependant, il existe également des CMS sans base de donnée qui sont conçus uni­que­ment pour les projets côté client. Ceux-ci sont néanmoins plus complexes que Jekyll.

En com­pa­rai­son directe avec d’autres gé­né­ra­teurs de sites Web statiques, Jekyll marque surtout des points de par sa connexion directe à GitHub et les avantages qui en résultent, tels que la gestion de version de qualité ou le service d’hé­ber­ge­ment gratuit.

Tutoriel Jekyll : comment créer un site Web avec Deploy Now

Réaliser son propre site Web avec Deploy Now, Jekyll, et Github est très simple. Les fichiers sont gérés sur Github et vous pouvez ensuite les publier di­rec­te­ment avec Deploy Now : toute mo­di­fi­ca­tion du code source peut être ra­pi­de­ment trans­fé­rée à la version publiée. Dans le tutoriel pas à pas, vous ap­pren­drez à utiliser le gé­né­ra­teur dans le cadre de la pla­te­forme de dé­ve­lop­pe­ment.

Étape 1 : créer un compte GitHub

Vous avez besoin d’un compte GitHub en premier lieu. Pour ce faire, accédez au site Web GitHub join et entrez une adresse email valide, votre nom d’uti­li­sa­teur et le mot de passe de votre futur compte.

Ensuite, sé­lec­tion­nez l’abon­ne­ment désiré, c’est-à-dire soit la version gratuite (pour un nombre illimité de ré­per­toires publics) soit la version payante (pour un nombre illimité de ré­per­toires privés). Enfin, vous pouvez fournir en option des in­for­ma­tions sur vos com­pé­tences en pro­gram­ma­tion et vos intérêts. Vous recevrez un email de con­fir­ma­tion de GitHub. Il faut activer votre compte en cliquant sur le lien proposé dans cet email.

Étape 2 : créer le ré­fé­ren­tiel et choisir le thème pour Jekyll

Main­te­nant, vous pouvez vous connecter en utilisant le compte que vous avez créé. Le tableau de bord uti­li­sa­teur vous donne une vue d’ensemble des dif­fé­rents ré­per­toires. Au début, il ne présente aucune in­for­ma­tion. Pour modifier ceci, commencez par créer un nouveau ré­fé­ren­tiel. Pour ce faire, cliquez sur le signe « + » dans la barre de lancement uti­li­sa­teur et sé­lec­tion­nez l’élément de menu « new re­po­si­tory ».

Jusqu’à présent, il s’agit d’un ré­fé­ren­tiel de projet GitHub ordinaire. Pour le convertir dans votre ré­fé­ren­tiel Web, dif­fé­rentes méthodes s’offrent à vous :

  • Vous pouvez commencer en­tiè­re­ment à partir de zéro et cons­truire votre site Web sans modèle avec Jekyll. Pour plus d’in­for­ma­tions à ce sujet, consultez la do­cu­men­ta­tion of­fi­cielle.
  • Utiliser un thème Jekyll facilite la mise en route.
  • L’exemple de Jekyll de Deploy Now est également un bon début pour un site Web dédié avec le gé­né­ra­teur de site statique.

Étape 3 : connecter le compte GitHub avec Deploy Now

Si vous n’avez pas encore de compte avec Deploy Now, vous pouvez en créer un gra­tui­te­ment. Vous créez ensuite un nouveau projet et vous le connectez à votre ré­fé­ren­tiel GitHub. Sé­lec­tion­nez Jekyll dans la con­fi­gu­ra­tion. Tout ceci est réalisé dans un très court temps et vous pouvez commencer avec les contenus de votre site Web.

Étape 4 : publier la première page avec un message de bienvenue

En ce qui concerne la sélection du thème, un fichier de con­fi­gu­ra­tion (config.yml) et une page d’index (index.md) sont créés au­to­ma­ti­que­ment. Ce dernier re­pré­sente une forme de pré­vi­sua­li­sa­tion des thèmes pour Jekyll, qui est aussi déjà au format Markdown. Cette page d’accueil ainsi que le fichier de con­fi­gu­ra­tion peuvent être modifiés. Pour ce faire, il faut tout sim­ple­ment sé­lec­tion­ner le fichier approprié, et ensuite, cliquer sur l’icône crayon dans la barre de menus.

Supprimez le code et ajoutez un message de bienvenue sur votre site Web :

## Bienvenue sur mon site Web !

Ensuite, si vous confirmez le message de bienvenue via « Commit Changes », vous pouvez dès main­te­nant accéder à votre première page via le ré­fé­ren­tiel sé­lec­tionné dans la deuxième étape (qui est également l’URL de votre présence Web).

Note

Pour des fins de test, vous pouvez laisser le code Markdown dans sa forme actuelle. Votre page d’accueil sera ainsi identique au thème appelé DemoPage.

Étape 5 : ajouter son propre contenu

Si l’ins­tal­la­tion n’a rencontré aucun dérapage jusqu’à ici, vous pouvez commencer à concevoir votre site Web ou votre blog. À cette fin, il faut que vous créiez tous les fichiers dont vous avez besoin (tels que les feuilles de style en cascade ou les codes Ja­vaS­cript) en cliquant sur « Create new file ». De cette façon, vous créez également des sous-pages sup­plé­men­taires pour votre projet Web. Via « Upload files », il est aussi possible de té­lé­char­ger des fichiers di­rec­te­ment. Vous pouvez le faire en spé­ci­fiant l’em­pla­ce­ment ou même en insérant les fichiers souhaités via glisser/déposer.

Note

Puisque vous avez connecté votre ré­fé­ren­tiel avec Deploy Now, toutes les mo­di­fi­ca­tions apportées aux fichiers seront au­to­ma­ti­que­ment trans­fé­rées sur votre site.

Étape 6 : té­lé­char­ger le client de bureau ou l’outil terminal

Client de bureau

Il est aussi possible de diriger un site Jekyll via l’interface Web de GitHub. Cependant, avec le client de bureau (dis­po­nible pour Windows aussi bien que pour MacOS), il y a une solution hors ligne. Si vous ne l’avez pas encore installé, cliquez sur « Set up in Desktop » dans le ré­fé­ren­tiel que vous avez créé et vous serez au­to­ma­ti­que­ment amené à la page de té­lé­char­ge­ment.

Outil terminal

Passer par le client de bureau est cer­tai­ne­ment im­po­pu­laire aux yeux de nombreux dé­ve­lop­peurs. L’outil terminal pro­prié­taire de GitHub peut être utilisé pour exécuter des commandes GitHub di­rec­te­ment dans la ligne de commande. Toutes les fonctions GitHub peuvent être exécutées di­rec­te­ment sur le terminal à l’aide de l’outil pratique et de commandes simples.

Étape 7 : cloner le ré­fé­ren­tiel

Une fois que vous avez té­lé­chargé et installé le client, vous pouvez l’utiliser pour faire une copie locale de votre présence Web. Pour ce faire, connectez-vous sim­ple­ment avec votre login GitHub et sé­lec­tion­nez « Clone a re­po­si­tory » dans le menu de démarrage. Vous avez main­te­nant la pos­si­bi­lité de spécifier le ré­fé­ren­tiel à cloner. Dé­fi­nis­sez l’em­pla­ce­ment de stockage sur « Local path ».

Dans votre ré­fé­ren­tiel, vous pouvez accéder à dif­fé­rentes branches. Il s’agit de branches in­di­vi­duelles du projet, qui per­met­tent aux dé­ve­lop­peurs de tra­vail­ler con­join­te­ment à l’éla­bo­ra­tion du code ou de se con­cen­trer sé­pa­ré­ment sur des domaines de dé­ve­lop­pe­ment spé­ci­fiques. IONOS Deploy Now affiche main­te­nant les branches in­di­vi­duelles du ré­fé­ren­tiel cloné. Dès que vous créez une nouvelle branche, celle-ci s’affiche au­to­ma­ti­que­ment à l’aide de Deploy Now. Vous pouvez ainsi suivre à tout moment l’ensemble de votre projet Web et les progrès réalisés au sein des branches de dé­ve­lop­pe­ment in­di­vi­duelles.

Aller au menu principal