Pro výběr množiny stránek (jako jsou například zamknuté stránky, stránky, u nichž chcete dostávat maily se změnami nebo třeba stránky, které chcete zkombinovat do blogu) používá wiki něco s názvem PageSpec. PageSpec je výraz, který se shoduje s množinou stránek.
Nejjednodušší PageSpec je jednoduchý seznam stránek. Například následující se shoduje s libovolnou ze tří zmíněných stránek:
stránka1 or stránka2 or stránka3
Mnohem častěji budete chtít vybrat stránky, které obsahují ve svém názvu
konkrétní řetězec. K tomu můžete použít tzv. vzor, který může obsahovat
zástupné znaky. „*
“ znamená libovolnou část názvu stránky, „?
“ zastupuje
jedno písmeno názvu stránky. Následující příklad vybere všechny stránky o
hudbě a všechny podstránky pískoviště (ve wiki
uložené jako SandBox), ale ne pískoviště samotné:
*music* or SandBox/*
Výraz můžete uvodit znakem „!
“ a negovat tak jeho význam, tj. přeskočit
dané stránky. Například chcete-li vybrat všechny stránky ve wiki kromě
diskuzí (uložené jako Discussion) a pískoviště (SandBox), použijte:
* and !SandBox and !*/Discussion
S komplikovanějšími výběry mohou pomoci následující funkce:
- "
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
Například pro výběr všech stránek v blogu, které se odkazují na stránku o hudbě a byly napsány v roce 2005:
blog/* and link(music) and creation_year(2005)
Povšimněte si použití „and“ v předchozím příkladu. Znamená to, že se vyberou pouze stránky, které splňují všechny tři podmínky zároveň. Pokud by stačilo, aby byla platná alespoň jedna ze zadaných podmínek, použijte „or“. Poznámka: výraz „index and SandBox“ nikdy nevrátí žádnou stránku, protože není možné, aby nějaká stránka splňovala obě podmínky zároveň.
Při vytváření komplexnějších výrazů můžete použít závorky. Například pro výběr stránek v blogu, které mají alespoň jeden ze dvou štítků, můžete použít:
blog/* and (tagged(štítek1) or tagged(štítek2))
Jména stránek v PageSpec se porovnávají vůči absolutním jménům souborů wiki stránek, takže PageSpec „něco“ použité na stránce „a/b“ nenajde „a/něco“ ani „a/b/něco“. Chcete-li vyhledávat relativně k adresáři stránky, která obsahuje PageSpec, můžete použít „./“. To znamená, že „./něco“ na stránce „a/b“ najde stránku „a/něco“.
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.