Jour 003 : Le site et quelques assets de plus

Tôt ce matin, Nicolas a pris le temps de réaliser rapidement ce site Internet. Voici ce qu’il en dit :

Mise en place du site

Jekyll

Je voulais un site internet simple et rapide. Quelque chose qui soit modifiable en Markdown parce que c’est un mode de saisie que j’apprécie, et surtout je voulais qu’il statique car je veux qu’il représente un minimum de ressource sur mon petit serveur local. Du coup je suis parti sur Jekyll. J’ai utilisé le theme Minimal Mistakes qui est très populaire.

Récemment, j’avais utilisé GRAV pour un autre projet et je voulais tester autre chose d’encore moins gourmand en ressources. Et je ne regrette pas !

Le résultat me convient tout à fait. Ca ne m’a pris que quelques heures pour le mettre en place et le personnaliser. Ce n’est pas du tout User Friendly à l’installation. Par contre une fois que c’est prêt, c’est très puissant. En une seule ligne de commande on peut publier un site sur un serveur distant très rapidement.

Mise en place et installation

J’aurais pu installer Jekyll sur le serveur mais finalement, j’ai préféré tout gardé sur mon poste de travail principal. Le but était de builder le site sur mon poste de travail et de le publier sur mon serveur. Ce dernier n’a donc rien à faire part le rendre accessible au public.

sudo apt-get install ruby-full build-essential zlib1g-dev
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
gem install jekyll bundler
cd **/chemin/vers/mon/**
jekyll new **blog**
cd **/chemin/vers/mon/blog/**
bundle exec jekyll serve

Et voilà. le site fonctionne déjà sur http://localhost:4000. Les modifications effectuées sont appliquée en temps réel, et on a des logs d’erreur dans la console qui sert pour le serve

On peut ajouter des gems dans le Gemfile. A chaque fois qu’on fait ça, il faut exécuter ceci : bundle install

Ensuite, il faut relancer le serve. Si on modifie _config.yml, il faut aussi relancer le serve.

Personnellement, j’ai juste eu à ajouter ceci dans mon fichier Gemfile :

gem "jekyll-data"

Dans le group :jekyll_plugins do parce que le theme le demandait.

gem "minimal-mistakes-jekyll"

En bas du fichier pour activer le thème.

gem "jekyll-image-optim"

En bas du fichier pour me permettre d’optimiser les images

Ensuite j’ai récupéré quelques fichiers du thème ici pour le configurer.

  • _config.yml
  • _layouts/default.html
  • _data/navigation.yml
  • _pages/404.html
  • _pages/category-archive.md
  • _pages/tag-archive.md
  • _pages/year-archive.md

Je les ai ouvert avec un editeur texte simple et personnalisés.

Publier un article

Je rédige mes articles avec Ghostwriter. Je peux faire ça hors ligne sur une interface ultra efficace. Je dépose mes articles au format .md dans le dossier des articles /_posts.

Pour les images, je les dépose dans /assets/images/. Dans mes posts, je fais des liens vers /assets/images/mon_image.jpg pour pouvoir voir mon image directement dans Ghostwriter. Et pour que les chemins ne soient pas cassés sur le site, je remplace tous les /assets/images/ par des /assets/images/. Pour faire, ça j’ai modifié le fichier _layout/default.html. J’ai remplacé { { content }}

par

{ { content | replace: "/assets/images/", "/assets/images/" }}

Et voilà. Mes images marchent bien en local hors ligne dans l’éditeur, dans l’émulateur serve, et en production.

Mettre en ligne le site

Quand j’ai terminé mes modifs, je peux lancer le build du site avec cette commande :

jekyll build

Le contenu statique de mon site est alors déposé dans le dossier _site/. Et je n’ai plus qu’à rendre se site accessible avec un apache ou nginx (Apache2 dans mon cas, sur un ubuntu server installé sur un vieux laptop).

Je me suis préparé un petit shellscript inspiré de celui-ci pour me permettre de publier directement sur mon serveur via ssh :

#!/bin/sh
# -----------------------------------------------------------
# commit-vps.sh
# -----------------------------------------------------------

# Variables

localjekyll="/chemin/vers/mon/blog/sur/mon/ordi"
remotewebroot="/chemin/du/blog/sur/le/serveur"
instancehost="host"
sshuser="user"
sshport="22"
sshidentity="~/.ssh/id_rsa"

# Execution

cd $localjekyll
# bundle install
jekyll build

echo "rsync to SSH host $instancehost ..."

rsync -vrhp -e "ssh -p $sshport -i $sshidentity" --exclude ".*" \
--rsync-path="sudo rsync" \
--delete-after \
--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r \
$localjekyll/_site/ $sshuser@$instancehost:$remotewebroot

echo "SSH connection closed. Done. Committed."

Bref, c’est hyper évolutif. Je pourrai facilement ajouter de nouvelles fonctionnalités par la suite.

Plus tard, je pense que je publierai les sources de mon site internet. Peut être sur Github ou sur un Gitlab perso. Ou simplement sous forme de zip. Je vais voir pour trouver la solution la plus sympa. (c’est dans la todo !)

La mise en place du travail collaboratif

On a commencé à mettre ça en place dès le début, mais on n’en a pas vraiment parlé encore. On utilise notre serveur Nextcloud familial pour partager nos fichiers entre nous. On peut donc travailler off line à la maison chacun sur notre post (en réseau local). Toutes les données sont partagées, mais restent chez nous.

Quelques nouveaux assets réalisés par Clément

Clément a bien avancé sur les assets. Voici ce qu’il nous en dit :

Aujourd’hui, je trouve que j’ai fait le plus important : finir les carrés de sols indispensables pour qu’on puisse faire les premiers essais (herbe, terre, sable, eau). Avec ça, on pourra réaliser des sentiers, des plaines pour guider le joueur.

J’ai fini les éléments qui font barrières (arbres, gros rochers, cailloux).

Prochainement quelques barrières de cailloux. Avec ça, on pourra limiter le jouer afin de ne pas lui permettre d’aller n’importe où. Aussi il faudra bientôt que j’ajoute des éléments d’histoire. Du genre les terriers des taupes farceuses 🤣

Clément qui dessine les assets d'eau
Les premiers brouillons pour les tiles d’eau et de sable
Clément qui dessine des roches
La première étape du dessin des rochers : Des aplats de couleurs.
Clément qui dessine des roches
Quelques détails d’ombres et de lumières ajoutés.