TiddlyWikiでローカル作業メモ環境を作る

# はじめに

理由あって客先常駐をすることになり、今まで社内サーバにPukiWikiを置いて作業メモを書いていたのが使えなくなって、かといって社外のその手のサービスを使うのも情報管理という点で先方に迷惑をかける可能性がなくもないので、ローカルで使えるWikiを探したところ、TiddlyWikiにたどり着きました。その環境構築メモです。

# TiddlyWiki

公式サイト

https://tiddlywiki.com/

TiddlyWikiは「1つのhtmlファイル」になっていて、自分自身を書き換えることでページを追加していきます。面白いですね。自己書き換えにロマンを感じるのはアセンブラ世代だからでしょうか。実際にやったことはないけど。

なので、htmlファイルをダウンロードしてウェブブラウザで開くだけですぐ使えるようになります。が、最近のウェブブラウザでは自分自身を上書き保存することがセキュリティの問題で禁止されています(別ファイルとしてダウンロードされる)。とはいえ、それを安全に回避する方法がいくつかあって、実行ファイル化したり、ローカルサーバを立てたり、Node.jsで起動したり、いろいろあるんですが、私は可搬性の高そうな

- ウェブブラウザにプラグインを入れる (※ローカルサーバを立てる)

でやっていくことにしました。

# timimi

ということで timimi を使います。

https://ibnishak.github.io/Timimi/

各種ウェブブラウザに対応しているんですが、私が使っているMicrosoft EdgeではChrome用を流用する形になります。インストール方法はサイトに書いてある通りですが、

- 拡張機能 → 拡張機能の管理 を開く
- 「他のストアからの拡張機能を許可します」をオンにする
- Chrome Storeからtimimiを開く

https://chromewebstore.google.com/detail/timimi/mnggafnmmhdoplbffagjihajeeikgbcg

- 「Chrome に切り替えませんか？」→「いいえ、結構です」
- 「拡張機能の入手」か「インストール」をクリック
- インストール後に開かれるページから"Download timimi-2.1 backend"をクリック

https://github.com/ibnishak/Timimi/releases

- timimi-2-1-1-Windows-Chrome-Chromium-Opera.exe を実行する
- 拡張機能の管理 → timimi の詳細を開く
- 「ファイルの URL へのアクセスを許可する」をオンにする ← これ重要

これだけです。(最後に実行するexeがバックエンドらしいのだけどどう動いているのかいまいちよく分からない…)

なお、Edgeはプロファイルを共用している他のPCにも自動的に拡張機能をインストールしますが、設定とバックエンドまでは面倒を見てくれないので、他のPCでも使う場合は設定の変更とバックエンドのインストール＆実行をしておきましょう。

# 使い方

基本的には画面右上の＋ボタンでTiddler(ティドラー？)と呼ばれるページを作って、タイトルを付けて内容を書いて、編集画面上のチェックボタンを押して保存するだけです(もしくは画面右上の赤い●ボタンを押す)。Ctrl+Sで保存する必要はありません。×ボタンで編集キャンセル、ゴミ箱ボタンでTiddler破棄、です。

![TiddlyWiki.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141731/844f24b9-9a8a-53d3-0d5d-79649a48cba2.png)

# タグ

Tiddlerにはタグ(Tag)というメタデータが付けられます。これによってグループ、親子関係などを構成することが出来ます。数も名前も自由です。

また、TiddlyWikiは設定もTiddlerとして保持する仕組みになっていて(面白い！)、システム用のタグを付けるとその中身が反映されます。システム用のタグには"$:/"という接頭辞が付いて、階層構造になっています。

# ジャーナル

TiddlyWikiには日記を書くための仕組みとしてジャーナル(Journal)が用意されています。実際にはJournalというタグが付くTiddlerでしかないのですが、ジャーナルを書く専用のボタンがあったり、ジャーナルのタイトルとして日付ベースの書式が設定されています。

私はこれで毎日のメモを書いていこうと思っています。

# Wiki記法

Wiki記法と一口に言ってもものによって違うのはご存じの通りで、TiddlyWikiは私が慣れ親しんだPukiWikiとも異なります。いずれまた別の環境に移行するときのことも考えると、あまり凝った表現はしないほうがいいのかもしれません。メモだし。

TiddlyWikiの代表的な記法はこんなところでしょうか。

```
!見出し
*箇条書き
#番号付きの箇条書き
>引用

　```
　整形済みテキスト
　```

<<<
引用ブロック
<<<

|表|A|B|
|1|α|β|
|2|γ|ε|

<!-- コメントアウト -->
```

※Qiita記法ではコードブロック内で"```"がエスケープ出来なかったので全角スペースで逃げています。実際には必要ないです。

あと、プログラムコードでよくある記法が装飾扱いされるケースがあるので注意が必要です。TiddlyWikiにはエスケープがないので、HTMLの数値参照("\&#47;"とか)で乗り切るしかありません。

```
''強調'' &#39;
//イタリック// &#47; ※"http://"は優先されるので問題なし。
~~打ち消し線~~ &tilde;
__アンダーライン__ &#95;
`等幅` &#96;
```

ただ、これを使うと検索にヒットしなくなります(変換後の文字ではなく生のWiki記法が検索される)。記号は検索しないだろ、と思うかもしれませんが、"\_\_init\_\_"とかを検索したいときがあるんですよねぇ…。

とにかく、シンプルに使う分にはこれで十分です。

# 使いやすくする

さて、そのままではやっぱりちょっと使いづらいので、こまごまとした設定を変更していきます。

## Story Viewを広くする

なぜかデフォルトではStory View(Tiddlerが表示される場所)が狭いので、広げます。

ControlPanel -> Appearance -> Theme Tweeks -> Options -> Sidebar layout -> Fluid story, fixed sidebar

## Journalのタイトルを分かりやすくする

ジャーナル機能は便利ではあるんですが、デフォルトでは"25th December 2024"のような日本人にはなじみのないフォーマット、しかも文字列ソートもしづらいので、"2024-12-25"のようにします。

Info -> Basics -> Title of new journal tiddlers -> YYYY-0MM-0DD

ちゃんとタイトル名でソートできるように月日はゼロパディングします。

## 編集開始時のカーソルのフォーカスをタイトルではなく本文にする

ジャーナルがメインであればタイトルを編集することはないので、フォーカスを本文にします。全選択されるのがちょっと嫌ですが、今のところそれを解除する方法は見当たらず。

Default focus field for new tiddlers -> text

## 画面右上のボタンを増やす

これは好みなんですが、ここらへんを表示しておくと便利かと思います。

home
close all
new journal
refresh

## 編集用テキストボックスが狭いので広げる

なぜか編集用テキストボックスが縦に狭いので、広げます。

テキストボックス上の"v"の左の"T"っぽいボタン ->
Choose the height of the text editor -> Fixed Height (好きな大きさに)

## 検索時の最小文字数が3なのを2にする

アルファベット2文字だと検索でヒットする数が多すぎるので3文字以上に制限してあるんでしょうけど、日本語には2文字の熟語が多くて検索できないと結構不便なので、2文字にします。

設定はシステムのTiddlerを編集して行うので、AdvancedSearch(サイドバーの検索ボックスが空欄の状態で検索ボタンを押す)でShadowsタブを選択して検索して編集します。デフォルトのままの設定のTiddlerがShadows、変更済みのものがSystemタブに現れる仕組みです。

AdvancedSearch -> Shadows -> $:/config/Search/MinLength -> 2

システムのTiddlerは編集ボタンを押すと「システムデフォルトを変更することになるがいいか？」というダイアログが出ますが、承知の上なのでOKします。変更済みのTiddlerを削除するとシステムデフォルトに戻るので安心です。

## 初期状態で表示するTiddlerを設定する

Control Panel -> Info -> Basics -> Default tiddlers

Tiddlerタイトルを設定します。複数可。Filter Operatorsが書けます(後述)。

## 初期状態で最新のジャーナル5件分を表示する

上記の設定に

[tag[Journal]!sort[modified]limit[5]]

と書くと、Jounalタグを持つTiddlerを更新日時の新しい順でソートして5件表示、となります。タグやソート条件を変えたりして、いろんな使い方が出来ます。

## サイドバーにページを追加する

$:/tags/SideBar というタグを付けたTiddlerがサイドバーにタブとして表示されるので、普通にTiddlerを作ってタグをaddしてください。

順番を変更するには、上記のタグをクリックするとTiddler一覧が表示されるので、ドラッグ＆ドロップで変更します。
もしくは、list-before, list-after というfieldを作ると、値が空の場合は先頭、末尾に、値に既存のページ名を入れると、その前後にタブが配置されます。

captionというfieldを作ると、タイトル名ではなく設定した値がタブ名になります。デフォルトのOpen,Recent,Tools,MoreタブもTiddlerのタイトルとは違う名前が設定されているのなので、タグをクリックしたときに出るタイトル名で確認してください。

## デフォルトで表示されるタブを設定する

ControlPanel -> Settings -> tiddlyWiki -> Default Sidebar Tab

…で設定すると良さそうなんですが、効いている感じがしないです。最後にTiddlerを保存したときのタブの位置が維持されている気がします。よく分からん。

# おわりに

とまぁこんな感じです。あとはプラグインを入れたりウィジェットやマクロを使ったり、いろいろ出来そうなんですが、それはこれからということで。

その前に、次の記事では他のWikiからのインポート方法を書く予定です。