====== 🛠️ 🌐 📋 DokuWiki ======
{{https://www.dokuwiki.org/_media/wiki:dokuwiki-128.png}}
{{tag> CMS wiki OutilsWeb OutilsLibre DW logiciels }}
^ Critères CMS ^ ressenti ^^
| documentation | [[https://www.dokuwiki.org/start?id=fr:dokuwiki|site officiel]] quasiment traduit et complet||
| ''👁️%%%%'' | édition proche du texte-code ||
| prix | Libre ||
=== 🧐 Koikecé Pourquoi faire ? ===
Un [[https://www.dokuwiki.org/start?id=fr:dokuwiki|logiciel libre de wiki]] assez simple à utiliser et [[https://www.dokuwiki.org/fr:features|complet]] pour publier des notes en ligne, illustrées, ou avec des bouts de codes dedans.
Le grand principe c'est les pages et les [[https://www.dokuwiki.org/fr:namespaces|catégories ou espaces de noms]] (des super-pages pour en ranger d'autres). L'avantage c'est qu'on peut construire son site foutraque au fur à mesure, une fois la structure posée le plan du site et les pages évolueront avec le temps et les contributions.
C'est un logiciel utilisé par les plus grands (([[https://sebsauvage.net/wiki/doku.php?id=dokuwiki&s[]=dokuwiki|Seb Sauvage par exemple]])) et donc bien documenté [[https://www.dokuwiki.org/start?id=fr:dokuwiki|sur le site officiel]].
Ce CMS était mis à dispo dans les services publics de [[https://frama.wiki/|framasoft]] jusqu'en 2021.
Aujourd'hui pour l'adopter sans gérer la technique d'hébergement : se rapprocher d'un chatons comme [[https://kaz.bzh|KAZ]].
===== Champs des Possibles 🌟‿🌟 =====
=== 🌟 Magie ===
Grâce à ''DOKUWIKI'' on peut très facilement publier proprement des pages de notes avec des images, des tableaux, du code... et on peut **décider des droits ouverts aux autres personnes** : accès à la lecture, à l'inscription et à la co-édition.
🌠 la **Table des Matières** : générée automatiquement à partir des titres __dans chaque page__. Cela permet de naviguer dans une page dense, mais aussi d'éditer les contenus morceaux par morceaux.
🌠 les **Notes de Bas de Pages** faciles : il suffit d'inscrire du texte entre 2 parenthèses pour qu'il devienne une info complémentaire ''(( comme ici ))''
🌠 des **thèmes** et des **extensions** existent pour affiner les options et construire le site que l'on souhaite. [[https://www.dokuwiki.org/fr:extensions| 📖 voir dans la doc]]
On peut **modifier** une page entière ou juste une section de la page,
et on crée une nouvelle page //en créant le lien qui pointe vers elle// = au moment où on en a besoin
C'est très puissant pour se construire un cahier vivant et évolutif
// autant te dire que je kiffe🌟 //
**Typiquement l'outil de documentation et de récap' d'informations thématiques.** On reprend les contenus autant de fois qu'on le souhaite pour les compléter et les améliorer.
Un ''wiki'' se déploie et étale les pages au fur et à mesure, quand un ''blog'' empile chronologiquement ses billets.
🌠 La **collaboration** ou édition à plusieurs: c'est l'objectif principal de ce type d'outil mais comme toujours l'installation ne suffit pas à garantir le résultat...
> le Wiki vous contraindra d’abord à vous concentrer sur le fond puisque vous ne pourrez pas élaborer une mise en forme avancée. ((source: [[https://archives.framabook.org/guide-libre-association/| Guide Libre Association]] de l'APRIL - 2016))
La structure du site ne sera pas si simple à modifier((on pourra en fait "tricher" en créant des pages de sommaire / navigation pour y présenter les morceaux que l'on veut)),\\ mieux vaut décider dès le départ d'une organisation avec quelques espaces de noms que l'on étoffera.
===== interface d'édition =====
{{ :outils:duweb:dokuwiki:capture_edition_dokuwiki.png?800nolink |Capture de l'éditeur par défaut dans DokuWiki}}
On est très brut de pomme et proche du texte!
il est possible de changer l'interface d'édition via des plugins, si cet aspect code ne vous convient pas.
La [[https://www.dokuwiki.org/start?id=fr:wiki:syntax|syntaxe]] pour mettre en forme son texte est plutôt simple mais il faut en prendre l'habitude. // Notamment pour les liens... Ce n'est pas exactement du Markdown mais ça y ressemble quand même. //.
===== à l'usage =====
C'est vraiment bien pour partager des codes et des fichiers à télécharger, pour
par contre c'est plus difficile de créer les menus, les mises en pages...etc.
====Publier / Créer ====
===Créer une page ===
Pour cela on crée d'abord un lien qui pointe vers elle, avec la syntaxe des liens internes :
[[Nouvelle Page]]
qui va afficher [[Nouvelle Page]]. Le lien mène alors vers une page "à créer", il suffit d'y ajouter du contenu pour la faire exister.
On peut évidemment choisir d'écrire un texte différent du nom de la page pour libeller son lien :
[[playground:syntaxedoku0|Prise en main, - bac à sable syntaxe dokuwiki ]]& structure d'une page "brute"
permet de créer la page ''syntaxedoku0'' dans la partie ''playground'' du site. \\
Cela affiche : [[playground:syntaxedoku0|Prise en main, - bac à sable syntaxe dokuwiki ]]& structure d'une page "brute".
=== Créer un lien ===
L'éditeur transforme automatiquement les URL complètes en liens cliquables, ex : https://www.jecherchedesproblemes.com/
\\ Si on veut personnaliser le texte du lien la syntaxe est assez simple :
[[https://www.jecherchedesproblemes.com/|le site portfolio d'un designer talentueux]]
donnera :
[[https://www.jecherchedesproblemes.com/|le site portfolio d'un designer talentueux]]
=== Afficher des images===
{{wiki:dokuwiki-128.png?50| description}}
donnera :
{{wiki:dokuwiki-128.png?50| description}}
Plus de notes sur les possibilités de texte et la syntaxe [[~:rappels syntaxe| dans cette page enfant]]
====Organiser / Ranger====
Avec DW notre site wiki va s'étendre à partir de la page racine (d'accueil). \\
Comme **il n'y a pas de base de données** l'arborescence des pages correspond à des 📃 fichiers et 📁 des dossiers.
===📁 Dossiers: catégories ou espaces de noms===
Pour **créer une arborescence** on distingue \\
- les liens internes voisins, pour faire une page sœur de celle où nous sommes créés avec le raccourci ''%%[[nouvelle page]]%%'' \\
- des liens internes enfants qui s'écrivent avec un **tilde** : ''%%[[~:nouvelle page]]%%''.
Ce qui donnerait : [[nouvelle page]] (//au même niveau que la page actuelle//) et [[~:nouvelle page]] (//enfant de la page actuelle//). \\
''Pour taper un tilde au clavier c'est AltGr+2''
\\
et si on veut créer une page "à la racine" du wiki depuis n'importe quelle autre page on ajoute : ''%%[[:nouvelle page racine]]%%'' \\ qui donne [[:nouvelle page racine]]
=== 📃 Pages ===
Le centre du wiki: des documents plus ou moins longs, plus ou moins structurés... Chacun possède une URL.
=== 📃 mini-pages spéciales ===
Pour gérer un menu, la sidebar...etc il suffit de créer la page correspondante qui devrait s'afficher automatiquement "à sa place".
[[sidebar]] [[footer|footer]]
[[https://www.dokuwiki.org/template:bootstrap3:hooks#dokuwiki_hooks|Il y a plusieurs pages concernées par ces "Hooks" détaillés ici.]] Si ça ne fait pas comme on veut: vérifier la configuration
notes + sur le fonctionnement, où [[~:Hooks| j'explore les hooks ]]et les options...
==== Structurer son site ====
Vu la liberté de création de pages "partout" et selon les utilisateurs visés il vaut mieux définir ensemble les quelques espaces de noms "principaux" situés en racine du site qui permettront de "ranger" tous les contenus envisagés.
Ici j'ai tenté un truc "simple" :
* 📁 notes
* 📁 notes de cours
* 📁 notes de lectures
* 📁 perso
* 📁 outils
* 📁 du web
* 📁 pour imprimer en 3D
* 📁 pour découper - graver
* 📁 web
* 📁 projets
* 📁 asso
* 📁 secret
Mais bon c'est un espace perso donc ça n'a pas beaucoup d'importance...
=== Modèles de pages ===
On a vu que dans chaque 📁 catégorie on peut "invoquer" une sidebar, un footer...etc.
Plus fort: on peut créer un gabarit de page pré-structurée pour tout le site ou pour chaque dossier, simplement en créant le fichier
''%%_template.txt%%'' à la racine de l'espace de nom (par FTP). [[https://www.dokuwiki.org/fr:namespace_templates| voir la doc]]
[[~:modeles|à tester ici]]: une page "projet" type, une page "outils" type... etc.
=== Créer des menus ===
ça non plus [[~:creer_menus|c'est pas si clair]]:
* à la main dans un fichier hook?
* avec une extension?
Mais structurer de l'information pour les autres, c'est un [[web:metiers| métier]]! j'ai des notes là-dessus .?.
==== Styles et Apparence (les Thèmes) ====
====Partager / gérer les accès ====
en fonction de cette arborescence on peut aussi contrôler les accès accordés aux visiteurs :
par exemple ( à tester ici) : que personne ne puisse voir les contenus de 📁 secret et 📁 perso,
mais que les projets 📁 asso soient ouverts à tous en écriture (sans compte?)
dfdfgddg
===== Administration - Maintenance =====
=== le peu que je sais... ===
=== projets avec DW ===
* à part ce wiki perso je n'en ai pas vraiment.
* j'avais tenté un wiki de préparation d'un événement pour le Club mais l'édition n'a jamais été très collective.
*
==== Configuration ====
Bon c'est un gros truc complet qui marche tout seul...
ffff
==== 🙇 des outils dans des outils ====
{{drawio>web:diagram1}}
==== 🚩 ICI ====
Sur ce site j'utilise des ⚙️ **extensions** pour agrandir la palette des possibles, entre autres :
* [[https://www.dokuwiki.org/plugin:nspages|nspages]] pour créer des sommaires où je veux.
* [[https://www.dokuwiki.org/plugin:wrap|wrap]] qui permet de créer des colonnes dans la mise en page
* [[https://www.dokuwiki.org/plugin:vshare|vshare]] pour intégrer des vidéos du web
* [[https://www.dokuwiki.org/plugin:gallery|gallery]] pour générer des galeries d'images à partir d'ici ou de flux...
* [[https://www.dokuwiki.org/plugin:dw2pdf|dw2pdf]] pour permettre le téléchargement d'une page en pdf
* [[https://www.dokuwiki.org/plugin:drawio|drawio]] pour dessiner des schémas et les mettre à jour directement depuis le wiki ! ((d'ailleurs si j'ai le courage faudrait aussi que je pointe sur ma propre instance, [[https://sebsauvage.net/wiki/doku.php?id=draw.io|avec l'aide de Seb Sauvage]]))
Le tout habillé / emballé dans le 👚 **thème graphique** [[https://www.dokuwiki.org/template:bootstrap3|Bootstrap3]] pour faire jeune
[[voir la config et la maintenance de ce site]]
===== trucs & astuces =====
Pour **changer le logo** on remplace les fichiers \\
dans : ''MonWiki/data/media/'' ->
'' logo.png'' pour le haut de page. \\
dans :''MonWiki/lib/tpl/bootstrap3/images/'' \\
'' favicon.ico'' pour les onglets et \\
''apple-touch-icon.png'' pour les raccourcis
Pour **ajouter des acronymes** à la liste par défaut pour qu'ils soient légendés comme par ex HTML, API...
on peut modifier le fichier ''MonWiki/conf/acronyms.conf'', c'est comme ça que j'ai ajouté PHP ou IDE.