Skip to main content
Seb's blog

Encore un changement de moteur et de look, le dernier pour le moment!

Ce n'est pas passé inaperçus, j'ai encore changé, mais comme je le disais dans un billet récent:

Résultat des courses, pour le moment je reste sur Zola qui me va bien, mais certains points me dérangent. Il garde en effet les mêmes travers de son aîné Hugo notamment que ce soient les thèmes qui définissent la façon d’organiser son dossier de sources/contenues, je dirais même que c’est encore plus prononcé chez Zola et c’est quelque chose que je n’aime pas… En gros, si je change de thème, je devrais aussi changer ma façon d’organiser mon dossier de contenues. C’est un truc que je n’ai pas sur Hexo ou Pelican.

Et encore une fois c'est ce qui s'est passé. Je testais Zola avec un thème qui me tapait dans l’œil, avec pleins de scripts JS, des fonctions à gogo, c'était pas mal pour le coup. Mais --car avec moi il y a toujours un mais-- une chose me chagrinait. C'est simple, je désactive toujours les recherches, c'est des fichiers JS généralement donc ça demande node et npm, puis ça ralentit diaboliquement le build du site. Normalement Zola est capable de faire une page de recherches, ça c'est normalement car je n'ai pas su le faire. Je n'ai pas su le faire, oui et non, en vrai faut que le thème ait pensé de mettre ça en place, on peut le voir par exemple avec le thème i386:

i386

Comme chaque site sera différent, Zola ne fait aucune hypothèse sur votre fonction de recherche et ne fournit pas le code JavaScript/CSS pour effectuer une recherche réelle et afficher les résultats. Vous pouvez regarder comment ce site l'implémente pour vous faire une idée : search.js .

En regardant de plus près c'est juste 4-5 lignes à rajouter dans notre thème, mais c'est pas ça le soucis, le vrai soucis avec ça, cette méthode qui n'a ni besoin de code externe, d'appel externe, se fait via l'ajout de 4 ligne dans notre base.html ou index.html selon le thème, puis d'un script search.js, donc le vrai soucis c'est qu'il ralenti énormément le temps de build du site, on passe à du 200/300ms à des 2/4s... C'est juste dix fois plus.

Exemple avec zola-i386 (build_search_index = false):

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 547 pages (0 orphan) and 0 sections
Done in 272ms

Le même site avec zola-i386 (build_search_index = true):

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 547 pages (0 orphan) and 0 sections
Done in 1.9s.

Le même site avec le thème archie-zola et build_search_index = false:

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 549 pages (1 orphan) and 1 sections
Done in 462ms.

puis avec build_search_index = true:

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 549 pages (1 orphan) and 1 sections
Done in 3.6s.

Allez un dernier pour la route, celui que j'utilisais avec zola depuis quelques semaine, le thème Xyblag:

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 549 pages (1 orphan) and 1 sections
Done in 404ms.

puis avec build_search_index = true:

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 549 pages (1 orphan) and 1 sections
Done in 3.6s.

Mon dernier thème utilisé sur Zola --que j'aimais vraiment pas mal, car il avait les qualités que j'aime retrouver sur un blog--, du nom de abridge est comme je l'ai dit plus haut, rempli de script.js. Il est vachement moins rapide que les autres comme on va le voir.

build_search_index = false:

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 551 pages (2 orphan) and 2 sections
Done in 1.6s.

build_search_index = true:

zola build
Building site...
Checking all internal links with anchors.
-> Successfully checked 0 internal link(s) with anchors.
-> Creating 551 pages (2 orphan) and 2 sections
Done in 3.2s.

Bon, maintenant qu'on a vu ça, faut que je rajoute un truc, dans le dernier thème (abridge pour ceux qui suivent pas), il faut en plus faire un appel à npm à chaque build pour que l'index de recherche se mette à jour. Tout ceci est dans la documentation du thème, je n'invente rien:

zola build
npm run abridge
zola build

Ce qui prend chez moi, 17 secondes de plus juste pour npm run abridge. Je pense que vous comprenez où je veux en venir. Là, dessus faut que je le dise, si je prends Pélican c'est pour avoir du python, pas de ruby, ni du node/npm; si je prends un truc comme Zola, mais en fait Hugo est dans le même cas de figure, c'est pour éviter d'utiliser node/npm. Si je dois commencer à en jouer, à quoi bon ne pas passer directement à un truc qui exploite npm/node?

Je testais Hexo --ainsi que 11ty dans une moindre mesure--, à première vu il est plus lent, avec un thème du nom de cactus assez simple, il est dans les 2.80s, j'arrive même avec un autre thème à tomber dans les 1.5s, donc bien loin des 300/400ms de Zola et Hugo. Mais et c'est là où il devient intéressant, on utilise déjà npm, de plus ajouter la recherche ne ralentit pas plus que de mesure le build du site et Hexo devient alors le plus rapide.

C'est comme ça que je me suis dis autant aller sur le plus simple d'utilisation et le plus rapide. Nous y voila.

Commencer la discussion: Venez écrire un commentaire dans le forum