酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

はてなブログの記事をblogsyncを使って一気に更新する(macOS編)

酢ろぐでのポケモン関係の記事は「関連記事」セクションが共通ですが、記事数が多くてウェブ管理画面でメンテするのがかなり厳しいです*1。そこでblogsyncを使って、はてなブログの記事をCLIで一気に更新することにしました。

備忘録代わりにブログを書きましたが、ほとんどREADMEからの書き写しです。blogsyncはシンプルな作りなので基本的にはREADMEを読むだけで扱えるようになるはずです。

本記事ではgolangのインストールから設定、はてなブログの記事を一気にダウンロード・更新する方法を紹介します。

golangをインストールする

macOSでアプリ開発で必要なCocoaPodsやCarthageをインストールするために、すでにHomebrewがインストールされていると思います。もしHomebrewがインストールされていない場合には https://brew.sh/index_ja を読んでインストールしてください。

HomebrewはmacOS用のパッケージマネージャーで、RubyやPythonなどのインストールもコマンドひとつで実施できます。blogsyncで必要なgolang(プログラム言語GO)のインストールもHomebrewを使えば簡単です。

brew install go

blogsyncをインストールする

go get github.com/motemen/blogsync

blogsyncの初期設定をおこなう

blogsyncはAtomAPIを利用するため、今回自分が更新したはてなブログのブログIDAPI Keyを調べます。

f:id:ch3cooh393:20181119224408j:plain

f:id:ch3cooh393:20181119224341j:plain

設定ファイルを規定の場所に作成します。

mkdir -p ~/.config/blogsync/
vim ~/.config/blogsync/config.yaml

はてなブログの設定情報(前述のブログIDとAPI Key)を指定します。

ch3cooh.hatenablog.jp:
  username: ch3cooh393
  password: <API KEY>
default:
  local_root: /Users/ch3cooh/Documents/works/

すべての記事をダウンロードする

さきほど設定ファイルに追加したブログIDを指定することで、すべての記事をダウンロードすることが可能です。

~/go/bin/blogsync pull ch3cooh.hatenablog.jp

記事を更新する

pullで記事を取得して、pushで記事を更新します。

~/go/bin/blogsync push <FILE_PATH>

記事を一気に更新する

ディレクトリパスを指定してその中の記事を一気に更新することができます。

find <DIR_PATH> -name *.md | xargs -n1 ~/go/bin/blogsync push 

もしくは、gitで記事を管理しているのであれば以下のコマンドで一気に更新することができます。

git diff origin/master --name-only | xargs -n1 ~/go/bin/blogsync push 

blogsyncを使うようになってからは前者の方法でしばらく運用していました。

ディレクトリをまたがる場合に更新するのが大変だったのですが、頻繁に一括更新するものでもないので面倒臭いけど我慢していました。後者の方法を知ってからはローカルリポジトリ上の変更があった記事のみを更新することができるため、更新時の運用はこちらに移行しました。

この方法は「はてなブログのHTTPS化とblogsyncによる一括編集 - progrhyme's tech blog」で id:progrhyme さんが紹介されていた方法です。

*1:すでに90記事あるようです……