Bien utiliser l’HTML dans DokuWiki

Bien utiliser l’HTML dans les pages du wiki

Un court billet pour vous éviter les déboires d’un de mes contacts avec l’utilisation de l’HTML dans DokuWiki. DokuWiki permet d’afficher de l’HTML comme exemple de code informatique et d’interpréter du code HTML pour obtenir une mise en forme plus évoluée. Mais il ne peut pas faire les deux en même temps, il faudra choisir.

Afficher du code HTML en exemple

Pour ceux qui utilisent un wiki pour leur documentation informatique interne, DokuWiki permet l’affichage de code HTML et de bien d’autres langages. Pour un meilleur affichage, DokuWiki utilise le script PHP GeSHi pour colorer le code (http://qbnz.com/highlighter/).

Pour cela il suffit de préfixer le code par le type de langage voulu. Pour de l’HTML, voici la syntaxe à utiliser :

Exemple de code HTML : <div style="titre"><p>Lorem Ipsum</p></div>. Suite de mon texte.

Voici l’affichage obtenu :

Interpréter du code HTML

DokuWiki permet d’utiliser du code HTML/CSS pour obtenir une mise en forme plus élaborée. Pour cela il faut activer un paramètre qui permet d’interpréter le code HTML/CSS. Dans l’administration, dans Paramètres de configuration, dans les options de Paramètres d’édition, cochez l’option Permettre l’utilisation de code HTML dans les pages.

Vous avez la même option pour le PHP. Mais faites bien attention aux éventuels risques encourus et notamment aux attaques XSS.

Dans une page, vous pouvez par exemple saisir ce code :

Donec id elit non mi porta gravida at eget metus.

<div style="border: solid 1px #000; width:400px; background-color: #eee; padding: 10px">
<p>Nulla vitae elit libero...</p>
</div>

Maecenas faucibus mollis interdum.

Vous voyez qu’à nouveau il faut préfixer le code avec l’élément « .

Voici l’affichage obtenu :

Affichage ou rendu, il faut choisir

Mais si vous affichez la page qui contient le code HTML utilisé comme exemple de code informatique, celui-ci est maintenant interprété et nous obtenons un rendu HTML :

Vous voyez que maintenant tous les codes HTML sont affichés en rendu. Vous ne pouvez pas avoir les deux types d’affichage en même temps.

Pour pallier ce problème, une solution est d’utiliser un plugin comme Webcode : https://www.dokuwiki.org/plugin:webcode.