pepponの日記 このページをアンテナに追加 RSSフィード

2010-09-17

CatalystでXslateしてみた

cpanm Text::Xslate

cpanm Text::Xslate::Bridge::TT2Like

cpanm Catalyst::View::Xslate

MyApp::View::Xslate


package MyApp::View::Xslate;
use Moose;
extends 'Catalyst::View::Xslate';

has '+module' => (
    default => sub { [ 'Text::Xslate::Bridge::TT2Like' ] }
);

has '+template_extension' => (
    default => '.tt',
);

has '+cache_dir' => (
    default => '/tmp/MyApp/.xslate_cache',
);

has '+cache' => (
    default => '1',
);

has '+syntax' => (
    default => 'TTerse',
);

1;

MyApp::Controller::Root;

package MyApp::Controller::Root;
....
sub end : Private {
    my ( $self, $c ) = @_;
    $c->forward('MyApp::View::Xslate');
}

てな感じであっさりと動いた。 テンプレート側の変更は[% INCLUDE hogehoge.tt %]は[% INCLUDE "hogehoge.tt" %]とかぐらいでした。

1回目の表示はコンパイルされてないので遅い、2回目以降速くなる。

ベンチマーク

サーバはcatalyst_server

[% %]をほとんど使ってないページ
  • Template::Toolkit(Catalyst::View::TT)
    • Requests per second: 16.61 [#/sec] (mean)
  • Text::Xslate(Catalyst::View::Xslate)
    • Requests per second: 19.67 [#/sec] (mean)
FOREACH がたくさんあったりいろいろ複雑なページ
  • Template::Toolkit(Catalyst::View::TT)
    • Requests per second: 2.03 [#/sec] (mean)
  • Text::Xslate(Catalyst::View::Xslate)
    • Requests per second: 6.26 [#/sec] (mean)

おおおテラはやす! ってことでTTはもうさようならです。 今までありがとう!

2009-03-05

Template::Plugin::Filter::HTMLScrubberがめっちゃ便利

今頃知った罠

http://search.cpan.org/~yupug/Template-Plugin-Filter-HTMLScrubber-0.03/lib/Template/Plugin/Filter/HTMLScrubber.pm

       my $setup = {
                base => {
                        allow => [qw| br hr b a u del i |],
                        rules => [
                                script => 0,
略
        };

[% USE Filter.HTMLScrubber setup  %]
[% html_text | html_scrubber %]

あふぇーって感じ 2006年もの

2009-02-16

Dreamweaver CS4でTemplateToolkitをいじる

DWでTTのファイルを開けないってことなので、調べたら公式サイトに拡張子追加の方法があったんだけど、、

編集しても反映されない状態で困っていたんだけど、どうも場所が違うらしい・ orz

弄るべきファイルはWindowsXPの場合

C:\Documents and Settings\ユーザ名\Application Data\Adobe\Dreamweaver CS4\

以下になる

Program Filesにも同じようにあるんだけど、優先順位があって上記ディレクトリが優先になるので、上記ディレクトリにファイルがあった場合無視される。

ついでなのでTMPLもいれといた

MMDocumentTypes.xml

ドキュメントタイプ設定

これをやらないとファイルを開くけど、デザインビューできない

C:\Documents and Settings\ユーザ名\Application Data\Adobe\Dreamweaver CS4\ja_JP\Configuration\Document Types\MMDocumentTypes.xml

	<documenttype id="HTML" internaltype="HTML" winfileextension="html,htm,shtml,shtm,stm,tt,tmpl,tpl,lasso,xhtml" macfileextension="html,htm,shtml,shtm,tt,tmpl,tpl,lasso,xhtml,ssi" file="Default.html" writebyteordermark="false">

ファイルを開くに拡張子追加、あとダブルクリック時にも開くようになる

Extensions.txt

一番上の拡張子リストにTTを追加
TT:Template Toolkit Files
TMPL:HTML Template Files

FTPExtensionMap.txt FTP利用時

TT	ASCII
TMPL	ASCII

Third Party Source Codeとか、ThirdPartyTagsに[% %]とか[% FOREACH %]を追加してあげるとさらにいいかもしれないけど、めんどいのでこのままでいいや

DWはXMLとJavascriptでほぼすべての設定がかかれているのと、拡張機能もJS、XMLで書けるので、拡張機能つくってみるのも面白いかも?

2007-01-24

いつも忘れるTemplate Toolkitの小技

Template::Plugin::String

[% USE String(hoge) %]

truncate

[% String.truncate(10) %]

left

[% String.left(10) %]

http://www.tt2.org/docs/default/Modules/Template/Plugin/String.html

2006-09-26 Template-Toolkitメモ

Template-Toolkitメモ

http://www.template-toolkit.org/docs/plain/Manual/VMethods.html#Scalar_Virtual_Methods

正規表現 激便利

match(pattern)

(hoge moge)

[% hoge = '(hoge moge)' %]
[% hogemoge = hoge.match('\((.*?)\)') %]
[% hogemoge.0 %]

で表示は

hoge moge

search(pattern)