このブログの更新には googlecl というコマンドラインツール経由で emacs から記事を書いていたけれど、結構前から googlecl が oauth2 に対応してなくてブログが更新できなかった。自分がなんか作った途端マーフィーの法則でもっといいツールが出たりすぐ治るのではという恐れがあってずっと googlecl の github Issues が更新されるのを待つ日々が続いたが、更新されなそうなので、シンプルに google blogger にポストするだけのコマンドラインツールを作った。実装には勉強ついでに nimlang を使ってみた。 (自分用に Emacs から post するコードも入っているので興味がある人は後半の方もみてみてください。)
前準備
インストール
準備ができたら、
git clone https://github.com/yuutayamada/nim-blogger
cd CLONED DIRECTORY
nimble make
で nimblogger という実行ファイルが作れます。
ホントは nimble install でインストールできるようにしたかったけど、-d:ssl というフラグをつけないとビルドできず install のときどうやって指定するのかよくわからなかったので、このようになってしまいました。
# たぶん Google Developper Console の API manager から # みつけられるとおもいます export GOOGLE_API_CLIENT_ID="developper console から client_id をコピペしてください" export GOOGLE_API_CLIENT_SECRET="developper console から client_secret をコピペしてください"
のあと
nimblogger --help
で使い方がでるとおもいます。 (注意 Refresh token なんちゃらってでたらもう一回やると成功するかもしれません。)
Emacs から
自分用なので使いたい人は使ってというスタンスで、misc ディレクトリに org-mode のドキュメントから html に変換してポストするコードが入ってます。
使いたい人は、下のような設定をしたあと`nimblogger:post-article`関数で投稿できるとおもいます。
(load "path/to/misc/nimblogger") (setq nimblogger:blog-name "blog の名前" ;; binary file へのパス nimblogger:command "path/to/nim-blogger/nimblogger") (define-key org-mode-map (kbd "C-S-p") 'nimblogger:post-article)
おわりに
自分が必要な最低限はできたけど、Google の更新についてく自信がないいので、いいツールがあれば教えてください。
0 件のコメント:
コメントを投稿