Expérimentation pour un outil d'archivage et de consultation des articles du quotidien Maire-Info, édité par l'Association des Maires de France (AMF).
Application autonome (fichier HTML unique) mise à jour automatiquement chaque jour ouvré via GitHub Actions. Page de test
- Archivage automatique : récupération tri-quotidienne des articles via le flux RSS
- Recherche plein texte : filtrage instantané par mots-clés dans les titres et descriptions
- Filtrage par rubrique : Polices municipales, Élections, Commerce, Agriculture, etc.
- Filtrage par période : 7 jours, 30 jours, 3 mois
- Sélection individuelle : cocher les articles à exporter
- 7 formats d'export : JSON, CSV, Markdown, OPML, Bookmarks HTML, BibTeX, XML/RSS
- Interface responsive : fonctionne sur ordinateur, tablette et mobile
- Impression : mise en page optimisée pour l'impression
| Format | Extension | Usage |
|---|---|---|
| JSON | .json |
Intégrations, développement |
| CSV | .csv |
Tableurs (Excel, Google Sheets) — séparateur ; |
| Markdown | .md |
Documentation, notes |
| OPML | .opml |
Lecteurs RSS (Feedly, Inoreader) |
| Bookmarks | .html |
Import navigateurs (Chrome, Firefox) |
| BibTeX | .bib |
Références bibliographiques (Zotero, Mendeley) |
| XML/RSS | .xml |
Format structuré, syndication |
Le dépôt utilise GitHub Actions pour se synchroniser automatiquement :
- 8h00 (heure de Paris) : premier scan du matin, capte l'édition principale
- 14h00 (heure de Paris) : second scan, capte les articles publiés en cours de journée
- 20h00 (heure de Paris) : troisième scan, capte les publications tardives
- Du lundi au vendredi uniquement (Maire-Info ne publie pas le week-end)
- Déclenchement manuel : possible via l'onglet "Actions" → "Run workflow"
Le flux de travail :
- Récupère le flux RSS de
http://www.maire-info.com/rss/ - Parse les articles (titre, description, URL, date)
- Récupère la rubrique de chaque article depuis sa page
- Fusionne avec les articles déjà archivés (dédoublonnage par ID)
- Met à jour le fichier
index.htmlavec les nouvelles données - Commit et publie automatiquement
GitHub envoie automatiquement un email en cas d'échec du workflow. Pour configurer les notifications :
- Aller dans github.com → Settings → Notifications
- Section Actions : choisir le niveau de notification souhaité (échecs uniquement, ou toutes les exécutions)
archives-maire-info/
├── index.html # Application complète (données embarquées)
├── README.md # Documentation
└── .github/
└── workflows/
└── update-data.yml # Workflow de mise à jour automatique
- Un compte GitHub
-
Créer un nouveau dépôt GitHub (ou forker celui-ci)
-
Déposer les fichiers dans le dépôt :
index.htmlà la racineupdate-data.ymldans.github/workflows/
-
Activer GitHub Pages :
- Settings → Pages
- Source : Deploy from a branch
- Branch :
main/root
-
Configurer les permissions Actions :
- Settings → Actions → General
- Workflow permissions : Read and write permissions
-
Lancer une première mise à jour :
- Onglet Actions → "Mise à jour quotidienne des articles Maire-Info"
- Cliquer sur "Run workflow"
-
L'application est accessible à :
https://VOTRE-USERNAME.github.io/NOM-DU-REPO/
<iframe
src="https://VOTRE-USERNAME.github.io/archives-maire-info/"
width="100%"
height="800"
frameborder="0"
style="border-radius:12px; box-shadow:0 4px 20px rgba(0,0,0,0.1);">
</iframe>Dans .github/workflows/update-data.yml, modifier les lignes cron :
schedule:
- cron: '0 7 * * 1-5' # 8h00 Paris (7h00 UTC hiver)
- cron: '0 13 * * 1-5' # 14h00 Paris (13h00 UTC hiver)
- cron: '0 19 * * 1-5' # 20h00 Paris (19h00 UTC hiver)Note : les crons GitHub sont en UTC. En heure d'été (CEST), il faut retirer 1h supplémentaire (7h00 UTC = 9h00 CEST). Ajustez si nécessaire.
Dans le workflow, modifier MAX_ARTICLES :
const MAX_ARTICLES = 500; // Par défaut : 500 articlesPour remplir les archives avec des articles plus anciens, vous pouvez modifier temporairement le workflow pour scanner les IDs d'articles séquentiellement (les IDs sont numériques et incrémentaux : article.asp?param=30468, etc.).
L'application repose sur le même principe que l'outil export-lectures-partagees :
- Pas de serveur : tout est dans un seul fichier HTML
- Pas de dépendance : JavaScript vanilla, CSS natif, aucune librairie externe
- Pas de CORS : la récupération des données se fait côté serveur (GitHub Actions), pas côté navigateur
- Données embarquées : le tableau
ARTICLESdans le HTML contient toutes les données - Git comme base de données : chaque mise à jour est un commit, l'historique est traçable
Ce projet est partagé sous licence CC BY 4.0.
Les contenus des articles restent la propriété de l'AMF / Maire-Info.
Outil développé avec l'assistance de Claude (Anthropic).