tiddler を自由自在にリストアップするプラグイン - TiddlerListMacro

TiddlyWiki で tiddler をリストアップする場合、とりあえず組み込みの list マクロで可能です。

一覧の種類 list マクロの記述 サイドバーの該当タブ
アルファベット順の記事一覧 <> または <> 「All」(全て)タブ
存在しない記事一覧 <> 「More」(その他)-「Missing」(未定義)タブ
リンクされていない記事一覧 <> 「More」(その他)-「Orphans」(未参照)タブ
システム設定用記事一覧 <> 「More」(その他)-「Shadowed」(システム)タブ

しかし、これではサイドバーのタブで表示しているものと同じなので、もっと条件に応じて絞り込みたくなります。絞込みは組み込みの list マクロでも filter 機能によってある程度実現できますが、このエントリでは、より高度な tiddler のリストアップ機能を提供するプラグイン「TiddlerListMacro」を紹介します。

プラグイン情報

インポートURL http://jackparke.googlepages.com/jtw.html
プラグイン TiddlerListMacro

機能概要

「TiddlerListMacro」は、豊富な検索条件の指定と検索結果の表示の柔軟なカスタマイズという特徴を持ったプラグインです。

  • 豊富な検索条件の指定
    • 特定の文字列をタイトルやテキストに含む tiddler
    • 特定のタグが指定されていたり、逆に特定のタグが指定されていない 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">>