参画したプロジェクト毎に個人用メモを残す目的でtiddlywikiを使用しています。

ローカルで動作するjavascriptで記述されたwikiです。

さくさくメモを残せるし、結構気に入ってます。

ただ、不満な点もあって、ファイルパスとか書いた内容のコピペが面倒だということ。

ダブルクリックすると該当tiddler(記事のこと)の編集モードになってしまうので、トリプルクリックでの全選択ができません。

ダブルクリックしないように注意しながらドラッグ選択をするのですが、やっぱりちょっと手間だなあ、って。

なので、そんな不便を解消するマクロを作ってみましたよ。

まず、新規tiddlyを作成してください。タイトルは何でもいいです。

んで、以下のコードをコピペ。

//{{{
config.macros.copydd = {
  handler : function(place,macroName,params)
  {
    var tag = params[0] === undefined ? "dd" : params[0];
    var label = params[1] === undefined ? macroName : params[1];
    createTiddlyButton(place, label, null, function(){
      jQuery(".tiddler " + tag).each(function(){
        if(!this.copydd){
          jQuery(this).click(function(){
            var e = jQuery(this);
            e.after(jQuery("<input />").val(e.text()).css({"margin-left": e.css("margin-left")})).hide();
            e.next().select().blur(function(){e.show();jQuery(this).remove()});
          });
          this.copydd = true;
        }
      })
    });
  }
};
//}}}

このtiddlyのタグにsystemConfigとつけて保存してください。

そして、tiddlywikiを再読み込みしてください。

これで準備完了です。

次にコピペしたいtiddlyの中に

<<copydd>>

と入力して保存してください。

すると、[copydd]ってボタンがtiddlerの該当箇所に出現するので、それをクリック。

そうすると、開いているtiddlerのdd要素がクリック可能になり、

クリックするとdd要素がインプットボックスに切り替わって選択可能になります。

インプットボックスはデフォルトで全選択された状態になってますので、そのままCtrl+Cでコピーできます。インプットボックスからフォーカスを外すと元に戻ります。

※このアクションの効果はボタンを押してから画面が再読み込みされるまでです。また、ボタンを押した後に開いたtiddlerには反映されませんのでご注意ください。

※私の場合<>をMainManuに置いています

dd要素以外に上記のアクションをあてたい場合は

<<copydd 要素名>>

としてください。指定した要素が同様のアクションをするようになります。

表示されるボタンのラベルを変えたい場合は

<<copydd 要素名 ラベル>>

です。

※キャプチャはTiddlyWiki 2.7.1にて取得