標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

はてなブログの記事を作成・編集するGoのライブラリ・コマンドラインツールを作りました

いい加減ウェブブラウザで、markdown を編集するのはしんどくて、vim で編集するために作りました1

(2023-10-17 追記) 記事公開後、不具合が見付かり、v0.1.1v0.2.0 と更新しているので、ご注意ください

はてなブログAPI も公開されているので、この手のツールはありそうなんですが、Ruby製だったり2、Go製だけどライブラリではなくて、1実行ファイルに閉じたツールだったりして、ちょっと好みのものがありませんでした。

ということで、Go言語でクリーンアーキテクチャっぽく作りました。

となります。

自分のスタンスとしては、すべての操作をコマンドラインで完結させようとは思ってなくて、記事の新規作成と直近の記事の編集だけ出来れば十分だと考えているので、ツールの方も

  • htnblog new … 記事の新規作成。いきなり公開ではなく、ドラフトを作るだけ
  • htnblog edit … 最新の記事を編集する。公開状態は編集しない
  • htnblog list … 直近7つの記事のリストを表示するだけ

とサブコマンドが3つだけあります。テキストの原本はウェブ側においておいて、プレビューとか、削除とか、古い記事の編集とかブラウザでやって頂戴というスタンスです。 (もっとも、それ以上やりたい人もいるだろうから、プルリクなりイシューなりもらったら、修正もやぶさかではありません)

Windows版の htnblog.exe は例によって

scoop bucket add hymkor https://github.com/hymkor/scoop-bucket
scoop install htnblog

でインストール可能です。

今後の TODO

  • タグの編集機能 (今はブラウザで設定しても再編集で多分消えちゃう)3
  • 直近の記事以外も編集できるようにする
  • 現行はBASIC認証でやってる → OAuth に変えた方がいいかも

  1. 昔は w3mFirefox のアドオンでなんとかできたりしたもんですが…
  2. Ruby は分からないでもないが、Windowsで日常使いしていないし、このためだけに入れるのもめんどうくさかったし、Goみたいにシンブルバイナリでもないし(グダグダ)
  3. API経由でタグの読み書きは出来なかった。そのかわり、ウェブで設定されたタグも本ツールでの更新で消えたりはしない模様