====== Catégories ou Tags ======
La gestion des catégories se fait grâce aux plugins [[doku>plugin:tag|tag]], [[doku>plugin:pagelist|pagelist]] et [[doku>plugin:tagfilter|tagfilter]].
===== Plugin Tag =====
Le plugin Tag permet d'assigner des catégories de tags à des pages du wiki.
==== Balise Tag ====
{{tag>[liste de tags]}}
^ [liste de tags] | Une liste de tags séparés par des espaces décrivant le contenu de la page | Requis |
{{tag>Tag1 Tag2 Tag3}}
Choisissez des tags pertinents, regardez et reprenez ceux qui existent déjà. Évitez les synonymes et ne mettez que les plus pertinents, ceux qui servent à rassembler les pages. Chacun de ces Tags (le lien présent sur chaque tag dans la page) pointe vers une page listant toutes les autres pages portant le même tag. Ainsi les tags permettent de regrouper les pages par sujet.
Ce plugin gère aussi les [[doku>fr:namespaces|espaces de noms]]. Si vous voulez qu'un tag (le lien associé dans la page) pointe vers une page d'un espace de nom, il faut préciser l'espace de nom juste avant le tag en employant "'':''". Si cette page n'existe pas, seules les pages ayant ce Tag seront affichées en cliquant sur ce lien :
Exemples de syntaxe :
* ''%%{{tag>tag1 tag2 tag3}}%%''
* Avec espace de nom : ''%%{{tag>:ns1:tag1 ns1:tag2 ns2:subns1:tag3}}%%''
==== Topic ====
{{topic>[tag]&[flags]}}
^ [tag] | la liste des tags pour lesquels on aimerait lister les pages les contenants | requis |
^ [flags] | flags de listes de pages séparés par des ''&'', voir [[#flags|flags]] | optionnel |
Cela affiche une liste de toutes les pages qui contiennent cette catégorie de balise (//tag//). La liste est triée dans l'ordre alphabétique des ID de page. Vous pouvez également ajouter le modificateur ''+'' et ''-''. ''+'' crée une intersection entre la liste des pages créées par les balises (//tag//) déjà définies et les pages correspondant à la balise (//tag//) suivant le ''+'' (''+'' est un ET logique). ''-'' supprime toutes les pages marquées avec la balise (//tag//) donnée de la liste des pages déjà trouvées.
Exemple :
* ''%%{{topic>tag1 -tag2}}%%'' -- Liste toutes les pages taggées avec tag1 mais pas avec tag2.
* ''%%{{topic>tag1 +tag2}}%%'' -- Liste toutes les pages taggées avec tag1 et tag2.
* ''%%{{topic>tag1 tag2}}%%'' -- Liste toutes les pages taggées avec soit tag1, soit tag2, soit les deux.
* ''%%{{topic>ns1?tag1 tag2}}%%'' -- Liste toutes les pages dans le namespace ns1 taggée avect tag 1 ou tag2.
* ''%%{{topic>.?tag1 tag2}}%%'' -- Liste toutes les pages dans le namespace courant taggées avec tag1 ou tag2.
* ''%%{{topic>tag1 tag2 tag3&nodate&desc&sort}}%%'' (Ajoute des options de [[#plugin_pagelist|pagelist]] pour modifier le design)
==== Searchtags ====
{{searchtags&[flags]}}
^ [flags] | flags de liste de page séparés par des ''&'', voir [[#flags|flags]] | optionnel |
Ceci affiche un formulaire de recherche avec la possibilité de choisir un espace de nom et les tags à partir d'un tableau de tous les tags, qui doivent être soit inclus soit exclus, avec l'option de choisir si les tags doivent être associés à l'aide d'un AND ou d'un OR. Les résultats s'affichent comme dans le composant Topic.
Exemple :
* ''%%{{searchtags}}%%'' -- La syntaxe de base
* ''%%{{searchtags&nodate&desc&sort}}%%'' -- avec les options de [[#plugin_pagelist|pagelist]] pour modifier le design
==== Count ====
{{count>[tag]}}
^ [tag] | le tag de catégorie dont vous voulez lister les apparitions | requis |
Cette partie vous permet d'afficher une vue d'ensemble des tags que vous utilisez actuellement : le tag et les apparitions associées (combien de fois le tag est utilisé) dans votre wiki. Vous pouvez utiliser soit ''+'' comme nom de tag, ce qui affiche la liste de tous les tags utilisés, ou simplement indiquer quelques tags séparés par des espaces.
Exemple :
* ''%%{{count>+}}%%'' -- Liste tous les tags avec les apparitions associées.
* ''%%{{count>tag1 tag2}}%%'' -- Liste les apparitions des tag1 et tag2.
* ''%%{{count>tag1 tag2 tag3&. ns1 ns2}}%%'' -- Liste toutes les apparitions avec tags spécifiés dans les espaces de noms (le point indique l'espace de nom racine).
==== Comment utiliser des tags faits de plusieurs mots ? ====
Utiliser simplement un "_", qui remplace automatiquement un " ", c'est-à-dire :
{{tag>tag_à_plusieurs_mots}}
Les guillemets (anglais) semblent aussi fonctionner :
{{tag>"tag à plusieurs mots"}}
===== Plugin Pagelist =====
Le plugin Pagelist, comme son nom l'indique, propose de jolies listes de pages wiki. Outre son fonctionnement comme plugin de syntaxe par lui-même, il est aussi utilisé comme plugin d'aide pour les plugins Blog, Discussion, Editor, Tag, Task et Dir.
==== Syntaxe ====
Encadrez simplement une liste non ordonnée de liens internes avec la balise ''%%%%'' :
* [[..:blog:|Blog Plugin]]
* [[..:discussion:|Discussion Plugin]]
* [[..:editor:|Editor Plugin]]
* [[..:tag:|Tag Plugin]]
* [[..:wrap|Wrap Plugin|Ceci s'affiche dans la cellule de description]]
^ [flags] | les flags peuvent être utilisés pour modifier l'apparence de liste de pages, voir [[#flags]] | optionnel |
==== Flags ====
^ Paramètre ^ Valeur par défaut ^^ Variante ^^
| ''style'' ^ ''default'' | tableau avec des lignes horizontales ^ ''table'', ''list'' ou ''simplelist'' | style de tableau ou de liste standard de DokuWiki |
| ''showheader'' ^ ''noheader'' | cache la ligne d'en-tête du tableau de liste des pages ^ ''header'' | montre l'en-tête |
| ''showdate'' ^ ''date'' | affiche la date de création ou de dernière modification ^ ''nodate'' | cache la date |
| ''showuser'' ^ ''user'' | affiche le créateur ou les contributeurs ^ ''nouser'' | cache l'utilisateur |
| ''showdesc'' ^ ''nodesc'' | cache la description ^ ''desc'' | affiche la description (à partir des metadonnées) |
| ''showcomments'' ^ ''nocomments'' | cache le nombre de commentaires ^ ''comments'' | affiche le nombre de commentaires (si le plugin Discussion est installé) |
| ''showtags'' ^ ''notags'' | cache les tags ^ ''tags'' | affiche les tags (si le [[tag|Plugin Tag]] est installé) |
| ''showfirsthl'' ^ ''firsthl'' | affiche la ligne de titre ^ ''nofirsthl'' | affiche le nom de la page |
| ''rsort/sort'' ^ ''nosort'' | pas de tri des pages ^ ''rsort/sort'' | trie les pages (à l'envers) par ordre alphabétique de nom de page |
==== Exemple ====
...
Ceci affichera la liste des pages avec la ligne de titre et une colonne commentaires (si le plugin Discussion est installé).
===== Tagfilter =====
Lorsque les tags sont indiqués suivant la syntaxe lue par tagfilter, on peut ensuite les trier via un menu déroulant.
{{ https://www.dokuwiki.org/lib/exe/fetch.php?tok=a068ca&media=https%3A%2F%2Fgithub.com%2Flisps%2Ftagfilter%2Fraw%2Fmaster%2Fexample%2Fexample1.png?nolink |}}
==== Écrire des tags analysables par tagfilter ====
Il faut écrire les tags comme s'ils étaient dans des espaces de nom.
{{tag>exemple1:exemple2 exemple3:exemple4}}
Ici, ''exemple1'' et ''exemple3'' serviront à définir un groupe de tag, ''exemple2'' et ''exemple4'' étant les choix possibles.
{{tag>couleur:rouge taille:gros}}
{{tag>couleur:noir taille:petit}}
{{tag>couleur:vert taille:énorme}}
On pourra, avec l'exemple précédent, afficher toutes les pages dont la couleur est "rouge" et la taille "petit", par exemple.
==== Trier les tags ====
{{tagfilter>(namespace)?(tags-filter-groups)&(flags)}}
* (namespace) définit l'espace de nom où les pages seront filtrés
* (tags-filter-groups) définit les différents champs des listes déroulantes ''Syntax (Label)=(RegExpr)=(Standard)'' séparés par ''|''
* (Label) : le nom du champ
* (RegExpr) : une expression régulière permettant de sélectionner les options de la sélection
* (Standard) : Valeur par défaut de la liste déroulante.
* (flags) ajoute des options sur la façon dont les listes s'affichent
* ''multi'' : permet de choisir plusieurs tags
* ''chosen'' J'ai rien compris sur la page en anglais, merci de compléter ce bout de doc
* ''cache='' : temps de mise en cache
* Tous les drapeaux (flag) utilisés par le plugin pagelist
Exemple
{{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&multi&chosen}}
{{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate&multi}}
{{tagfilter>Status=status:.*=status:ready|Version=version:.*&nouser&nodate}}
==== Un exemple complet ====
Tagfilter est entre autre utilisé sur le [[taf>|TAF]] pour le statut des différentes tâches ainsi que les personnes à qui elles sont affectées.
Un tag général "Statut" peut avoir 4 possibilités :
* À_faire
* En_cours
* À_vérifier
* Fini
Le tag général "Pour" est suivi de nom de personnes. Par exemple, sur une tâche, on peut avoir la balise suivante, si elle est "à faire" et attribuée à plusieurs personnes :
{{tag>Statut:À_faire Pour:Zatalyz Pour:Yannk Pour:Personne}}
Si, par la suite, je veux afficher les filtres concernant les tâches "à faire" qui sont attribués à Zatalyz, je peux insérer ce code dans une page :
{{tagfilter>État=statut:.*=status:À_faire|Attribué à=Pour:.*}}
* "État" et "Attribué à" peuvent être remplacé par ce qu'on veut : c'est juste le titre des listes.
* Ce qui est situé derrière les signes ''='' indique quelle sorte de tag je vais filtrer, il faut donc bien utiliser ce qui nous a servi avant. Ici, "statut" et "pour".
* Le symbole ''.*'' est une expression régulière voulant dire "prend tout". Donc, dans la liste déroulante, le choix existera entre tous les "statuts" répertoriés sur le wiki.
Gardez en tête que si vous mettez un tag séparé d'un autre par deux points, il pourra ensuite être analysé par tagfilter.
{{tag>Wiki Syntaxe}}