エンピツ日記からの移行(技術的な事)

エンピツ日記であるが、一応エクスポート機能がある。
本文についてはテキストではあるが月ごとにエクスポートする機能は機能しているため、
これを使うのが良いかと思う。

一括エクスポートはCGIがメンテナンスされていないためか、機能していない
(記事作成時点)また、画像ファイルのエクスポート機能は存在しない。

上記の条件のため、今回のプロジェクトは下記2つに分けられる
1.本文のみMT形式(インポートするための最低限)に変換したファイルを生成すること
2.画像ファイルを一括ダウンロードしてアーカイブすること

エクスポートされた日記のフォーマット

YYYY年MM月DD日(曜日)
YYYYMMDD
タイトル
---+---+---+---+++---+---+---+---
本文
(画像ファイルへのリンクがある場合は下記)
<img src="URL"><br clear=all>
----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----

長いことWeb技術から離れていたためCMSとか言われても完全に浦島太郎状態であったが、
MT形式のインポートについては下記記事を見つけた。

www.movabletype.jp

MT形式でのインポートについてはテキストファイル形式で良く、タグのルールに従えば
できそうな気がした。実験として下記内容のテキストファイルを読み込んでみた。
効率よく変換するため使用するタグは最低限のものとした。

TITLE: A dummy title
STATUS: Draft
CONVERT BREAKS: 1
PRIMARY CATEGORY: 日記(非公開)
DATE: 04/13/2004 00:00:00 PM
-----
BODY:
これは本文です。
-----

特に問題なく読み込めた
f:id:milkmanjapan:20181103222413p:plain

しかもよく見たらどうもリンクから画像を取り込むシステムがあるっぽい。
至れり尽くせりである。

f:id:milkmanjapan:20181103222708p:plain

試しに下記のような感じでエンピツからエクスポートしたままの本文を張り付けて
読み込ませてみたが、ちゃんと画像ファイルをインポートしてくれた。非常に優秀である。

TITLE: A dummy title
STATUS: Draft
CONVERT BREAKS: 1
PRIMARY CATEGORY: 日記(非公開)
DATE: 04/13/2004 00:00:00 PM
-----
BODY:
これは本文です。
<center><img src="http://usrimg.enpitu.ne.jp/usrX/XXXXXXX"><br clear=all></center> 
3行目です。
-----

つまりある程度自動処理するとしたら下記のような流れとなる

(ループスタート)
---+---+---+---+++---+---+---+--- の2行前のYYYYMMDDを変数Aで記録
---+---+---+---+++---+---+---+--- の1行前の文字列をタイトルとして変数Bで記録
---+---+---+---+++---+---+---+--- を変数F行(初期値0)から検索し行数を変数Cで記録(見つからなければ終了)
----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+---- の行数を変数Dで記録
C-D行間を本文として変数Eに格納
フォーマットに従い、別途Export.txtに出力
変数D+1を変数Fとする
(ループエンド)

複数記事の場合に1つの記事の終わりがハイフン5つではなく8つとなっているので、そこは合わせる必要がある。

とはいえこの程度であればコマンドプロンプトベースでも変換が可能かなと思う。

次の記事ではできればソースを公開して変換を完了させたい