Obsidianでhledger(ledger-cli)のトランザクションを書く

既存のプラグインで割と簡単にできたので紹介。

やりたいこと

  • 外出先で簡単にhledgerのトランザクションを入力したい。
  • 家に帰ってからファイルのマージ作業はしたくない。
  • 外出先でhledgerコマンドそのものは実行できなくてもいい。
  • 自宅のMacでhledgerを使用。外出先のiOSからObsidianを使ってトランザクションを書く。

準備

Obsidianをインストールしたら次の二つのコミュニティプラグインを導入する。

Templater

Various Complements

設定方法

まず、Templaterで使うテンプレートを準備する。

<% tp.date.now() %> * <% tp.system.prompt("description") %>
    expenses:変動費:食費            <% tp.system.prompt("amount") %> JPY
    assets:cash:wallet

自分はこれにHledger templateという名前をつけて、VaultのConfig/Templateフォルダに入れた。

Templaterの設定からTemplate folder locationを設定する(この例だとConfig/Templateでよい。)。

次に、実際にトランザクションを書いていくノートを用意する。 Vault直下に、Hledger obsidianなどのファイル名でノートを作成する。

ノートを開いたらコマンドからTemplaterを選択して作成したテンプレートを実行する。 するとプロンプトが出てくるので金額(amount)と取引名(description)をそれぞれ入力する。 これでノートにトランザンクションが追加できるようになる。

テンプレートをみて貰えばわかるとおり、アカウント名は固定されているので、アカウントは手動で修正することになる。 このときいちいちアカウント名を正確に覚えていられないので、 Various Complementsプラグインによる補完機能を利用する。

Various Complementsには辞書参照機能があり、これを使う。標準ではオフになっているので設定から有効化する。 その後、辞書ファイル(dictionary.md)を適当な場所に作ったら、このファイルに普段使っているアカウント名を登録する。 自分はhledger accountsで全アカウントを表示させてこれを転記した。アカウントの末尾にはタブ文字を2つ入れるのを忘れないこと。

以上でアカウント名を修正する際に、補完機能を使って正確なアカウント名に修正することができる。

demo.gif