昨日から使い始めた 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 を呼び出して
- [[...]]
を含む行を消してしまうように設定した。ノート関係の宣言のための内部リンクは上記のように独立した行に書いておこう。
これで個人的なナレッジベースとしてノート間リンクの充実させるという要求と、一部はエクスポートして共有したいという要求を満たせそうだ。
Markdown エディタ Zettlr で内部リンク(ノート間リンク)を
- [[yyyymmddHHMMSS]] タイトル
のように書き、エクスポートする時は Marked 2 のカスタムプリプロセッサで消す(記事)というマイルールを作った(yyyymmddHHMMSS は ID)。が Zettlr から iA Writer に戻し、ノート間リンクは自作の PopClip エクステンションで開けるようにした(記事)ので、必ずしも [[yyyymmddHHMMSS]] 形式で内部リンクを表現しなくても良くなった。であれば、最初から変換した時にドキュメントに現れない形式で Markdown ファイルに内部リンクを書いておきたい。
Markdown ファイル中に HTML コメント形式で内部リンクを書いておけば、 HTML 等に変換した時にドキュメントに出現しなくて済むのだが iA Writer だと全文検索にひっかからないので却下。
ドキュメントに出現しない表記にはもう1つ「リンク定義」があるのでこれを使うことにした。
[yyyymmddHHMMSS]: <> "title"
として内部リンクを書いておけばプレビューしたドキュメントには現れない。若干やぼったい感じもするがなかなかいいんじゃない。
[ ノート・日記はテキストファイルに ] [ Zettelkasten ]
暖かい日ということで午後に八潮近辺を散歩してきた。歩けば体も温まるだろうと何も羽織らないで出掛けたら、さすがに運河エリアは肌寒かった。
勝島運河 → かもめ橋 → 八潮公園 → 大井ふ頭緑道公園 → 八潮橋というコース。大井ふ頭緑道公園は遊歩道がメインの細長い公園。東側の湾岸道路 & 首都高速湾岸線と南側の八潮パークタウンとに挟まれ景観・音どちらもいい訳ではないが、普段歩かない適度なアップダウンのある土の道が心地よかった。
昨日 Cloudflare を使えるようにしたので、今日 www.naney.org のプロキシを有効にしてみた。トップページの表示は体感速くなった気がする。
「とりあえず公開してサイト上で文章を見直して何度か書き直す」みたいなのはキャッシュされるのでやりにくくなるのかな?
HTML ページはデフォルトではキャッシュされない仕様だった。
Obsidian ノートとして内部リンク方言([[ファイルベース名]] や [[ファイルベース名|表示テキスト]])を書いた Markdown ファイルを HTML ファイルに変換する場合は Marked 2 から[[・]]を消す自作フィルタをプリプロセッサとして呼ぶようにしている。
単独ファイルとして HTML ファイルに変換する場合はこれで良かった。しかし最近はノート間のリンクを残しつつ変換したくなってきた。
ノートの YAML front matter にそのノートの URL (今だとノートを Google ドキュメントにして共有しているので Google ドキュメントの URL)を URL キーで宣言してある。内部リンク先の Markdown ファイルを探して URL が宣言されていれば [ファイルベース名](URL) あるいは [表示テキスト](URL) に書きかえるよう自作フィルタを改良した。
これでリンク元 Markdown ファイルではリンク先ノートの URL を記述しておく必要がなくなり、普通に Obsidian ノートして書くだけでよくなった。めでたし。
Obsidian vault にある断片的なノートの Google ドキュメント化共有をやめるのに合わせて、社内向け Top of Mind ノートの共有もやめた。
しかし仕事に関する Top of Mind ノートは引き続き Obsidian で更新し、仕事用の Google Chrome のホームボタンや新規タブで表示できるようにしたい。 pandoc でさくっと HTML ファイルに変換するシェルスクリプトを作り Alfred から呼び出してさくっと更新することにした。
ちなみに個人的な Top of Mind ノートは引き続き Obsidian Publish サイト上に作って Google Chrome のホームボタンを押した時や新しいタブを開いた時に表示するように設定している。
[ スタートページ ]
HTML ページ中の mermaid 定義を自動的にクライアント側で SVG 変換し表示させるのが動いていないのに昨日気づいた。 initialize がうまく動いていいないっぽい。 Cloudflare の Rocket Loader をオフにしたら再び動くようになったのでそれが原因のようだ。
How can I have Rocket Loader ignore specific JavaScripts? – Cloudflare Help Center
によると
<script data-cfasync="false" src="/javascript.js"></script>
のように data-cfasync を指定するとそのスクリプトの読み込みを最適化から除外するらしい。
今回は HTML ファイル中に直接 script 要素で埋め込んだコードが動かなくなったので
<script data-cfasync="false" type="text/javascript"> ... // Rocket Loader オンで動かなくなったコード </script>
のように追加してみたところ Rocket Loader をオンにしても動くようになった。高速化のため、できれば Rocket Loader をオンにしておきたかったので良かった良かった。
2月に Cloudflare で www.naney.org をプロキシするように設定した。デフォルトの設定では HTML ページはキャッシュされない。
www.naney.org ではほとんどのページを動的に生成しているがパーソナライズしていないので、 Cloudflare で全てキャッシュされるようにしてみた。
ページ ルール(Free プランでは3つまで)として以下を追加。
www.naney.org/* キャッシュ レベル: Cache Everything, エッジ キャッシュ TTL: 2時間
ページを1回閲覧したあとに再読み込みしてもページフッタに出力しているプロセスタイムが変わらないのようになったので、ちゃんとキャッシュされるようになったっぽい。
しかし PV を考えると TTL 2時間ではキャッシュヒット率がかなり低いかもしれないな。保険的に有効にしておく感じだ。
Spirit#photography
— Naney (@Naney) January 25, 2022
RICOH GR III #GR #GRIII #GR3 pic.twitter.com/xD6m4FXrtZ
Good morning!
— Naney (@Naney) February 18, 2022
Tokyu Plaza Omotesando Harajuku#photography
RICOH GR IIIx #GR #GRIIIx #GR3x pic.twitter.com/VAi4my5Aak
ちょっとした図を書くのに Excalidraw を使ってみることにした。
Obsidian 上で Excalidraw ファイルを編集・管理できて便利な Obsidian Excalidraw プラグインを使う。
図を更新すると自動的に対応する SVG 形式ファイルや PNG 形式ファイルにエクスポートし更新してくれる機能が入っているのが入っているのがめちゃくちゃ嬉しい。
マインドマップツール iThoughtsHD (現 iThoughts) がマインドマップを更新・同期するたびに PDF や PNG + HTML にエクスポートしてくれてとても便利だったんですよ。更新するたびに自動的にスタンダードな形式でエクスポートしてくれる機能すごく良いんだけれど、実装されているアプリケーションほとんど無いんだよね。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。