Vim から esa に日報を投稿できるようにする

ESM Advent Calendar 2021 - Adventar の5日目の記事です。

永和システムマネジメント アジャイル事業部では esa を使ってメンバーが日報を投稿しています。

ですが私は日報をよく後回しにして書かなくなってしまうことがありました。そこで、自分にとってもっと投稿しやすい環境をつくれば日報投稿が捗るのではないかと思い Vim から esa に日報を投稿できるようにしました。

使ったもの

esa のアクセストーク

とにもかくにも POST できる環境が必要です。

esaAPI はこちらにまとまっています。 こちらにも書いてあるとおり、 esa のアクセストークンは https://[team].esa.io/user/applications から作成できます。記事を投稿する目的であれば、 write 権限が必要です。

docs.esa.io

作成したアクセストークンはのちほど使うので、どこかに控えておきます。

スニペットにテンプレートを追加する

日報のテンプレートがあると書きやすいので、テンプレートをすぐに呼び出せるようにします。

私は Alfred というツールでスニペットを管理しています。 Alfred の使い方はここでは割愛しますが、「;nippo」という単語で以下のテンプレートを展開するように設定しています。

## やったこと

- 

## お気持ち

## ひとこと

esa.vim

esa.vim というプラグインをつかって Vim から esa に投稿できるようにします。

github.com

upamune.hatenablog.com

まずチーム名を設定します。

let g:esa_team = 'docs'

日報のタイトルは日付以外ほぼ固定なので、strftime を使って今日の日付のカテゴリを自動で入れるようにします。 また、 ' -w -b' オプションをつけて、 wip で投稿して投稿後にブラウザを開くようにしました。

function! s:esa_nippo()
  let args = ' -w -b'
  let category = strftime(" 日報/%Y/%m/%d/ima1zumi")
  execute ('Esa' . args . category)
endfunction
command! EsaNippo call s:esa_nippo()

初回だけ esa のアクセストークンを聞かれるので、入力します。アクセストークンは ~/esa-vim に保存されます。

~/esa-vim の取り扱いには注意してください。私は念のため .gitignore で Git 管理対象外のファイルにしました。

これで :EsaNippo というコマンドで現在のバッファの文字が 日報/%Y/%m/%d/ima1zumi というカテゴリで wip で投稿されてブラウザが開くようになりました。便利!