更新順リストの表示数を制限して高速化するマクロ
TiddlyWikiではtiddlerを更新するときに、サイドバーにあるリストなども自動的に更新します。tiddlerが増えてくるとこの処理が結構重くなってくるので、標準の更新順(Timeline)リストを置き換え、表示するのを最近7日間の更新に限定することで、少しだけ表示を高速化してみました。そのほかにもスクロール量を減らして画面をすっきりさせる効果もあるかと思います。
更新順リストはtimelineマクロとして表現されています。今回作成したrecent_timelineマクロは、TiddlyWiki 1.2.32のtimelineマクロの一部を書き換えたもので、TiddlyWiki 1.2.32、Firefox 1.0.7で動作確認しました。以下ではその導入方法を記述します。
インストール方法
マクロを記述する
適当な名前のtiddlerを作成し、以下のコードを記述して、タグに"systemConfig"を追加して下さい。一度保存して、ブラウザで再読込を行うと、コードが呼び出され、マクロが登録されます。
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; for ( t = tiddlers.length - 1; t >= 0; t-- ) { var tiddler = tiddlers[t]; var theDay = tiddler.modified.convertToYYYYMMDDHHMM().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)); } } }
サイドバーのタブを書き換える
"TabTimeline"というタイトルのtiddlerを作成して、以下の内容を記述して下さい。この「7」というのは、「最近7日間の更新」ということで、ここを変えることで表示する日数を変えることができます。省略すると7日間になります。
<<recent_timeline 7>>
以上で動作するはずです。