Bonjour à tous,
Voici donc un premier jet du plugin Coloration Code réécrit
complètement pour réaliser la coloration syntaxique en javascript avec
la librairie PrismJS ; tout cela se trouve sur la branche dev/prismjs
du dépôt :
https://git.spip.net/spip-contrib-extensions/coloration_code/src/branch/dev/prismjs
Je précise à nouveau que je ne suis pas développeur donc je m'excuse
par avance si le code n'est pas propre...
J'ai donc créé une branche dev/prismjs, mais n'ai lancé mes commits
qu'une fois mes travaux bien avancés, et les derniers apparaissent
juste pour corriger des coquilles ou pour de mineures modifications.
J'ai modifié le paquet.xml en basculant l'état sur "dev" et en
positionnant la compatibilité sur "[3.2.99;3.3.*]" parce que je n'ai
travaillé que sur une base en spip-dev.
Je vais essayer de décrire comment j'ai abordé les choses :
1) on commence par uniformiser la façon dont sont rendus les éléments
<pre> et <code> puisque pour bien fonctionner PrismJS a besoin de cette
structure :
<pre><code class="language-*"></code></pre>
Du coup, si un <code> a des sauts de ligne ou si on a un <cadre>, on
transforme vers le balisage adéquat.
Pour cette partie, j'ai pas mal pompé sur le plugin PreCode.
2) pour une question de rétrocompatibilité (je crois), on réécrit les
classes "grammaire" en "language-grammaire" sous réserve que
"grammaire" se trouve dans la liste des grammaires gérées par PrismJS.
3) On charge les styles et scripts de base ainsi que ceux nécessaires
au bon fonctionnement des plugins sélectionnés dans la page de
configuration du plugin.
4) Enfin, j'ai pompé sur le plugin Codes informatiques pour Porte Plume
pour ajouter une première salve de boutons dans le Porte Plume.
En espérant que cette proposition réponde - du moins en partie - à vos
attentes,
À bientôt,