# PmWiki

PmWiki est un moteur de wiki libre écrit en PHP qui ne nécessite pas de base de données.
L'usage de maquettes permet de choisir ou de créer la mise en page désirée. L'ajout de recettes optionnelles permet quant à lui d'enrichir les fonctionnalités du programme (nouvelles balises, nouvelles fonctions, élaborations de formulaires standardisés, etc.).
PmWiki est distribué selon les termes de la licence GNU GPL.

## Objectif de conception

Le logiciel PmWiki est axé sur la facilité d'utilisation, de sorte que les personnes ayant peu d'expérience dans le domaine des technologies de l'information ou des wikis seront en mesure de l'utiliser. Le logiciel est également conçu pour être extensible et personnalisable. La philosophie de PmWiki favorise les auteurs par rapport aux lecteurs, n'essaie pas de remplacer HTML et soutient la maintenance collaborative des pages web publiques.
Outre les fonctions collaboratives habituelles telles que la gestion de contenu et la base de connaissances, PmWiki a été utilisé par des entreprises ou des groupes comme plate-forme de communication interne, avec la gestion des tâches et les archives des réunions. Il est également utilisé par des équipes universitaires et de recherche.
Le wikitexte de PmWiki partage des similitudes avec MediaWiki (utilisé par Wikipédia) et possède un grand nombre de fonctionnalités que l'on ne retrouve pas dans les autres moteurs wiki cependant son objectif premier est d'aider à la maintenance collaborative des sites web. Le moteur de balisage de PmWiki est hautement personnalisable, permettant d'ajouter, de modifier ou de désactiver des règles de balisage, et il peut prendre en charge d'autres langages de balisage. Par exemple, les spécifications Wikicréole peuvent être activées.

## Fonctionnalités

PmWiki utilise des fichiers ordinaires pour stocker le contenu. Chaque page du wiki est stockée dans son propre fichier sur le serveur web. Selon l'auteur, "Pour les opérations standard (affichage, édition, révision des pages), conserver les informations dans des fichiers plats est nettement plus rapide que d'y accéder dans une base de données..."
PmWiki est conçu pour pouvoir stocker et récupérer le texte et les métadonnées des pages dans différents systèmes et formats. Par défaut, il ne prend pas en charge les bases de données. Cependant, grâce à des plugins, PmWiki peut utiliser des bases de données MySQL ou SQLite pour le stockage des données.
PmWiki prend en charge les pièces jointes (téléchargements : images ou autres fichiers) à ses pages wiki. Les fichiers peuvent être attachés à un groupe de pages (par défaut), à chaque page individuellement ou à l'ensemble du wiki, en fonction des besoins et de la structure du contenu. Il existe des recettes PmWiki permettant une gestion plus facile des fichiers joints, par exemple la suppression ou la création de vignettes/galeries.

## Structure du wiki

Dans PmWiki, les pages wiki sont contenues dans des « groupes wiki » (ou « espaces de noms »). Chaque groupe wiki peut avoir ses propres options de configuration, plug-ins, contrôle d'accès, skin, sidebar (menu), langue du contenu et interface.
Par défaut, PmWiki permet exactement un niveau hiérarchique des pages ("WikiGroup/WikiPage"), mais grâce à des "recettes" (modules/extensions), il est possible d'avoir une structure plate (aucun groupe wiki), plusieurs groupes imbriqués, ou des sous-pages.
Les groupes wiki spéciaux sont PmWiki, Site, SiteAdmin et Category, qui contiennent la documentation et certains modèles de configuration.
Les liens vers d'autres pages de PmWiki sont écrits normalement, avec des doubles crochets comme [[MediaWiki]], et s'ils se trouvent derrière une autre description textuelle (appelée texte du lien), une ligne verticale "|" sépare le nom de la page et le texte alternatif. Les liens vers un autre site sont écrits entre crochets simples. Les terminaisons font également partie de la description textuelle.