Okada Hiroshi の blog

typo が多いです

はてなダイアリーをインポートしたらカテゴリーがカオスになったので Python と テキストエディタ(Vim) の力を借りて修正しました

はてなダイアリー」が終了するので、インポート機能を使って、過去の記事を「はてなブログ」にインポートしました。

ところが、「はてなダイアリー」と「はてなブログ」でカテゴリーが統一されていなかったため、カテゴリーがカオスになってしまいました。

また、初期には「はてなダイアリー」を日記モードで書いていたため、タイトルが無い記事も多数存在していました。

これらを「はてなブログ」の Web 画面上から変更することは(僕には)苦痛だったので、 一括して変更するために、記事(entry)のタイトルとカテゴリーを読み書きするツールを Python で作成し、 テキストエディタで編集して変更しました。

github.com

まず、get-tc.py というスクリプトでタイトルとカテゴリーを読み出しました。

python get-tc.py --api-key=<APIキー> <ルートエントリーポイント> <出力ファイル名>

APIキーと、ルートエントリーポイントは、はてなブログの設定画面から取得できます。

Screenshot (API_KEY)

ファイルの中身は yaml 形式で、記事(entry)の配列になっており、ひとつの記事は以下の用になっています。

- categories:
  - カテゴリ1
  - カテゴリ2
  entry_id: エントリID
  link: 記事のURL
  published: 最初に書いた日付
  summary: 記事のサマリー
  title: 記事のタイトル

テキストエディタでこのファイルを書き換えました。 なお、タイトルとカテゴリ以外の項目は変更しても反映しないようにしました。

編集が終わったら、以下のコマンドで更新しました。

python update-tc.py --api-key=<APIキー> <ルートエントリーポイント> <入力ファイル名>

なお、エディタは vim をつかって次のような使い捨ての vimscript を作成し読み込んでから編集しました。

nnoremap q#  o- C#<ESC>
nnoremap qB  o- bash<ESC>
nnoremap qC  o- C<ESC>
nnoremap qD  o- Docker<ESC>
nnoremap qJ  o- JavaScript<ESC>
nnoremap qP  o- Python<ESC>
nnoremap qR  o- Ruby<ESC>
nnoremap qS  o- SSL<ESC>
nnoremap qd  o- 読書・マンガ・アニメ・映画<ESC>
nnoremap qi  o- IT<ESC>
nnoremap qk  o- 購入<ESC>
nnoremap ql  o- 生活・健康・旅行<ESC>
nnoremap qm  o- MS Office・Googleドキュメント<ESC>
nnoremap qn  o- ニュース・時代<ESC>
nnoremap qt  o- 投資・経済<ESC>
nnoremap q/  /^- categories<CR>