昨日から使い始めた Zettelkasten メソッドのための機能を備えた Markdown エディタの2日目。昨日の時点で使い続けるかちょっと迷ったんだけれど、もうちょっと使い方を探ってみようと今日も使ってみている。内部リンク(ノート間リンク)の活用方法がちょっと分かってきて楽しい。
エディタ上で内部リンクを「command + クリック」「control + クリック」すると「リンク先のファイルを開く」と同時にその「リンク文字列での検索」が実行される。ファイルを開くと同時にいい感じに関連するファイルのリスト(実質バックリンクリスト)が表示されて便利。内部リンクを充実させたい気持ちが高まってきた。
アプリケーションに依存する Markdown ファイルを作らないという Zettlr の原則により Markdown ファイル中のどこに ID を書いてもいい仕様になっている。
自分としてはプレビュー時に文中に出ないように、昨日ひとまず ID を HTML コメントの形式で Markdown ファイルに埋め込んでみていた。 Zettlr やメインで使っている iA Writer、プレビューに使っている Marked 2 が YAML front matter に対応しているのでそこの方がわかりやすいかな。 front matter に ID を書くことにした。
日時については基本「2021-01-20-095836」という書式を使っているので Zettlr の ID のパターンも初日に「%Y-%M-%D-%h%m%s」にカスタマイズしたのだけれど「%Y%M%D%h%m%s」に戻した。過去のノートファイルに現在日時の ID を付与するというズレが心理的に気持ち悪かったので。
Also, our own experiences show that when one doesn't use easy-to-recognise IDs, one is less prone to assume stuff, making them better suited to cross-link files. Just try it yourself! — https://docs.zettlr.com/en/academic/zkn-method/
というの納得。
内部リンクは Zettlr をナレッジベースとして使う上で便利だが、単独の Markdown ファイルをエクスポートして共有する際には不要だ。
Markdown ファイルを各種フォーマットに変換する Marked 2 に自作のカスタムプリプロセッサを通す機能があるので、 Zettlr で管理している Markdown ファイルを共有する際は Marked 2 を呼び出して
- [[...]]
を含む行を消してしまうように設定した。ノート関係の宣言のための内部リンクは上記のように独立した行に書いておこう。
これで個人的なナレッジベースとしてノート間リンクの充実させるという要求と、一部はエクスポートして共有したいという要求を満たせそうだ。
ファイルの先頭に置かれたダッシュ3文字の行(---\n)の間に書かれた YAML データ。 Jekyll その他で採用されている。
採用しているアプリケーション:
Markdown Guide: Basics, Tips and Tricks on how to use Markdown
front matter に書いた値を Markdown テキスト中に [%キー] と書くことでプレビュー時に展開するのに使用。
YAML front matter - Obsidian Help
ファイルの別名を指定するのに使用。
Zettlr 4日目。18,000 弱テキストファイルがあるディレクトリーツリーをワークスペースとして開いたらかなり重かった。使い込んでいくにはパフォーマンスに問題があるな。
Zettlr をしばらく使ってみて、UI とエディタが美しい iA Writter が恋しくなってきた。 iA Writer ならファイル数が 19,000 超えても問題ないし安心だし iA Writer メインに戻ることにしよう。
ローカルホスト上のテキストファイルで管理していると、アプリケーションを乗り換えやすくていい。
Zettlr を使っていいなと思った内部リンクのための記述方法
は iA Writter で取り入れてみてもいいな。
現在日時で %Y%M%D%h%m%s 文字列を生成する Alfred ワークフローを作った。それから
cd ~/notebook pt -l -e "^ID:\\s+$query" . | head -n 1
で見つかったファイルを iA Writter で開く Alfred ワークフローを作成し、ID を指定して iA Writer を開けるようにした。 もっとサクッと開けるように PopClip のエクステンション化もしておきたいな。
キーを「ID」ではなく「ZID」に変更した。
[ ノート・日記はテキストファイルに ] [ Zettelkasten ]
cd ~/notebook pt -l -e "^ID:\\s+$query" . | head -n 1
で見つかったファイルを iA Writer で開く PopClip エクステンションを作った。 iA Writer 上で 20210125215723 という文字列を選択したあとにポップアップした PopClip でこのエクステンションを実行すれば
YAML front matter に
--- ID: 20210125215723 ---
と書いておいた Markdown ファイルを iA Writer でささっと開ける。 iA Writer でのノート間リンクを実現。先週 Alfred で開けるようにしたものの PopClip 版。
PopClip 便利。
キーを「ID」ではなく「ZID」に変更した。
[ ノート・日記はテキストファイルに ] [ Zettelkasten ]
ストリーム。#photography
— Naney (@Naney) January 25, 2021
RICOH GR III #GR #GRIII #GR3#ブラックミストNo05 pic.twitter.com/yO9ng7zbak
Obsidian ノートとして内部リンク方言([[ファイルベース名]] や [[ファイルベース名|表示テキスト]])を書いた Markdown ファイルを HTML ファイルに変換する場合は Marked 2 から[[・]]を消す自作フィルタをプリプロセッサとして呼ぶようにしている。
単独ファイルとして HTML ファイルに変換する場合はこれで良かった。しかし最近はノート間のリンクを残しつつ変換したくなってきた。
ノートの YAML front matter にそのノートの URL (今だとノートを Google ドキュメントにして共有しているので Google ドキュメントの URL)を URL キーで宣言してある。内部リンク先の Markdown ファイルを探して URL が宣言されていれば [ファイルベース名](URL) あるいは [表示テキスト](URL) に書きかえるよう自作フィルタを改良した。
これでリンク元 Markdown ファイルではリンク先ノートの URL を記述しておく必要がなくなり、普通に Obsidian ノートして書くだけでよくなった。めでたし。
ファイル名の先頭を日付にする派だが、 Obsidian では「内部リンクが醜くなる」「グラフビューが醜くなる」ということもあり、デイリーノートやプロジェクトのノートなど何でも入れてみている Obsidian vault でデイリーノート類以外についてしばらくタイトルから日付を外してみていた。しかし日付がタイトルにないとやはり検索時に日付順に並べ替えられなくて不便だった。
情報のアーカイブとしても使う Obsidian vault ではノートタイトルの先頭を日付にする方が便利だな。 YAML front matter に書いておいた日付をタイトルにつけ直した。
Obsidian Publish サイト nNodes は知のネットワークのスナップショットとして更新していくので、引き続きノートタイトルには日付を含めないままにする。
Obsidian vault の目的によって命名規則を使い分けるのがいい。
[ ファイル名の先頭を日付にする ]
Markdown ノートテキストファイルを rclone で Google ドライブに同期して共有できるようにして、さっそく「共有用の URL をどうしようか」となった。
継続的なノート整理でファイル名変更・フォルダ移動をローカルホスト上でしつつ rclone で同期するので Google ドライブでのファイル ID が変わり URL も変わってしまう。
Zettlr を試した時にやっていた ID を 「yyyymmddHHMMSS」形式で YAML front matter に埋め込んでおくのが妥当かな。で
https://drive.google.com/drive/search?q=ID
の URL を共有すると。
[ ノート・日記はテキストファイルに ] [ Markdown で書いているノートを Google ドライブで共有する ]
ヒマワリ#photography
— Naney (@Naney) July 26, 2021
Lomo LC-A Minitar-1 Art Lens#Minitar #Minitar1 pic.twitter.com/YcSBS3pb7n
先週始めた MkDocs + GitHub Pages での組織内公開ワーキングノートサイト、ページファイル (Markdown ファイル)の名前を YYYY-MM-DD-タイトル.md のようにしていたのだけれど、やっぱり YYYY-MM-DD-hhmmss.md にすることにした。
日本語の入ったタイトルだと URL が長くなって、シェアする時に見辛いなと。 ナビゲーション上でページを新着順に並べる(mkdocs-awesome-pages-plugin での order:desc 指定を利用)のに、時刻まで入れておいた方が良いというのもある。
生成するページのタイトルは YAML front matter の title で指定しておけば OK。
[ ファイル名の先頭を日付にする ] [ 組織内公開ワーキングノート ]
Good morning!
— Naney (@Naney) February 18, 2022
Tokyu Plaza Omotesando Harajuku#photography
RICOH GR IIIx #GR #GRIIIx #GR3x pic.twitter.com/VAi4my5Aak
アイデアを段階的に書き出し組み立てていくライティング手法であるインクリメンタルライティングをするのに Obsidian プラグイン Spaced Repetition が良いようなので、昨日インストールし今日から使い始めてみた。
インクリメンタルライティングしたいノートに #review タグ(あるいは設定したタグ)をつけるとレビュー対象となり、 Notes Review Queue に表示されるようになる。
Open a note for review をすると、次にレビューすべきノートが開くので、加筆修正する(あるいは何もしない)。
しばらくレビューが不要そうであれば Easy、またすぐレビューしたければ Hard、その間であれば Good と評価すると、次のレビュー日が自動計算されて YAML front matter に書き込まれる。もうインクリメンタルライティングの対象から外してよいとなれば、 #review タグを外す。
その日のレビュー対象がキューから無くなるまでこれを繰り返す。
いい感じの頻度でリライティングするきっかけを提供してくれる。パーソナルナレッジベースとしての Obidian vault をアップデートしていく仕組みとして良さそうだ。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。