summaryrefslogtreecommitdiff
path: root/ikiwiki/pagespec.mdwn
blob: 59a5c84d39fd5f7d9cbecda6d3ea94435c05d1f9 (plain)

[[!meta robots="noindex, follow"]] Til at angive et udvalg af sider, eksempelvis låste sider, sider du vil abonnere på ændringer til, eller sider som skal udgøre en blog, anvender wikien et PageSpec. dette er et udtryk som modsvarer et bestemt udvalg af sider.

Det simpleste PageSpec er simpelthen en opremsning af sider med "or" imellem ("or" betyder "eller" på engelsk). Dette modsvarer eksempelvis enhver af de tre nævnte sider:

foo or bar or baz

Mere hyppigt har du dog brug for at at at modsvare sider med noget tilfælles i deres navne. Dette kan du udtrykke med et "glob-mønster". "*" står for enhver del af sidenavnet, og "?" for ethvert enkeltbogstav i sidenavnet. Så dette modsvarer alle sider om musik, og alle [[UnderSider||SubPage]] til sandkassen, men ikke selve sandkasse-siden:

*musik* or SandBox/*

Du kan også angive "!" foran et emne for at undgå sider som modsvarer det. Så for at modsvare alle sider undtagen diskussionssider og sandkassen:

* and !SandBox and !*/Discussion

Resultaterne kan begrænses mere nuanceret med disse funktioner:

  • "link(side)" - modsvarer kun sider som henviser til en given side (eller glob)
  • "backlink(side)" - modsvarer kun sider som en given side henviser til
  • "creation_month(måned)" - modsvarer kun sider oprettet den givne måned
  • "creation_day(månedsdag)" - eller dag på måneden
  • "creation_year(år)" - eller år
  • "created_after(side)" - modsvarer kun sider oprettet efter den givne side blev oprettet
  • "created_before(side)" - modsvarer kun sider oprettet før den givne side blev oprettet
  • "glob(nogetglob)" - modsvarer sider som modsvarer det givne glob. Blot at skrive glob'et alene er faktisk en genvej til denne funktion.
  • "internal(glob)" - lissom glob(), men modsvarer også internt anvendte sider som glob normalt ikke modsvarer.
  • "title(glob)", "author(glob)", "authorurl(glob)", "license(glob)", "copyright(glob)" - modsvarer sider med de givne metadata, som modsvarer det angivne glob.
  • "user(brugernavn)" - tester hvorvidt en ændring foretages af en bruger med det angivne brugernavn. Hvis openid er aktiveret, kan en openid også bruges her.
  • "admin()" - tester hvorvidt en ændring foretages af en af wiki-administratorerne.
  • "ip(adresse)" - tester hvorvidt en ændring foretages fra den angivne IP-adresse.

For eksempelvis at modsvare alle sider i en blog som henviser til en side om musik og som blev skrevet i 2005:

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

Bemærk brugen af "and" i eksemplet ovenfor ("and" betyder "og" på engelsk), som betyder at kun sider der modsvarer hver af de tre udtryk modsvarer det hele. Brug "and" når du vil kombinere udtryk på den måde; "or" når det er nok at én side modsvarer et udtryk. Bemærk at det ikke giver mening at sige "index and SandBox", da ingen sider kan modsvare begge udtryk.

Mere komplekse udtryk kan dannes ved at gruppere med paranteser. Eksempelvis modsvarer dette sider i en blog som er mærket af med en af to mærkater:

blog/* and (link(tag/foo) or link(tag/bar))

Bemærk at PageSpecs for sidenavne modsvares som de absolutte filnavne for siderne i wikien, så et pagespec "foo" brugt på siden "a/b" vil ikke modsvare siderne navngivet "a/foo" eller "a/b/foo". For at modsvare relativt til samme mappe som siden der indeholder pagespec'et kan du bruge "./". Eksempelvis modsvarer "./foo" på siden "a/b" siden "a/foo".

Gammel syntaks

Den gamle PageSpec-syntaks blev kaldt en "GlobList", og fungerede anderledes på to måder:

  1. "and" og "or" blev ikke brugt; enhver side modsvarede ethvert emne fra listen.
  2. Hvis et emne havde "!" foran, modsvarede ingen side dette emne, heller ikke hvis det modsvarede et tidligere emne.

Her er et eksempel på den gamle måde at modsvare alle sider undtagen sandkassen og diskussionssider:

* !SandBox !*/Discussion

Brug af denne gamle syntaks er stadigt understøttet. Den er dog på vej ud, så det anbefales at bruge den nye syntaks.