Perl の Catalyst で Markdown が使いたいの!

GitHub でお馴染みの Markdown を Catalyst で使いたい。といっても、View の何から何まで全部 Markdown で書きたいわけじゃなくて、デフォルトは TT なんだけど、このページでは Markdown を使いたい、という中途半端な要求です。

ググってみると、Catalyst::Plugin::MarkdownCatalyst::Helper::View::Markdown の2つがあるよう。後者はビュークラスを生成して使う、エレガントな (?) タイプ。試してみましたが、何故かテンプレートファイルが見つからない、というエラーでどうやっても使用できませんでした (Catalyst 5.90064 を使用)。

で、Catalyst::Plugin::Markdown をどうにか使う方法を編み出しました。

関係する部分を全て書き出してみます:

# lib/Hoge.pm
use Catalyst qw/
    ...
    Markdown
/;
# lib/Hoge/Controller/Piyo.pm
sub foo :Local :Args(0) {
    my ($self, $c) = @_;

    $c->stash(markdown => "### テスト ###");
}
[%# root/src/piyo/foo.tt %]
[% tmp = markdown | eval %]
[% c.markdown.markdown(tmp) %]

TT の eval フィルターを通しているため、Markdown のソースの中で TT のディレクティブも使えます。便利ですが、付け焼き刃感がとても悲しい…。

(コウヅ)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中