Bonjour.

J'ai créé une syntaxe pour générer des listes en HTML plus rapidement qu'en HTML.

La voici (les chiffres en fin de lignes sont juste là pour abréger l'écriture HTML dans le second code, ils ne servent à rien autrement) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
1- Item 1 - liste A ordonnée (1)
-- Sous-item 1 - liste B non-ordonnée (2)
-- Sous-item 2 - liste B non-ordonnée (3)
1--- Sous-sous-item 1 - liste C ordonnée (4)
--- Sous-sous-item 2 - liste C ordonnée (5)
- Item 2 - liste A ordonnée (6)
- Item 3 - liste A ordonnée (7)
Ce qui est censé donner ceci en HTML :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ol>
    <li>1
        <ul>
            <li>2</li>
            <li>3
                <ol>
                    <li>4</li>
                    <li>5</li>
                </ol>
            </li>
        </ul>
    </li>
    <li>6</li>
    <li>7</li>
</ol>

Petite explication :

  • quand il y a un 1, on a une liste ordonnée (mais attention, on ne le met que pour le premier élément de cette liste puisqu'une liste ne peut être ordonnée et non-ordonnée à la fois);
  • le nombre de tirets indique le niveau d'imbrication de la liste.


J'ai cependant un problème lorsque j'ai une liste de niveau 3 et que le prochain élément appartient à la liste de niveau 1.
J'ai réalisé ce JSFiddle pour y voir plus clair : https://jsfiddle.net/fa2qn54q/
On y voit que l'élément nommé "2" se place deux fois, dont une fois au mauvais endroit.

Quelqu'un peut-il m'aider ?
Merci.