更新順表示で表示数を制限するマクロ(TiddlyWiki 2.0.11での話)
TiddlyWiki 2.0.11 リリースで timeline マクロが変わったらしいので、更新順リストの表示数を制限して高速化するマクロ - unisonDiaryをどうしようか考えていたら、最近のバージョンではわざわざマクロ作らなくても TabTimeLine tiddlerの内容を
<<timeline "modified" 7>>
とすれば、過去7つ分の更新情報が表示されることに気づきました。どうも気がつかない間に表示数を制限する機能が実装されていたようです。以前紹介した自作のマクロの方は7日分の更新情報表示ということで、内蔵マクロとは少し機能は異なりますが、「高速化」という目的のためであればどっちでもいいような気がします。
ちなみに、その自作のマクロは 2.0.11 での日付周りの仕様変更のために、正しく動作しなくなりました。2.0.11 対応版を以下に掲載します。
config.macros.recent_timeline = { defaultDays:7 }; config.macros.recent_timeline.handler = function(place,macroName,params) { var daysMax = params[0] ? params[0] : this.defaultDays; var tiddlers = store.reverseLookup( "tags","excludeLists",false,"modified" ); var lastDay = ""; var daysNum = 0; var t; for ( t = tiddlers.length - 1; t >= 0; t-- ) { var tiddler = tiddlers[t]; var theDay = tiddler.modified.convertToLocalYYYYMMDDHHMM().substr(0,8); if ( daysNum < daysMax ) { if ( theDay != lastDay ) { var theDateList = document.createElement("ul"); place.appendChild(theDateList); createTiddlyElement(theDateList, "li", null, "listTitle", tiddler.modified.formatString(config.macros.timeline.dateFormat)); lastDay = theDay; daysNum++; } var theDateListItem = createTiddlyElement(theDateList,"li",null,"listLink",null); theDateListItem.appendChild(createTiddlyLink(place,tiddler.title,true)); } else { break; } } }
一応、動作するようにはしましたが、デフォルトで表示数を制限する機能が組み込まれた以上、これからはこのマクロを使わなくてもいいかなと思ってます。