はてなブログで投稿する時にカテゴリーを設定できるのですが、カテゴリーは複数設定できるので、タグみたいなものかなと適当に設定していました。
過去記事を見ることもなさそうだし、であればカテゴリーを使うこともなく、特に困らないかと思っていたのですが、そのうちブログネタとして、各種メモ・Tips・備忘録などを投稿していると、段々ブログが自分用Wikiのようになってきて、自分で過去記事を参照することが増えてきました。
そうすると、過去記事を見つけようにも、思いつきでカテゴリーを設定していたので統一感なくバラバラで見つけづらくなってきました。
そんなこともあって、いつかカテゴリーをまとめて設定し直したいなぁと思っていたのですが、記事1つ1つ設定し直すのは大変でやる気になりませんでした。
また、使っているうちに、カテゴリー名を変えたり、カテゴリーの付け替えをしたくなることもありそうなので、手作業ではなく、全ての記事のカテゴリーを一元管理して、 一括で全てのカテゴリーを修正・更新できるようにしたいなぁと思っていました。
解決方法
はてなブログのAPIを使えば、カテゴリーの一元管理はできそうでしたが、実装までの手数が多そうでしたので、そのうちやろうと思いつつ放置していました。
そんな中、はてなブログのバックアップと投稿ができる下記ツールを知り、それを使えば、はてなブログのAPIを直接使うより楽に実現できそうだったので、 カテゴリー一元管理をやってみることにしました。
blogsyncについて
blogsyncは、はてなブログから全ての記事をダウンロードしてバックアップできるツールです。
記事毎にファイル分けされてローカルにダウンロードしてくれます。
ダウンロードしたファイルを修正して、それをブログにアップすることにより、記事の修正もできます。
方針
- ダウンロードしたファイルから、記事毎に設定されているカテゴリー一覧をCSV出力しました。
- ExcelでCSVを編集して、カテゴリーの追加・削除・変更を行い、CSVに保存し直します。
- 更新したCSVを元に、ダウンロードしたファイルのカテゴリー情報を更新します。
- ファイルをアップして、実際の記事のカテゴリーに反映させます。
結果
うまくいきました!
ファイル操作とblogsyncのコマンド呼び出しだけで実装できるので、APIを直接使うより全然楽です。
また、blogsyncは、はてなブログのバックアップツールなので、そのままバックアップ用途としても使えて一石二鳥です。
記事の内容更新はファイルの編集だけで行えるので、ついでにいくつかおまけ機能を追加してみました。
おまけ(カテゴリー補完)
同じものを指すカテゴリーでも、複数の呼び名があるケースがあります。
例えば「ラズベリーパイ」だと「RapberryPi」、「AWS」だと「Amazon Web Service」などです。
このあたりの設定忘れが多いのですが、毎回入れ直すのも手間で放置していたのですが、下記図のような関連Excelを作って、CSVを出力する際に、設定忘れがあった場合は自動でカテゴリーを追加するようにしました。
おまけ(メインカテゴリー)
1つの記事に複数のカテゴリーを登録しているので、1つのカテゴリーに様々な粒度の記事が混ざって表示されます。
色んな記事を発見するには便利なのですが、記事を分類・整理するには1記事1カテゴリーの方がやりやすく、記事に対してメインカテゴリーを決めるようにしました。
しかし、はてなブログには「メインカテゴリー」の概念がないので、記事に対するメインカテゴリー情報は別途ローカルに用意して、CSV出力時にメインカテゴリー情報を補完し、 CSV取り込み時にメインカテゴリー情報を更新するようにしました。
メインカテゴリー応用(関連カテゴリー記事)
記事の最後に、同じメインカテゴリーの別記事一覧を、「関連カテゴリー記事」として一覧表示されるようにしてみました。
この記事の最後にも表示されている(はずです)。
メインカテゴリー応用(カテゴリー一覧)
はてなブログのカテゴリーの記事一覧機能を使うと、メインカテゴリーではない記事も表示されるので、全体のメインカテゴリーとその記事を一覧できるページを自動生成するようにしてみました。
本ブログの「カテゴリー」メニューで見ることができます。
感想など
思いっきり自分用途向けですが、随分過去記事を見つけやすくなりました。
その一方、カテゴリーの更新作業が増えてしまいました…。
そもそもブログなのに、Wiki(CMS)としても使えるようにしようとした所に無理があったのかなぁ…。
かと言って、自分でWordPressサイト運営するのは面倒ですし、やっぱりマネージメントサービスを使いたいです。
また、カスタマイズの自由度が高すぎても、複雑になって逆に結局触らないので、今ぐらいの、ちょっといじってみようかなぁと感じる程度が丁度いいのかも知れませんね。
ついでに、カテゴリーと同じ名前でタグも登録するようにしたかったのですが、はてなブログAPIにはタグ編集機能は無いようで、それができなかったのが残念です。