Outils pour utilisateurs

Outils du site


floss:dokuwiki

DokuWiki

À intégrer :

Introduction

A côté d’un blog (tel que WordPress), utile pour créer un site “vitrine” composé“ essentiellement de pages statiques et d’articles pouvant être commentés, il est intéressant de proposer des pages d’informations dont le contenu est susceptible de s’enrichir régulièrement.

Il est aussi courant de partager en lecture certains documents de manière limitée, avec des personnes ou des groupes de personnes contrôlés, ou de les partager dans un but collaboratif avec des permissions supplémentaires d’écriture. Il permet facilement les modifications et ajouts de pages, de “répertoires”.

→ définir un wiki (cf. aussi Using DokuWiki as a lightweight CMS)

  • collaboratif
  • rapide, flexible
  • syntaxe simple
  • historique des versions
  • structuration de l'information
  • navigation hypertextuelle
  • indexation
  • présentation uniforme (le contenu a priorité sur sa présentation)

Si à cela vous ajoutez les souhaits d’une présentation uniforme, d’un langage de formatage simplifié mais puissant, la nécessité de conserver les versions successives d’un travail, de les organiser dans une arborescence, alors le logiciel à installer est un wiki, et le logiciel DokuWiki est particulièrement indiqué, pour les raisons suivantes :

  • c'est un logiciel libre éprouvé, très suivi et tenu à jour par une communauté importante
  • l'utilisation se fait dans un navigateur web
  • le langage de balise est simple, et l'environnement propose un éditeur avec barre d’outils
  • il n'exige pas de connaissance préalable
  • aucune base de données n’est nécessaire
  • l'outil collaboratif est éprouvé, et utilisé par des sites web reconnus
  • la gestion des droits d’accès par utilisateurs ou groupes (ACL) est très évoluée
  • DokuWiki et des sites tiers proposent de nombreuses extension (plugins) et thèmes (templates)
  • DokuWiki conserve un historique des versions et possède un moteur d'indexation et de recherche efficace

Références :

Historique du projet

Installation et administration système

Procédure de base

Puisqu’il n’y a pas de base de données, l’installation est plus simple que celle de la plupart des CMS. A partir d’une fenêtre de terminal (Linux, Mac), ou d’un client ssh comme PuTTY (Windows) :

  • Connexion et identification sur le serveur : ssh username@dns or username@ip_address (ou via les paramètres de PuTTY);
  • se placer dans le répertoire web : cd /var/www/html
  • créer un répertoire pour le wiki : sudo mkdir wiki00
  • s’y placer : cd wiki00
  • télécharger la dernière version de DokuWiki : sudo wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
  • décompresser l’archive : sudo tar -xzvf dokuwiki-stable.tgz --strip-components=1
  • effacer l’archive : sudo rm dokuwiki-stable.tgz
    • sudo chown -R www-data:www-data /var/www/html/wiki00
    • cd /var/www/html/wiki00 (si on n'y était pas)
    • fichiers : sudo find . ! -type d -exec chmod 660 {} \;
    • répertoires : sudo find . -type d -exec chmod 770 {} \;
  • on peut à présent régler la configuration de base de DokuWiki via un navigateur web, en pointant sur http://dns/wiki00/install.php ou http://ip_address/wiki00/install.php. Documentation spécifique : https://www.dokuwiki.org/installer pour la description des options :
    • Wiki Name
    • Enable ACL
    • Superuser
    • Full Name
    • E-Mail
    • Password
    • Once Again
    • Initial ACL policy
    • Allow users to register themselves
  • sudo rm install.php (effacement du script d'installation)

Une fois tout cela accompli, le wiki est pré-configuré et (presque) opérationnel ! Après l'initialisation, il convient d’effectuer rapidement quelques réglages de la configuration. Pour y arriver, il faut tout d’abord se connecter, et ensuite se diriger vers le menu d’administration. Avec le canevas de présentation (template) par défaut, on trouvera en bas de la page les boutons de connexion et d’administration. Choisissez alors les “Paramètres de configuration”. Une fois sur la page vous pourrez effectuer de nombreux réglages, dont ceux-ci qui me paraissent très utiles, voire indispensables :

  • choisir la langue de l’interface language fr
  • mode de création des répertoires : choisir 02770 (au lieu de 0755) (set gid, cf. http://www.dokuwiki.org/config:dmode)
  • mode de création des fichiers : choisir 0660 (au lieu de 0644)
  • Dans les paramètres d’authentification, rubrique “Actions à désactiver dans DokuWiki”, vérifier la désactivation (cocher) de l’action “s’enregistrer”, sauf si vous voulez permettre à n’importe quel quidam de s’inscrire et appartenir au groupe “user”
  • pour le délai avant indexation (paramètres anti-spam), vous pouvez vous contenter de 60*5 plutôt que 60*60*24*5, qui contraint à une attente de 24H après édition, avant que l’indexation par un robot de moteur de recherche ne redevienne possible
  • Si comme administrateur vous souhaitez être averti à chaque modification effectuée par un autre utilisateur, indiquez votre email derrière “Notifier les modifications à cette adresse de courriel” (paramètres d’édition)
  • ensuite, vous pouvez aussi activer l’abonnement aux pages, ce qui aura pour effet de générer un envoi par email notifiant la modification. Le délai peut être réglé par l’option suivante (“Délai après lequel les listes d’abonnement …”)
  • Mentionner dans ce dernier cas l’expéditeur des notifications par courriel du wiki (paramètres avancés)

Plus tard, notamment si vous ajoutez des extensions (plugins) possédant leurs propres paramètres de configuration, vous pourrez revenir sur ce menu d’administration !

Quelques premières améliorations (extensions,...)

DokuWiki peut être étendu par des extensions (plugins) dont certaines sont particulièrement utiles. Ces extensions sont installées à partir du panneau d'administration. Sélectionner la page “Gestionnaire d'extensions”, qui permet de lister les plugins installés. Il est facile d'en installer d'autres, via l'onglet “Rechercher et installer” : taper “upgrade” pour obtenir la liste des extensions correspondant à ce critère. Le plugin “Upgrade plugin” apparaît normalement en tête, et il suffit de cliquer sur le bouton “installer”. En retournant sur le panneau d'administration, on dispose à présent de la fonctionnalité “Mise à jour du wiki” qui sera utile lors de la sortie d'une mise à jour du logiciel, pour lesquelles des messages d'avertissement seront affichés.

Le thème graphique de DokuWiki peut aussi être modifié en sélectionnant un des nombreux thèmes listés à la page https://www.dokuwiki.org/template. Les thèmes s'installent comme les extensions, mais un seul thème à la fois peut être activé, via le gestionnaire de configuration. Bootstrap3 est un exemple de thème fréquemment utilisé.

Réécriture d'URL (jolis URL)

RewriteEngine on
#
RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
RewriteRule ^$                        doku.php  [L]
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
RewriteRule ^index.php$               doku.php
  • sudo chown www-data:www-data .htaccess
  • normalement il n'y a pas de pas de changement nécessaire dans le fichier de configuration d'Apache2
  • Dans la configuration du wiki (via la page d'administration et les paramètres de configuration), aller dans les paramètres avancés, et pour userewrite (Utiliser des URL esthétiques), sélectionner l'option “Fichier .htaccess”

Sécurisation, configuration

message à l'installation : “It seems your data directory is not properly secured. Please read https://www.dokuwiki.org/security

Solution :

Quelle est la structure du wiki sur le serveur ?

  • Structure complète dans le Manuel du développeur : https://www.dokuwiki.org/devel:dirlayout
  • Quelques répertoires importants :
    • bin - outils/scripts de type “command line tools” à exécuter à partir d'un terminal sur le serveur
    • inc - le code php de DokuWiki
    • lib/exe - programmes accédés via la navigation sur le site
    • lib/images - images liées au fonctionnement du wiki (icons, smileys, toolbar icons,…)
    • lib/plugins - extensions installées
    • lib/scripts - codes JavaScripts
    • lib/styles - feuilles de style CSS
    • lib/tpl - templates (thèmes visuels)
  • Répertoires propres à l'installation (importants à sauvegarder) :
    • data/pages - contient les pages actuelles
    • data/meta - contient les méta-informations sur les pages (créateurs, abonnés,…)
    • data/media - contient les fichiers media actuel (images, PDFs, …)
    • data/media_meta - contient les métadonnées des media
    • data/attic - anciennes versions des pages
    • data/media_attic - anciennes versions des media
    • conf - les réglages de configuration

Comment utiliser plusieurs instances de DokuWiki ?

Mises à jour

Sauvegardes

En mode manuel, avec création d'une copie sous un autre nom

  • Se connecter en ssh au serveur : ssh vmuser@ip_address
  • tar zcpfv dokuwiki-backup.tar.gz /var/www/html/wiki00
  • Le fichier de sauvegarde se trouve dans le répertoire home de vmuser
  • Pour créer (immédiatement ou ultérieurement) une copie sous un autre nom, se placer dans le répertoire web : cd /var/www/html
  • créer un répertoire pour le wiki : sudo mkdir wiki01
  • s’y placer : cd wiki01
  • décompresser l’archive en omettant le chemin sauvegardé (\var\www\html\wiki00) :
    • sudo tar -xzvf /home/vmuser/dokuwiki-backup.tar.gz --strip-components=4
    • À ce stade, les droits et propriétaires ne sont pas correct (vérifier par ls -l) : changer owner & permissions (https://www.dokuwiki.org/install:permissions#unix)
    • sudo chown -R www-data:www-data /var/www/html/wiki01
    • cd /var/www/html/wiki01 (si on n'y était pas)
    • fichiers : sudo find . ! -type d -exec chmod 660 {} \;
    • répertoires : sudo find . -type d -exec chmod 770 {} \;
  • Références :

Migration

  • en cas de migration, effacement de fichiers obsolètes : sudo grep -Ev '^($|#)' data/deleted.files | xargs -n 1 rm -vf

réinstallation (à vérifier en 2020 !)

  • cd /var/www/html puis effacement de l'éventuelle version antérieure : sudo rm -rf wiki
  • cd /home/vmuser copie d'une archive dokuwiki à réinstaller à cet emplacement
  • extraction par tar –force-local -xzvf ./saved_dokuwiki_2013-08-28_03:17:01.tar.gz
  • cd /home/vmuser/path_a_verifier
  • sudo mv wiki /var/www/html puis cd /var/www/html
  • sudo chown -R www-data:www-data /var/www/wiki
  • cd /var/www/wiki
  • fichiers : sudo find . ! -type d -exec chmod 660 {} \;
  • répertoires : sudo find . -type d -exec chmod 770 {} \;

Pages et syntaxe d'écriture

  • Les documents individuels sont des pages, écrites en suivant un Langage de balisage léger propre à DokuWiki, mais pour lequel il existe des outils de conversion vers et à partir d'autres formats. Le serveur assure automatiquement la génération des pages en HTML, consultable dans un navigateur web. Il existe des extensions permettant d'autres formats de sortie, des conventions de syntaxe additionnelles, ou d'autres fonctionnalités d'édition ou de présentation.
  • Syntaxe :
  • Pour créer une page, il suffit de créer un lien vers une page inexistante
  • Pour éditer une page, il suffit de sélectionner l'outil “Modifier cette page” (souvent un symbole de crayon d'une barre d'outil latérale. L'éditeur comprend une barre d'outil supérieure avec de nombreuses commandes d'édition classiques. Les niveaux de titres utilisent les caractères ”=” sur 6 niveaux (de “======” à “=”).
  • Pour supprimer une page, il faut “Modifier cette page”, sélectionner l'ensemble du code du texte (Ctrl + A), le supprimer et effectuer “Enregistrer”. La page vide est alors automatiquement supprimée

Structure en namespaces

  • Les pages peuvent être classées dans une structure arborescente comme pour des fichier habituels d'un système d'exploitation. Ces répertoires successifs sont appelés des “namespaces” (et subnamespaces) et le séparateur utilisé est “:”, analogue au “/” et “\” sous GNU/Linux et MS Windows. Les liens peuvent faire référence au namespace parent par “..” et les liens peuvent être relatifs, ou absolus. Le nom de page est toujours le nom qui est à droite du dernier caractère “:”.
  • des outils permettent d'afficher l'arborescence ou une sélection, et de renommer ou déplacer des pages, des namespaces, en actualisant les liens
  • La navigation hypertextuelle entre les pages utilise bien entendu des balises de lien, analogues aux balises http habituelles.

Utilisateurs, groupes

Les utilisateurs enregistrés peuvent ouvrir une session en utilisant le bouton de connexion. Si l’administrateur du wiki ne l'a pas désactivé, les visiteurs peuvent s'enregistrer sur le wiki. Sinon, ils doivent demander un code d'accès par un autre moyen. Suivant les réglages du site, les pages et fonctionnalités (droit d'édition,…) sont accessibles de manière différente et en fonction des utilisateurs (voir les ACL).

Des groupes d'utilisateurs partageant les mêmes droits peuvent être créés. Les groupes sont représentés par un préfixe, le caractère: @ suivi du nom du groupe. Il existe des groupes spéciaux, comme @ALL (tout le monde, même les utilisateurs non connectés) et @user (tous les inscrits).

ACL (Access Control List)

Des restrictions d'accès peuvent être liées aux pages et aux espaces de noms. Il y a sept permissions, d'importances croissantes :

  1. aucune (none)
  2. lire (read)
  3. modifier (edit)
  4. créer (create)
  5. téléverser sur le serveur (upload)
  6. effacer (delete)
  7. administrer (admin)

Les accès sont déterminés pour des utilisateurs ou groupes d'utilisateur. On utilise le groupe @ALL (tout le monde) pour limiter l'accès à tous les utilisateurs (comme configuration par défaut) et autoriser dans une règle suivante certaines permissions pour quelques utilisateurs (ou groupes) choisis.

Détails : https://www.dokuwiki.org/fr:acl

Le gestionnaire Multimédia

Le Wiki permet de sauvegarder et d'afficher des fichiers media : images, sons et vidéos, avec les possibilités d'interaction classiques pour ces deux dernier formats (démarrer, arrêter, défiler avec un curseur temporel). D'autres fichiers peuvent aussi être mis à disposition : pdfs, documents de suites bureautiques, archives compressées,…

Pour insérer un fichier directement dans une page en cours d'édition, mieux vaut utiliser le gestionnaire disponible dans la barre d'outil d'édition. Sinon, vous pouvez gérer vos médias à l'aide du Gestionnaire Multimédia en mode pleine page.

Les documents sont sauvegardés dans une arborescence identique aux namespaces des pages.

Pour l'insertion des images, sons ou vidéos, il est possible de régler la taille et la position (droite, gauche, centrée) de l'affichage.

Références

Extensions

Exemples en fonction : dokuwiki_extensions
  • Forme :
    • BlockQuote : mise en forme de citations
    • bootswrapper (en conjonction avec le thème bootstrap3
    • catlist : rend une liste en arborescence de pages d'un namespace
    • Chem, formatage de formules de substances chimiques
    • Cloud, nuage de mots utilisés
    • color, couleur du texte
    • CSV, affichage de données au format csv (d'un tableur,…). Il faut autoriser les csv via un fichier conf/mime.local.conf à créer. Cf. la documentation : https://www.dokuwiki.org/mime.
    • Definition List, par exemple pour un glossaire
    • Diagram, construction de diagrammes
    • edittable, facilite l'édition de tableaux. Cf. aussi tablelayout
    • flowchartjs diagrammes basés sur flowchart.js
    • flowcharts diagrammes et graphes basés sur la librairie mermaid.js
    • Gallery, insertion automatique d'une galerie d'images
    • gh, incorpore des fichiers ou parties de fichiers de GitHub
    • hidden permet de cacher/révéler des portions de textes
    • html5video incorpore des vidéos lues nativement par le navigateur (HTML5) → ajouter les types mime vidéo à la configuration de DokuWiki
    • iframe permet la visualisation dans un cadre d'une source externe via son URL
    • Include inclut une autre page ou section dans la page courante
    • keyboard affiche du texte comme des touches de clavier (CTRL+C, …)
      • installable via le gestionnaire d'extensions
      • librairies additionnelles sur le serveur :
        • sudo apt-get install texlive-latex-base imagemagick ghostscrip
      • Dans le gestionnaire d'administration, une rubrique complémentaire “LaTeX plugin tasks” est présente dans la partie “Extensions”
      • L'erreur “LaTeX render failed” peut être causée par un problème de permissions avec ImageMagick (cf. https://github.com/marklundeberg/dokuwiki-plugin-latex/issues/9. Éditer le fichier /etc/ImageMagick-6/policy.xml et modifier la ligne <policy domain=“coder” rights=“none” pattern=“PS” /> en <policy domain=“coder” rights=“read” pattern=“PS” /> !
      • plugin»latex»convert_options initialement à '-density 120 -trim -transparent “#FFFFFF”', utilisation de '-density 180 -trim -transparent “#FFFFFF”' pour des rendus un peu plus grand
    • OpenLayersMap, ajoute des cartes (OSM, Google, Bing,…) et nécessite aussi l'extension geophp
    • pagelist dresse une liste de pages
    • plaintext incorpore du texte non formatté
    • PyCode incorpore du code python d'un site distant (Bitbucket, GitHub)
    • semantic (+ action SEO) permet des visualisations associées à certains thèmes comme bootstrap3
    • https://www.dokuwiki.org/plugin:syntaxhighlighter3 (coloration syntaxique, dans le module standard aussi)
    • TocTweak formattage spécifique de la table des matières
    • Video Share inclusion de vidéo (youtube,…)
    • WikipediaSnippet incorpore des extraits d'articles de Wikipedia
    • Wrap, nombreuses possibilités de présentation (cf. les démos)

FIXME :

  • Enregistrements d'inscriptions (mailing, newsletter,…) via des plugins dokuwiki :
    • Plugins bureaucracy, pagemod ; En option : sqlite, (data, remplacé par…) struct, CAPTCHA ? attention au GDPR ! → Cookielaw (affichage d'une bannière avertissant le stockage de cookies)
  • utilitaires :
  • svgEmbed + edit de mime.local.conf
  • statistiques :
    • matomo (matomo, ex “piwik”)

FIXME Logo & favicon ??

Divers

Thèmes (templates)

La conception : namespaces, groupes et droits

Exemple : une ASBL consacrée aux logiciels libres

Activités : ateliers mensuels, activités extérieures, activités récréatives, documentation, répertoire de logiciels, fonctionnement de l'ASBL (AG, réunions du CA, secrétariat, trésorerie, inventaire matériel…)

Groupes et utilisateurs : inscrits sur le site, membres de l'ASBL, membres du CA, administrateurs systèmes, groupes de travail thématiques, éditeurs/rédacteurs,…

Exemple : l'enseignement communal à Gnuville

Sous-parties : l'échevinat, l'enseignement fondamental (maternel et primaire), l'enseignement secondaire (général, technique de transition, technique de qualification et professionnel), l'enseignement de promotion sociale (niveaux secondaire et supérieur), l'académie de Musique (enseignement artistique), l'enseignement spécialisé, le CPMS

Les métiers : l'administration (direction générale, directions, comptabilité), les infrastructures (bâtiments, techniques générales, informatique), l'enseignement (y compris éducation artistique et culturelle, disciplines scientifiques et techniques, gymnastique et sport, langues) le psycho-médical, le soutien pédagogique,…

Les implantations : administration, écoles (maternelles, primaires, fondamentales), centre PMS, Régie des bâtiments,…

Les bénéficiaires : élèves du fondamental (4500 et leurs parents), élèves du secondaire (3000), élèves

Groupes : parents (fondamental), élèves secondaires

Scripts DokuWiki

Passage en https, avec des certificats SSL classiques, ou via Let's encrypt

Astuces

  • À classer :
    • pandoc, conversions avec éditeur, génération via tableur, recherches regexp…
  • travail collaboratif
    • includes
  • XML-RPC
  • balises <nowiki></nowiki> parfois nécessaire
    • codes de remplacement…

Dépannage

Les problèmes sont assez rares !

Communauté et développement

Des sites en DokuWiki

Produits incorporant DokuWiki en option :

Des analyses, comparaisons,... sur DokuWiki

Dans la presse et les blogs...

Ce site web utilise des cookies pour analyser le trafic de visites. En restant sur ce site, vous acceptez le stockage de cookies sur votre ordinateur. En savoir plus
floss/dokuwiki.txt · Dernière modification: 2020/02/20 11:57 par villersd