Logo Khaganat
Traductions de cette page?:

Ceci est une ancienne révision du document !


Index et recherche de pages

Traduction à terminer

La gestion des index et recherche de pages se fait grâce au plugin pagequery : il s'agit d'un outil de navigation polyvalent pour créer des pages d'index, faire des recherches ou des filtres sur du texte ou des noms de page, et afficher les résultats en colonnes, regroupés, triés. Il propose même des info-bulles pour prévisualiser le contenu.

Comme pagequery a fait un usage éhonté des excellentes fonctions disponibles dans DokuWiki (en particulier search), il n'y a pas de nouvelle syntaxe à apprendre. Mais il apporte un petit quelque chose dans l'arrangement des puissantes options de tri et de regroupement.

Quelques utilisations possibles :

  • Faire la liste de toutes les pages de votre wiki dans un bel index alphabétique, ou par année/mois
  • Faire une liste des pages récemment modifiées
  • Faire la liste des pages qui discutent d'un sujet particulier (grâce à la recherche dans le texte)
  • Faire la liste des pages créées par un utilisateur donné

Syntaxe et utilisation

Insérer la mention pageguery dans le texte de la page là où vous voulez que la page apparaisse. Vous pouvez avoir différentes listes pagequery dans la même page1).

Il peut s'agir de la version simple :

{{pagequery>}}

Ou, plus compliqué :

{{pagequery>[query];fulltext;sort=key:direction,key2:direction;group;limit=10;cols=2;spelldate;proper}}

Ou alors à l'ancienne, et vraiment trop compliqué… :

{{pagequery>[query];fulltext;sort=key:direction,key2:direction;group;limit=100;cols=6;spelldate;proper;snippet=5;border=inside;hidestart;case;natsort}}

Remarque : la syntaxe peut être affichée sur plusieurs lignes pour améliorer la lisibilité. Les espaces sont tout simplement ignorés. Par exemple :

{{pagequery>query;
  fulltext;
  sort=key:direction,key2:direction;
  group;
  limit=100;
  cols=6;
  spelldate;
  proper;
  border=inside;
  hidestart;
  case;
  natsort
}}

La règle générale est que les options sont séparées par des points-virgules (;), les valeurs (par exemple dans un tri ou un filtre) sont séparées par une virgule (,), et les valeurs multi-parties par deux points (:).

Tableau de la syntaxe complexe

Option Description Exemples de syntaxe Valeur par défaut
query Place l'expression de recherche immédiatement après le >, par exemple {{ pagequery>help;... }}
Par défaut, il cherche seulement dans les noms de pages (ou les identifiants). Pour faire une recherche dans le contenu des pages du wiki, utiliser l'option fulltext ci-dessous
*
help
test
toutes les pages
Vous pouvez utiliser des expressions régulières2) dans les recherches de nom de page. Pour voir toutes les pages, utiliser * ou .* , ou laissez le simplement à blanc.3) ^p.+
[mots commençants par p]
Note : * en lui-même est juste une commodité. Dans n'importe quelle autre regex, il vous faudra suivre les règles de la regex.
namespaces La recherche sur les noms de page accepte les mêmes options d'espaces de noms que la recherche dans le texte, c'est-à-dire : ^ ou -ns: signifie exclure, @ ou ns: signifie inclure ^:work @:home:games * rien
Les espaces de noms relatifs (.) et parent (..) sont aussi compatibles4)
Note : si vous utilisez l'option namespace, il vous faudra également fournir une requête de nom de page (au minimum *), parce que, par exemple, la fonction regex ne peut pas distinguer ^work (espace de nom) et ^work (noms de pages commençant par “work”)
fulltext Utilise une recherche sur tout le texte, ce qui autorise toutes les options de recherche DokuWiki. Cette option vous permet de faire tout un tas de recherches compliquées : reportez vous à la page :search pour plus de détails fulltext
fullregex Vous permet de faire une recherche sur l'identifiant complet de la page (c'est-à-dire y compris son espace de nom) à l'aide d'expressions régulières. C'est un mode brut pour utilisateurs avancés… mais ça ne fonctionne que sur les identifiants de page. fullregex
sort Clés à utiliser pour le tri, par ordre d'application dans le tri. Chaque clé peut être suivie par un ordre de tri préféré, sort=key:direction,key2:direction sort=a:asc,name:asc
sort=cyear,cmonth,name
rien
Clés de tri :
a, ab, abc Par 1ère lettre, 2 premières lettres ou 3 premières lettres sort=a
sort=ab
name, pagename Par nom de page5) [non groupé] sort=name
title, heading Par titre de page (ou première ligne d'en-tête) [non groupé] sort=title:desc
id, pageid Par identifiant complet de page, y compris l'espace de nom [non groupé] sort=id:asc
ns Par espace de nom (sans nom de page) sort=ns
mdate, cdate Par date de création/modification (complète) [non groupé]sort=mdate
m[year][month][day]Par [année][mois][jour] de [m]odification; toutes les combinaisons sont acceptées sort=myearmonthday
sort=mmonthday
c[year][month][day]Par [année][mois][jour] de [c]réation; toutes les combinaisons sont acceptées sort=cyearmonthday
creator Par auteur de page sort=creator
contributor Par contributeur(s) à la page. Note : seul le prénom affecte l'ordre de tri6)sort=contributor:asc
sort=contrib
links Par une liste des liens présents dans cette page (essentiellement pour le filtrage). Les noms (ou identifiants) de toutes les pages liées sont jointes dans une chaîne séparée par des espaces, qui peut être analysée par regex dans l'option filter ci-dessous.
backlinks Par une liste des rétro-liens pointant sur cette, ou ces, page(s). A utiliser comme link ci-dessus.
Sens de tri :
asc, a Ordre ascendant, c'est-à-dire a → z, 1 → 10 sort=name:asc asc
desc, d Ordre décroissant, c'est-à-dire z → a, 10 → 1 sort=mdate:desc
Note : par défaut, les dates sont triées par ordre décroissant (les dates les plus récentes en haut), et les textes par ordre ascendant (A - Z)
filter Filtre la liste de résultats par n'importe laquelle des clés de tris ci-dessus, à l'aide d'expressions régulière pour inclure ou exclure certaines pages
include La syntaxe est identique à celle du sort ci-dessus : filter=<key>:<expression>,<key2>:<expression2> filter=creator:harry
filter=contrib:.*(harry|sally).*
exclude Pour exclure des pages des résultats, mettre un ^ ou un ! devant la clé : filter=!<key>:<expression> filter=!creator:harry
dates filter= l'option reconnait désormais les dates réelles et vous permet de les filtrer correctement. Par exemple : filter=cdate:3 years ago->3 months ago
Une date de début et/ou de fin peut être donnée, séparée par le symbole flèche ->. Ceci utilise la fonction PHP strtotime qui accepte une grande variété de formats, se reporter aux fonctions php de date pour plus d'information.
Depuis une date donnée jusqu'à maintenant filter=mdate:24.1.2009->
Seulement jusqu'à une date donnée filter=mdate:->24.12.2012
Seulement les trois derniers mois filter=mdate:3 months ago->
group Affiche un en-tête de groupe pour chaque changement dans la clé de tri.7) group non groupé
Par exemple, si vous avez trié par [myear] (c'est-à-dire année de modification) alors l'entête du groupe sera
inséré à chaque fois que l'année change (2010…2009…2008…etc…)
Les espaces de noms sont groupés par tous les sous-espaces de noms jusqu'à la limite maxns8)
Note : les clés qui sont toutes uniques ne peuvent pas être groupées (c'est-à-dire les noms, les identifiants de page, la date de modification (mdate) ou de création(cdate) )
limit Nombre maximum de résultats à ramener. 0 = ramener tout (défaut) limit=10 tout
spelldate
1)
Ça fonctionne très bien avec le plugin columns
2)
on dit aussi : regex ; faites une recherche Google pour de l'aide sur les expressions régulières si ça vous intéresse d'utiliser cette puissante fonctionnalité
3)
tant que vous ne filtrez pas par espaces de nom : voir la note suivante !
4)
utilisez la syntaxe présentée dans la page des espaces de nom.
5)
sans espace de nom
6)
pas si utile que ça, mais pratique à utiliser dans l'option filter ci-dessous
7)
Pour une explication plus détailler des regroupements, voir la note après ce tableau
8)
voir ci-dessous
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/wikitools/syntaxe/pagequery.1436980878.txt.gz · Dernière modification : (modification externe)

Licences Mentions légales Accueil du site Contact Inclusion