Files
folio/CHANGELOG.md
T
2026-05-14 23:46:32 +02:00

4.3 KiB

Changelog

Toutes les modifications notables sont documentées ici. Format : Keep a Changelog — versionnage semver.


[Unreleased]


[1.3.0] - 2026-05-14

Amélioré

  • URL introuvable : redirige vers la page de recherche (/search?q=…) au lieu du premier résultat (#61)

[1.2.1] - 2026-05-14

Corrigé

  • Cache article invalidé si index.md est plus récent que meta.json (migration de contenu ne se reflétait pas)
  • Migration 001 : touch(meta.json) après écriture de index.md pour invalider le cache
  • post_view.php : le # Titre Markdown est retiré du rendu (déjà affiché par le template)
  • Wizard étape 1 : en-tête affiche « Modifier » sans répéter le titre de l'article
  • wizard.js : suppression de scrollToCursor (calcul erroné sur textarea auto-resize) ; Ctrl+Home / Ctrl+End scrollent correctement via scrollIntoView

[1.2.0] - 2026-05-14

Ajouté

  • Wizard multi-étapes pour la création (5 écrans) et l'édition (6 écrans) d'articles (#58)
    • Auto-sauvegarde en brouillon (debounce 3 s) avec indicateur visible
    • Étape tags : champ plat avec détection automatique depuis le texte (abréviations, CamelCase, noms propres)
    • Étape SEO : aperçu moteur de recherche en temps réel
    • Étape 6 (édition) : diff ligne à ligne avant confirmation
    • Plan Markdown dynamique (TOC) dans la colonne droite de l'éditeur
  • Titre extrait du premier # … du contenu Markdown (plus de champ titre séparé)
  • Système de migrations de contenu (scripts/migrate_content.php)
    • Mode maintenance automatique (data/.maintenance → page HTTP 503)
    • Migration 001 : ajout du titre Markdown dans les articles existants
    • Bouton "Mettre à jour" dans l'administration (sans accès CLI)
  • UpdateChecker : détection de mise à jour et migrations en attente
    • Bandeau d'alerte pour les administrateurs sur toutes les pages
    • Dashboard /admin : version déployée vs version disponible

Modifié

  • ArticleManager : +6 méthodes pour les brouillons overlay
  • lineDiff : normalisation \r\n\n, seuil relevé à 2 000 000, fallback ligne par ligne
  • push.sh : génère public/version.txt (numéro de version semver) à chaque release

Corrigé

  • Diff étape 6 "violent" (tout supprimé/ajouté) dû aux fins de ligne \r\n du navigateur

[1.1.0] - 2026-05-13

Ajouté

  • Réactions visiteurs : boutons 👍 / 🔥 / 🤔 sous chaque article, toggle async avec fallback formulaire natif
  • Commentaires avec vérification email : code 6 chiffres, honeypot + CSRF, modération dans /admin
  • URLs propres : /edit/<u>, /new, /admin, /categorie/<cat>, /files/<u>/add, /import/<u>, etc.
  • Moteur de recherche : index trigramme+substring pré-construit, résultats scorés avec mise en évidence

Amélioré

  • Cache multi-niveaux : chargement réduit de ~5 s à ~0,4 s sur 1 000+ articles (mémoïsation, cache disque, slug index O(1))
  • Upload fichiers : détection et message d'erreur explicite pour les fichiers > limite PHP

Corrigé

  • Métadonnées fichiers (addFileMeta) : guard file_exists() trop strict supprimé
  • Sidebar droite article : classe Bootstrap flex-nowrap-lgflex-lg-nowrap
  • Flux RSS : exclusion catégories privées, redirection 301 /rss/feed

[1.0.0] - 2026-05-09

Ajouté

  • Moteur de blog PHP Folio — première release versionnée
  • Articles en Markdown avec fichiers attachés, liens externes, images de couverture
  • Authentification par lien magique envoyé par email (#29)
  • SSO via Keycloak/OIDC avec PKCE
  • Rôles, capacités et gestion des utilisateurs
  • Catégories avec swatches couleur générées algorithmiquement
  • Tags par type avec suggestions
  • SEO : canonical, sitemap.xml, robots.txt, JSON-LD, og:image
  • Avant-premières (articles futurs visibles aux utilisateurs autorisés)
  • Pagination curseur (sans offset SQL)
  • Import depuis URL (EXIF, OpenGraph, PDF)
  • Historique des révisions avec diff
  • Flux RSS (/feed) paginé avec autodiscovery
  • Formulaire de contact (CSRF, honeypot, rate-limit)
  • Pages légales (LCEN/RGPD), licences, à propos
  • Migrations SQL versionnées (database/migrate.php)
  • Système de déploiement par rsync