movabletype.jp
検索
[ Movable Type 4 ドキュメント ]

Movable Type のブログ記事インポートフォーマット

Movable Type のブログ記事インポートフォーマットを使うと、他のシステムで作成したブログ記事やコメントを登録できます。

読み込みフォーマットでは、ブログ記事を --------\n ( - の8文字と改行コード) の文字列によって区切ります。 各ブログ記事は、次の2つの主要なセクションから成り、各セクションは、 -----\n (「 - 」の5文字と改行コードの文字列) によって区切ります。

読み込むデータに HTML が含まれている場合は、HTML エンコードを使用しないでください。読み込みファイルのデータは Movable Type のデータベースにそのままの形式で読み込まれます。 したがって、読み込むデータは、新しいブログ記事を作成するときに入力するデータとまったく同じ形式にしてください。

メタデータ・セクション

メタデータは、KEY: VALUE の形式で記述し、改行コードによって区切ります。 KEYとVALUEの区切りは、: です。: の後の半角スペースを忘れないでください。また、メタデータの順序に影響は受けません。

AUTHOR: Foo Bar
TITLE: A dummy title
BASENAME: filename
STATUS: Publish
ALLOW COMMENTS: 1
ALLOW PINGS: 1
CONVERT BREAKS: richtext
PRIMARY CATEGORY: News
CATEGORY: News
CATEGORY: Product
DATE: 08/08/2007 03:00:00 PM
TAGS: "Movable Type",foo,bar
AUTHOR:

ブログ記事の作成者名です。該当の作成者がシステムに登録されていない場合は、システムに追加し、該当のブログへの投稿の権限を設定します。

このメタデータを有効にするために、ブログ記事の読み込み操作は、システム管理者またはブログ管理者の権限がある方が、ブログ記事の作成者を自分にするオプションにチェックを付けて、行ってください。

TITLE:

ブログ記事のタイトルです。指定しない場合は、ブログ記事本文の先頭から自動的に生成されます。

BASENAME:

ブログ記事の出力ファイル名です。特に指定のない場合も構築後にファイル名が入力されます。

STATUS:

ブログ記事の状態です。Draft (下書き) または Publish (公開)、Future (指定日公開) のどちらかを設定します。大文字・小文字の区別はありません。STATUS キーが設定されていない場合は、ブログの設定の初期値を適用します。また、設定値に誤りが見つかった場合、処理を終了してブログ記事を登録しません。

ALLOW COMMENTS:

ブログ記事のコメントを受信に関するフラグです。0 (受け付けない) または1 (受け付ける) のどちらかを設定します。ALLOW COMMENTSキーが設定されていない場合は、ブログの設定の初期値を適用します。

ALLOW PINGS:

ブログ記事のトラックバックを受信に関するフラグです。0 受け付けない) または1 (受け付ける) のどちらかを設定します。ALLOW PINGSキーが設定されていない場合は、ブログの設定の初期値を適用します。

CONVERT BREAKS:

ブログ記事の改行設定に関するフラグです。CONVERT BREAKS キーが設定されていない場合は、ブログの設定の初期値を適用します。

  • 0 (なし)
  • 1 (改行を変換)
  • markdown (Markdown)
  • markdown_with_smartypants (Markdown with Smartypants)
  • richtext (リッチテキスト)
  • textile_2 (Textile 2)
PRIMARY CATEGORY:

ブログ記事のメインカテゴリです。インポート先に該当のカテゴリが登録されていない場合、自動的に追加されます。

CATEGORY:

ブログ記事のサブカテゴリです。複数の CATEGORY キーをメタデータ・セクションに記述することで、複数のカテゴリを設定できます。カテゴリが登録されていない場合、自動的に追加されます。

CATEGORY: Foo
CATEGORY: Bar

PRIMARY CATEGORYで指定したカテゴリが、CATEGORYとしても指定されている場合、そのカテゴリは、サブカテゴリのリストから自動削除され、メインカテゴリとして設定されます。また、PRIMARY CATEGORY を指定せず、CATEGORYを使って指定した場合は、最初のCATEGORYの内容を、メインカテゴリとして設定します。

DATE:

ブログ記事の投稿日時です。フォーマットは、MM/DD/YYYY hh:mm:ss AM|PM です。AM|PM はオプションで、それがない場合、時刻は24時間制で処理します。

TAGS:

ブログ記事に設定したタグです。複数のタグが設定されている場合は , (カンマ) で区切ります。

もし、半角スペースを含むタグの場合は、"tag name" のように、" (ダブルクォーテーション) でかこみます。

NO ENTRY:

特定の日付のブログ記事について、コメントやトラックバックを読み込むための特別なキーです。このメタデータは、DATE キーで指定した作成日のブログ記事を検索し、ブログ記事があった場合のコメントやトラックバックを登録します。

CF50_BASENAME:

ブログ記事のカスタムフィールドを記述します。CF50_に加えてカスタムフィールドのベースネームを記述します。例えば、ベースネームがmy_fieldの場合は、CF50_MY_FIELD: に続けて、カスタムフィールドの内容を記述します。カスタムフィールド自体の設定は自動ではインポート/エクスポートされないため、インポートするブログで同じベースネーム、タイプのカスタムフィールドを予め作成する必要があります。カスタムフィールドは、Movable Type Pro の機能です。

複数行フィールド・セクション

複数行フィールドは、 -----\n (-の5文字と改行コード) の文字列によって区切ります。 次の例のように、複数行フィールドは、フィールドの型を表示するキーで始まり、その後に改行コード、フィールドの内容、の順で構成します。

BODY:
これは本文です。
----
EXTENDED BODY:
ここに本文の追記が表示されます。
----
EXCERPT:
ここに概要が表示されます。
----
KEYWORDS:
ここにキーワードが表示されます。
-----
COMMENT:
AUTHOR: Foo
DATE: 01/31/2002 15:47:06
ここにこのコメントの本文が来ます。
-----
PING:
TITLE: Foo Bar
URL: <a href="http://www.example.com/baz/archives/000015.html">http://www.example.com/baz/archives/000015.html</a>
DATE: 08/05/2002 04:05:23 PM
ここに ping したトラックバックの概要がきます。
-----
BODY:

ブログ記事の内容 (body) を記述します。

EXTENDED BODY:

追記 (more) を記述します。

EXCERPT:

概要 (excerpt) を記述します。

KYEWORDS:

キーワード (keywords) を記述します。

COMMENT:

このブログ記事に対する1つのコメントを示します。 複数のCOMMENTセクションを記述することができます。複数のセクションを記述する場合、複数行フィールド・セパレータ (-----\n) によって区切ります。また、COMMENT セクションでは、次のフィールドを記述できます。

  • AUTHOR: コメント投稿者名。
  • EMAIL: コメント投稿者の電子メールアドレス。
  • URL: コメント投稿者のURL。
  • IP: コメント投稿者のIPアドレス。
  • DATE: コメントが投稿された日時。DATEキーと同じフォーマットにする必要があります。

上記のキーのうち、どれとも一致しない行から、コメントの本文が始まります。この行からCOMMENT セクションの終わりまでを、コメントの本文として扱います。

PING:

このブログ記事に対する1つのトラックバックを示します。複数のPINGセクションを記述することができます。複数のセクションを記述する場合、複数行フィールド・セパレータ (-----\n) によって区切ります。また、PING セクションでは、次のフィールドを記述できます。

  • TITLE: トラックバックのタイトル。
  • URL: トラックバック元へのURL。
  • IP: トラックバックを送ったサーバーのIPアドレス。
  • BLOG NAME: トラックバックの送信元のブログの名前。
  • DATE: トラックバックが送られた日時。DATEキーと同じフォーマットにする必要があります。

上記のキーのうち、どれとも一致しない行からトラックバックの概要が始まります。この行からPING セクションの終わりまでを、トラックバックの概要として扱います。

2件のブログ記事分のブログ記事インポートフォーマットサンプル

2件のブログ記事の内容を含む、ブログ記事インポートフォーマットのサンプルです。

AUTHOR: Foo Bar
TITLE: A dummy title
BASENAME: filename
STATUS: Publish
ALLOW COMMENTS: 1
ALLOW PINGS: 1
CONVERT BREAKS: richtext
PRIMARY CATEGORY: News
CATEGORY: News
CATEGORY: Product
DATE: 08/08/2007 03:00:00 PM
TAGS: "Movable Type",foo,bar
-----
BODY:
これは本文です。
-----
EXTENDED BODY:
ここに追記の本文が表示されます。
-----
COMMENT:
AUTHOR: Foo
DATE: 01/31/2002 15:47:06
ここに
このコメントの本文が来ます。
-----
COMMENT:
AUTHOR: Bar
DATE: 02/01/2002 04:02:07 AM
IP: 205.66.1.32
EMAIL: me@bar.com
これは2番目の
コメントです。 これは
ここまで来ます。
-----
PING:
TITLE: My Entry
URL: <a href="http://www.example.com/old/2002/08/">http://www.example.com/old/2002/08/</a>
IP: 206.22.1.53
BLOG NAME: My Weblog
DATE: 08/05/2002 16:09:12
これがトラックバック元の My Entry の概要。
-----
--------
AUTHOR: Foo Bar
TITLE: 2件目のブログ記事 
BASENAME: filename
STATUS: Publish
ALLOW COMMENTS: 1
ALLOW PINGS: 1
CONVERT BREAKS: richtext
PRIMARY CATEGORY: News
CATEGORY: News
CATEGORY: Product
DATE: 08/08/2007 03:00:00 PM
TAGS: "Movable Type",foo,bar
-----
BODY:
これは2番目のブログ記事の本文です。 これは
複数行から成ります。
-----
EXCERPT:
このブログ記事は追記がありませんが、
概要はあります。 特殊な例です。
-----
COMMENT:
AUTHOR: Quux
URL: <a href="http://www.quux.com/">http://www.quux.com/</a>
DATE: 01/31/2002 04:23:01 PM
このブログ記事に対する最初のコメントを示します。
-----
--------

Movable Type 4 以前のバージョンからのブログ記事インポート

たとえば、データベースのバックアップなどが困難な環境で、ブログ記事のデータをMovable Type 3.3 から Movable Type 4 へブログ記事をインポートする場合、Movable Type 3.3 でエクスポートされたブログ記事データにはタグなどの情報が含まれません。その場合、以下のようなテンプレートを Movable Type 3.3 のインデックステンプレートに追加し、出力されたデータを Movable Type 4 にインポートすることもできます。

<MTEntries lastn="99999">AUTHOR: <$MTEntryAuthor$>
TITLE: <$MTEntryTitle$>
BASENAME: <$MTEntryBasename$>
STATUS: <$MTEntryStatus$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
PRIMARY CATEGORY: <$MTEntryCategory$>
<MTEntryAdditionalCategories>CATEGORY: <$MTCategoryLabel$>
</MTEntryAdditionalCategories>
DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
TAGS: <MTEntryTags glue=",">"<$MTTagName quote="1"$>"</MTEntryTags>
-----
BODY:
<$MTEntryBody$>
-----
EXTENDED BODY:
<$MTEntryMore$>
-----
EXCERPT:
<$MTEntryExcerpt$>
-----
KEYWORDS:
<$MTEntryKeywords$>
-----
<MTIfNonZero tag="MTEntryCommentCount"><MTComments>COMMENT:
AUTHOR: <$MTCommentAuthor default=""$>
EMAIL: <$MTCommenterEmail$>
URL: <$MTCommentURL$>
IP: <$MTCommentIP$>
DATE: <$MTCommentDate format="%m/%d/%Y %I:%M:%S %p"$>
<$MTCommentBody convert_breaks="0"$>
-----
</MTComments></MTIfNonZero><MTIfNonZero tag="MTEntryTrackbackCount"><MTPings>PING:
TITLE: <$MTPingTitle$>
URL: <$MTPingURL$>
IP: <$MTPingIP$>
BLOG NAME: <$MTPingBlogName$>
DATE: <$MTPingDate format="%m/%d/%Y %I:%M:%S %p"$>
<$MTPingExcerpt$>
-----
</MTPings></MTIfNonZero>
--------
</MTEntries>