[Éditeur Markdown pour SPIP ↪ refonte-formulaire-saisies-mr] 5 commits

technova69/markdown_editor | 5 commits

Par GILLES VINCENT, le 15 juin 2026 à 07h41min :

fix: null checks sur SpipModel (raw_params et generateSpipModelAttributes)

Trois corrections défensives dans SpipModel.js :

  • generateSpipModelAttributes() retourne null si options est absent,
    un tableau ou sans propriété name (évite un crash au parsing)
  • raw_params peut être undefined lors du parse : normalisé à ‹  ›
  • Le callback de mise à jour depuis la modalbox vérifie que attrs
    n’est pas null avant dispatch

Rebuild webpack (markdown_editor.dist.js).

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

Modifié
javascript/markdown_editor.dist.js
javascript/nodes/SpipModel.js
javascript/ui/SpipModelButton.js

Détails : fix: null checks sur SpipModel (raw_params et generateSpipModelAttributes) (9d94044c) · Validations · GILLES VINCENT / Éditeur Markdown pour SPIP · GitLab

==============================
Par GILLES VINCENT, le 15 juin 2026 à 07h41min :

feat: page de configuration admin manquante (configurer_markdown_editor)

paquet.xml déclarait un exec configurer_markdown_editor mais ni le
formulaire CVT ni le squelette privé n’existaient. Ajout du formulaire
(Saisies Méthode 1 : _saisies() + HTML vide) avec deux réglages :
ignorer_modeles (cases à cocher) et activer_categories (oui/non).
Ajout de la clé de langue configuration_titre manquante.

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

Ajouté
formulaires/configurer_markdown_editor.html
formulaires/configurer_markdown_editor.php
prive/squelettes/contenu/configurer_markdown_editor.html
Modifié
lang/markdown_editor_fr.php

Détails : feat: page de configuration admin manquante (configurer_markdown_editor) (3dcb62dd) · Validations · GILLES VINCENT / Éditeur Markdown pour SPIP · GitLab

==============================
Par GILLES VINCENT, le 15 juin 2026 à 07h41min :

feat: refonte #FORMULAIRE_INSERER_MODELES avec l’API Saisies

Implémentation de la Méthode 1 Saisies : fonction _saisies() +
fichier HTML vide. L’entête (titre, icône, textarea résultat, script
modalbox) passe par l’option inserer_debut via un mini-squelette ;
les boutons contextuels (Choisir / Insérer + Annuler) passent par
squelette_boutons. Un helper inserer_modeles_etat_formulaire_modele()
centralise la résolution de l’état (liste vs paramètres) pour que
charger() et _saisies() restent synchrones. Affiche un message
« Aucun modèle disponible » et désactive le bouton Choisir si la liste
est vide.

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

Ajouté
formulaires/inserer_modeles_boutons.html
formulaires/inserer_modeles_entete.html
Modifié
formulaires/inserer_modeles.html
formulaires/inserer_modeles.php
lang/inserer_modeles_fr.php

Détails : feat: refonte #FORMULAIRE_INSERER_MODELES avec l'API Saisies (5d1a302b) · Validations · GILLES VINCENT / Éditeur Markdown pour SPIP · GitLab

==============================
Par Gilles, le 14 juin 2026 à 00h07min :

fix: inserer_modeles_definir_defaut ignore les entrées non-tableau

La garde if (!is_array($saisie)) { return $tableau; } retournait une
variable jamais définie (null), faisant perdre toutes les saisies valides
dès qu’un élément de la liste n’était pas un tableau. Remplacé par continue;.

Test ajouté (RED avant correction) : une entrée mal formée est désormais
ignorée sans casser le traitement des saisies valides.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Modifié
inc/inserer_modeles.php
tests/unit/DefinirDefautTest.php

Détails : fix: inserer_modeles_definir_defaut ignore les entrées non-tableau (758ca011) · Validations · GILLES VINCENT / Éditeur Markdown pour SPIP · GitLab

==============================
Par Gilles, le 14 juin 2026 à 00h07min :

test: mise en place de l’infrastructure de tests PHPUnit

Ajoute les deux tiers de tests calqués sur les autres plugins :

  • unitaires (mocks, sans SPIP) : toolbars, autorisation de prévisualisation,
    génération du JSON éditeur, application des défauts de saisies
  • intégration (SPIP réel + SQLite) : plugin actif, découverte des modèles,
    prévisualisation/safehtml, génération du code modèle par le CVT

Le script install-spip-test.sh installe SPIP 4.4, applique le patch spip-cli
(MR 91, nécessaire au téléchargement des dépendances via SVP) et crée
plugins/auto/. .gitignore corrigé pour versionner composer.json.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

Ajouté
composer.json
phpunit.xml
scripts/install-spip-test.sh
scripts/spip-cli-mr91.patch
tests/bootstrap.php
tests/bootstrap_integration.php
tests/integration/CvtTraiterTest.php
tests/integration/ListerModelesTest.php
tests/integration/PluginActiveTest.php
tests/integration/PrevisuTest.php
tests/unit/AutoriserPrevisualiserTest.php
tests/unit/DefinirDefautTest.php
tests/unit/JsonEditeurTest.php
tests/unit/ToolbarsTest.php
Modifié
.gitignore

Détails : test: mise en place de l'infrastructure de tests PHPUnit (8f075460) · Validations · GILLES VINCENT / Éditeur Markdown pour SPIP · GitLab