summaryrefslogtreecommitdiff
path: root/ikiwiki/pagespec.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'ikiwiki/pagespec.mdwn')
-rw-r--r--ikiwiki/pagespec.mdwn88
1 files changed, 88 insertions, 0 deletions
diff --git a/ikiwiki/pagespec.mdwn b/ikiwiki/pagespec.mdwn
new file mode 100644
index 0000000..303f073
--- /dev/null
+++ b/ikiwiki/pagespec.mdwn
@@ -0,0 +1,88 @@
+[[!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
+* "`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
+
+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.