summaryrefslogtreecommitdiff
path: root/ikiwiki/pagespec.mdwn
blob: cc7f1424ea12d9c9a2198188ba8182d905c760ec (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 passer for et bestemt udvalg af sider.

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

foo or bar or baz

Mere hyppigt har du dog brug for at passe for sider med noget bestemt i deres navne. Dette kan du udtrykke med et "glob-mønster". "*" står for enhver del af et sidenavn, og "?" for ethvert enkeltbogstav i et sidenavn. Så dette passer for 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 passer for det. Så for at passe for alle sider undtagen diskussionssider og sandkassen:

* and !SandBox and !*/Discussion

Resultaterne kan begrænses mere nuanceret med disse funktioner:

  • "glob(someglob)" - matches pages and other files that match the given glob. Just writing the glob by itself is actually a shorthand for this function.
  • "page(glob)" - like glob(), but only matches pages, not other files
  • "link(page)" - matches only pages that link to a given page (or glob)
  • "tagged(tag)" - matches pages that are tagged or link to the given tag (or tags matched by a glob)
  • "backlink(page)" - matches only pages that a given page links to
  • "creation_month(month)" - matches only files created on the given month
  • "creation_day(mday)" - or day of the month
  • "creation_year(year)" - or year
  • "created_after(page)" - matches only files created after the given page was created
  • "created_before(page)" - matches only files created before the given page was created
  • "internal(glob)" - like glob(), but matches even internal-use pages that globs do not usually match.
  • "title(glob)", "author(glob)", "authorurl(glob)", "license(glob)", "copyright(glob)", "guid(glob)"
    • match pages that have the given metadata, matching the specified glob.
  • "user(username)" - tests whether a modification is being made by a user with the specified username. If openid is enabled, an openid can also be put here. Glob patterns can be used in the username. For example, to match all openid users, use user(*://*)
  • "admin()" - tests whether a modification is being made by one of the wiki admins.
  • "ip(address)" - tests whether a modification is being made from the specified IP address.
  • "comment(glob)" - matches comments to a page matching the glob.
  • "comment_pending(glob)" - matches unmoderated, pending comments.
  • "postcomment(glob)" - matches only when comments are being posted to a page matching the specified glob

For eksempelvis at passe for 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 passer for hvert af de tre udtryk passer for det hele. Brug "and" når du vil kombinere udtryk på den måde; "or" når det er nok for en side at den passer for ét udtryk. Bemærk at det ikke giver mening at sige "index and SandBox", da ingen sider kan passe for begge udtryk.

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

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

Bemærk at PageSpecs for sidenavne afstemmes som de absolutte filnavne for siderne i wikien, så et pagespec "foo" brugt på siden "a/b" vil ikke passe for siderne navngivet "a/foo" eller "a/b/foo". For at afstemme relativt til samme mappe som siden der indeholder pagespec'et kan du bruge "./". Eksempelvis passer "./foo" på siden "a/b" for siden "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.