ウェンブ

フロントエンドエンジニア うぇびんのよしなし語り

WordPress→a-blog cmsに強引なコンバートをして失敗したメモ

移転前のブログから過去記事を移動したのですが…
結果は過去の記事を見てもらった通りです…ぐっちゃぐちゃですね;;
日付が1970年になってるのまであるし。復旧に相当かかりそうですわ…

通常のCMSの内部機能を使ったら、こんなぐっちゃぐちゃになるわけないです。
本来はサポートされていないイレギュラーな方法をとったからです。

転んでもただでは起きないうぇびんたんなので、WordPress→a-blog cmsの移行に失敗したメモ残しておきます…

a-blog cmsはWordPress形式をサポートしていない

移転前のブログは、WordPressで更新していました。
ですが、現時点でa-blog cmsはMovableType形式とCSVはサポートしていますが、WordPress形式からのコンバートをサポートしていません。
(中の人に要望は出してます)

となると、WordPressにMovableType形式でエクスポートするプラグインを入れて対応するのがベストなのですが、WordPressはエクスポートの形式が頻繁に変わってしまうので、マルチバイト言語でも安心して使えるプラグインは存在しないようです。

WxrToMtで変換を行った場合の問題

そこで苦肉の策として、WordPressのエクスポートデータをMovable Type形式に変換するサービスを利用することにしました。

小物置き場 - WxrToMt

変換自体はうまくいって、コメントもちゃんとMovableType形式になりましたが…
日付が「01/29/2011 14:01:55 PM」という、あまり一般的でない書式になってしまいました。


コンバートの対象がMovableTypeであれば問題ないだろうと思うのですが、a-blog cmsでは大半の投稿時間を解釈することができず、エラーが出た記事は全部1970年1月1日になってしまいました。

号泣ものですね。ハイ。

【追記】日付書式は上記で合っています。MovableType公式のエクスポートデータは午前・午後表記となります。a-blog cmsが解釈できない場合不具合と考えられるのですが、現在検証中です。

アップロード画像の移動

過去にアップロードした画像の移行は、下記のように他のCMSと同じような手を使うことでうまくいきました。

  1. 画像は「http://blog.webbingstudio.com/uploads/」以下に入れていたので、「uploads」ディレクトリごとダウンロード
  2. a-blog cms(つまりサーバールート)の「archives」ディレクトリにアップロード
  3. エクスポートデータをテキストエディタで開き、 「http://blog.webbingstudio.com/uploads/」→「https://webbingstudio.com/uploads/」に一括検索・置換

MovableType形式のデータをa-blog cmsにコンバートした場合の問題

MT形式のデータをa-blog cmsにコンバートする手順は、公式サイトのマニュアルで解説されています。

Movable Typeデータからのコンバート | システムの運用 | サポート・マニュアル | a-blog cms - Web制作者のためのCMS

インストールのときに使用した「setup」ディレクトリを再度有効にして作業することになります。
公式のインポートなので問題ないだろう…と思いきや、ここでも予想外の問題が…

MovableTypeの文章フォーマットを表す「CONVERT BREAKS」の項目が

CONVERT BREAKS: __default__

と「default=MovableTypeの管理画面での初期設定に従う」になっていた場合、a-blog cmsではコードの改行部分全てに<br />を入れてコンバートしてしまうのです。

私はWordPressでは、見出しや区切り線、テーブル要素などもマークアップしていました。 それに全部改行が割り込んでしまったわけで…
まあ…詳しくは過去の記事を見てみてください…

【追記】これはWxrToMtのバグででした。すみません。
default」は「改行を変換」を表します。「一回改行をbr要素/二回改行をp要素/HTMLタグのみが書かれた行はそのまま表示」という、MovableTypeの独自フォーマットです。
WordPressからの変換の場合、本文はp要素・br要素を含めたソースコードとなります。つまり、CONVERT BREAKSは「richtext」となっていなければならないはずです。

尚、a-blog cmsは読み込むデータに読み込み先のブログと同じ名称のカテゴリーがあった場合、統合されずに別のカテゴリーと見なされてしまいます。
読み込み前に、既存記事のカテゴリーを削除しておいた方が無難と思います。


そんなこんなで、記事の移行作業は大失敗でした。
修正には当分かかりそうなので、「なんじゃこりゃ!読みにくいわ!」と思った方は旧ブログで同じ記事を探してくださいませ。

え?データベースをコンバート前に復元すればいいんじゃないかって?

バックアップ取るの忘れました… _ノ乙(、ン、)_