Um eine Menge von Seiten auszuwählen (etwa Seiten, die gesperrt werden sollen, deren Einrechungs-Mails man abonnieren will, oder die man zu einem Blog kombinieren will), verwendet das Wiki eine PageSpec. Dies ist ein Ausdruck, der auf bestimmte Seiten passt.
Die einfachste PageSpec ist eine einfache Liste von Seiten. Zum Beispiel passt dies auf jede der drei aufgezählten Seiten:
foo or bar or baz
Häufiger wird es vorkommen, dass man Seiten erfassen will, deren Name etwas
bestimmtes enthält. Man kann dies mit einem Muster tun: "*
" steht für
einen beliebigen Teil eines Seitennamens und "?
" steht für einen
beliebigen Buchstaben eines Seitennamens. Also passt dies alle Seiten über
Musik, und alle Unterseiten des Sandkastens, aber nicht auf den
Sandkasten selbst:
*music* or SandBox/*
Man kann einem Eintrag ein "!
" voranstellen, um die betreffenden Seiten
auszuschließen. Auf diese Weise können alle Seiten außer Diskussionsseiten
und Sandkasten erfasst werden:
* and !SandBox and !*/Discussion
Einige weitergehende Einschränkungen können hinzugefügt werden, indem die folgenden Funktionen verwendet werden:
- "
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)
" - likeglob()
, 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 number - "
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)
" - likeglob()
, 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, useuser(*://*)
- "
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
Zum Beispiel können alle Seiten eines Blogs ausgewählt werden, die einen Link zu einer Seite über Musik enthalten und 2005 geschrieben wurden:
blog/* and link(music) and creation_year(2005)
Beachte die Verwendung von and
im obigen Beispiel: Dies bewirkt, dass nur
die Seiten auf den gesamten Ausdruck passen, die auf alle drei Teilausdrücke
passen. Verwende and
um Ausdrücke so zu kombinieren und or
wenn eine
Seite nur auf einen der Ausdrücke passen soll. Beachte dass es sinnlos ist,
index and SandBox
zu sagen, da keine Seite auf beide Ausdrücke passen
kann.
Es können auch komplexere Ausdrücke erstellt werden, indem Klammern zur Gruppierung verwendet werden. Zum Beispiel passt der folgende Ausdruck auf Blog-Seiten, die mit einem der beiden angegebenen Tags versehen sind:
blog/* and (tagged(foo) or tagged(bar))
Beachte, dass Seitennamen in PageSpecs auf den absoluten Dateinamen der
Seiten im Wiki passen müssen: Die PageSpec foo
auf der Seite a/b
wird
weder auf a/foo
noch auf a/b/foo
passen. Um relative Pfade zum
Verzeichnis der Seite, die die PageSpec enthält, zu verwenden, kannst du
./
verwenden. Zum Beispiel passt ./foo
auf der Seite a/b
auf 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.