Comment est fabriqué ce site web?
Mathieu Bridon
- https://mathieu.daitauha.fr
Les sources de ce site web sont disponibles dans un dépôt Git:
$ git clone https://mathieu.daitauha.fr/sources/
N'hésitez pas à y jeter un coup d'œil, à vous en inspirer si vous l'appréciez, ou à m'indiquer mes erreurs pour que je l'améliore.
Le site est reconstruit automatiquement à chaque fois que je push une
nouvelle version des sources, grâce à un hook Git post-receive
:
#!/bin/bash
set -o nounset
set -o errexit
set -o pipefail
SOURCE_DIR=/srv/www/daitauha.fr/mathieu.git
while read oldrev newrev refname; do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "main" == "$branch" ]; then
OUTPUT_DIR=/srv/www/daitauha.fr/mathieu
TEMP_CLONE=/tmp/mathieu.daitauha.fr
VENV=/home/bochecha/mathieu.daitauha.fr
# Clone the sources
rm -rf ${TEMP_CLONE}
git clone ${SOURCE_DIR} ${TEMP_CLONE} |& tee /dev/null
cd ${TEMP_CLONE}
# Update the installed dependencies, and rebuild the site
${VENV}/bin/pip install --upgrade -r requirements.txt
${VENV}/bin/pelican content -o output -s publishconf.py
# Publish the newly-built site
rm -rf ${OUTPUT_DIR}.bak
test -d ${OUTPUT_DIR} && mv ${OUTPUT_DIR} ${OUTPUT_DIR}.bak
mv output ${OUTPUT_DIR}
fi
done
# Update auxiliary info file
(cd ${SOURCE_DIR} && git update-server-info)
Remerciements
Ce site web est construit et servi grâce à plusieurs logiciels libres:
- le serveur web NGINX ;
- le générateur de sites statiques Pelican ;
- le framework Pure CSS;
- la bibliothèque Javascript jQuery ;
- le plugin de recherche Tipue ;
- les icônes Fork Awesome ;
Merci à tous les développeurs et artistes qui les ont produits et partagés librement !
Et bien sûr, un grand merci à 6clones pour l'hébergement de ce site web.