TiddlyWikiのマクロを書いてみる
タグが便利。
適当にタグを振っておけば、それに関連するものをずらっと引き出せる。
、、、のだけど、一覧にできない。
ということで、マクロを書いてみた。
new tiddlerして、systemConfigタグを振って、内容は以下を。
config.macros.tiddlerList = {}; config.macros.tiddlerList.handler = function(place,macroName,params) { // read parameters // var type = params[0] ? params[0] : ""; var sort = params[1] ? params[1] : "title"; var target = params[2] ? params[2] : "tags"; var list = new Array(); var title = new Array(); var len = new Array(); var i = 0, offset = 3; if(params[offset]) { while(offset < params.length) { list[i] = params[offset++]; title[i] = params[offset++]; len[i++] = params[offset++]; } } else { list[0] = "title"; title[0] = "Title"; len[0] = 0; list[1] = "modified"; title[1] = "Modified"; len[1] = "YYYY-0MM-0DD"; list[2] = "text"; title[2] = "Text"; len[2] = 20; } // make header // var theTable = createTiddlyElement(place, "table"); var theTableHead = createTiddlyElement(theTable, "thead"); theTableHead = createTiddlyElement(theTableHead, "tr"); for(i = 0; i < title.length; i++) { createTiddlyElement(theTableHead, "th", null, null, title[i]); } // make body // var theTableBody = createTiddlyElement(theTable, "tbody"); var results = store.reverseLookup(target, type, true, sort); for(var t = 0; t < results.length; t++) { var theTableRecord = createTiddlyElement(theTableBody, "tr"); if(typeof(results[t]) == "string") { var theTableElement = createTiddlyElement(theTableRecord, "td"); createTiddlyLink(theTableElement,results[t],true); } else { for(i = 0; i < list.length; i++) { if(list[i] == "title") { var theTableElement = createTiddlyElement(theTableRecord, "td"); createTiddlyLink(theTableElement,results[t][list[i]],true); } else if(typeof(results[t][list[i]]) == "object") { createTiddlyElement(theTableRecord,"td",null,null,results[t][list[i]].formatString(len[i])); } else { var theText = results[t][list[i]]; if(len[i] > 0 && theText.length > len[i]) theText = theText.substr(0,len[i]) + "..."; createTiddlyElement(theTableRecord,"td",null,null,theText); } } } } }
「task」というタグを振っているものの一覧なら、<
で表示されます。
他にもパラメータ指定できますが、、、説明も面倒なので、、、。
また、タグも表示できるバージョンも作ったのですが、
今手元にあるのが古いのなので、ここは、古いのにしときます。