Ce projet transforme une collection de notebooks Jupyter en une galerie web élégante, hébergée sur GitHub Pages. Chaque notebook est automatiquement exécuté, sa visualisation principale est capturée sous forme d'image, et une galerie interactive est générée, offrant un aperçu visuel de chaque analyse.
- Traitement par lots : Exécute automatiquement tous les notebooks d'un dossier désigné.
- Exportation de visualisations : Capture les graphiques Plotly, Matplotlib et les cartes Folium sous forme d'images PNG.
- Galerie web interactive : Génère une page
index.htmlavec une galerie des notebooks, incluant des miniatures, des titres et des liens pour les ouvrir dans Google Colab. - Déploiement continu : Utilise GitHub Actions pour automatiser la mise à jour de la galerie à chaque
pushsur la branchemain.
Le projet s'articule autour de deux scripts Python principaux et d'un workflow GitHub Actions :
-
process_notebook.py:- Parcourt le dossier
notebooks/. - Pour chaque notebook, il injecte dynamiquement une cellule de code à la fin.
- Cette cellule, une fois exécutée, identifie la variable de visualisation (nommée
datavizpar convention) et l'exporte en tant que fichier PNG dans le dossierpublished/notebooks/. - Il gère les bibliothèques Plotly, Matplotlib et Folium.
- Parcourt le dossier
-
generate_carousel.py:- Analyse le contenu du dossier
published/notebooks/. - Pour chaque couple
.ipynb/.png, il extrait le titre du notebook (depuis la première cellule Markdown). - Il génère la page
published/index.htmlqui affiche les PNG sous forme de galerie. - Chaque image de la galerie est un lien qui ouvre le notebook correspondant directement dans Google Colab, en utilisant le dépôt GitHub comme source.
- Analyse le contenu du dossier
-
.github/workflows/main.yml:- Ce workflow s'active à chaque
pushsur la branchemain. - Il configure un environnement Python et installe les dépendances listées dans
requirements.txt. - Il exécute séquentiellement
process_notebook.pypuisgenerate_carousel.py. - Enfin, il déploie le contenu du dossier
published/sur la branchegh-pages, ce qui le rend disponible via GitHub Pages.
- Ce workflow s'active à chaque
- Un compte GitHub.
- Python 3.8+ et
pip.
-
Clonez le dépôt :
git clone https://github.com/AliHmaou/batchbooks.git cd batchbooks -
Créez un environnement virtuel et installez les dépendances :
python -m venv venv source venv/bin/activate # Sur Windows: venv\Scripts\activate pip install -r requirements.txt
- Créez votre notebook (
.ipynb) et placez-le dans le dossiernotebooks/. - Assurez-vous que la visualisation finale que vous souhaitez afficher dans la galerie est assignée à une variable nommée
dataviz. - Ajoutez un titre dans la première cellule Markdown de votre notebook (ex:
# Mon Analyse Incroyable). - Poussez vos changements sur GitHub :
git add notebooks/mon_nouveau_notebook.ipynb git commit -m "Ajout du notebook : Mon Analyse Incroyable" git push origin main
Le workflow GitHub Actions s'occupera du reste. Après quelques minutes, votre nouvelle analyse apparaîtra dans la galerie sur votre site GitHub Pages.