nDiki : YAML

YAML Ain't Markup Language

シリアライゼーションフォーマット。

2021年1月20日 (水)

Zettlr 2日目

昨日から使い始めZettelkasten メソッドのための機能を備えた Markdown エディタの2日目。昨日の時点で使い続けるかちょっと迷ったんだけれど、もうちょっと使い方を探ってみようと今日も使ってみている。内部リンク(ノート間リンク)の活用方法がちょっと分かってきて楽しい。

内部リンクの使い勝手が良い

エディタ上で内部リンクを「command + クリック」「control + クリック」すると「リンク先のファイルを開く」と同時にその「リンク文字列での検索」が実行される。ファイルを開くと同時にいい感じに関連するファイルのリスト(実質バックリンクリスト)が表示されて便利。内部リンクを充実させたい気持ちが高まってきた。

ID を YAML front matter に埋め込む

アプリケーションに依存する Markdown ファイルを作らないという Zettlr の原則により Markdown ファイル中のどこに ID を書いてもいい仕様になっている。

自分としてはプレビュー時に文中に出ないように、昨日ひとまず ID を HTML コメントの形式で Markdown ファイルに埋め込んでみていた。 Zettlr やメインで使っている iA Writerプレビューに使っている Marked 2 が YAML front matter に対応しているのでそこの方がわかりやすいかな。 front matter に ID を書くことにした。

ID のパターンは初期設定の「%Y%M%D%h%m%s」で

日時については基本「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/

というの納得。

内部リンクは独立した行に書き、 Marked 2 で消す

内部リンクは Zettlr をナレッジベースとして使う上で便利だが、単独の Markdown ファイルをエクスポートして共有する際には不要だ。

Markdown ファイルを各種フォーマットに変換する Marked 2 に自作のカスタムプリプロセッサを通す機能があるので、 Zettlr で管理している Markdown ファイルを共有する際は Marked 2 を呼び出して

 - [[...]]

を含む行を消してしまうように設定した。ノート関係の宣言のための内部リンクは上記のように独立した行に書いておこう。

これで個人的なナレッジベースとしてノート間リンクの充実させるという要求と、一部はエクスポートして共有したいという要求を満たせそうだ。

YAML front matter #nNote

ファイルの先頭に置かれたダッシュ3文字の行(---\n)の間に書かれた YAML データ。 Jekyll その他で採用されている。

採用しているアプリケーション:

iA Writer

Markdown Guide: Basics, Tips and Tricks on how to use Markdown

front matter に書いた値を Markdown テキスト中に [%キー] と書くことでプレビュー時に展開するのに使用。

Obsidian

YAML front matter - Obsidian Help

ファイルの別名を指定するのに使用。

  • キー: aliases
[ 1月20日全て ]

2021年1月22日 (金)

Zettlr 4日目、iA Writer に戻す

Zettlr 4日目。18,000 弱テキストファイルがあるディレクトリーツリーをワークスペースとして開いたらかなり重かった。使い込んでいくにはパフォーマンスに問題があるな。

Zettlr をしばらく使ってみて、UI とエディタが美しい iA Writter が恋しくなってきた。 iA Writer ならファイル数が 19,000 超えても問題ないし安心だし iA Writer メインに戻ることにしよう。

ローカルホスト上のテキストファイルで管理していると、アプリケーションを乗り換えやすくていい。

Zettlr を使っていいなと思った内部リンクのための記述方法

  • %Y%M%D%h%m%s 形式の ID を YAML front matter に書く。
  • - [[%Y%M%D%h%m%s]] の形でリンクを書く。

は 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 のエクステンション化もしておきたいな。

2021年2月3日追記

キーを「ID」ではなく「ZID」に変更した。

[ ノート・日記はテキストファイルに ] [ Zettelkasten ]

[ 1月22日全て ]

2021年1月25日 (月)

iA Writer でのノート間リンクのための PopClip エクステンション

 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 便利。

2021年2月3日追記

キーを「ID」ではなく「ZID」に変更した。

[ ノート・日記はテキストファイルに ] [ Zettelkasten ]

今日のさえずり: バックギャモンてタイプしたらバックギャモンってバックギャモンだっけてよく分からなくなってきた

  • 09:02 天気が良くて明るくて寒くなくて雨上がりで潤っていて、呼吸が最高の朝。スギ花粉の季節前のボーナス
  • 09:27 雨の心配が無く折り畳み傘が不要なので、荷物を厳選しつつ RICOH GR III をティーニーテールメイトに放り込んできた。オランダせんべい・アルフォート・ルマンドも押し込んできた。
  • 22:55 ストリーム。 #photography RICOH GR III #GR #GRIII #GR3 #ブラックミストNo05 https://t.co/yO9ng7zbak
  • 22:56 ティーニーテールメイト、まだジッパー開閉が硬い。HDナイロンがこなれてくるのが楽しみ。
  • 23:51 Markdown ファイルの YAML front matter に書いている ID を探して iA Writer で開くちょっとした PopClip エクステンションを作った。 iA Writerノート間リンクできるようになって嬉しい。
  • 25:21 バックギャモンてタイプしたらバックギャモンってバックギャモンだっけてよく分からなくなってきた。
  • 25:22 バックギャモンしばらくやってないな。好きなのでまたやりたい。
[ 1月25日全て ]

2021年2月26日 (金)

Obsidian 内部リンク形式を参照解決して Markdown 形式に置き換えるフィルタを書いた

Obsidian ノートとして内部リンク方言([[ファイルベース名]] や [[ファイルベース名|表示テキスト]])を書いた Markdown ファイルを HTML ファイルに変換する場合は Marked 2 から[[・]]を消す自作フィルタをプリプロセッサとして呼ぶようにしている。

単独ファイルとして HTML ファイルに変換する場合はこれで良かった。しかし最近はノート間のリンクを残しつつ変換したくなってきた。

ノートYAML front matter にそのノートURL (今だとノートGoogle ドキュメントにして共有しているので Google ドキュメントURL)を URL キーで宣言してある。内部リンク先の Markdown ファイルを探して URL が宣言されていれば [ファイルベース名](URL) あるいは [表示テキスト](URL) に書きかえるよう自作フィルタを改良した。

これでリンク元 Markdown ファイルではリンク先ノートURL を記述しておく必要がなくなり、普通に Obsidian ノートして書くだけでよくなった。めでたし。

[ Markdown で書いているノートを Google ドライブで共有する ]

[ 2月26日全て ]

2021年3月19日 (金)

情報のアーカイブとして使う Obsidian vault ではノートタイトルの先頭を日付にする

いろいろ入れている Obsidian vault のノートタイトルの先頭を日付に戻す

ファイル名の先頭を日付にする派だが、 Obsidian では「内部リンクが醜くなる」「グラフビューが醜くなる」ということもあり、デイリーノートやプロジェクトのノートなど何でも入れてみている Obsidian vault でデイリーノート類以外についてしばらくタイトルから日付を外してみていた。しかし日付がタイトルにないとやはり検索時に日付順に並べ替えられなくて不便だった。

情報のアーカイブとしても使う Obsidian vault ではノートタイトルの先頭を日付にする方が便利だな。 YAML front matter に書いておいた日付をタイトルにつけ直した。

Obsidian Publish サイトのノートタイトルは先頭を日付にしないままにする

Obsidian Publish サイト nNodes は知のネットワークのスナップショットとして更新していくので、引き続きノートタイトルには日付を含めないままにする。

Obsidian vault の目的によって命名規則を使い分けるのがいい。

[ ファイル名の先頭を日付にする ]

[ 3月19日全て ]

2021年6月14日 (月)

Google ドライブに同期して共有する Markdown ノートテキストファイル に ID を埋め込む

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 ドライブで共有する ]

[ 6月14日全て ]

2021年7月27日 (火)

今日のさえずり: 明るいうちに帰るの、今日一日働いたのは虚構だったのではという気分になる

[ 7月27日全て ]

2022年2月16日 (水)

MkDocs のページファイル名を YYYY-MM-DD-hhmmss.md にする

先週始めた 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。

[ ファイル名の先頭を日付にする ] [ 組織内公開ワーキングノート ]

[ 2月16日全て ]

2022年2月19日 (土)

今日のさえずり: Obsidian Publish に Hide page title オプションが追加された

  • 08:03 Good morning! Tokyu Plaza Omotesando Harajuku #photography RICOH GR IIIx #GR #GRIIIx #GR3x https://t.co/VAi4my5Aak
  • 08:22 @blue12yyy おはようございまーす。
  • 14:49 Obsidian v0.13.25 で Obsidian Publish に Hide page title オプションが追加され、ノートタイトル(ファイル名)をページタイトルとして表示するのをオフにできるようになった。
  • 14:50 使えない文字 (\/:) 回避で本来とは異なる表記ノートタイトルにしているページも、きちんと見出しがつけられるようになって嬉しい。 グラフビューでのテキストや HTML タイトルを、YAML front matter で指定できるようになるともっと嬉しい。
  • 14:57 Obsidian Publish の Hide page title オプションをオンにした。 公開しているノートMarkdown ファイルに全部 # レベル1見出しを追加して publish。
  • 16:32 @isoco6 「えっ? 朝の表参道になぜどん兵衛が?」と一瞬思考停止するシチュエーションでした。
  • 18:41 修理に出していたスーベレーン M400 が帰ってきた。嬉しい!
  • 25:00 2022年2月19日(土) やったこと - 食材買い出し - Obsidian Publish の Hide page title オプションをオンに - 万年筆の次のインク選び
[ 2月19日全て ]

2022年4月24日 (日)

Obsidian プラグイン Spaced Repetition でインクリメンタルライティングする

アイデアを段階的に書き出し組み立てていくライティング手法であるインクリメンタルライティングをするのに Obsidian プラグイン Spaced Repetition が良いようなので、昨日インストールし今日から使い始めてみた。

インクリメンタルライティングしたいノートに #review タグ(あるいは設定したタグ)をつけるとレビュー対象となり、 Notes Review Queue に表示されるようになる。

Open a note for review をすると、次にレビューすべきノートが開くので、加筆修正する(あるいは何もしない)。

しばらくレビューが不要そうであれば Easy、またすぐレビューしたければ Hard、その間であれば Good と評価すると、次のレビュー日が自動計算されて YAML front matter に書き込まれる。もうインクリメンタルライティングの対象から外してよいとなれば、 #review タグを外す。

その日のレビュー対象がキューから無くなるまでこれを繰り返す。

いい感じの頻度でリライティングするきっかけを提供してくれる。パーソナルナレッジベースとしての Obidian vault をアップデートしていく仕組みとして良さそうだ。

[ 4月24日全て ]

About

Process Time: 0.086055s / load averages: 0.44, 0.44, 0.54