2017年に思いついてガッと書いたもののその後忘れていて、今朝見つけて「ええやん!」と思ったのでリファクタリングしたりリリースまわり整備したりして使えるようにした。リポジトリは https://github.com/takaishi/patt 。
これは何かというと、普段僕は日報や1on1のメモやその他いろいろなテキストファイルを扱っているのだけど、テンプレートをコピーして日付やらを変えて…というのが面倒と思うことがある。そこで、テンプレートを一括管理して、日付などからファイルを生成して任意の場所に置いてくれるツールを用意したというわけ。
テンプレートはテキストファイルで、Hugoでおなじみのfront-matterを使う方式。テンプレート名と配置先を情報として持たせる。
+++ { "name": "test", "destination": "/path/to/destination/{{.Year}}{{.Month}}{{.Day}}.md" } +++ # {{.Year}}-{{.Month}}-{{.Day}}({{.Week}}) ## Header2 - foo - bar
テンプレートを一覧表示するとこんなかんじになる。
$ patt list +------+---------------------------------------------+ | NAME | SOURCE | +------+---------------------------------------------+ | foo | /Users/r_takaishi/.patt.d/templates/foo.md | | test | /Users/r_takaishi/.patt.d/templates/test.md | +------+---------------------------------------------+
テンプレート名を指定してnewコマンドを実行すると、ファイルができて便利。
$ patt new test $ cat /path/to/destination/20170105.md # 2017-01-05(Thu) ## Header2 - foo - bar
ビルドとかリリースまわりの設定をいろいろやったり、Homebrewでインストールできるようにしたりというのをやっていた。ツール名、今朝見たときは「パッと作れる〜」みたいなギャグかなと思ったけど、いろいろコードとかみてるとpatternからとってた気がする。サブコマンドがちょいわかりにくいのでしばらくブラッシュアップしていこうと思う。