MovableTypeの最近のブログ記事

MovableTypeのデフォルトのフィードテンプレートでは、エントリ本文が段落分けされずに出力されるため、RSSリーダなどで表示するととても読みにくいです。

例えばatom.xmlだと、テンプレートはこんな感じになっているはずです。

<$MTEntryBody encode_xml="1" convert_breaks="0"$>
<$MTEntryMore encode_xml="1" convert_breaks="0"$>

属性「convert_breaks」の値を「1」にすると改行および段落分けが反映され、「0」にすると反映されません。なので

<$MTEntryBody encode_xml="1" convert_breaks="1"$>
<$MTEntryMore encode_xml="1" convert_breaks="1"$>

としておくとよいです。
そもそもなんでデフォルトは0なのだろうか。

Movabletypeの改行を変換する

| 0 Comments | 0 TrackBacks

Movabletypeには「改行を変換する」という機能があり、brタグを挿入しなくても自動的に改行されてとても便利なのですが、preタグの中の改行にもbrタグを挿入してしまい、二重に改行されるなどの面倒な点があります。

で、これを改善させるにはMT/Util.pmを直接編集してもよいのですが、アップデートする際にとても不便。プラグインで対応するのが吉です。というわけで探してみたら丁度よいものがありました。

「改行を変換する」を改良するプラグイン
http://www.h-fj.com/blog/archives/2005/08/28-160725.php

このプラグインをインストールすると、投稿時のテキストフォーマットで「改良テキストフィルター」を選べるようになります。

「改良テキストフィルター」を使用すると、以下の要素では内部の改行はそのまま出力されるようになります。また、要素の中に空行があっても、そこでは要素は分割されません。

pre textarea table ol dl ul menu dir

以上の要素では内部の改行はbrタグに変換されます。ただし、開始タグ直後の改行と終了タグ直前の改行はbrタグに変換せずそのまま出力します(←これ結構重要!)。

blockquote div p h1 h2 h3 h4 h5 h6 form address


HTMLを含んだ投稿にやや難のあるMovabletypeですが、これでばっちりです。

最新n件をよそのページに貼り付ける

| 0 Comments | 0 TrackBacks

Movabletypeでつくったブログの最新n件を、よそのページに貼り付ける方法。

やりたいことは、Movabletype側で最新n件のエントリーリストを作成して、それを他サイト(別ドメイン)の任意のページから呼び出せるようにすること。

エントリーリストの作成はMovabletypeのインデックステンプレートを増やせばよい。で、このテンプレートの出力ファイル名をJavascriptファイル(hoge.js)にしておく。ここがミソ。

ソースはこんな感じ。

<MTEntries lastn="3">
document.writeln('<p class="date"><MTDateHeader<$MTEntryDate format="%Y/%m/%d "$></MTDateHeader></p>');
document.writeln('<p class="article"><a href="<$MTEntryPermalink valid_html="1"$>"><$MTEntryTitle$></a></p>');
</MTEntries>

貼り付け先がPHPとかならPHPで出力してインクルードさせればよいですが、セキュリティの問題もあります。そこでJavascriptって賢いなー誰が考えたんだ。古典的な手法な気もするけどMovabletypeを使うとなぜか新鮮。当然ですが日付やエントリタイトルをマークアップしているタグは適当に貼り付けるサイトにあわせましょう。

ちなみに貼り付けはこんな感じ。

<script type="text/javascript" src="http://www.hoge.com/hoge.js"></script>

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMovableTypeカテゴリに属しているものが含まれています。

前のカテゴリはMacです。

次のカテゴリはPhotoshopです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。