&title &&pages
*概要
&pages([[ページ名]],
show=表示形式,
limit=件数,
each=件数,
tags=タグ,
sort=順序,
reverse,
type=種別,
children,
withsystem,
fields=項目名1 項目名2 ...,
header=項目名1 項目名2 ...,
footer=項目名1 項目名2 ...,
showhidden,
表示条件...,
表示順序...);
指定されたページの子ページを一覧表示します.条件や表示方法を詳細に設定できます.
また子ページの内容から項目を抜き出すこともできます.
*パラメータ
:{&[&[ページ名&]&]|指定したページの子ページを一覧表示します.省略した場合は現在のページの子ページが一覧表示されます.
すべてのページを対象としたい場合は&[&[&]&]と書きます.}
:{show=表示形式|表示する形式を指定します.以下の指定ができます.
:show=list|箇条書きでページを列挙します.デフォルトで指定されています.
:show=table|表でページ一覧を表示します.fieldsパラメータで表示したい項目を指定します.
:show=contents|ページ名だけでなくページの内容も表示します.
}
:limit=件数|指定した件数のみ表示します.
:each=件数|一度に指定した件数だけ表示します.超えた分は次のページに表示されるようになります.
:{tags=タグ|指定したタグを持つページを表示します.
tags=タグ1 タグ2 ...のように複数書くといずれか(or)の条件になります.
tags=タグ1, tags=タグ2, tags=..のように書くとすべてのタグを持つ(and)条件になります.}
:{sort=順序|sort=mtimeの場合更新日時の順に, sort=btimeの場合作成日時の順に,sort=sizeの場合ページの容量の順に並び替えをします.
指定がない場合はページ名の順に表示されます.}
:reverse|逆順に表示します.
:type=種別|指定した種別のみ表示します.type=wikiやtype=fileのように指定します.
:children|直接の子ページのみを表示します.すなわち孫ページは表示されません.
:withsystem|マニュアルページ等のシステムで使用するページも表示します.
:{fields=項目名1 項目名2 ...|表示する項目名を空白で区切って指定します.項目名には以下の指定ができます.
:pagename|ページ名
:basename|省略されたページ名
:title|ページのタイトル(show=contents時のみ).タイトルがない場合はbasenameとみなされます.
:tags|ページのタグ
:mtime|ページの更新日時
:mdate|ページの更新日
:btime|ページの作成日時
:bdate|ページの作成日
:editor|最終更新者
:creator|作成者
:edit|編集ボタン
:delete|削除ボタン
:テンプレートで抽出した項目名|テンプレート(後述)で抽出した項目名
:_ (アンダーバーのみ)|テンプレートで抽出した項目のうち指定していない残りの項目
以下のように項目名を&[&[と&]&]で囲むことによってその項目をリンクにすることができます.
[[項目名]]
以下のように書くことで指定した項目の説明を指定できます.説明は表の列の見出し等に使用されます.
項目名@説明
}
:{header=項目名1 項目名2 ...|show=contentsを指定した際に,各ページの内容の前に表示する項目を指定します.
指定方法はfieldsパラメータと同様です.}
:{footer=項目名1 項目名2 ...|show=contentsを指定した際に,各ページの内容の後に表示する項目を指定します.
指定方法はfieldsパラメータと同様です.}
:{showhidden|非表示のページ(後述)も一覧に表示するためのリンクを表示します.
デフォルトで指定されています.無効にする場合は!showhiddenと指定します.}
:{項目名:項目の値&|背景色|
一覧表示の際に指定した項目が指定した項目の値のときに,指定した背景色で表示します(show=table時のみ有効).
背景色は[[&&color:../color]]で使用できるものと同等です.
背景色の代わりにnoneと指定すると,その項目を非表示にできます.
このパラメータは複数指定することができますが,先に書いた順に比較がされ,
最初に一致したものを背景色として使用します.
&:の代わりに:>や:<と書くと一致ではなく大小の比較を条件にできます.}
:{項目名;項目の値&|背景色|上記と同様ですが,数値として比較を行います.}
:{項目名#表示順序|
一覧表示を指定した項目で並び替えます.表示順序には昇順の場合はasc,降順の場合はdescと書きます.
asc, descの他にも半角/(スラッシュ)で区切った項目の値を列挙することで列挙の順に並び替えます.
複数指定された場合は先に書いたものから優先して並び替えを行います.
}
*対象
対象は基本的には不要ですが,テンプレートを書くこともできます.
テンプレートを書くことで一覧表示の際に表示したい項目を子ページの内容から取ってくることができます.
子ページが同じ(または似たような)形式で書かれている場合に便利です.
テンプレートには基本的には子ページの内容(種別wikiの場合はソースの内容)をそのまま書きます.
テンプレートの中でそれぞれの子ページで内容が異なっている部分を,
@項目名@
のように好きな項目名を付け,記号@で囲んで書くと,それぞれの子ページの該当部分を項目として抽出し,
fields, header, footerパラメータで使用できるようになります.
テンプレート書き方は[[&&newpage:../newpage]]や[[&&writepage:../writepage]]のものと同様です.
これらと&&pagesを組み合わせれば,好きな形式のページを作成,一覧表示ができます.
テンプレートに&$LAST&$と指定すると直前に使用したテンプレートを使用することができます.
*例
&wikiexample{
*最近の更新3件
&pages([[]], sort=mtime, limit=3);
*兄弟ページ一覧(容量順)
&pages([[..]], show=table, fields=[[basename]] size@容量 type, sort=size, withsystem, limit=5);
}
*(optional)高度な例
//バグトラック風テンプレート
//(実際にSandBox等のどこかのページにコピペして使用してみると楽に理解できるはずです)
&pages(
状態:保留|yellow,
状態:着手|#aaf,
状態:完了|none, //状態が完了のタスクは表示しない,
状態#提案/保留/着手/完了, //状態が提案, 保留, 着手, 完了の順番で並び替え,
優先度#高/中/低, //状態が同じ場合は優先度で並び替え,
更新日時#desc, //さらに優先度が同じ場合は更新日時で並び替え,
) {
&title @タイトル=&insert(once) ここにタイトル@
:カテゴリ|&select(`本体機能/プラグイン/デザイン`)@カテゴリ@
:状態 |&select(`提案/保留/着手/完了`)@状態@
:優先度 |&select(`高/中/低`)@優先度@
:期限 |@期限=&insert(once)@
:投稿者 |@投稿者=$user$@
}