Jazzと読書の日々

iPadを筆記具として使う方法を模索します

Obsidian:リファクタリングを元に戻す

ノートコンポーザーで切り出したはいいけど、これ、どうやってマージすればいいんだろう。 そんなふうに悩んだこと、ありませんか。

リファクタリング

もちろん切り出したファイルは元に戻せません。 そういう用途ではないからです。 株分けして別々に育てていく。 大きくなったら、また株分けをする。 そんなガーデニングのイメージでノートを育てていきます。

でも、大きくなったらひとまとめにしたいじゃないですか(scrivener脳。

retaker.md

そんなわけで、内蔵リンクを読み込むスクリプトを考えました。

<%*
e = app.workspace.activeLeaf.view.editor
p = e.getCursor().line
s = e.getLine(p)
if(/\[.+?\]/.test(s)){
  f = s.replace(/.*\[(.+?)\].*/, "$1")
  path = tp.file.find_tfile(f).path
  b = app.vault.getAbstractFileByPath(path)
  if(b){
    const c = await app.vault.read(b)
    e.setLine(p, c)
  }
}else{
  new Notice("内部リンクを選んでください。")
}
%>

カーソル行が内蔵リンクのとき、本文を埋め込みます。

注意

内蔵リンクの判定はアバウトなのでwiki形式にもmarkdown形式にも対応します。 リンク先が存在するかとか、画像や外部リンクじゃないかとかのチェックはしません。

上図のように内蔵リンクで実行すると「注意.md」の内容を埋め込みます。

変な結果になっても責任は持ちません。 丸投げです。

まとめ

読み込んだはいいけど、抽出ファイルはそのまま残ります。 そちらも使うことがあるかもしれないし。