はてなダイアリーの全文一括置換などを可能にする環境作り

前回の続きです。

はてなダイアリーが終了するので、はてなブログに移行しようと思う。それにあたって、いまのダイアリーの書き方をなるべくそのまま、はてなブログでも使えるようにしたいという話である。

いま、はてなダイアリーの更新には「はてダラ」と「はてダラスプリッタ」を使っている。

はてダラは「ローカルに作った『2004-08-19.txt』のようなテキストファイルの内容を、 はてなダイアリーの『2004年8月19日の日記』として書き込むPerlスクリプト」である。

はてダラスプリッタの説明は同じページにある。

これは「1個のファイルdiary.txtをはてダラ形式の複数ファイルに分解するツールです。(中略)これを使うと、日記を書くときに編集するファイルがいつもdiary.txtだけになって便利です」というもの。

これらを使った、はてなダイアリーの更新手順は以下である。

  1. ダイアリーの全テキストをおさめたテキストファイルに新しい記事を書く。
    f:id:Imamura:20180904231745p:plain
  2. コマンドプロンプトから、はてダラスプリッタとはてダラを実行する(というバッチファイルを実行する)。
    f:id:Imamura:20180904231746p:plain
  3. ダイアリーが更新される。
    f:id:Imamura:20180904231747p:plain

上げた記事を書き直したいときは、diary.txtを修正して同じバッチファイルをもう一度実行すればよい。ダイアリーの編集画面は基本的に使わない。編集画面を使うのは、エントリの登録前に見栄えをチェックしたいときくらいである。

この方式が便利なのは、ダイアリーの内容の全文検索や一括置換を、使い慣れたテキストエディタでできるところだ。

たとえばはてなダイアリーはてなブログにインポートする前に、改行の扱いをはてなブログに合わせたい(前回の記事参照)という場合も、テキストファイルを一括置換して「はてダラスプリッタ」と「はてダラ」にかけてあげればよい。いったんすべての改行を改行2つに置換してから、行頭で連続させることが重要なはてな記法、「-」、「+」、「:」、「|」あたりが連続している行の改行を詰めてあげればよさそう。正規表現を使えば簡単だ。

はてダラ」を使い始める前の日記を「はてダラ」形式に変換して、「diary.txt」に加える方法は以前書いた。

こうしておけば、全記事を簡単に編集できるようになる。過去の日記というのは「Imamuraの日記」だけでなく、それ以前にネットに書いてきた日記的なコンテンツすべてである。1997年から現在までの日記を1つのテキストファイルに入れてある。20年前に書いたこともすぐに読めるのはライフログ的でなかなかいい。

その結果「diary.txt」は現在15MBという大きさになっている。URLなども含まれるから全部自分でタイピングしたわけではないとはいえ、テキストファイルでこのサイズとは我ながらたくさん書いたものだと思う。

さて、はてなブログで同じような更新環境を整えることはできるだろうか。

テキストファイルからはてなブログを更新する「はてなブログライター」はすでにあり、便利に使わせてもらっている。

はてなブログライターで作ったエントリははてなブログライターの管理下に入る。複数のテキストファイルにまたがって検索するgrep機能を使えばローカルでの過去記事の検索は可能だ。grep機能はテキストエディタが提供していたり、専用のツールがあったりする。ただ、すべての記事が1つのテキストファイルにまとまっているのに比べると便利さはもう一つ。

また、「はてなブログライター」を使わずに登録したエントリを「はてなブログライター」の管理下に入れる方法はない。と思う。そこがちょっとねえ、なんだけれど作者のid:rnaさんが必要性を感じていないなら仕方がない。そして「はてダラスプリッタ」を「はてなブログライター」向けに自分で移植するスキルもない。

来年の春、「はてなダイアリー」が終了する前にいい感じになってくれるといいな。他力本願ですみません。

次回は、はてなダイアリーはてなブログへ移行させるにあたって、はてなブログにないこんな機能がほしいという話をする。

追記

はてなブログライター」を使わずに登録したエントリを、「はてなブログライター」で管理できるようにしたい。原理的に可能なのか聞いてみたら「できることはできるけど」という話だった。

とすると、はてなブログのAtomPubでメタデータだけ取得するようなAPIを実装してもらえるといいんだな。(フィードバック済み)