Blog des Gens Compliqués

Comment rendre DokuWiki moins moche?

15/05/2025 13:06:44+02:00|Par DkVZ
9 minutes de lecture (facile)

Il n'y a pas très longtemps (en toute relativité), j'avais publié une "Réflexion sur les bases de connaissances" que personne n'a lu, ce que je peux comprendre.

En résumé, je prends des notes de trucs. Des idées, des liens à lire qui vont trainer là pour toujours et que je vais jamais lire.

Pas mal de documentation aussi. Quand je me lance dans l'apprentissage de quelque chose, je démarre une note dessus.

J'ai aussi des recettes de cuisine, des adresses de plombier, ...

Je prends aussi des notes sur du vrai papier dans un carnet (sûrement acheté chez Action). Par exemple des articles de ce présent blog ont démarré de la sorte, alors que des gens me regardaient de travers gribouiller un condensant vraissemblablement illisible de mots dans une salle d'attente d'hôpital.

"Timmy ne regarde pas le monsieur qui fait semblant d'écrire comme dans The Shining, il est sûrement là pour recevoir des médicaments pour ses troubles obsessionnels". Ben ouais madame, désolé.

Tout ça n'explique pas pourquoi j'utilise DokuWiki et pourquoi le titre de cet article a le potentiel SEO d'une photo de rat mort tout habillé sur un site porno.

Disons pour pas trop me répéter (ma spécialité) que j'ai choisi DokuWiki parce que:

  • Sa source de données est un bon vieux banc de fichiers texte, aucune base de données n'est nécessaire;
  • Je peux facilement éditer et consulter tout depuis mon téléphone ou n'importe quel ordinateur (j'en utilise plusieurs (trop)) pourvu qu'il y ait un accès aux Internets — Rien ne doit être installé, pas d'app, faut juste un navigateur.
Un répertoire sous Windows avec plein de fichiers txt dedans
Ma base de connaissance initiale était aussi un banc de fichiers texte (sous contrôle de source par après)

Le principal inconvénient étant la nécessité d'avoir un serveur quelque part avec du PHP dessus et des backups.

L'autre inconvénient est le sujet de cet article.

C'est moche

Bon je suis un peu méchant. On peut pas vraiment dire que je sois un meilleur artiste capable de créer un thème sobre et joli pour un Wiki.

Le thème de base est fonctionnel mais très basique, on peut le voir sur leur site par exemple:

le site principal de DokuWiki, une page sobre en thème clair

Déjà, il n'y a pas de thème sombre. Sur Wikipedia non plus d'ailleurs (à moins d'être connecté et d'aller creuser dans les options, je crois), le style de texte est très BORING et l'éditeur est un bon vieux textarea, que je vais garder parce que je suis un peu OLD SCHOOL mais on peut de nos jours créer de bien plus beaux éditeurs, notamment avec l'attribut contenteditable.

Ce sera pour une prochaine fois.

Etape 0: Avoir la célérité de ZEUS

C'est sans rapport avec l'apparence mais c'est rapide et ça change un peu la vie pour ceusse qui utilisent DokuWiki tous les jours comme moi (on est au moins quatre dans le monde).

Saviez-vous que DokuWiki avait des raccourcis clavier?

On en est pas au mode vim mais ça accélère pas mal les choses je trouve. Ces raccourcis sont activés par une combinaison de touches qui peut potentiellement varier selon le navigateur.

Pour Firefox et Chrome, c'est Alt+Shift. Ce qui signifie que:

  • Alt+Shift+e — Ouvre la page courante en édition
  • Alt+Shift+s — Enregistre la page en cours d'édition
  • Alt+Shift+f — Met le focus sur le champ de recherche

Le deuxième en particulier m'épargne bon nombre de clicks foireux sur preview au lieu du minuscule bouton save avec son vieux style de bouton par défaut moche.

Etape 1: Ajouter un template

Les templates pour Doku ne sont pas très nombreux et dieu seul sait si quelqu'un les tient à jour.

Je vais utiliser celui qui est un peu tout le temps recommandé, qui a l'air actif, et permet de changer entre sombre et clair (un prérequis pour moi pour les deux fois par an où je geek en extérieur) et de surcroît d'avoir une détection automatique du mode en place sur votre navigateur (j'en parlais dans un autre article).

Il s'agit de MindTheDark.

Vous pouvez l'installer automatiquement depuis le panneau d'administration etl a page des extensions:

une recherche d'extension qui montre mindthedark avec un bouton installer

Cliquez sur "Install" et voilà, vous avez le template. Pour l'activer, ça se passe sur la page des options du panneau d'administration:

Options de DokuWiki avec 'template' placé sur mindthedark

Le bouton pour enregistrer les options est tout en bas.

Une section d'options spécifiques au template devrait apparaître tout en bas de la page d'options (en fait elle est peut-être toujours là même si le template n'est pas actif):

Options spécifiques au template 'mindthedark' dans les options DokuWiki

Je coche bien entendu la détection automatique, le lien pour changer de sombre à clair et vice-versa (qui fait foirer toute la barre d'état mais spa grave) et place le thème par défaut en sombre.

Changement des polices de caractère

Le jeu de polices par défaut n'est pas à son avantage tant sous Linux que Windows (c'est pas trop mal sur Android).

Pour changer tout ça on va devoir éditer les CSS. Chouette.

Nous avons plusieurs moyens d'appliquer des modifications CSS. A mon sens, la plus "portable" vient d'une fonctionnalité de DokuWiki: les styles utilisateur.

Il s'agit de créer un fichier nommé userstyle.css (ou userstyle.less si vous êtes ce genre de personnes) dans le répertoire conf de DokuWiki.

Oui c'est bizarre, c'est le seul fichier CSS au milieu des fichiers de config. Ne posons pas trop de questions.

Ce fichier ne s'applique que pour les écrans. C'est-à-dire qu'en mode "impression" il est ignoré et c'est une bonne chose pour les trois personnes qui impriment encore des trucs (et qui ont probablement un fax chez eux).

J'utilise à peu près la même famille de police pour le texte en général à part que:

  • Je pose "Ubuntu" en premier pour mes machines Linux, j'aime bien cette police pour le texte et la doc;
  • "Segoe UI" existe de base sous Windows et elle est plutôt chouette. Je sais pas pourquoi j'ai laissé "Lucida Sans" dans la liste mais bon;
  • "Fira Code" est là pour certaines machines Linux qui n'ont pas les polices "Ubuntu" - J'y installe toujours Fire Code, j'en parlais ici.

A propos de Fira Code: c'est une police à ligatures, c'est à dire que certaines suites de caractères sont transformées en un caractère spécial combiné. Par exemple "->" devient une flèche mais il y a tout un tas d'autres symboles moins connus comme "www" et les gens n'en sont pas toujours fans.

Pour l'instant j'utilise d'ailleurs CaskaydiaCove un peu partout (la Nerd Font) mais ça c'est une autre histoire.

body {
  font-family: Ubuntu,"Segoe UI","Fira Code","Lucida Sans",sans-serif;
}

.dokuwiki textarea.edit, pre {
  font-family: Consolas,"Fira Code","Andale Mono WT","Andale Mono","Bitstream Vera Sans Mono","Nimbus Mono L",Monaco,"Courier New",monospace;
}

La seconde famille de police concerne les extraits de code et l'éditeur et reste plus ou moins dans sa valeur par défaut sauf que j'ai mis "Fira Code" en deuxième.

Sous Windows c'est Consolas qui devrait prendre le dessus et ça présente pas mal.

La page prend toute la largeur

Je sais pas pourquoi le template MindTheDark configure la "page" sur toute la largeur, ce qui est pas top pour la lecture quand j'ai mon navigateur en plein écran.

Le template de base a une limite de largeur. Il s'agit d'en appliquer une et s'assurer que la page est bien centrée:

#dokuwiki__site > .site {
  margin-right: auto;
  margin-left: auto;
  max-width: 930px;
}

La largeur est totalement arbitraire, à vous de choisir ce que vous voulez. Sur mobile on est en dessous de cette largeur max et donc la page prend d'office toute la largeur disponible.

Sur grands écrans: menu pas centré et police trop petite

Quand vous êtes connectés il y a un menu qui apparaît tout au dessus et il est pas centré.

Ce truc est en positionnement absolu, c'est vraiment pas pratique à positionner; la bonne nouvelle c'est que tout va bien sur mobile.

Pour que mes modifications n'affectent que les "grands écrans", j'utilise un media query actif à partir de 800px, avec un hack infâme de centrage à base de translation et une augmentation de taille de la police en général parce que je suis vieux.

@media (min-width: 800px) {
  body {
    font-size: 1.1rem;
  }

  #dokuwiki__usertools {
    left: 50%;
    right: initial;
    transform: translateX(-50%);
    width: initial;
    min-width: 800px;
  }
}

Bon le résultat est pas incroyable mais c'est mieux qu'avant.

L'éditeur est trop petit

Je traine la même installation de DokuWiki depuis de nombreuses années, elle a été maintes fois mise à jour sans se croutter complètement (j'ai cependant un nombre étrangement élevés de plugins qui portent le même nom mais je fais semblant de pas les voir).

Je me sens un peu bête d'avoir trainé ce "problème" depuis tout ce temps sans connaître sa solution.

L'éditeur est trop petit sur un grand écran (même sur un téléphone moderne il est un peu trop petit).

Je me préparais à modifier ça avec du CSS sauf que la taille du textarea est fixée en "inline" par du JavaScript:

L'inspecteur de mon navigateur qui montre que l'élément textarea a une hauter fixe de 300px
Ce truc va parler à personne et en plus c'est tout petit, pourquoi j'ai mis cette image

Et en fait, je me sens vraiment extrêmement bête parce que, vous savez, ces boutons bizarres en bas de la page avec des flèches:

montre les flèches en bas à droite de l'éditeur, vers le haut et le bas

Ben ça sert à redimensionner l'éditeur... Et la préférence est sauvegardée dans votre session voire dans un fichier texte quelque part sur le serveur (spa très clair) si vous êtes un utilisateur connecté.

Bon... Ben voilà. Problème résolu (que j'ai trainé pendant 15 ans).

J'ai aussi découvert qu'on pouvait avoir de la coloration syntaxique de base dans DokuWiki depuis je-sais-plus-quelle-version. Tous mes extraits de code sont en bon vieux gris terne. Bon.

Mon fichier userstyle.css

Voici toutes les modifs regroupées:

#dokuwiki__site>.site {
  margin-right: auto;
  margin-left: auto;
  max-width: 930px;
}

.dokuwiki textarea.edit,
pre {
  font-family: Consolas, "Fira Code", "Andale Mono WT", "Andale Mono", "Bitstream Vera Sans Mono", "Nimbus Mono L", Monaco, "Courier New", monospace;
}

body {
  font-family: Ubuntu, "Segoe UI", "Fira Code", "Lucida Sans", sans-serif;
}

@media (min-width: 800px) {
  body {
    font-size: 1.1rem;
  }

  #dokuwiki__usertools {
    left: 50%;
    right: initial;
    transform: translateX(-50%);
    width: initial;
    min-width: 800px;
  }
}

Ce qui donne ceci chez moi au final, sur Ubuntu:

montre les flèches en bas à droite de l'éditeur, vers le haut et le bas

Rien de très FIFOU mais c'est sobre et un peu moderne.

Notons aussi tant qu'on y est qu'il y a un petit éditeur de couleurs du template dans les options de DokuWiki:

permet de modifier les couleurs du thème depuis l'administration

Parfait pour une bonne farce au propriétaire du wiki qui consiste à tout mettre en rose Fluo.

Commentaires

Il faut JavaScript activé pour écrire des commentaires ici

#1

dave_idem
02/10/2025 12:23:04+02:00
J'étais en train de préparer une sauce tomate avec les dernières de mon jardin tout en réécrivant un pas-à-pas (pour moi, exclusivement) sur comment je fais déjà pour mettre à jour Dokuwiki. Le temps que la sauce réduise, je me suis paumé sur le web pour tomber sur ton article avec lequel j'ai passé un bon moment. J'ai ri plusieurs fois, ce qui me laisse penser que si on se rencontrait IRL, bin on pourrait sûrement s'entendre sur ce qu'on fait d'à peu près bien pour soi. C'est important de penser à soi. Au cas où, j'ai investi le fédiverse il y a plusieurs années tellement le reste sentait de plus en plus mauvais. -> https://mamot.fr/@dave_idem A++

#2

DkVZ
02/10/2025 20:05:48+02:00
Aah je sais jamais comment mettre Dokuwiki à jour, je crois que je fais un truc différent chaque fois ou je copie la commande "cp" infernale qui est sur leur wiki. Merci pour les mots, j'espère que la sauce tomate était à la hauteur.

Ajouter un commentaire

Votre commentaire a été ajouté
(enfin, je pense)