Création d’une balise personnalisée avec pmWiki

J’ai déjà parlé ici de mes tests de quelques applications de wiki. A la suite de ces tests, nous avons retenu pmWiki pour mettre en place le site du projet Mobikid . Afin de faire apparaître un nuage de tags correspondant aux tags du compte del.icio.us du projet , comme ceci :

nous avons été amenés à nous poser la question d’insérer du HTML dans le wiki. Naturellement, pour de nombreuses raisons, en particulier liées à la sécurité, il n’est pas possible d’écrire directement du HTML dans une page de wiki, il fallait donc trouver une autre solution.

Cette autre solution était de créer une balise personnalisée. La démarche est simple : je définis dans le fichier config.php situé dans le répertoire local de PmWiki la balise (:delicious:) et par la suite, toute occurrence de cette chaîne dans le wiki est remplacée par le code HTML.

La définition de nouvelles balises est expliquée ici en français. On utilise pour cela la fonction Markup() qui fonctionne selon le prototype suivant :

Markup($name,$when,$pattern,$replace)

Le premier paramètre est un nom unique donné à la règle, le deuxième définit quand la règle doit être appliquée (par rapport aux autres règles).

Le troisième paramètre définit une expression régulière, qui est remplacée selon le motif du dernier paramètre. Dans le cas d’une balise simple comme la nôtre où le texte est constant, il suffit d’une expression comme /\\(:delicious:\\)/e et d’une chaîne de remplacement également fixe. Au final, la ligne suivante ajoutée au fichier config.php fonctionne très bien :

Markup('delicious', \
'directives', \
'/\\(:delicious:\\)/e', \
"Keep('<script type=\"text/javascript\"
src=\"http://del.icio.us/feeds/js/tags/mobikid?
size=12-38;color=87ceeb-0000ff\">
</script>')");

tags technorati: ,
Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s