この Blog でずっと整理したかったのが、各ブログエントリのカテゴリでした。
たとえば、この Blog には enlightenment と enlightment という 2 つのカテゴリがありましたが、実際には enlightenment が正しいです。 このような表記揺れをなんとかしたかったのですが、それぞれのエントリが 50 くらいあって、一々直していくのがかなり面倒。
色々ツールを見ていくと、これ使えばできるなってことが分かりました。
1. 全エントリをローカルにダウンロードする
これは blogsync で可能です。
blogsync については、以下のエントリを見て頂ければと思うのですが、はてなブログAtomPub - Hatena Developer Center を使って、 ブログエントリのローカルファイルシステムとのやりとりを行えるツールです。
ぼくの場合、まず、$HOME/.config/blogsync/config.yaml
に以下のような設定を行います。
kiririmode.hatenablog.jp: username: kiririmode password: PASSWORD default: local_root: /Users/kiririmode/hatenablog
その後に、
$ blogsync pull kiririmode.hatenablog.jp
とするだけで、ローカルにエントリがダウンロードされます。 ぼくの場合、2443 の markdown ファイルができました。たとえば昨日のエントリは、以下のようになります。フォーマットとしては Front matter っていうヤツみたいですね。
$ cat ~/hatenablog/kiririmode.hatenablog.jp/entry/20180507/1525650708.md | head -15 | cat -n 1 --- 2 Title: 「入門Kubernetes」を読んだ 3 Category: 4 - book 5 - infra 6 Date: "2018-05-07T08:51:48+09:00" 7 URL: https://kiririmode.hatenablog.jp/entry/20180507/1525650708 8 EditURL: https://blog.hatena.ne.jp/kiririmode/kiririmode.hatenablog.jp/atom/entry/17391345971642224256 9 --- 10 11 入門 Kubernetes を読みました。 12 13 [asin:4873118409:detail] 14 15 冒頭の「はじめに」でも記載がありますが、本としては「使い方」と「概念」に重きを置いた構成になっています。
2. ダウンロードしたファイル上でカテゴリを変更する
ワンライナーでも良いのですが、今回は Emacs の helm-ag を使いました。
なんか色々書いても良いのですが、便利さがなかなか伝わらないので動画にしました。
helm-ag では、全エントリを enlightment
で検索して、それを enlightenment
に一気に置換するってことをやっています。
3. はてなブログ本体へ反映する
さきほど変更したファイルを blogsync
に渡すだけですね。
$ find . -mmin -120 -type f -name \*.md | xargs -n1 blogsync push GET ---> https://blog.hatena.ne.jp/kiririmode/kiririmode.hatenablog.jp/atom/entry/8454420450078217445 200 <--- https://blog.hatena.ne.jp/kiririmode/kiririmode.hatenablog.jp/atom/entry/8454420450078217445 PUT ---> https://blog.hatena.ne.jp/kiririmode/kiririmode.hatenablog.jp/atom/entry/8454420450078217445 200 <--- https://blog.hatena.ne.jp/kiririmode/kiririmode.hatenablog.jp/atom/entry/8454420450078217445 store /Users/kiririmode/hatenablog/kiririmode.hatenablog.jp/entry/20070405/1181142740.md (snip)
ずっと二の足を踏んでいたのですが、サクっとできるようになって本当によかった…。