Version 6 — Juillet 2009 — JLuc
- objectif du développement : nouvelle(s) syntaxe(s) pour spip
- objectif de cette page :
Mode d’emploi de cette page participative
- compléter / améliorer les parties insuffisantes de cette présentation
- poser questions et réponses dans les parties « Discussion »
- proposer une nouvelle syntaxe à la fin de cette page
- Allocution conférentielle de ESJ lors de SPIP-Avignon.
- quelques notions clés
ESJ : <?
veut dire qu’on quitte l’univers syntaxique dans lequel on était, mais ne préjuge rien sur celui-ci, qui peut avoir des choses en commun avec le nouveau.
Exemple <?php ou <?xml ... ou <?spip
ESJ : Spip intègre désormais un décompilateur paramétrable des squelettes qui permet de traduire un squelette d’une syntaxe dans une autre...
A propos de XML on lira https://www-licence.ufr-info-p6.jus...
Problèmes actuels à résoudre
à détailler !
- on ne connait pas complètement la syntaxe de spip : elle présente des recoins et des subtilités impossible à documenter (cf
ElementsDeGrammaireSpip )
Critères de Qualité
à détailler !
- lisibilité
- simplicité
- capacité à décrire le langage
- extensibilité
- non ambiguité
- conformité XML
- validité relativement à la dtd (?)
- permettre aux colorieurs syntaxique d’améliorer leurs analyse
- tout ce qui s’ouvre se ferme (parenthèse, crochet, accolade)
- stabilité des lexèmes
- stabilité parenthétique
- existence d’une grammaire écrite qui décrit exhaustivement les syntaxes possibles
...
Discussion
...
- les boucles
Syntaxe actuelle :
<B_art>
<ul>
<BOUCLE_art(ARTICLES){id_article}>
<li>#TITRE</li>
</BOUCLE_art>
<ul>
</B_art>
pas d'article
<//B_art>
- les chaines multi
Syntaxe actuelle :
<multi>[fr] francais [en] anglais</multi>
- les chaines de langues (idiome) :
Syntaxe actuelle :
<:plugin:nom:>
<:nom{param=valeur}|filtre:>
- emploi de <?spip
autour de chaque construction SPIP.
- d’après Marcimat :
<?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 ?>
- d’après Booz :
<?spip AVANT art ?>
<ul>
<?spip BOUCLE art (ARTICLES) {id_article IN 1,2,3} { ?>
<li>#TITRE</li>
<?spip } art ?>
</ul>
<?spip APRES art ?>
pas d'article
<?spip VIDE art ?>
Discussion
...
sur spip-dev le 1er Juillet 2009 :
<boucle attribX="valeur" ... >
<avant> (...) </avant>
(contenu de la boucle à afficher)
<apres> (...) </apres>
<sinon> (...) </sinon>
</boucle>
Discussion
ESJ : ça fait des boucles CONFORME XML mais pas VALIDES par rapport à la DTD, et même que ca les empêche définitivement de l’être. Cf pourquoi dans vidéo.
Marcimat : oui, j’ai compris aussi cette histoire de validité. exemple simple non valide :
Ici, on ouvre un « ul » mais pour être valide, il ne peut pas y avoir de chevauchement de balise. Cette écriture est donc fausse, comme <a><b></a></b>
<boucle>
<avant><ul></avant>
<pendant><li>#TITRE</li></avant>
<apres></ul></apres>
</boucle>
JLuc : ok, mais ça se corrige (cf prop suivante)
Suite à la discussion, la proposition de Simon peut évoluer en :
<boucle attribX="valeur" ... >
<autour>
(... contenu à afficher avant)
<contenu> (...) </contenu>
(...contenu à afficher après)
</autour>
<sinon> (...) </sinon>
</boucle>
Discussion
ESJ : Mais non, la nouvelle syntaxe NE DOIT PAS utiliser des balise <...>
sinon il y aura confusion avec celle de la DTD.