基本機能は変わりなく、主にユーザインターフェイスなどを改善し、v1.0.0 に向けての完成度を高めるよう修正した。
リリースノートを見てみよう。
オプション -updated
を削除。今後、記事の日付を変更する場合は、エディター上で、ヘッダ行 Updated: の日付を変更する
-update
は、もともと experimental なオプションだったので削除には特に問題なし。リリースノートのとおり、ヘッダを編集すれば、同機能と同等のことができる。
サブコマンド: publish
を追加。指定した記事を下書き状態から公開状態へ変更する
普通はウェブブラウザでプレビューを見た後、そのまま公開状態を変更すればよいので、おそらく htnblog publish
は、ほとんど使う機会はないと思われる。だが、ユーザが「このツールでどうやって公開するか分からない」となると困るので、一応実装した。
「どうやればいいのか分からない」よりは「機能としてはあるのは分かったけど、ウェブブラウザでやった方が早いとユーザが自然に悟る」方が親切なので、無駄とは分かっていたが手間は惜しむべきではないと考えた。
実は unpublish
というサブコマンドも存在する。これは記事の下書きフラグを no
から yes
に戻すだけなのだが、なぜかサーバ側でエラーとされ、期待どおり機能しない。それゆえ、Undocumented としている。なんでエラーにするんだろう…
処理実行後、サーバーレスポンスを全て表示していたのを、オプション -debug が設定されない限りはステイタスコード出力だけにするようにした
当初はデバッグ用に、サーバーからのレスポンスを全て標準エラー出力へコピーしていたが、いい加減みっともないので、スタイタスコードだけにした。従来どおり全部見たい場合は、新設のオプション -debug
を指定すればよい。
サブコマンド: init
: %EDITOR% が未設定の場合、候補として、notepad.exe や /etc/alternatives/editor を入力時の既定値とするようにした。
これらはあくまで htnblog init
を実行した時に、設定候補として出すエディターのパスの話。$EDITOR とかが指定されていたら、そちらが優先されるし、ユーザもその場で変更できる。
で、デフォルトエディター候補として、 Windows の場合は安直にメモ帳としておいた。最近、デフォルト文字コードが UTF8 になったらしいし。
Linux の場合、昔は /etc/vi
一択であったが、最近は nano とかもあると言うし、どうしようかと思っていた。検索してみたところ最近はOSの規定アプリが /etc/alternatives
以下にシンボリックリンクが張られるようになっているということが分かった。実際、Ubuntu で確認してみたところ
$ ls -l /etc/alternatives/editor lrwxrwxrwx 1 root root 9 Jan 4 2023 /etc/alternatives/editor -> /bin/nano
となっていた。単純に /etc/alternatives/editor
をデフォルト値にしておけばよさそうだ。
( Windows だと、こういった仮想化フックの参照は環境変数とかレジストリとか結構めんどいので、こういうシンプルさはいいなと思った )
- ライブラリ互換性の破壊的変更:
(*Blog) Post
,(*Blog) Update
,(*Blog) Delete
などのパラメータ・戻り値を変更 (※ 戻り値をio.ReadCloser
から*http.Response
へ変更するなど)
互換性を破壊する変更は悩んだ。
当初は戻り値を変えた新バージョン PostAndGetResponse
などを別途作成して、互換性を維持すべきではないかと考えた。だが、それだと、使い道があまりない旧バージョンの Post
がずっと残り続けてしまう。もう hymkor/go-htnblog をライブラリとして利用しているのはおそらく自分だけであろうし、まだ v1.0 になっていないので、見苦しくならないよう思い切ってメソッドの仕様を変更した。
しょうもないコダワリだったが
今回の修正で、おそらく完成度はベータ版相当にはなっていると思う。今後、しばらく使って、気になる点などをチェック・修正し、v1.0 になることだろう。