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.