みのるのはてなブログ

プログラミングレッスンの備忘録

「はてなブログ」にEmacsから投稿する

はてなダイアリー」のときは、 貳佰伍拾陸夜日記 に紹介されたTipsで環境を構築し快適に使えていたので同じ作者のサイトを訪ねてみたら、「はてなブログ」へ移行後は、blogsyncを使っておられるということを知り、早速Macbookにインストールしてみた。

blogsync

必要な情報は、motemenさんのGitHubにあります。

github.com

Installation
% go get github.com/motemen/blogsync

blogsyncは、 ~/go/bin にインストールされる。

Configuration

README に従って ~/.config/blogsync/config.yaml を作成し以下の通り設定を書く。

minoru.hatenablog.com:
  omit_domain: true
  local_root: /Users/minoru/Dropbox/blog
  username: minoruGH
  password: <API KEY>

API KEY は、[設定]-[詳細設定]-[AtomPub]と辿ると見つかります。

blogsync-mode.el

続いてEmacsから使うために blogsync-mode.elを導入する。melpaには上がっていなかったので作者のGitHubから直接Downloadした。

github.com

Emacsの設定

blogsync-modeを使うためには、apel.elも必要です。私はキーバインドを覚えるのが苦手なのでキー操作を簡単にするために hydra.el を利用してみました。いずれもmelpaからパッケージインストールできます。

hydra を使いたくなければオーソドックスにキーバインドしても構わないと思います。

(use-package blogsync-mode
  :init
  (custom-set-variables
   '(blogsync-command "~/go/bin/blogsync")
   '(blogsync-hatenablog-host "minoru.hatenablog.com"))
  :config
  (blogsync-mode))

(bind-key
 [f10]
(defhydra hydra-hatena (:hint nil :exit t)
   "
[blogsync]  _o_: Open-dir  _a_: ag  _n_: Post  _p_: Push  _l_: Pull"
  ("o" my/open-hatena-blog-dir)
  ("a" my/counsel-blogsync)
  ("n" blogsync-post)
  ("p" blogsync-push)
  ("l" blogsync-pull)
  ("q" keyboard-quit)))

(defun my/counsel-blogsync ()
  "Counsel ag for hatena blog-dir."
  (interactive)
  (counsel-ag nil "~/Dropbox/blog/entry/")) 
(defun my/open-hatena-blog-dir ()
  "Open hatena blog-dir."
  (interactive)
  (find-file "~/Dropbox/blog/entry/"))

以上でEmacsから「はてなブログ」へ投稿する環境が整いました。

素晴らしいToolを開発してくださった先人の皆様に感謝!