2009-05-11 TiddlyWiki のプラグイン
tiddler を自由自在にリストアップするプラグイン - TiddlerListMacro
TiddlyWiki で tiddler をリストアップする場合、とりあえず組み込みの list マクロで可能です。
| 一覧の種類 | list マクロの記述 | サイドバーの該当タブ |
|---|---|---|
| アルファベット順の記事一覧 | <<list>> または <<list all>> | 「All」(全て)タブ |
| 存在しない記事一覧 | <<list missing>> | 「More」(その他)-「Missing」(未定義)タブ |
| リンクされていない記事一覧 | <<list orphans>> | 「More」(その他)-「Orphans」(未参照)タブ |
| システム設定用記事一覧 | <<list shadowed>> | 「More」(その他)-「Shadowed」(システム)タブ |
しかし、これではサイドバーのタブで表示しているものと同じなので、もっと条件に応じて絞り込みたくなります。絞込みは組み込みの list マクロでも filter 機能によってある程度実現できますが、このエントリでは、より高度な tiddler のリストアップ機能を提供するプラグイン「TiddlerListMacro」を紹介します。
プラグイン情報
| インポートURL | http://jackparke.googlepages.com/jtw.html |
|---|---|
| プラグイン名 | TiddlerListMacro |
機能概要
「TiddlerListMacro」は、豊富な検索条件の指定と検索結果の表示の柔軟なカスタマイズという特徴を持ったプラグインです。
- 豊富な検索条件の指定
- 特定の文字列をタイトルやテキストに含む tiddler
- 特定のタグが指定されていたり、逆に特定のタグが指定されていない tiddler
- 検索結果の表示の柔軟なカスタマイズ
パラメータ
| パラメータ | 形式 | 意味 | 例 |
|---|---|---|---|
| top | 数字 | 表示する tiddler 数 | "10" |
| tags | 文字列 | リストアップする tiddler のタグ (AND 結合)。- で始まる場合は除外 | "ToDo,Urgent,-Done" |
| title | 正規表現 | リストアップする tiddler のタイトルを絞り込む正規表現 | "^[Pp]" |
| text | 正規表現 | リストアップする tiddler のテキストを絞り込む正規表現 | "Searchtext" |
| search | 正規表現 | リストアップする tiddler のタイトルまたはテキストを絞り込む正規表現 | "Problem" |
| filter | JavaScript | フィルタ条件 | "tiddler.title.length<4 && tiddler.tags.contains('Idea')" |
| format | 文字列 (固定) | リストのHTMLフォーマット。list (ul, default), nlist (ol), span, stack (div), csv, table. | "list" |
| order | 文字列 | tiddler のソート順序。- は降順, + は昇順 | "-created" |
| group | JavaScript | グルーピングするフィールド | tiddler.title.substr(0,1) |
| customParameter | JavaScript | itemTemplateパラメータで使われるカスタムパラメータ | tiddler.text.match(/Version: (.*)/)[1] |
| header | 文字列 | ヘッダー文字列 | "Tiddlers beginning with T" |
| footer | 文字列 | フッター文字列 | "End of list" |
| itemTemplate | Wikiテンプレート | %プレースホルダによるWikiテキスト | "%link\n%abstract\n%modified" |
| groupTemplate | Wikiテンプレート | グループ毎の始まりに表示する%プレースホルダによるWikiテキスト | "!!%group" |
| groupFooterTemplate | Wikiテンプレート | グループ毎の終わりに表示する%プレースホルダによるWikiテキスト | "----\n" |
| dateFormat | 文字列 | 表示する日付のフォーマット | YYYY-MM-DD |
テンプレート プレースホルダ
itemTemplate パラメータに指定できるプレースホルダ
| プレースホルダ | 意味 |
|---|---|
| %item | リストアップする tiddler の連番 |
| %link | tiddler へのリンク |
| %title | tiddler 名 |
| %nolink | tiddler名(リンクなし) |
| %abstract | tiddler のテキストの先頭 300 文字 |
| %text | tiddler の全テキスト |
| %tags | タグ(空白区切り) |
| %created | 作成日 |
| %modified | 更新日 |
| %modifier | 最後の更新者 |
| %group | グループ名 |
| %custom | customParameterの評価結果 |
| %count | リストアップされた tiddler 数 (footer のみ有効) |
使い方
タグを指定する
絞り込みに使うタグは tags パラメータで指定します。
除外したいタグの前には - を付けます。文字列複数のタグを指定する場合は、カンマ区切りで指定します。
例:Plugin タグがある tiddler をリストアップする。
<<tiddlerList tags:Plugin>>
例:Plugin タグがあり、Template タグがない tiddler をリストアップする。
<<tiddlerList tags:"Plugin,-Template">>
表示数や順序を指定する
表示数は top パラメータで、順序は order パラメータで指定します。
order パラメータには、タイトル(title)や作成日(created)、更新日(modified)が指定できます。
例:tags パラメータによってリストアップした最新作成日の tiddler のみ表示する。
<<tiddlerList tags:"Plugin,-Template" top:1 order:"-created">>
タイトルやテキストの条件を指定する
指定された正規表現にタイトル(title)、テキスト(text)、そのどちらか(search)が一致する tiddler をリストアップします。
例:タイトルまたはテキストに Plugin を含む tiddler をリストアップする。
<<tiddlerList search:"Plugin">>
例:タイトルが T で始まる tiddler をリストアップする。
<<tiddlerList title:"^T">>
フィルタで条件を指定する
より複雑な条件は filter パラメータで指定します。
例:現在の tiddler のタイトルがタグに指定されている tiddler をリストアップする。
<<tiddlerList filter:"tiddler.tags.contains(currentTiddler.title)">>
テーブルで表示する
tiddler の一覧表示のフォーマットは format パラメータで指定します。
format パラメータには list (ul), nlist (ol), span, stack (div), csv, table が指定できます。デフォルトは list です。
例:タイトルが T で始まる tiddler をテーブルで表示する。
<<tiddlerList title:"^T" format:"table" header:"Tiddlers beginning with T" footer:"%count items listed">>
グループ毎に表示する
グループ毎の表示は group パラメータで指定します。
例:日記を年毎にグループ分けして表示する。
(タグに journal が含まれていることと、タイトルが YYYY 形式で始まっていることが前提)
<<tiddlerList group:"tiddler.title.substr(0,4)" groupTemplate:"''%group''\n">>
tiddler の表示をカスタマイズする
リストアップされた tiddler の表示のフォーマットは itemTemplate パラメータで指定します。
例:tiddler のリンクに続けてその作成日を表示する。
<<tiddlerList itemTemplate:"* %link (%created)\n">>
- 15 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=tiddlywiki+stylesheet&lr=lang_ja
- 4 http://www.google.co.jp/search?q=TiddlyWiki&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 4 http://www.google.com/search?hl=ja&lr=lang_ja&ie=SJIS&oe=SJIS&q=TiddlyWiki
- 3 http://www.google.co.jp/search?client=firefox-a&rls=org.mozilla:ja:official&channel=s&hl=ja&q=tiddlywiki+tiddler+複数テンプレート&lr=&btnG=Google+検索
- 3 http://www.google.co.jp/search?q=TiddlySnip&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls={moz:distributionID}:{moz:locale}:{moz:official}&client=firefox
- 3 http://www.google.com/reader/view/?tab=cy
- 3 http://www.google.com/search?hl=ja&lr=&ie=UTF-8&oe=UTF-8&num=50&q=Tiddlywiki
- 2 http://amigo.mail.goo.ne.jp/goomail/index.ghtml?view=mail_read&msg_id=1242119590.73256.210&sort=date&order=desc&fid=1
- 2 http://d.hatena.ne.jp/aramakie
- 2 http://d.hatena.ne.jp/notify-NotifyUser1?aHR0cDovL2QuaGF0ZW5hLm5lLmpwL2FyYW1ha2llLw==