Programmer est, sans aucun doute, la chose la plus gratifiante intellectuellement que j’ai jamais réalisée. Programmer m’a appris que la vie se devait d’être amusante, remplie de créativité et vécue au maximum de son intensité. Programmer m’a appris que tout était possible ; je peux faire ce qui me plait en utilisant seulement mon esprit.
Extrait de How I learned to program (qui a été traduit sur framablog).
Le but de ce dojo est de créer un script bash qui effectue les actions suivantes :
- Liste les images d'un dossier
- Génère des miniatures de ces images
- Utilise la liste des images et leurs miniatures pour générer une galerie
d'images sous forme de page web :
- Une grille de miniatures permet de prévisualiser les images
- Un clique sur une miniature redirige vers le fichier original
Le principe est simple et pourra facilement se compléxifier en ajoutant :
- Un extrait provenant des données Exif de l'image
- L'ouverture de l'image dans un modal
- Des effets CSS (par exemple un blur des images qui disparait au survol de la souris)
- La manipulation des images en amont, par exemple pour s'assurer que toutes les miniatures soient en paysage même si l'original est en orientation portrait.
- etc.
Pour commencer ce travail, commencez par cloner ce dépot.
En vous aidant de cette recherche, trouvez une galerie d'image simple et facile à implémenter. Même si il est possible de tout faire en partant de zéro, c'est toujours plus satisfaisant d'avoir un résultat léché à la fin (si si si). À défaut de se perdre dans les recherche, cette galerie faite avec Bootstrap 4 est un bon point de départ. Un exemple utilisable est disponible sur https://fiddle.jshell.net/bootstrapious/m8pe5qat/show/light/.
Le but est maintenant de générer ce fichier HTML avec les images d'un dossier spécifique. Le dossier ./images de ce dépôt contient une sélection de photos d'architecture provenant du site https://unsplash.com, un site web dédié au partage de photos sous licence libre.
Les choses sérieuses commencent, il est l'heure de créer votre script. Il
faut préalablement lui trouver un nom (par exemple igage
), insérer un shebang et lui donner le
droit de s'exécuter (chmod +x igage
). Ajoutez ensuite un echo "Hello World"
et vous êtes sur les rails pour continuer par vos propres moyens :)
Bonne chance !
En plus de découvrir les scripts bash et leurs facilités de mise en place, ce dojo permet d'aborder les sujets suivants :
- Le monde du web (HTML/CSS/JS)
- La manipulation d'images (ImageMagick)
- Les données Exif
- Les formats de fichiers d'images, comme AVIF, WebP ou APNG.