追記:この辺りの意見を聞いてhtml_builderなんて初めて知ったので、結局こうした:
package MyApp::Xslate::Bridge; use strict; use parent qw( Text::Xslate::Bridge ); use Text::Xslate qw( html_builder ); use Text::Markdown (); __PACKAGE__->bridge( function => { markdown => html_builder { Text::Markdown::markdown(@_) } } ); 1;
呼び出す側はこう
use Text::Xslate; my $xslate = Text::Xlate->new( ...., module => [ 'MyApp::Xslate::Bridge' ] ); $xslate->render( ... );
おいおい、Text::Xslate素敵すぎるだろ。
今日Markdownを使いたいと思ってちょっと考えたら、これだけで終了した:
use strict; use Text::Xslate; my $xslate = Text::Xslate->new( .... module => [ 'Text::Markdown' => [ 'markdown' ] ] ); print $xslate->render_string( <<EOT, { text => $some_markdown_text }); [% text | markdown | mark_raw %] EOT
素敵!gfx 先生になら抱かれてもいい。
俺もXSできる人間の端くれとしてxslateの中身をちゃんと把握しよう・・・
コメント