酢ろぐでのポケモン関係の記事は「関連記事」セクションが共通ですが、記事数が多くてウェブ管理画面でメンテするのがかなり厳しいです*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を利用するため、今回自分が更新したはてなブログのブログID
とAPI Key
を調べます。
設定ファイルを規定の場所に作成します。
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記事あるようです……