GitHubZettelkastenメソッド¶Zettlrを作るアイデアが浮かんだのは、数年前にアカデミックな文書を書くワークフローを改善しようとしていた時のことです。様々なスタイルやワークフローのアイデアをテストし、その中から選ばれたのがZettelkastenメソッドでした。その当時は、Zettelkastenをうまく実装したソフトウェアはほとんどありませんでしたが、それから多くの実装の努力が続けられ、現在ではZettelkastenの機能をサポートするアプリケーションが増えてきています。Luhmann)によって生み出されました。彼は、自分が読んだり考えたことをすべて思い出せるように、情報と番号を書いたカードを使った(当時はアナログでした)Zettelkastenをデザインしました。番号は、カードの情報に関連した情報が書かれた他のカードを探すために使えました。ルーマンはこの方法でカード間の参照を行き来しました。箱がカードでいっぱいになってくると、これが何らかの形で活きて、自分で考えもしなかったような思考のつながりが見えてきました。小さなメモどうしに(または長いファイルでも構いませんが)関連付けを行うことで、ファイル間を行ったり来たりするだけでなく、ファイル間に浮かび上がる関連性を明らかにするというのが、基本的なアイデアです。ZettlrでZettelkastenを管理する¶Zettelkastenを始めるために、Zettlrでは今のところ次の3つの機能が利用できます。ファイルのIDを生成する検索とファイルへのリンクを作るファイルにタグを付けるファイルID¶ファイルにアプリケーション固有の情報を残さないようなアプリケーションを作ろうとすると、個々のファイルの識別方法が大きな問題になります。Zettlrは、内部的にファイルを区別するために32bitのハッシュ値を使っています。これはファイルのパスに依存した値です。Zettlrはクラウドに保存されたファイルも扱えるようにデザインされていて、別のコンピュータ上ではパスが同一とは限らないことから、このハッシュ値をIDとして使うことはできません。一つの問題は、フォーマット自体にあります。Markdownファイルはプレーンテキストであるため、余分なメタデータを加えることができません。Markdownファイルにヘッダーを追加するというアプローチもあるのですが、その方法はとれませんでした。アプリケーションに依存しないMarkdownファイルを作るというZettlrの原則を破ってしまうからです。Markdowの文法に比べると、メタデータはあまり標準化されていないので、これをZettlrの哲学と両立させる方法は簡単には思いつきません。そこで、私たちは単にIDを文章中に埋め込むことにしました。ファイルにIDを追加するにはCmd/Ctrl+Lを押してIDを生成します。手動でIDを入力すれば、自動的にIDがハイライトされます。設定のページで、リンクに対するZettelkastenの設定項目をご確認ください。デフォルトのIDは良い選択肢です。YYYYMMDDHHMMSSの日時を使っているので、毎秒ごとに一意な値になるからです。経験的に言えることですが、簡単に認識できないIDの方がファイルを相互にリンクするのに向いています。自分で試してみてください。Zettlrは自動的にファイルの内容を検索してIDを見つけます。発見したIDがWikiリンク形式(詳細は後述)で囲まれていない場合、それをファイルのIDとみなします。内部リンク¶IDの問題が解決すると次の問題が発生します。前述のように、ファイルをアプリケーションに依存させないというZettlrの目標を達成しつつ、どうすればファイル間にリンクを張ることができるでしょうか。Archiveのような多くのアプリケーションでは、ファイルの相互参照によりシステム内をできる限り簡単にナビゲートできるような、内部リンクシステムを実装しています。Zettlrも同様に、そのようなシステムを持っています。link]]のような書式で書かれます。AltもしくはCtrlを押しながらリンクをクリックすると、2つの異なる機能が実行されます。一つ目は、アプリケーション中でリンクの内容に完全一致するものを探します。リンクに完全一致するような内容を持ったファイルを検索します。この完全一致には2つのパターンがあります。link」)がファイル名の拡張子を除く部分に完全に一致する場合です。link.txtなどが完全一致と判定されます。ファイル名の比較は大文字小文字が無視されることにご注意ください。macOSなどではデフォルトで大文字小文字が無視されます。(なのでfilename.mdとFILENAME.MDは同一のファイルを示します。)もう一つは、リンクの中身が[[<your-id>]]のような書式でIDを含んでいる場合です。この場合、<your-id>というIDを含んでいるファイルが、完全一致であると判定されます。Altを押しながらリンクをクリックして、完全一致のファイルがシステム上で見つかった場合、最初に見つかったファイルが開かれます。このようなリンクを使用して、システム中をナビゲートすることができます。いくつかのファイルへの内部リンクを含む目次ファイルを作り、それぞれのファイルには目次ファイルへの逆リンクを張るような応用が可能です。リンクから実行される二つ目の機能は、選択中ディレクトリに対するグローバル検索です。これは単に、リンクの中身を検索欄に貼り付け、Enterを押して検索を開始します。このようにして完全一致したファイルを開くだけでなく、そのファイルにリンクした他のファイルを見つけることができます。[[<your-id>]]という書式のリンクがあった場合、IDに対応するファイルが開かれるとともに、そのファイルにリンクしているすべてのファイルが検索されます。タグ付け¶タグ付けは内部検索の中では最も簡単かもしれません。AltまたはCtrlを押しながらタグをクリックすると、現在のディレクトリでそのタグが付けられたすべてのファイルが検索されます。タグは#keywordのような形式ですが、これはMarkdownの他の書式では使われていません。このようなタグを使ったアプローチにより、Zettlrでは完璧なタグ付けシステムを構築できています。