[spip-dev] [Patch] Gestion des listes imbriquées

Voici un patch qui permet de réaliser des listes propres d'une
profondeur quelconque.

Je me suis inspiré des racourcis wiki, et j'ai donc rajouté un
racourci: toute les débuts de lignes qui commence par une
étoile deviennent des listes. Il faudrait vérifier l'impact de
ce racourci sur les sites existants, mais il me semble
négligeable.

Voici donc ce que fait ce patch. Le texte suivant:

Début de texte
* Début de liste
* Suite de la liste
** Changement de pronfondeur
*** À un niveau quelconque
* Fin de la liste
Fin de texte

Devient:

Début de texte
<ul>
<li class="spip"> Début de liste</li>
<li class="spip"> Suite de la liste</li>
<ul>
<li class="spip"> Changement de pronfondeur</li>
<ul>
<li class="spip"> À un niveau quelconque</li>
</ul>
</ul>
<li class="spip"> Fin de la liste</li>
</ul>
Fin de texte

J'ai testé sur le patch, et il semble bien fonctionner. Mais
des tests supplémentaires sont nécessaires.

Je me sers beaucoup de phpwiki dans ma boîte, et les listes
imbriquées sont un régal à utiliser. Je trouve que ce
raccourci manquait à Spip, et sans attendre les conclusions de
la conversation d'hier, j'ai écris ce patch, que j'aimerais
bien voir intégrer dans Spip. Je reste à l'écoute pour toute
amélioration ou optimisation.

Cordialement

spip.patch (2.46 KB)

Bonjour à tous,

Voici un patch qui permet de réaliser des listes propres d'une
profondeur quelconque.

Merci. Je testerai sur une beta chez moi.

Début de texte
<ul>
<li class="spip"> Début de liste</li>
<li class="spip"> Suite de la liste</li>
<ul>

Il faudrait que l'<UL> commence avant le </LI> puisque tout texte doit être dans la balise (vieux souvenir de débogage avec Netscape version antédéluvienne qui n'affichait pas [avec raison] ce genre de code...).

Encore merci,

Gilles.

Hello,

Voici un patch

Très bonne initiative !

Début de texte
* Début de liste
* Suite de la liste
** Changement de pronfondeur
*** À un niveau quelconque

Trop compliqué à mon goût si on a une grande profondeur ...

Début de texte
<ul>
<li class="spip"> Début de liste</li>
<li class="spip"> Suite de la liste</li>
<ul>
<li class="spip"> Changement de pronfondeur</li>
<ul>
<li class="spip"> À un niveau quelconque</li>
</ul>
</ul>
<li class="spip"> Fin de la liste</li>
</ul>
Fin de texte

Ce devrait être :

Début de texte
<ul class="spip">
  <li>Début de liste</li>
  <li>Suite de la liste
  <ul>
    <li>Changement de pronfondeur
    <ul>
      <li>À un niveau quelconque</li>
    </ul>
    </li>
  </ul>
  </li>
  <li>Fin de la liste</li>
</ul>
Fin de texte

C'est à dire un meilleur enchaînement des balises, pas d'espace après
un <li> et seul le <ul> racine porte un style.

Pour l'indentation, rien d'obligatoire, mais ça permet de relire plus
facilement le code HTML produit ... :wink:

-Nicolas

Bien sûr, je suis allé trop vite. Voici une version
corrigée en ce qui concerne l'imbrication des <ul> et des
</li>.

Il reste le problème de l'idententation. Il faudrait créer une
fonction qui permettent de créer facilement des chaines
d'espaces d'une longeur donnée.

Pour les espace en début de ligne, il faut donc (pour le
moment) que le texte ne contiennent pas d'espace:

*Début de la ligne
*Suite de la liste

Autre problème non résolu: on ne peut faire que des
imbrications d'un niveau:

*Niveau1
**Niveau2
***Niveau3

marchera, mais

*Niveau1
***Niveau3
**Niveau2

ne marchera pas.

Cordialement,

spip.patch (2.59 KB)