ランダムなTiddlerへリンクするボタンを作るマクロ

Wikipediaの「おまかせ表示」のように、ランダムなtiddlerを表示させるボタン、randomlinkマクロを作ってみました。tagを指定することもできます。

マクロはTiddlyWiki 1.2.32、Firefox 1.0.7で動作確認しました。以下で導入方法を説明します。*1

インストール方法

適当な名前のtiddlerを作成し、以下のコードを記述して、タグに"systemConfig"を追加して下さい。一度保存して、ブラウザで再読込を行うと、コードが呼び出され、マクロが登録されます。

// Show button link to a Random tiddler
config.macros.randomlink= {
  label: "Random Tiddler",
  prompt: "Show random tiddler"
};

config.macros.randomlink.handler = function( place, macroName, params )
{
  var randomlinkHandler = function( e )
    {
      if (!e) var e = window.event;
      var la = [];
      if ( !params[0] ) {
        // Set associative array to linear array
        for ( var i in store.tiddlers ) {
          la.push( store.tiddlers[i] );
        }
      } else {
        la = store.getTaggedTiddlers( params[0] );
      }
      
      var rndnum = Math.floor( Math.random() * la.length );
      displayTiddler( resolveTarget(e), la[rndnum].title,  0, null, null, true, false );
    }
  createTiddlyButton( place,this.label,this.prompt,randomlinkHandler );
}

使い方

適当なtiddlerに、以下の記述を入れて下さい。tagを指定しない場合はtagを省略できます。

<<randomlink tag>>

MainMenuあたりに入れるのがおすすめです。

*1:このマクロはTiddlyWiki 2.0.x以上では動作しません。2.0版はこちらを参照してください。