DasBlogからWordPressにブログをお引っ越し

P2101033.JPG

このブログに使用しているシステムを DasBlog から WordPress に変更しました。DasBlog は .Net Framework を利用したブログシステムで、Windows IIS サーバー上で動いています。それぞれの記事は投稿日別の XML ファイルとして保存されます。一方、WordPress は PHP を利用したブログシステムで、Apache サーバー上で動きます。記事の保存には MySQL データベースを利用しています。

 
記事の移し替え

ブログを乗り換えるときに大変なのが、これまでの記事を移し替える作業です。最近は記事の書き出しや読み込みができるブログも増えてきましたが、DasBlog と WordPress の間ではサポートされていません。今回は次のような作業を行いました。

(1) copy *.xml entries.xml コマンドで記事を1つの XML ファイルにまとめる。
(2) Microsoft Access にインポートした後、記事を CSV に書き出し
(3) CSV ファイルを MySQL にインポートする

(4) クエリを使ってデータを加工する
 ・ 投稿日のフォーマットを変更
 ・ DasBlog の記事番号と WordPress の記事番号の対応表を作る
 ・ コメント先の番号を置き換える
 ・ コメント数を集計して保存

(5) 記事をひとつひとつ変更
 ・ 本文の HTML タグを修正
 ・ カテゴリを設定しなおし
 ・ リード文の修正

URL の変換

ブログを乗り換えるとき、もうひとつ困るのが、記事の URL(パーマリンク)が変わってしまうこと。Apache サーバーの URL リダイレクトという機能と PHP スクリプトを使って、URL や記事の番号を変換する仕組みを作りました。

(1) DasBlog から WordPress へ URLを転送する

.htaccess ファイルに RedirectMatch コマンドを記述して、アクセス先の URL を次のように書き換えるよう設定しました。

(例) http://e-doc.no-ip.com/blog/PermaLink,guid,abcdefg,aspx
  → http://e-doc.no-ip.com/jump.php/abcdefg

(2) DasBlog から WordPress へ記事の番号を変換

次のような作業を行うスクリプトを記述し、DasBlog の記事番号から WordPress の記事番号を探して、該当する記事にアクセスする仕組みを作りました。

・ PATH_INFO や GET 文で古い記事の番号を取得
・ データベースに新しい記事の番号を問い合わせ
・ 新しい記事の URL を生成してジャンプ

Visual C# .net 2003 で dasBlog を拡張してみる

dasBlog の公式サイトからソースコードをダウンロードして Microsoft Visual C# .net 2003 を使って改良してみることにした (version 2002 ではプロジェクトを開けないので注意)。
 
dasBlog のソースはソリューションファイルがひとつと、いくつものプロジェクトファイル (フォルダ) から構成されている。まずどこで何をしているのか把握しなければならない。この中で実際に Web サーバーにアップロードされるのは newtelligence.DasBlog.Web プロジェクト (フォルダ) のみで、他のプロジェクトは newtelligence.DasBlog.Web フォルダ内へ DLL ファイルなどを生成する仕組みになっているようだ。

まず簡単なところからユーザーインターフェースの簡単な変更からはじめてみよう。newtelligence.DasBlog.Web プロジェクトのファイルを開いて、記事の要約を入力するテキストボックスを単一行から複数行表示に変更してみた。これで要約文の編集がしやすくなった。

次に RSS リーダーなどで記事を表示させたとき、要約文の後ろに “Read more …” というリンクをつけるようにする。RSS ファイルの生成には GetRss という名前のウェブサービスを利用しているので、処理をたどっていくと newtelligence.DasBlog.Web.Services プロジェクトの中に GetRssCore() 関数が見つかる。そこへ次の 1 行を追加すればいい。

item.Description = entry.Description;
item.Description += ”
Read more …“; // この行を追加

今後は Myblog Japan のサイトへ更新通知を行う機能を追加したい。Weblogs.com へ通知を送る機能はすでに持っているので、それを少し変更するだけでできるかも知れない。まずは更新通知の ping がどのような形式で送られているのか、そこから調べることにしよう。

簡単にURLとページのタイトルをコピーする

チャットなどで相手に URL を伝えるときには「URLを教える」というリンクを使う(試しにクリックしてみてください)。ブックマークなどに登録しておいて、サイトを表示しているときにクリックすると、タイトルとURLを一度にコピーできて便利。Javascript を使った小技で、こういう仕組みをブックマークレットというらしい。

dasBlog を使ってみた

ASP .NET と .NET Framework で動作する blog ツール、dasBlog を使ってみた。インストールの手順が画像つきで解説されていて、インストーラーもあるので設置はとても簡単。コメント、トラックバック、ping、電子メールでの投稿、画像のアップロード、電子メールによる通知、HTML エディタを使った記事編集など、機能も充実している。ソースファイルが公開されているので Visual Studio を使えば独自の機能拡張も (がんばれば) できる。

Movable Type や BlogX といった他の blog ツールと比べると、画面がすっきりしていて、blog の閲覧に慣れていないユーザーでもアクセスしやすいのも特長。

dasBlog
インストールの手順