[spip-dev] Fichiers YAML, JSON, XML

Hello,

En rédigeant les guides N-Core et du noiZetier j’ai voulu donner un aperçu des fichiers descriptifs d’une page, d’un type de noisette, d’un bloc et d’une composition.
Et bien j’ai un peu galéré…
Il a fallu que je regarde le code pour m’assurer que j’avais la bonne liste de champs.

J’ai donc passé un petit moment ce week-end à décrire tout cela en utilisant plusieurs approches:

  • pour les fichiers YAML j’ai créé un fichier modèle pour chaque objet concerné (page, bloc, type de noisette) et j’ai rajouté pour chacun d’eux un schéma JSON. Ce fichier JSON permet même de valider le fichier YAML en utilisant un convertisseur YAML->JSON au préalable.

  • pour les fichiers XML (page et composition) j’ai créé une DTD approximative qui a au moins le mérite de décrire le contenu possible des fichiers XML. Mais comme ces fichiers XML sont trop verbeux (un peu comme les plugin.xml comparés aux paquet.xml) la validation n’a que peu d’intérêt.

Ces différents fichiers xxxx.template.yaml, xxxx.schema.json et xxxx.dtd sont stockés à la racine des plugins concernés, à savoir, N-Core, le noiZetier et Compositions.

Je pense qu’il serait pas mal d’adopter cette pratique systématiquement avec les fichiers YAML en particulier. La documentation est assez pauvre en général sur ces sujets et finalement une DTD ou un schéma JSON sont assez lisibles et facilement évolutif.
En plus, on pourrait imaginer une validation dans le futur.
J’ai pas osé encore m’attaquer aux saisies, vérification justement et j’ai décrit les paramètres de configuration d’une noisette très simplement. Mais on pourrait faire mieux !
Si quelqu’un à des fichiers d’exemple complets des saisies et vérification je suis preneur.

Sinon pour finir j’ai une question sur Compositions.
Il existe 3 champs que l’on récupère dans le noiZetier et qui sont même des champs de la table spip_noizetier_pages : image_exemple, class et configuration.

→ Sont-ils vraiment utilisés ?
→ Si oui à quoi servent-ils ?
→ Si non, peut-on les considérer comme totalement dépréciés ?
→ Ne pensez-vous pas qu’on pourrait aussi passer en YAML (avec un support du XML et une moulinette pour convertir les fichiers existant) ?

Merci pour vos réponses ou avis.

Sinon pour finir j'ai une question sur Compositions.
Il existe 3 champs que l'on récupère dans le noiZetier et qui sont même des champs de la table spip_noizetier_pages : image_exemple, class et configuration.
-> Sont-ils vraiment utilisés ?

Je suis le coupable de "image_exemple" dans les compositions.
L’idée était simple : fournir le chemin vers une image qui «montre» l’effet de la composition sur le site, que l’on peut voir en modale du coup en cliquant la petite icone de la composition, lorsque ce champ est rempli. Ça a été utile sur certains sites ayant différentes compositions possibles assez différentes. C’est pas le truc le plus utile il faut avouer.
Les deux autres, je ne sais pas.
Et concernant le noizetier, je ne sais pas non plus (ie: c’est pas moa je pense !).

-> Si oui à quoi servent-ils ?
-> Si non, peut-on les considérer comme totalement dépréciés ?
-> Ne pensez-vous pas qu'on pourrait aussi passer en YAML (avec un support du XML et une moulinette pour convertir les fichiers existant) ?

Si on peut éviter le XML rébarbatif dans la mesure du possible, tant mieux.
La mode me semble être au Json un peu partout cela dit.

MM.

Je suis aussi un peu plus pour le json que le yaml.

En théorie, pas besoin de lib pour le lire / passer etc…

Kent1

Hello,