# Moteur de wiki

Un moteur de wiki est un logiciel de la famille des systèmes de gestion de contenu permettant de réaliser des wikis. C'est un logiciel collaboratif qui a comme fonctionnalité spécifique la gestion d'un wiki et de ses utilisateurs. Ceux-ci peuvent créer, modifier et gérer collaborativement les pages et des entrées du wiki à l'aide d'un navigateur web. Un système wiki est généralement une application web qui fonctionne sur un ou plusieurs serveurs web. Le contenu, y compris les révisions précédentes, est souvent stocké dans un système de fichiers ou une base de données.
Il existe des dizaines de moteurs wiki, développés dans des langages de programmations différents, fonctionnant sur diverses plateformes, avec code ouvert ou logiciel propriétaire, et avec des fonctionnalités plus ou moins similaires.

## Historique

Le premier moteur de wiki a été créé en 1995 par Ward Cunningham pour la réalisation du premier site Wiki : le Portland Pattern Repository (en) (référentiel de motifs de Portland, « motif » désignant ici les motifs informatiques de conception, d'architecture, etc.).
Le succès de ce concept a immédiatement passionné beaucoup de monde. De nombreux sites wiki ont fait leur apparition. D'autres moteurs de wiki, reprennent, adaptent, simplifient ou augmentent les fonctionnalités du moteur originel de Ward Cunningham.
En 2003, on peut estimer raisonnablement qu'il existe plus d'une centaine de moteurs de wiki : (en) la liste la plus complète à ce jour en recense plus de 300. Ces moteurs de wiki se distinguent par leurs fonctionnalités et leurs techniques de réalisation.
Le premier moteur faisait l'objet de fonctionnalités plutôt basiques et s'est peu à peu enrichi. Des moteurs beaucoup plus riches mais parfois aussi plus simples ont vu le jour progressivement.
Le premier moteur était programmé en Perl et depuis, la plupart des langages de programmation spécialisés web ont au moins une mise en œuvre d'un wiki.

## Fonctionnalités
### Fonctionnalités de base

Aucune de ces fonctionnalités n'est forcément présente dans un moteur de wiki, mais ces fonctionnalités sont directement liées au principe du wiki.
* Possibilité, pour chaque personne, sauf exception, de créer et modifier chaque page ;
* Possibilité ou non de s'identifier (compte d'utilisateur) ;
* Obligation ou pas de s'identifier pour pouvoir éditer une page ;
* Gestion de l'historique de modification des pages (limité dans le temps ou complet depuis la création de la page) ;
* Possibilité d'inclure ou non du code HTML dans les pages ;
* Syntaxe plus ou moins riche du langage associé au moteur.

### Fonctionnalités évoluées

En plus de ces fonctionnalités, certains moteurs de wiki permettent de mettre en œuvre des fonctionnalités évoluées, se rapprochant ainsi des portails web :
* Gestion de plugins ;
* Gestion de calendrier ;
* Gestion de forums ;
* Gestion d'albums photos ;
* Gestion d'espaces de discussion ;
* Gestion de fils d'information ;
* Syndication de contenu entre différents sites wikis.

## Liste
### Par langage
#### ASP

* OpenWiki$^,$ : projet arrêté en 2004

#### ASP.Net

* FlexWiki(voir le manuel destiné aux utilisateurs de FlexWiki), logiciel de wiki de Microsoft, accessible en open source.
* SushiWiki
* ScrewTurn Wiki
* RoadKill (attention .NET 4.0 requis)

#### C

* Didiwiki est un moteur wiki écrit en C. Il dispose de son propre serveur et nécessite peu de ressource. (Projet arrêté.)
* Ciwiki est un fork de Didiwiki avec de nouvelles fonctionnalités.

#### Java

* Confluence - par Atlassian (multilingue avec système de plugin évolué et un éditeur de contenu WYSIWYG)
* eXo Platform, logiciel de réseau social d'entreprise incluant un module wiki
* Generic Applications Server
* JSPWiki.
* SweetWiki (Semantic Web Enabled Wiki). Il a été développé avec les technologies du web sémantique par des chercheurs du groupe de recherche Acacia de l'INRIA et celui de Mainline du laboratoire I3S.
* XWiki, wiki open source pour l'entreprise et intégrant des fonctionnalités avancées (multilingue, gestion de données structurées et applicatif)

#### JavaScript

* Lively Wiki (en) est basé sur Lively Kernel (en). Il combine les caractéristiques des wikis et des environnements de développement. Les utilisateurs peuvent créer et modifier les contenus ainsi que les applications
* TiddlyWiki est un moteur de wiki écrit en HTML et JavaScript qui a pour principales caractéristiques de pouvoir fonctionner sans serveur et de stocker l'ensemble du site web dans un seul fichier. Divers modules ont été ajoutés par la suite afin d'étendre les possibilités de ce wiki très particulier. Entre autres, du Php pour stocker en dynamique les pages modifiables en direct sur le site.
* Wiki.js (en) est une application wiki open-source, basée sur Node.js. Il utilise git comme mécanisme de stockage et se synchronise automatiquement avec tout dépôt git. Il fournit un éditeur visuel Markdown intégrant un système d'authentification et un moteur de recherche.

#### Lisp

* CLiki

#### Node.js

* TiddlyWiki existe également en version Node.js

#### Perl

* CmicWiki
* Foswiki (en), fork du logiciel TWiki
* ikiwiki (en)
* Oddmuse
* TWiki
* UseModWiki
* WikiWikiWeb

#### PHP

* BookStack
* ChuWiki - simple, sans base de données, utilise les bibliothèques wiki2xhtml ou WikiRenderer
* DokuWiki - Wiki efficace au style personnalisable (template) permet : tableau, documents joints, images intégrées. Aucune base de données n'est requise (toutes les données sont stockées dans des fichiers texte). Syntaxe simple mais puissante. Assure la lisibilité des fichiers de données en dehors du Wiki. Facilite la création de textes structurés et documentations de toutes sortes. N'intégrant pas de page de discussion en natif, Dokuwiki est très utilisé pour créer des documentations techniques, ou dans d'autres domaines pour lesquels le contenu créé est peu sujet à débat.
* MediaWiki - le moteur de wiki utilisé par Wikipédia (et, de façon générale, par l'ensemble des wikis de la Wikimedia Foundation), ainsi que par FANDOM (anciennement Wikia). Il est également disponible librement pour être utilisé dans d'autres wikis, et jouit d'une grande popularité parmi les wikis non-Wikimedia.
** Semantic MediaWiki est extension ajoutant des fonctionnalités de web sémantique à MediaWiki. Il permet de stocker et d'interroger des données dans les pages du wiki comme une base de données. Il est également conçu pour faciliter et combiner la création collaborative dans un wiki.
* PhpWiki
* PmWiki - Wiki évolué sans base de données (multilingue)
* (en) Rvh
* RoWiki
* Spip SPIP_(logiciel)
* SMW+
** TigerWiki - Très simple mais opérationnel.
*** WiKiss
* Tikiwiki - Suite complète de fonctionnalités bâties autour du wiki
* TitiWiki (multilingue)
* WakkaWiki, ancien wiki abandonné, mais ayant des forks maintenus :
** CitiWiki, fork de WakkaWiki<
** WikkaWiki
** WikiNi
* WysiWikiWyg
* WikyBlog - un moteur de blog et de wiki
* WikiDom

#### Python

* MoinMoin est un logiciel de Wiki écrit en Python. Il offre une bonne gestion des droits d'accès grâce aux groupes d'utilisateurs.
* OghamWiki est un logiciel de Wiki offrant un éditeur WYSIWYG, ce qui est particulièrement utile aux utilisateurs non expérimentés.
* PikiPiki est un logiciel de Wiki écrit en Python. Il est extrêmement limité mais rapide et simple à installer. De plus, il offre un niveau de sécurité raisonnable.
* PikiePikie est encore un autre logiciel de Wiki écrit en Python. Il produit un Wiki ressemblant à un site ordinaire. Il offre aux visiteurs le choix de l'habillage (en anglais : skin) des pages.
* TamTam
* Trac (logiciel) - un Wiki intégré dans un système de gestion de projet avec une interface pour Subversion.
* Zwiki (pt) est un logiciel de Wiki puissant utilisant Zope. Il est distribué sous une licence GPL. Il supporte plusieurs langues à balises ainsi qu'un éditeur WYSIWYG pour l'HTML.
* Knowledge Plaza est une plateforme collaborative de gestion des connaissances écrite en Python qui fournit une balance entre un social bookmarking, une gestion documentaire, des wikis et un réseau social d'entreprise interne.

#### Ruby

* Instiki (en)
* Ruby2Go
* Gollum est un logiciel wiki qui utilise Git pour le stockage et écrit principalement en Ruby. C'est le moteur de wiki utilisé par le service d'hébergement GitHub.

#### Squeak (Smalltalk)

* Swiki
* ComSwiki Amélioration de Swiki
* Pier est une puissante et extensible implémentation d'un contenu d'administration méta-décrite et d'un système de Wiki, écrite avec des objets du début à la fin.
* SmallWiki, un prédécesseur de Pier.

#### Tcl/Tk

* Wikit

### Autres critères
#### Stockage des données en base de données vs sous forme de fichier

Les moteurs Wiki ci-dessous ne nécessitent pas de base de données, les données du Wiki sont stockées sous forme de fichiers :
* DokuWiki
* Zim

#### Wiki de bureau / hors ligne
##### Navigateur

* TiddlyWiki

##### Windows

* DotWiki
* Moulin
* Zim

##### GNU/Linux

* Zim
* Tomboy

##### OS X

* VoodooPad, Lite, Pro

#### Personnel

* Zim-wiki

#### Divers

* ShuWiki
* HMath
* MyWiki, basé sur DokuWiki, abandonné
* Lotus Connections, développé par IBM Lotus Software propose une fonctionnalité wiki (Wiki d'entreprise)
* DominoWiki (développement cessé en 2009), wiki simple écrit pour IBM Lotus Notes et IBM Lotus Domino