Movable Type でショートコード

Movable Type でショートコード

Posted at February 4,2010 2:55 AM
Tag:[MovableType, Shortcode]

Movable Type で WordPress のショートコードっぽいことを行う記事がありましたので、紹介します。

Code Monkey Ramblings - "Shortcodes" in Movable Type/Melody

なお、本格的にショートコードを利用したい場合は、藤本壱さんのショートコードプラグインをおすすめします。

The blog of H.Fujimoto - ShortCodeプラグイン(Movable Type 5用)

さて、ショートコードを実現するためには簡単なプラグインを作成します。また、MTEntryBody タグに mteval モディファイアを予め設定しておく必要があります。

1.記事中に著作権表示をする

記事中に、MTCopyrightNotice タグを記述することで、著作権表示に置き換えるショートコードを作成します。

次の2つのファイルを作成します。

config.yaml

id: CopyrightShortcode
key: CopyrightShortcode
name: CopyrightShortcode
description: Provides a simple function that returns a copyright notice
tags:
    function:
        CopyrightNotice: CopyrightShortcode::_hdlr_copyright_notice

CopyrightShortcode.pm

package CopyrightShortcode;
use strict;
sub _hdlr_copyright_notice {
    return "Copyright 2010 John Smith. All rights reserved."
}
1;

作成後、各ファイルを次のように配置します。「MT_DIR」はアプリケーションディレクトリです。

MT_DIR/plugins/CopyrightShortcode/config.yaml
MT_DIR/plugins/CopyrightShortcode/lib/CopyrightShortcode.pm

2.記事中に引用文を表示する

記事中に、MTPullQuote タグを記述することで、タグの内容を blockquote タグで括ります。またMTPullQuote タグブロック内のテンプレートタグも評価します。

次の2つのファイルを作成します。

config.yaml

id: PullQuoteShortcode
key: PullQuoteShortcode
name: PullQuoteShortcode
description: Provides a simple function that returns a copyright notice
tags:
    block:
        PullQuote: PullQuoteShortcode::_hdlr_pullquotes

CopyrightShortcode.pm

package PullQuoteShortcode;
use strict;
sub _hdlr_pullquotes {
    my ($ctx, $args, $cond) = @_;
    my $out = $ctx->slurp($args, $cond) or return '';
    return "<blockquote class='pullquote'>$out</blockquote>";
}
1;

作成後、各ファイルを次のように配置します。

MT_DIR/plugins/PullQuoteShortcode/config.yaml
MT_DIR/plugins/PullQuoteShortcode/lib/PullQuoteShortcode.pm

以上です。リッチテキストではテンプレートタグが実体参照されるので、利用の際は注意が必要です。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)