This page looks best with JavaScript enabled

Obsidian Binary File Manager プラグインを作った

 ·   ·  ☕ 5 min read

前からやりたいと思っていた obsidian のプラグイン作りをはじめました.
最初に作ったプラグインが Binary File Manager です.
せっかく作ったので, 使い方や作った理由を説明してみます.

プラグインの機能

obsidian vault の中にある画像 (.png, .jpg) や PDF といったバイナリファイルを検知して, そのメタデータを含む .md ファイルを作成します.

Image from Gyazo

フォーマット

作成するメタデータファイルの名前やその内容はカスタマイズが可能です.
例えば, ↓ のようないくつかのフォーマット用のシンタックスを利用することができます.

  • {{LINK}}: もとのバイナリファイルへの internal link. (例: [[sample.png]]),
  • {{NAME}}: もとのバイナリファイルの名前 (拡張子抜き),
  • {{EXTENSION:UP}}: バイナリファイルの拡張子 (大文字),
  • {{CDATE:YYYY-MM-DD}}: もとのバイナリファイルの作成日時

デフォルトでは, ファイル名のテンプレートは INFO_{{NAME}}_{{EXTENSION:UP}}, ファイル内容のテンプレートは↓です.

1
2
3
4
{{EMBED}}
LINK: {{LINK}}
CREATED At: {{CDATE:YYYY-MM-DD}}
FILE TYPE: {{EXTENSION:UP}}

さらに, 既存のテンプレート用プラグイン Templater にも対応しています.
テンプレートファイルには, Templater と Binary File Manager のシンタックスを同居させられます.
例えば, ↓のような感じになります.

テンプレート

1
2
3
4
5
6
# <% tp.file.title %>

{{EMBED}}
LINK: {{LINK}}
CREATED AT: {{CDATE:YYYY-MM-DD}}
TYPE: {{EXTENSION:UP}}

出力

1
2
3
4
5
6
# INFO_sample_PNG

![[sample.png]]
LINK: [[sample.png]]
CREATED AT: 2022-01-10
TYPE: PNG

Templater を使うには↓

  1. Templater プラグインのインストール & 有効化,
  2. Binary File Manager プラグイン設定画面で Use Templater をオンにする.

検知 (自動 or 手動)

ファイルの検知は手動/自動を選択可能です.

手動でバイナリファイルを検知する場合は, コマンド Binary File Manager: Create metadata for binary files を実行します.

自動でバイナリファイルを検知する場合は, Binary File Manager プラグインの設定画面で Enable auto detection をオンにします.
それ以降, 新規追加されるバイナリファイルを自動検知してくれます.
すでに obsidian vault にあるバイナリファイルは obsidian の再起動時に検知されます. (初回だけ手動で検知するのも手です.)

なんで作ったか

「Obsidian の豊富なノート管理機能をバイナリファイルにも流用したい!」のが動機です.
ご存じのとおり, Obsidian は↓のような便利機能を提供しています.

  • 全文検索
  • タグ付けとタグを使った検索
  • 内部リンク

これらの機能のおかげで, ファイル名やファイルを入れたフォルダを忘れてしまった場合でも, 探しているノートにたどり着きやすくなっています.

ところが, こうした機能をバイナリファイルには適用しづらいです.
現状では, Obsidian vault 内の画像ファイルにたどり着くには,

  • 画像ファイルを格納するフォルダ,
  • 画像ファイルの名前,
  • 画像ファイルへのリンクを持つファイル

などを覚えている必要があります.
そのため, バイナリファイルを管理するには, 結局, 従来通りにファイル名の付け方やフォルダの構成方法を工夫するしかない気がしてきます.
そこで, バイナリファイルもマークダウンファイルと同じようにタグ付けしたり, 全文検索したりできるようにしたい, ということでこのプラグインを作成しました.

できるようになること

Binary File Manager が自動でメタデータファイルを作成してくれるので, そのファイルに色々なメタデータを書き込むことで, 間接的にバイナリファイルにメタデータを付与することができます.

例えば, 〇〇ゼミで使った経済学の教科書の PDF ファイル textbook.pdf がある場合, ↓のようなメタデータを作っておけば, 検索が簡単になりそうです.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
---
tags:
- textbook
- economics
- 〇〇zemi
---

![[textbook.pdf]]
LINK: [[textbook.pdf]]

ゲーム理論を勉強するのに使った.

textbook, economics, 〇〇zemi でタグ検索もできますし, 全文検索で ゲーム理論 と検索すれば, このファイルが引っかかるでしょう.
そして, このファイルのリンクをたどれば, お目当てのバイナリファイルにたどり着きます.

Obsidian はファイルを動かしたり, rename してもリンクを自動で修正してくれる機能を公式に提供しています.
なので, こうした変更のせいでメタデータファイルが元のバイナリファイルを見失ってしまう心配もありません.

ただ, 注意点として, Obsidian を介さずにファイルの移動や rename を行うと, これらの自動修正機能が働かないという点があります.
Obsidian 外部でファイルの移動や rename を行うと, Obsidian はそれを「ファイルの削除 & 新規ファイルの作成」と認識するからです.

使いみち

Binary File Manager は既存 vault に使うのが普通だと思いますが, ここではあえて違った使い方を提案したいと思います.
それは, 「バイナリファイルを管理するための vault を新規作成する」というものです.
おそらく, みなさんのデバイスには Obsidian で管理していないフォルダがあると思います.
その中には, 画像ファイルや PDF ファイル, エクセルファイルなど様々な形式のファイルが含まれているはずです.
そういったファイルを新しい Obsidian vault にまるっと丸投げしてしまってはいかがでしょうか.
Binary File Manager を使えば, それらのファイルをメタデータによって管理することができるようになります.

ちなみに, mac であれば, ローカルファイルにタグ付けをする機能ならあります.
ただ, あまり使い勝手がよくないですし, なによりタグを Android や Windows といった他のプラットフォームに持ち出せません.
Obsidian はクロスプラットフォーム対応のアプリですので, デバイスを変えるとメタデータを失うといったことがありません.

リンク

Share on

qawatake
WRITTEN BY
qawatake