Apr 17, 2009

MTからBloggerへの移行についての覚え書き(1)

MTからBloggerにデータを移行する方法はおおまかに言って2つあります。一つは「設定」→「基本」→「ブログツール」の「ブログをインポート」を使う方法、もう一つは言わずもがなですが、Blogger Data APIを使う方法です。この覚え書きでは前者について説明します。

何らかの方法でMTデータをBloggerのインポートファイル形式(Atomフィード形式)で書き出しておき、「設定」→「基本」→「ブログツール」の「ブログをインポート」でインポートすれば、MTからBloggerにデータを移行できます。MTのエクスポートファイルをBloggerのインポートファイルに変換するPythonスクリプトもあります。

google-blog-converters-appengine - Google Code

ただし、このスクリプトはまだまだ品質が低いです。多言語の取り扱いが不完全、コメントデータがインポートできない、すべてのエントリのフォーマッタとしてconvert_breaksを使うことを前提にしている、などの問題があります。コメントデータを無視して良いなら、わざわざこのツールを使わなくてもMTのインデックステンプレートとして以下のものを使っても同じ効果が得られます。

<?xml version="1.0" encoding="<$mt:PublishCharset$>"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title><$mt:BlogName remove_html="1" encode_xml="1"$></title>
    <link rel="alternate" type="text/html" href="<$mt:BlogURL encode_xml="1"$>" />
    <link rel="self" type="application/atom+xml" href="<$mt:Link template="feed_recent"$>" />
    <id>tag:<$mt:BlogHost exclude_port="1" encode_xml="1"$>,<$mt:TemplateCreatedOn format="%Y-%m-%d"$>:<$mt:BlogRelativeURL encode_xml="1"$>/<$mt:BlogID$></id>
    <updated><mt:Entries lastn="1"><$mt:EntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></mt:Entries></updated>
    <mt:If tag="BlogDescription"><subtitle><$mt:BlogDescription remove_html="1" encode_xml="1"$></subtitle></mt:If>
    <generator>Blogger</generator>
<mt:Entries lastn="2000">
<entry>
    <title><$mt:EntryTitle remove_html="1" encode_xml="1"$></title>
    <link rel="alternate" type="text/html" href="<$mt:EntryPermalink encode_xml="1"$>" />
    <id><$mt:EntryAtomID$></id>
    <published><$mt:EntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
    <updated><$mt:EntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>
    <author>
        <name><$mt:EntryAuthorDisplayName encode_xml="1"$></name>
        <mt:If tag="EntryAuthorURL"><uri><$mt:EntryAuthorURL encode_xml="1"$></uri></mt:If>
    </author>
    <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/blogger/2008/kind#post" />
    <mt:EntryCategories><category term="<$mt:CategoryLabel encode_xml="1"$>" scheme="http://www.blogger.com/atom/ns#" /></mt:EntryCategories>
    <mt:EntryIfTagged><mt:EntryTags><category term="<$mt:TagName normalize="1" encode_xml="1"$>" scheme="http://www.blogger.com/atom/ns#" /></mt:EntryTags></mt:EntryIfTagged>
    <content type="html" xml:lang="<$mt:BlogLanguage ietf="1"$>" xml:base="<$mt:BlogURL encode_xml="1"$>"><$mt:EntryBody encode_xml="1"$><$mt:EntryMore encode_xml="1"$></content>
</entry>
</mt:Entries>
</feed>

この方法には致命的な問題があります。それは(まとめてインポートしてしまうので)後からMTの元のエントリとBloggerのエントリを対応づける方法がなくなってしまうことです。古いURLから新しいURLへリダイレクトすることができませんし、後からコメントをインポートする方法が見つかったとしても、どのBloggerのエントリに対応づければよいのか分からなくなってしまいます。個人的にはお勧めできません。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com