[[!meta robots="noindex, follow"]]
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|SubPage]] 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)`" - 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
  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)`" - 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. Glob patterns can be used in the address. For
  example, `ip(127.0.0.*)`
* "`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.

Wenn nur eine Ebene von Unterseiten eingebettet werden soll, kann folgendes
verwendet werden:

    blog/* and !blog/*/*

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`.

Ein einfacher Punkt bezeichnet die Seite, auf der die PageSpec verwendet
wird. Zum Beispiel passt `link(.)` auf alle Seiten, die auf die Seite
verlinken, die die PageSpec enthält.
