Carnet Wiki

Syntaxes Alternatives pour SPIP

Version 6 — July 2009 JLuc

Objectifs

-  objectif du développement : nouvelle(s) syntaxe(s) pour spip

-  objectif de cette page :

  • collecter et exposer des syntaxes alternatives pour SPIP, ainsi que les réactions et discussions
  • partager la réflexion autour
  • développer la culture de cette/ces nouvelle-s syntaxe-s et en préparer la sortie publique.

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


Introduction

-  Allocution conférentielle de ESJ lors de SPIP-Avignon.

Voir la VDO

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


Critères de Qualité d’une syntaxe

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

...


Points concernés

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

Proposition initiale par ESJ présentée à Avignon

-  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

...


Propositions de Simon Camerlo

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)


Evolution de la proposition de Simon Camerlo

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.