2007-02-14 00:10:45 +01:00
|
|
|
To select a set of pages, such as pages that are locked, pages
|
|
|
|
whose commit emails you want subscribe to, or pages to combine into a
|
|
|
|
blog, the wiki uses a PageSpec. This is an expression that matches
|
|
|
|
a set of pages.
|
|
|
|
|
|
|
|
The simplest PageSpec is a simple list of pages. For example, this matches
|
|
|
|
any of the three listed pages:
|
|
|
|
|
|
|
|
foo or bar or baz
|
|
|
|
|
|
|
|
More often you will want to match any pages that have a particular thing in
|
|
|
|
their name. You can do this using a glob pattern. "`*`" stands for any part
|
|
|
|
of a page name, and "`?`" for any single letter of a page name. So this
|
|
|
|
matches all pages about music, and any [[SubPage]]s of the SandBox, but does
|
|
|
|
not match the SandBox itself:
|
|
|
|
|
|
|
|
*music* or SandBox/*
|
|
|
|
|
|
|
|
You can also prefix an item with "`!`" to skip pages that match it. So to
|
|
|
|
match all pages except for Discussion pages and the SandBox:
|
|
|
|
|
|
|
|
* and !SandBox and !*/Discussion
|
|
|
|
|
|
|
|
Some more elaborate limits can be added to what matches using any of these
|
|
|
|
functions:
|
|
|
|
|
2007-05-30 21:54:08 +02:00
|
|
|
* "`link(page)`" - match only pages that link to a given page (or glob)
|
2007-02-14 00:10:45 +01:00
|
|
|
* "`backlink(page)`" - match only pages that a given page links to
|
|
|
|
* "`creation_month(month)`" - match only pages created on the given month
|
|
|
|
* "`creation_day(mday)`" - or day of the month
|
|
|
|
* "`creation_year(year)`" - or year
|
|
|
|
* "`created_after(page)`" - match only pages created after the given page
|
|
|
|
was created
|
|
|
|
* "`created_before(page)`" - match only pages created before the given page
|
|
|
|
was created
|
2007-04-27 02:30:49 +02:00
|
|
|
* "`user(name)`" - only available in page subscription preferences, match
|
|
|
|
only changes made by this user
|
2007-02-14 00:10:45 +01:00
|
|
|
|
|
|
|
For example, to match all pages in a blog that link to the page about music
|
|
|
|
and were written in 2005:
|
|
|
|
|
|
|
|
blog/* and link(music) and creation_year(2005)
|
|
|
|
|
2007-10-10 20:22:50 +02:00
|
|
|
Note the use of "and" in the above example, that means that only pages that
|
|
|
|
match each of the three expressions match the whole. Use "and" when you
|
|
|
|
want to combine expression like that; "or" when it's enough for a page to
|
|
|
|
match one expression. Note that it doesn't make sense to say "index and
|
|
|
|
SandBox", since no page can match both expressions.
|
|
|
|
|
2007-02-14 00:10:45 +01:00
|
|
|
More complex expressions can also be created, by using parentheses for
|
|
|
|
grouping. For example, to match pages in a blog that are tagged with either
|
|
|
|
of two tags, use:
|
|
|
|
|
|
|
|
blog/* and (link(tag/foo) or link(tag/bar))
|
|
|
|
|
|
|
|
Note that page names in PageSpecs are matched against the absolute
|
|
|
|
filenames of the pages in the wiki, so a pagespec "foo" used on page
|
|
|
|
"a/b" will not match a page named "a/foo" or "a/b/foo". To match
|
|
|
|
relative to the directory of the page containing the pagespec, you can
|
|
|
|
use "./". For example, "./foo" on page "a/b" matches page "a/foo".
|
|
|
|
|
|
|
|
## Old syntax
|
|
|
|
|
|
|
|
The old PageSpec syntax was called a "GlobList", and worked differently in
|
|
|
|
two ways:
|
|
|
|
|
|
|
|
1. "and" and "or" were not used; any page matching any item from the list
|
|
|
|
matched.
|
|
|
|
2. If an item was prefixed with "`!`", then no page matching that item
|
|
|
|
matched, even if it matched an earlier list item.
|
|
|
|
|
|
|
|
For example, here is the old way to match all pages except for the SandBox
|
|
|
|
and Discussion pages:
|
|
|
|
|
|
|
|
* !SandBox !*/Discussion
|
|
|
|
|
|
|
|
Using this old syntax is still supported. However, the old syntax is
|
|
|
|
deprecated and will be removed at some point, and using the new syntax is
|
|
|
|
recommended.
|