summaryrefslogtreecommitdiff
path: root/ikiwiki/pagespec.mdwn
blob: 680382caa3dc9bab83224d177c2d12b83723bd22 (plain)

[[!meta robots="noindex, follow"]] Le wiki utilise un concept de spécification de page « PageSpec » afin de choisir un ensemble de pages. Par exemple il est possible de choisir les pages verrouillées, les pages dont vous recevez par courriel les modifications ou des pages à regrouper pour faire blog. Une spécification correspond à un ensemble de pages.

La spécification la plus simple est la liste de pages. Par exemple, l'expression suivante correspond à l'une ou l'autre des trois pages listées :

foo or bar or baz

La plupart du temps, vous voulez trouver les pages qui contiennent une expression particulière dans leur nom. Cela s'obtient en utilisant un motif (« glob pattern »). Le métacaractère « * » correspond à n'importe quelle partie du nom de la page et le métacaractère « ? » à n'importe quelle lettre. Ainsi, l'expression suivante correspond à toutes les pages traitant de musique et à n'importe quelle sous-page [[SubPage]] de la SandBox, mais pas à la SandBox elle-même :

*musique* or SandBox/*

Vous pouvez également préfixer un élément avec « ! » pour ignorer les pages correspondantes. Ainsi pour trouver toutes les pages sauf les pages Discussion et la page SandBox :

* and !SandBox and !*/Discussion

Des contraintes plus élaborées peuvent être ajoutées avec les fonctions suivantes :

  • "glob(motif)" - recherche les pages et fichiers qui correspondent au motif. N'écrire que le motif lui-même est un raccourci pour cette fonction.
  • "page(motif)" - comme glob(), mais ne recherche que des pages, pas des fichiers.
  • "link(page)" - correspond aux pages ayant un lien vers cette page (ou motif)
  • "tagged(étiquette)" - correspond aux pages qui sont marquées ou qui sont liées à l'étiquette donnée (ou des étiquettes correspondant à un motif).
  • "backlink(page)" - correspond seulement aux pages qui sont pointées (lien) par la page donnée.
  • "creation_month(mois)" - correspond aux pages créées durant ce mois
  • "creation_day(jour)" - ou au jour de ce mois
  • "creation_year(année)" - ou année
  • "created_after(page)" - correspond aux fichiers créés après la création de la page donnée.
  • "created_before(page)" - correspond aux fichiers créés avant la création de la page donnée.
  • "internal(motif)" - comme glob(), mais correspond en plus aux pages à usage interne que la fonction glob ne trouve pas en général.
  • "title(motif)", "author(motif)", "authorurl(motif)", "license(motif)", "copyright(motif)", "guid(motif)"
    • renvoient les pages qui possèdent les métadonnées correspondant au motif donné.
  • "user(username)" - teste si une modification est faite par l'identifiant donné. Si openid est activé, on peut aussi l'utiliser. L'identifiant peut contenir des expressions régulières. Par exemple, pour obtenir tous les utilisateurs openid, utilisez l'expression : user(*://*).
  • "admin()" - teste si une modification par un administrateur du wiki est en cours.
  • "ip(adresse)" - teste si une modification par l'IP donnée est en cours.
  • "comment(motif)" - renvoient les commentaires d'une page correspondant au motif donné.
  • "comment_pending(motif)" - renvoient les commentaires non modérés, en attente.
  • "postcomment(motif)" - ne correspond que si des commentaires sont postés vers une page correspondant au motif donné.

Par exemple, pour trouver toutes les pages d'un blog qui ont un lien vers la page traitant de musique et qui ont été créées en 2005 :

blog/* and link(musique) and creation_year(2005)

Veuillez noter l'utilisation du « and » dans l'exemple ci-dessus. Seules les pages dont les trois conditions sont vraies seront trouvées. Utilisez « and » pour ce genre d'expression combinée. « or » est utilisé quand une seule des trois conditions est suffisante. Veuillez noter que « index and SandBox » n'a pas de sens puisqu'aucune page ne peut correspondre aux deux expressions.

On peut créer des expressions plus complexes à l'aide de parenthèses. Par exemple, pour trouver les pages d'un blog possédantl'une ou l'autre étiquette, on utiliserait :

blog/* and (tagged(foo) or tagged(bar))

Veuillez noter que le nom d'une page dans une spécification de page correspond au nom absolu du fichier dans le wiki. Ainsi une expression « foo » utilisée sur une page « a/b » ne correspondra pas à une page nommée « a/foo » ni à une page « a/b/foo ». Pour une correspondance relative au répertoire de la page contenant la spécification, vous pouvez utiliser « ./ ». Par exemple, « ./foo » sur la page « a/b » correspondra à la page « a/foo ».

To indicate the name of the page the PageSpec is used in, you can use a single dot. For example, link(.) matches all the pages linking to the page containing the PageSpec.