Utiliser Zola dans Codespace
Une fois n'est pas coutume, j'ai écrit cet article en anglais dans un premier temps. L'IA a peut-être foiré lors de la traduction. Si tu comprends l'anglais, je te conseille de changer la langue du site.
Introduction au défi
Récemment, j'ai complètement réduit mon ordinateur de jeu à 2.500€ pour un chromebook à 300€. J'ai arrêté de jouer et je voulais à la fois récupérer de l'espace et de l'argent ! Rassurez-vous, j'ai toujours un beau bureau et un deuxième écran, je resterai en bonne santé.
Avec un ordinateur aussi limité, vous ne pouvez pas faire grand-chose. Je savais que c'était mauvais, mais les temps de compilation de Rust étaient vraiment mauvais. Ensuite, la question s'est posée : comment utiliser un éditeur basé sur le cloud pour que mon terminal n'ait pas d'importance ? Tant que j'ai Internet et un navigateur, je peux coder ! Je l'ai confirmé sur ma tablette et même sur mon téléphone. Certains réfrigérateurs pourraient probablement faire la même chose 🤣
J'aime beaucoup Zola, mais je trouve que les tutoriels sont insuffisants. Heureusement, j'ai trouvé un moyen de faire fonctionner cela, et je vais partager ma méthode avec vous.
Mon avis
Configuration de Codespace
Important
Si vous ne voulez pas lire, vous pouvez passer directement à chacun des vidéos.
1
Je crée un dépôt GitHub vide, avec au moins un readme.md dedans. Cela facilite la configuration sur GitHub qui lie les codespaces aux dépôts. Vous pouvez tout à fait utiliser un dépôt existant.
2
Je crée un nouveau codespace et supprime la fonction d'autosuppression. Comme nous avons besoin de Rust et de Zola disponibles, nous ne pouvons pas nous permettre d'attendre le temps nécessaire pour installer ces deux éléments plus d'une fois.
3
À l'intérieur du codespace, j'installe Rust avec l'installateur standard Rustup.
Ensuite, j'ouvre un nouveau terminal pour profiter des nouveaux binaires ajoutés
4
J'installe Zola. Les codespaces sont limités : vous n'avez pas l'installateur complet. Par conséquent, j'ai choisi d'utiliser une méthode infaillible : compiler les sources localement. Attention, la compilation prend quelques minutes. Voici les commandes :
git clone https://github.com/getzola/zola.git
cd zola
cargo install --path . --locked
zola --version
5
Une fois tout installé, j'ouvre à nouveau un nouveau terminal et vérifie si Zola est bien installé avec type zola
6
Maintenant que Zola est installé, vous pouvez commencer à créer votre propre site Web statique. Ici, j'utilise Duckquill. Voici les commandes (n'oubliez pas d'être dans le répertoire du projet) :
git clone https://codeberg.org/daudix/duckquill.git themes/duckquill
cd themes/duckquill
git checkout tags/v4.5.0
Naturellement, vous voudrez aller à la section d'installation de Duckquill et utiliser la dernière version.
Tip
Ici, je modifie le .gitignore pour ne pas commettre le dossier
themes/
. Cependant, je laisse le dossier public être commis, car il correspond à la manière dont j'ai configuré mon pipeline CI/CD. Il devrait y avoir un moyen plus simple de le faire, en faisant en sorte que le pipeline exécutezola build
, mais je suis un peu trop paresseux pour le découvrir, et à cause des minutes supplémentaires nécessaires pour avoir un processus de construction avec Zola installé.
7
Dans l'enregistrement, je fais un petit désordre : je reviens dans le dossier du projet, et copie pratiquement tout le thème pour obtenir rapidement quelque chose qui fonctionne. Vous pouvez et devriez éviter cela et plutôt construire votre site Web lentement mais sûrement à partir de là. La logique de Zola est assez simple. Il essaiera de trouver un certain fichier. S'il échoue, il ira dans votre thème et essaiera de trouver le même fichier. Avec cette logique, c'est vraiment facile à utiliser :
- Copiez la structure de l'exemple de contenu du thème que vous utilisez
- Si vous voulez personnaliser quelque chose, vous pouvez simplement copier le fichier entier du thème et le modifier vous-même. Cela écrasera tout ce qui est écrit dans le thème.
- Si vous réutilisez quelque chose dans le modèle, vous devriez envisager d'utiliser un partial.
8
Pour construire, il y a la commande zola build
.
Pour avoir une expérience de développement interactive, vous pouvez utiliser zola serve -u /
. Ce -u /
est vraiment nécessaire car le codespace est un peu confus avec les URL sans lui. Même comme ça, il y a quelques problèmes.
- Vous ne pouvez pas vraiment revenir à la page d'index. Vous devez modifier l'URL vous-même.
- Les locales ne fonctionnent pas bien non plus. Encore une fois, vous pouvez simplement modifier l'URL.
- J'ai fait un shortcode YouTube pour l'un de mes sites. Cela n'a pas fonctionné dans la vue codespace.
Cependant, une fois le site Web déployé à l'emplacement final, tout devrait bien se passer.
Bonus : Configuration du pipeline CI/CD
Mon CI/CD est si simple que c'en est ennuyeux :
- Obtenez les fichiers depuis /public
- Poussez-les vers l'hôte
Tip
Vous seriez probablement mieux avec GitHub Pages, mais j'avais déjà acheté le domaine alors...
Danger
Oui, c'est simple et rapide, mais cela a un gros inconvénient ! Si vous ne faites pas attention, vous pourriez pousser un dossier /public corrompu. C'est pourquoi je dois toujours exécuter
zola build
avant de faire un commit.
# C'est un workflow de base qui est déclenché manuellement
name: Déploiement vers LWS
on:
# S'exécute lors des pushs ciblant la branche par défaut
push:
branches: ["main"]
# Permet d'exécuter ce workflow manuellement depuis l'onglet Actions
workflow_dispatch:
# Un workflow est constitué d'un ou plusieurs jobs qui peuvent s'exécuter séquentiellement ou en parallèle
jobs:
# Ce workflow contient un seul job appelé "deploy"
deploy:
# Le type de runner sur lequel le job s'exécutera
runs-on: ubuntu-latest
# Les étapes représentent une séquence de tâches qui seront exécutées dans le cadre du job
steps:
- name: 🚚 Obtenir le code le plus récent
uses: actions/checkout@v4
- name: 📂 Synchroniser les fichiers
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.ftp_address }}
username: ${{ secrets.ftp_username }}
password: ${{ secrets.ftp_password }}
local-dir: ./public/
Vous devrez configurer vos secrets dans le projet GitHub, naturellement.
J'espère que vous avez bien lu. Cet article est principalement écrit en remerciement à la communauté Zola, et j'espère qu'il vous encouragera à l'utiliser et éventuellement à contribuer à un thème (le vôtre ?) ou directement au projet Zola. Bonne journée 👋