Techniquement, Kiwi n'est qu'un module Python dépendant de Django. Il fournit cependant un projet Django par défaut dans $KIWI_PROJECT/examplesite/ qui permet de l'utiliser comme un wiki autonome.
Il est conseillé de connaître Django pour pouvoir comprendre pleinement ce qui suit.
Ce modèle de données sert à enregistrer les templates de détails disponibles pour l'attribut template des Wikipage. Il servira donc à y ranger tout les templates que les administrateurs autoriseront à l'utilisation pour l'affichage des Wikipages ou des documents.
Chaque objet comprend une date, un titre et un chemin :
Vous pouvez supprimer les templates que vous ne souhaitez pas utiliser ou en rajouter de nouveaux. Si vous comptez utiliser Kiwi en collaboration, vous devriez réserver les droits d'accès à Template aux administrateurs.
C'est le coeur du wiki, en plus du contenu il contient plusieurs options :
WIKIPAGE_ARCHIVED_DEFAULT = False dans vos settings.kiwi/details.html et pour un document ce sera kiwi/document.html.Une Version est enregistrée à chaque modification d'une Wikipage si son option archivé est activée. La Wikipage est dupliquée à l'identique si l'option archivé n'est pas activée. En plus de tout les options initiales d'une Wikipage, une Version a un attribut version qui indique le numéro de version mais qui est automatiquement rempli à la création d'une Version.
kiwi.views.wikipage.sitemap affiche le plan complet du wiki en arborescence. Dans l'exemple de wiki autonome examplesite/ cette page est en page d'accueil du site.kiwi.views.wikipage.details pour afficher le détails d'une page wiki. Si l'url demandée ne correspond à aucune uri d'une Wikipage, une erreur 404 est levée.kiwi.views.version.history affiche la liste de toute les versions existantes pour une Wikipage.kiwi.views.version.details pour afficher le détails archivé d'une page wiki à la version demandée.kiwi.views.version.diff pour afficher la comparaison des différences entre la version demandée et celle en cours.Il y a plusieurs template tags disponibles :
En outre spécifiquement pour l'utilisation de PyWiki2Xhtml, il y'a deux tags supplémentaires :
Des templates de démonstration du fonctionnement sont disponibles dans $KIWI_PROJECT/kiwi/templates/kiwi/. Il y a notamment les templates du plan du site, historique des versions,un template récursif pour la génération des arborescence, ainsi que les templates par défaut pour afficher une Wikipage :
details.html qui est le template par défaut pour les Wikipage n'ayant pas de Template spécifique attribué.details_columned.html est une version sur deux colonnes comprenant le texte formaté d'une part et de l'autre tout ses informations dans le sommaire de ses titres, sa date de modification et lien vers l'historique des versions.details_with_subsummary.html qui est similaire au template par défaut avec en plus une liste de ses sous pages en dessous le texte formaté.document.html qui est reservé à l'utilisation des Wikipage à inclure dans d'autres pages. Ce template ne doit pas être utilisé pour une Wikipage normale, sinon son affichage ne sera pas correcte.Ces templates de détails sont ceux disponibles comme séléction de template des Wikipage.
Tout les modèles sont directement gérables via l'administration automatique fourni dans Django.