Bonjour à tous,
Emmanuel nous a présenté à Avignon un premier exemple d'évolution de la syntaxe SPIP pour quelle devienne - entre autre - non destructrice d'une validité XML du squelette. Pour résumer beaucoup, la syntaxe actuelle des boucles pose problème car il y a parfois des balises (au sens HTML) ouvertes mais non fermées (<B_article>) ou fermées mais non ouvertes (<//B>) ou ne respectant pas ce qui est attendu (attribut="valeur") dans une balise.
A son stade de réflexion, il propose de modifier l'écriture des boucles, des multi (en squelettes) et des chaines de langues.
La syntaxe proposée pour les deux derniers me parait appréciable :
Actuelle des multi (polyglotte) :
<multi>[fr] francais [en] anglais</multi>
Proposition :
#:{[fr] francais [en] anglais}
Actuelle des langues (idiome) :
<:plugin:nom:>
<:nom{param=valeur}|filtre:>
Proposition :
#:plugin:nom
[(#:nom{param=valeur}|filtre)]
Pour les boucles la syntaxe proposée tient compte de certaines contraintes qu'il faut connaître :
- tout ce qui s'ouvre se ferme (parenthèse, crochet, accolade)
- doit etre valide XML
- si possible doit permettre aux colorieurs syntaxique d'améliorer leurs analyse
- pour sa première proposition il ne souhaitait pas modifier profondément l'écriture des boucles telle qu'on les connait, cherchant à modifier le moins possible de choses.
Son résultat est approximativement de remplacer "<" de <BOUCLE par <?spip et le ">" par ?> ce qui crée plusieurs avantages :
d'un point de vue XML, c'est une syntaxe qui devient valide ; on modifie peu de chose, ce qui peut donner :
Actuelle des boucle :
<B_art>
<ul>
<BOUCLE_art(ARTICLES){id_article}>
<li>#TITRE</li>
</BOUCLE_art>
<ul>
</B_art>
pas d'article
<//B_art>
Proposition (qui a déjà évoluée je crois mais c'est ce qui a été présenté - de mémoire)
<?spip AVANT art ?>
<ul>
<?spip BOUCLE art ARTICLES { (id_article) ?>
<li>#TITRE</li>
<?spip } art ?>
<ul>
<?spip APRES art ?>
pas d'article
<?spip VIDE art ?>
