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
==============================
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
==============================
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
==============================
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
==============================
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