Skip to main content
Seb's blog
logo PassionGNU/Linux

Je me fixe sur Hexo, je vous explique pourquoi.

Je sais que je suis des plus instables en ce moment, c’est pas pour rien, j’espère ainsi me fixer pour un bon laps de temps et ne plus bouger, ce qui m’oblige à chercher et à exploiter plus en profondeur les outils.

Je suis resté sur trois outils principalement, il y a bien la possibilité d’un quatrième avec Hugo mais je le sors de suite pour de nombreuses raisons dont l’une m’obligerait à revoir l’ensemble de la datation de mes billets. Si je rajoute à ça tout mes griefs envers lui, je n’ai pas plus de raisons de le garder dans la liste.

Je ne veux pas d’un retour en arrière, c’est pour cette raison que de revenir sur Pelican n’est pas souhaitable, ça et le fait que j’ai l’impression d’avoir déjà tout vu sur lui.

Il reste donc Hexo, 11ty (Eleventy) et Zola. Comme je l’ai dis dans un billet, certaines opinions de Zola sur la façon de faire n’est pas de mon avis compatible avec moi, donc je le sors lui aussi.

C’est comme ça depuis un mois que je me cherche entre 11ty et Hexo, ayant eu pour un moment, le site fonctionnel sur chacun des deux. 11ty me permet d’obtenir un site particulièrement personnel avec un look bien perso, même si on pouvait reconnaître sur quoi il était basé; Hexo me donnant accès à une quantités de plugins et de thèmes facilement applicables. Exemple tout con, la recherche sur le site a disparue le jour où j’ai arrêté les sites dynamiques pour des statiques, c’est pas quelque chose qui me manquait mais maintenant pour rechercher et trouver ce que je veux c’est tout de même bien pratique et j’aurais du mal à m’en priver.

Ce que j’aime avec Hexo, faut quand même que je le dise, c’est sa configuration, contrairement aux autres GSS, il y a deux fichiers de conf, un fichier pour le moteur lui même qui est la base et l’autre propre à chaque thème, ce qui évite de toujours toucher à notre fichier quand on change de thèmes. L’autre chose que j’aime c’est que peu importe le thème charger, le contenue lui ne bouge pas. Certains GSS demandent que le contenue soit placé d’une certaine manière selon le thème, ce qui m’insupporte, ou sinon faut faire l’acrobate en trichant (Zola).

Ça fait deux mois que je cherchais en temps réel un remplaçant pour Pelican, temps réel car le site bougeait de moteurs selon mes humeurs. J’aimerai me stabiliser comme j’ai pu le faire sur Pelican, ne plus bouger pour un moment. C’est sûr que je n’ai pas gagné en temps de construction avec Hexo ou même 11ty par rapport à Pelican, mais pour Hexo j’ai tout de même la recherche dynamique sur l’intégralité du contenu des billets et non que le titre, les commentaires avec le forum, les flux Atom et RSS, la page d’archive en bonne et due forme, tout ça dans 70 MO (images comprises, c’est-à-dire 35 MO).

Je ne reviens pas sur dynamique VS statiques, une chose est sûr c’est que je ne reviendrai pas sur du dynamique que ce soit un truc à la Wordpress ou SPIP (malgré tout le bien que je pense pour ce dernier) ou les flats à la PluXml et Grav.

Aujourd’hui, la construction de mon site se fait en trois commandes comme toujours. Avant Hexo je devais faire mes propres scripts, un pour fabriquer le template du billet puis un autre pour envoyer le résultat en appelant Rsync.

Je donne ici mon petit script pour faire le template du billet (ça créé juste un fichier .MD avec ce qu’il faut à l’intérieur):

#/bin/bash

TITLE=$@
TITLEF=$(echo $TITLE | tr " " "-")
YEAR=$(date +"%Y")
MONTH=$(date +"%m")
DAY=$(date +"%d")

## Pour créer la destination:
#mkdir -p "src/posts/$YEAR/$MONTH"

## Pour créer le fichier/billet .md:

#FILENAME="src/posts/$YEAR/$MONTH/$TITLEF.md"
#FILENAME="content/$YEAR-$MONTH-$DAY-$TITLEF.md"
FILENAME="posts/$YEAR-$MONTH-$DAY-$TITLEF.md"

cat <<EOF > $FILENAME
---
title: "$TITLE"
date: "$(date '+%Y-%m-%d')"
---

<!-- more -->

EOF

echo "Created new post at $FILENAME"

Et le script pour envoyer sur le site:

#Juste un petit script pour déployer mon site via rsync.

rsync -e ssh -avz _site/ login@ssh.adresse.chose:/adresse/de/la/racine/du/blog/

Avec Hexo, plus besoin de tout ça, car il contient des commandes pour le faire. Créer juste un fichier .MD avec ce qu’il faut à l’intérieur:

hexo new "titre du billet qu'on veut avoir"
INFO  Validating config
INFO  Created: ~/git/hexo/source/_posts/2022-11-12-titre-du-billet-qu-on-veut-avoir.md

Ce qui donnera ceci:

---
title: titre du billet qu'on veut avoir
date: 2022-11-12 17:36:57
tags:
---

Pareil pour l’envoi:

hexo deploy

Qui fait exactement ce qui est fait plus haut avec Rsync puisque j’ai configuré ainsi:

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: rsync
  host: ssh.adresse.host
  user: login
  root: /adresse/de/la/racine/du/blog/
  port: 22
  delete: false
  verbose: true
  ignore_errors: false

Donc, je disais que le tout se faisait en trois commande, une commande --pour se faciliter la vie-- hexo new "titre du billet" pour se faire un fichier pré-rempli avec titre et date, une commande pour fabriquer le site --ou si le SGG à un cache, ajouter le billet au reste du site-- hexo generate puis une dernière pour le déploiement hexo deploy.

C’est d’une simplicité les SGG que de un je ne me vois pas revenir sur du dynamique, de deux, je ne sais pas comment je faisais avant entre le PHP, la base de données SQL, …

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