誰がログ

歯切れが悪いのは仕様です。

はてなグループ日記のデータをインポートしました+処理に使った正規表現のメモ

はてなグループ日記のエクスポートデータをそのままインポートしたところ,いくつか気になるポイントがあったので一旦取り消し,いくつか処理をしてインポートし直しました。その処理の一環でインポートした日記はすべてカテゴリー「Hatena Group」に入れましたので,下記から一覧できます。

dlit.hatenadiary.com

記事に付いていたはてなブックマーク等は消えてしまいましたが,コメントもインポートされるのはやはり良いですね。コメント内の改行やリンクの処理がうまくいってないように見えますが,それほど問題はないようでしたので私の記事では特に処理せずそのままにしています(そのうち直すかも)。

おすすめ?記事

もともと記事数は少ないのですが,以前はてなブックマークが複数付いていた記事は下記ぐらいです。

dlit.hatenadiary.com dlit.hatenadiary.com dlit.hatenadiary.com dlit.hatenadiary.com

正規表現による処理

基本的なことができる方にとっては朝飯前のものばかりでしょうし,おそらくもっとエレガントな処理方法があるような気がします。私はそれほど詳しくなくて力技的解決が多いのであくまでご参考まで。あとエクスポートデータをもう一度もらうというのは難しいかもしれないので必ずファイルのバックアップを確保してから試して下さい。

エディタはAtomです。正規表現による検索・置換と改行の検索・置換はそれぞれ設定をONにしないとできないので慣れていない方はご注意下さい。

キーワードタグの削除

エクスポートデータをそのままインポートすると,旧はてなキーワードへのリンクがすべてはてなブログタグへのリンクになっていることに気付くと思います。直接HTMLで書き込まれているので,ブログのキーワードリンクの設定では外せないようです。

検索 (find):<a class="okeyword" href="http://d.hatena.ne.jp/keyword/.*?">(.*?)</a>
置換 (replace):$1

で一括置換を実行(?で最短一致にしないとたぶん置換の対象が広くなってしまってまずいのでご注意下さい)。“(.*?)”の部分が“$1”に入るのでタグの部分が削除される結果になります。

タイトルタグの削除

記事のタイトルと同じものが h3タグとして本文にも入っています。そのままでも気にならない人もいるかもしれません。

検索 (find):<h3 class="title">.*?</h3>
置換 (replace):何も入力しない

で一括置換。上と違い最短一致にしなくても処理は変わらないと思いますが念のため。これだと空行ができてしまうので,私はさらにdivタグ+改行をdivタグに置換してむりやり空行を消しましたが,もっと楽な方法あるんでしょうか。

カテゴリーの追加

どうもインポートした記事をインポート実行後に探すのが難しいようなので,先にカテゴリー情報を付与してしまうことにしました。

検索 (find):STATUS: (.*)\nDATE: (.*)
置換 (replace):STATUS: $1\nDATE: $2\nCATEGORY: 付与したいカテゴリー名
(改行はLFを選択,\nが改行部分)

で一括置換。カテゴリーは先に作っておかなくても,インポートすれば自動的に作成されるようです。

なんでわざわざSTATUSの行まで入れて置換しているかというと(このやり方だと)DATEの行だけで置換するとコメントも検索対象になっちゃってコメントにもカテゴリー指定の文字列を入れてしまうからです。STATUSの値は,下書きがなければすべて“Publish”だと思うのでそのまま書いちゃっても良いと思いますが念のため。

そのほか

タイトルに含まれている&や“”,’が変な処理になっていましたが,数が少なかったので手動で修正しました(本文は大丈夫なようです)。記事数が多い方は一括処理が良いかもしれません。