Une introduction à JSPWiki

Gazette Linux n°108 — Novembre 2004

Neil Youngman

Article paru dans le n°108 de la Gazette Linux de novembre 2004.

Traduction française par Joëlle Cornavin .

Relecture de la traduction française par Encolpe Degoute .

Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières
1. Wiki
2. Pourquoi JSPWiki ?
3. Facilité d'utilisation
4. Installation et configuration
5. Authentification
6. Contrôle de versions
7. Pièces jointes
8. Modules externes
9. Utilisation de JSPWiki

1. Wiki

Dans cet article, j'expliquerai pour les lecteurs qui n'en ont jamais entendu parler auparavant, ce qu'est un Wiki et comment on l'utilise. Je décriai pourquoi j'ai choisi JSPWiki parmi les centaines de Wikis disponibles et comment je l'ai configuré.

Le mot Wiki est une forme abrégée de WikiWikiWeb. Les Wiki sont des sites web conçus pour le travail collaboratif que leurs utilisateurs créent et modifient. Ils offrent un mpyen rapide et simple de générer un ensemble de pages web liées les unes aux autres. Leur principale caractéristique est la collaboration et la simplicité. N'importe qui peut contribuer et la prise en main ne prend pas beaucoup de temps.

Selon One-Minute Wiki, le mot WikiWiki est d'origine hawaïenne et signifie « rapide ».

Les Wiki s'utilisent pratiquement comme un babillard pour partager des informations et poser des questions, mais il ne s'agit aucunement d'un concept de babillard ou de fil de discussion, juste d'un ensemble de pages imbriquées.

La conception collaborative (ou collaborative authoring) implique que les pages n'appartiennent à aucun auteur en particulier. Si vous trouvez une erreur sur une page, vous l'y corriger et naturellement, d'autres personnes peuvent corriger vos pages.

Les Wiki s'utilisent de différentes manières. Vous pouvez les faire intervenir partout où vous avez besoin de partager des informations parmi un grand groupe de personnes. On les emploie pour de la documentation informelle au sein d'un projet de développement, de sessions de questions et réponses et même pour une encyclopédie écrite collaborativement. Je garde parfois quelques notes sur mon Wiki, ce qui le permet d'y accéder aisément depuis divers endroits et de les partager avec quiconque a besoin des mêmes informations.

Il y a généralement une option d'édition sur chaque page, qui permet à un utilisateur de modifier la page ainsi qu'une convention simple pour créer des liens vers une autre page. Pour créer une nouvelle page, il suffit de créer un lien et ce lien vous donne accès à l'édition de la page.

Vous n'avez pas besoin d'apprendre le HTML pour créer et modifier des pages de Wiki. Au contraire, on trouce un ensemble de convention simples : par exemple dans JSPWiki, vous créez un nouveau lien simplement en mettant une phrase entre crochets.

[Nouveau lien]

Malheureusement, comme ces conventions ne sont pas standardisées, il se peut, si vous utilisez plusieurs Wiki, que vous deviez apprendre plusieurs jeux de conventions de formatage.

Pour essayer un Wiki, pourquoi ne pas consulter le JSPWiki Sandbox ou jeter un coup d'½il à Wikipedia, une encyclopédie publiée collaborativement.


2. Pourquoi JSPWiki ?

Quand j'ai décidé de mettre en place un Wiki pour moi-même, je me suis renseigné et constaté qu'il existait des centaines de WikiClones parmi lesquels choisir. Nombre d'entre eux sont encore en développement et je voulais quelque chose de stable, fiable et facile à installer, à configurer et à employer. JSPWiki offre toutes ces qualités plus une authentification, un contrôle de versions, des pièces jointes et des modules externes (plugins).


3. Facilité d'utilisation

Les Wiki sont conçus pour être faciles à utiliser, il ne devrait donc y avoir de gros problèmes avec aucun Wiki. Les principales différences dans la facilité d'utilisation viennent du choix d'une version de Wiki exploitable, avec des règles de formatage simples.

Le langage à balises de JSPWiki me semble relativement clair et simple. Les liens sont créés simplement en plaçant des crochets autour du nom du lien. Pour créer des en-têtes, il suffit de mettre un point d'exclamation au début de la ligne et des tableaux en délimitant le texte par des tubes. Donc, par exemple :



!!! Ceci est un exemple

qui crée un lien avec [La Gazette Linux|http://wiki.traduc.org/Gazette_Linux]

! un tableau

|assiette|couteau|fourchette
|natte|verre|tasse

donnera


Ceci est un exemple


qui crée un lien avec La Gazette Linux

et affiche :


Un tableau

assiettecouteaufourchette
natteverretasse

Il est également possible de configurer JSPWiki pour permettre aux utilisateurs de saisir du HTML, mais ceci est vivement déconseillé en raison du manque de sécurité.


4. Installation et configuration

La facilité d'installation était un gros atout pour JSPWiki. Si vous avez un conteneur de servlets Java adapté déjà installé, l'installation sur une Red Hat est très simple. Jakarta Tomcat était mis en place sur la machine que je voulais utiliser. L'installation ne consistait qu'à créer un répertoire appelé mywiki dans le répertoire d'applications web Tomcat, décompacter JSPWiki.war et JSPWiki-samplepages.zip dans ce répertoire, modifier le fichier de configuration et redémarrer Tomcat.



mkdir /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki
pushd /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki
/usr/local/j2sdk1.4.2_04/bin/jar xvf JSPWiki.war
unzip ~neily/JSPWiki/JSPWiki-samplepages.zip
emacs -nw /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki/WEB-INF/jspwiki.properties
mkdir /usr/local/jakarta-tomcat-5.0.19/webapps/mywiki/attached
/usr/local/jakarta-tomcat-5.0.19/bin/catalina.sh start

Le fichier de configuration est webapps/mywiki/WEB-INF/jspwiki.properties ; il est bien commenté, donc sa configuration est simple.

La configuration ne consistait qu'à changer trois ou quatre paramètres dans jspwiki.properties. Les commentaires de ce fichier sont généralement très clairs et la plupart des paramètres peuvent rester tels quels. Les propriétés que devrez définir sont jspwiki.applicationName, jspwiki.pageProvider, jspwiki.fileSystemProvider.pageDir, jspwiki.attachmentProvider, jspwiki.basicAttachmentProvider.storageDir.

L'installation sur d'autres versions de Linux risque de ne pas être aussi simple. J'ai installé plus tard JSPWiki sur une machine Debian et constaté que, malgré la simplification que procure apt-get, il ne fonctionnerait pas en dehors du répertoire par défaut sans une configuration supplémentaire.

Pour le faire fonctionner sous Debian dans un répertoire appelé mywiki, j'ai dû créer le fichier /var/lib/tomcat4/webapps/mywiki.xml, qui était une copie modifiée de /var/lib/tomcat4/webapps/jspwiki.xml.


5. Authentification

JSPWiki fournit un mécanisme simple d'authentification. Ce dernier peut être complété par des méthodes d'authentification disponibles dans le conteneur de servlet sous lequel il tourne.

Comme je mettais en place un Wiki sur un petit réseau privé, l'authentification avait peu de chance d'être un problème, mais choisir un Wiki doté d'une gestion de l'authentification lui permet d'être ajouté ultérieurement si le Wiki est utilisé à mauvais escient ou si nous souhaitons configurer un Wiki.

La configuration d'une authentification de base dans JSPWiki devrait être simple. Ajoutez les lignes suivantes :

jspwiki.authenticator = FileAuthenticator jspwiki.fileAuthenticator.fileName = /chemin/vers/passwords.txt

et créez le fichier passwords.txt, qui devrait ressembler à celui-ci :


# Le format est simplement username = password
# Aucun chiffrement n'est utilisé actuellement.
# Les commentaires sont autorisés ; ajoutez-les au début, précédés d'un caractère dièse.
user1 = pass1
user2 = pass2

Si vous avez besoin d'un mécanisme d'autorisation plus sophistiqué, consultez le Authorization And Authentication HOWTO et le Auth Plugin. Si vous n'avez pas encore trouvé quelque chose qui répponde à vos exigences, vous pouvez envisager d'écrire votre propre authentificateur ou faire appel à l'authentification que prévoit votre conteneur de servlets, par exemple Tomcat.


6. Contrôle de versions

Le contrôle de versions est une fonctionnalité utile, qui mémorise chaque version d'une page au fur et à mesure qu'elle est mise à jour. Ceci vous permet de restaurer les pages qui sont perdues ou endommagées. JSPWiki gère le contrôle de version basé sur RCS et implémente également son propre mécanisme comme alternative pour les plates-formes sans RCS.

Il semble que ce ne soit pas une fonctionnalité bien documentée, mais elle est facile à utiliser. Chaque fois que vous enregistrez un changement sur une page, une nouvelle version est mémorisée. On trouve en outre un lien More info... au bas de chaque page, qui fournit un lien vers les versions précédentes de la page. Vous pouvez choisir n'importe quelle version antérieure, qui est alors affichée, avec un message expliquant que ce n'est pas la version actuelle de la page et un lien Restore this page.

Le contrôle de versions est particulièrement important sur les Wiki publiquement accessibles. Ceux-ci peuvent être dégradés par de la publicité, voire pire. Le contrôle de versions vous permet de revenir aisément à une page intacte.

Pour utiliser un contrôle de version basé sur RCS, définissez jspwiki.pageProvider = RCSFileProvider et jspwiki.fileSystemProvider.pageDir = /path/to/dir/for/RCS/files.


7. Pièces jointes

JSPWiki vous permet d'attacher des fichiers à une page. Ce peut être un bon mécanisme pour partager des documents. Si vous faites référence à un gros document ou à un document dans un format autre que le format texte, l'attacher à la page garantit qu'il est accessible à vos lecteurs.

Pour utiliser des pièces jointes, définissez jspwiki.attachmentProvider = BasicAttachmentProvider et jspwiki.basicAttachmentProvider.storageDir = /path/to/dir/for/attached/files.


8. Modules externes

JSPWiki peut être étendu avec l'emploi de modules externes (plugins). Les modules externes JSPWiki sont écrits en Java, comme JSPWiki lui-même. Si vous ne voulez pas écrire le vôtre, jetez un coup d'œil aux modules externes qui ont déjà fait l'objet de contributions.


9. Utilisation de JSPWiki

Utiliser JSPWiki est très simple. Une fois que vous l'avez installé et configuré avec toutes les fonctionnalités que vous souhaitez employer, allez simplement sur la page principale, configurez quelques liens vers de nouvelles pages et modifiez-les. Voilà, vous avez un Wiki. Commencez par une page décrivant à qui est destiné le Wiki et ce que vous voulez faire avec, puis laissez votre imagination vagabonder.

Neil est programmeur, spécialisé en C++ sur Unix et Linux. Il est diplômé en informatique et en informatique de dernière génération.

Neil a travaillé sur une vaste gamme de systèmes allant du système de commande pour la British Gas National Grid aux serveurs vidéo pour le Home Choice Video On Demand Service. Il a commencé par programmer des ordinateurs en 1980 avec sa classe d'études, qui était autorisée à accéder à un mainframe au National Institute of Oceanography, programmé en Fortran sur des cartes perforées.

Un diplôme d'informatique a suivi au Queen Mary College, à Londres, puis Neil a travaillé pour Logica pendant trois ans avant de faire un MSC en New Generation Computing à l'université d'Exeter.

Les cinq années suivantes ont vu Neil faire de la recherche sur des algorithmes parallèles de simulation au Royal Signals and Radar Establishment, initialement sur des transordinateurs et ultérieurement sur des systèmes parallèles basés sur SPARC. Depuis qu'il a quitté le RSRE, Neil a surtout travaillé en tant qu'indépendant ainsi que sur les sources de données dans le secteur de la finance, les serveurs vidéo et les proxies d'analyse de virus.

Neil a utilisé Unix pour la première fois au collège en 1982 et a commencé à travailler sous Linux en 1996.