タグ

xslateに関するkwryのブックマーク (16)

  • XslateのテンプレートをCSSインライン化する - $shibayu36->blog;

    HTMLメールを送信する時、クライアントによってはlinkでのcss指定やstyleタグを解釈しない場合があります。その場合、CSSHTML要素にインライン化しないといけないのですが、今回はこのことについて書いてみます。 CSS::Inlinerを使う perlにはCSS::Inlinerというモジュールがあって、これを使えばstyleタグの入ったhtmlに対して、CSSインライン化することが出来ます。 例えば以下の様なHTMLがあった場合 <html> <head> <style type="text/css">body { margin: 0px; } #a { padding: 0px; }</style> </head> <body> <p id="a">hoge</p> <p id="b">fuga</p> </body> </html> 以下の様なコードを書けば my $in

    XslateのテンプレートをCSSインライン化する - $shibayu36->blog;
    kwry
    kwry 2013/07/18
  • Re: Text::Xslate::Bridge::FillInForm::Lite - tokuhirom's blog

    http://blog.vitamin11.org/2012/09/released-textxslatebridgefillinformlite.html こういう単機能なラッパーモジュールをつくらなくていいようにしたいね、という話が Xslate の開発当初からあって(というか俺がいってて)、こういうのがでてくるのは申しわけないなあ、とおもった(書いた人が残念なのではなく、そういうのを書きたいとおもわせるにいたった開発コミュニティが残念です)。 TT はやたらラッパーモジュールであふれていて、だいぶ馬鹿馬鹿しい状況になっていたので、それを再現したくはなかったのです。Template::Plugin::* ほんとやたら数あるけど、Xslate の場合はそれがなくていいように module option がつかえるようになっているわけですナ。 という前提があった上で、汎用的につかえる解決策

    kwry
    kwry 2012/09/22
  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • Mojolicious + Xslate + SkinnyでMVC開発環境 - $shibayu36->blog;

    Perlには非常に多くのフレームワークがあります。非常に大きいものにはCatalystやJifty、小さいものにはMojolicious、CGI::Application、HTTP::Engine、Dancerなどがあります。今Perlではフルスタックのフレームワークを使うよりも、小さいものを組み合わせてWebアプリケーションをつくっていくほうが流行っていると思うので、「小さいものを組み合わせ」ながらMVCで開発できるような環境を考えてみました。 今回はWAFとしてMojoliciousを、テンプレートエンジンとしてText::Xslateを、O/RマッパーとしてDBIx::Skinnyを用いて、MVCでWebアプリケーションを作る方法について順を追って解説します。 それぞれの簡単な説明 Mojoliciousとは SimpleなMVCのWebフレームワーク。軽いプロジェクトならMojol

  • Lazy Programmer's Wlog / Tech/XslateのMacroをXslateを利用して作る

    XslateはMacroに対応しているのですが、INCLUDE先では利用できないという制約があります。 その対応が以下実際のコード。 INCLUDE先でも利用できるようになった際の移行を考慮して実装しています。 kazeburo++ package Golgo::Admin::View::MacroSection; use strict; use warnings; use base qw/Exporter/; use Data::Section::Simple; use Text::Xslate; our @EXPORT = qw( paginate ); my $XSLATE; __PACKAGE__->create_xslate(); sub paginate { my $args = {}; ( $args->{pager} , $args->{my_uri} ) = @_; re

    kwry
    kwry 2010/11/10
  • PlackとText::Xslateでケータイからtwitterするwebアプリを書いた - だるろぐ

    公式のケータイ用のサイトが重いし落ちてる事が多いのでさっさと書いた。 色々足りんけど自分用に使うにはこれで十分。 GitHub - hirafoo/filmoa: simple twitter web-app for mobile phone なおPlackとText::Xslate使ったとか書くと凄く聞こえるけど実際は触り程度にしか使ってない。 追記 Config::Pitでconsumer keyとかtwitterでoauthするときに必要な情報を管理してます。 当然そんなものリポジトリに同梱しないしサンプル書くのもめどいので、これを使いたい珍しい人はコード読んで自分で用意するよろし。簡単だから。 構成 psgiファイルが1個と、他はテンプレのファイルのみ。 何か軽くてさくっと使えるWAF無いかなーと探したけどいいのがsinatraしか無かった。 やりたい事は極わずかだったので、んじゃ

    PlackとText::Xslateでケータイからtwitterするwebアプリを書いた - だるろぐ
  • YAPC::Asia 2010 Tokyoで発表しました - Islands in the byte stream (legacy)

    至らない点は多々ありましたが無事発表を終えることができました!ありがとうございました! How Xslate WorksView more presentations from gorof.ちょっと捕捉します。 まず会場の質疑応答から(スライドにも簡単に追記しました)。 Q. テンプレートをPerlコードに落とし込んでperlに実行させるというモデルもあると思うが、敢えて独自VMを実装した理由は? A. たしかに、Perlコードに落とし込むテンプレートエンジンはあり、Template::ToolkitText::MicroTemplateなどはそうしています。しかしPerlは汎用のインタプリタであり、テンプレートのレンダリングに特化しているわけではりません。Xslateは汎用性を犠牲にし、高速化を図っています。特に、出力バッファに対する文字列の連結に大きな差があります。なので、独自VMの

    YAPC::Asia 2010 Tokyoで発表しました - Islands in the byte stream (legacy)
  • Xslateが特定の条件で落ちる件(fixed in 0.2009) - Islands in the byte stream (legacy)

    Xslateが特定の条件で落ちるという現象がいくつか確認されていました。 Xslateでテンプレート大きいと困った件 ←修正されました - pepponの日記 http://twitter.com/kaz_hosib/status/26527707914:twitter id:pepponさんの記事を参考に巨大なファイルを生成してrender()したところ、5.8.9でSEGV、5.12.2で致命的エラーとなって落ちることを確認したため、修正してXslate 0.2009をリリースしました。ご確認ください。 http://search.cpan.org/dist/Text-Xslate/ これは、Xslateではなくperlの正規表現エンジンのバグ(あるいは限界)であったようです。 5.12.2で出力されるエラーメッセージに対するperldiagのエントリは以下の通り: Complex r

    Xslateが特定の条件で落ちる件(fixed in 0.2009) - Islands in the byte stream (legacy)
    kwry
    kwry 2010/10/06
  • Xslateでテンプレート大きいと困った件 ←修正されました - pepponの日記

    CatalystでCatalyst::View::Xslateを利用しているとき、特定のページで表示できない場合があった。 特定のページは[% hoge %]を使っていないテンプレートで、サイズは47KB、Catalyst::View::TTを利用すると問題なくて、Catalyst::View::Xslateの場合表示できなくなる。 でcatalystテストサーバ起動時に表示されるデバッグログにも何も表示されずそのままな状態。 で、試しに問題のあるテンプレートをコピーして違う名前でアップロード、中身は同じの別名テンプレートで表示することにしてみた。 $c->stash->{template} = 'template/hoge/moge/mondaino.tt'; ↓ $c->stash->{template} = 'template/hoge/moge/mondaino1.tt'; そした

    Xslateでテンプレート大きいと困った件 ←修正されました - pepponの日記
    kwry
    kwry 2010/10/06
  • Data::MessagePackをXslateのキャッシュ保存用に使ってみる - Islands in the byte stream (legacy)

    Text::Xslateのコンパイル済みコードは今まで独自フォーマットで保存しており、これはこれでデバッグしやすくて便利だったが、CLIアプリケーションではこのコンパイル済みコードのロードにほとんどの時間を費やす羽目になっていたのだった。そこで、速度が売りのシリアライズフォーマットmessagepackを使ってコンパイル済みコードを保存するようにしてみた。計測には、自分用のpmsetupであるところのdimを使った。 version 0.2008 (original): $ time dim init --force Foo::Bar >/dev/null real 0m0.220s user 0m0.156s sys 0m0.019sversion 0.2008_01 (using Data::MessagePack): $ time dim init --force Foo::Bar>

    Data::MessagePackをXslateのキャッシュ保存用に使ってみる - Islands in the byte stream (legacy)
  • テンプレートエンジンの自動エスケープ機能について - Islands in the byte stream (legacy)

    最近Xslateの自動エスケープ機能について考えていたのですが、これは「この機能によって安全性が高まる」というものではなく(結果的にそうでないものより安全ではありますが)、むしろテンプレートエンジンとしてはこれこそ正しい振る舞いなのではないかと思うに至りました。 この「値を渡すと、ソースコードに埋め込む際に適当に加工する」という振る舞いは、SQLとプレースホルダの振る舞いがまさにそうです。SQLに値を埋め込む際、アプリケーションでいちいち値をエスケープするというのは危険であり、避けるべきです。可能であれば常にプレースホルダを使うという方針をとるだけで、エスケープ問題について余計なことを考える必要はなくなります。 テンプレートエンジンについても同じこと。テンプレートに値を埋め込む時は、そのまま渡せばいいのです。これを手動で行わせるのは、プレースホルダに埋め込む値のエスケープの有無をユーザーに

    テンプレートエンジンの自動エスケープ機能について - Islands in the byte stream (legacy)
    kwry
    kwry 2010/08/22
  • Xslate 0.1058の新機能 - Islands in the byte stream (legacy)

    HTMLのソースを返す関数で正しくHTMLソースを出力させるには、戻り値をmark_raw()する必要があります。さもないと、自動エスケープ機構が働いてしまうからです。 このために、0.1057以前のXslateはわざわざラッパー関数を書く必要がありました。しかし、繰り返し同じことをするのは面倒なので、これを簡単にできるようにするためのユーティリティを追加しました。 以前以下のように書いていたところが(Cookbookより引用): use Text::Xslate qw(mark_raw unmark_raw); use HTML::FillInForm; sub fillinform { my($q) = @_; my $fif = HTML::FillInForm->new(); return sub { my($html) = @_; $html = unmark_raw($html

    Xslate 0.1058の新機能 - Islands in the byte stream (legacy)
    kwry
    kwry 2010/08/18
  • Xslate に入門しつつ Tiffany とか Ark とか - はちゅにっき

    最近はもっぱら PHP を書いている magicalhat です。 それでもやっぱり Perl が好き。 というわけで、id:gfx さんの新作 Xslate という新しいテンプレートエンジンが登場したとか、それがすごく速いとか、そんなウワサを耳にしたので入門してみることに。 ついでなので、最近鋭意お勉強中の Ark から Xslate を使ってみることにしました。 参考にしたのは、id:punitan さんが Blog で紹介されていた http://xslate.org/intro.html のサンプルプログラムです。 # いつものことですが、参考というよりもパクりです Ark::View::Xslate をつくってみる Ark が標準でサポートしているのは JSON / MT (Text::MicroTemplate::Extended) / TT (Template-Toolkit

    Xslate に入門しつつ Tiffany とか Ark とか - はちゅにっき
  • XslateはSyntaxを変えても基本的には実運用上の速度は変わらない | へぼい日記

    TTの158倍速いというxslateですが、このベンチマークはSyntax::Kolonを使っています。 TT互換なSyntaxであるところの、Syntax::TTerseを使うとどうなるのかなということでhttp://github.com/nihen/p5-Text-Xslate/tree/add_tterse_benchのbenchmark/x-rich-enc.plとbenchmark/x-poor-env.plにTTerseも追加してみました。 以下結果 %perl benchmark/x-rich-env.pl Perl/5.12.1 i686-linux Text::Xslate/0.1056 Text::MicroTemplate/0.15 Text::MicroTemplate::Extended/0.11 Template/2.22 Text::ClearSilver/0

    kwry
    kwry 2010/08/15
  • Xslate - The fastest template engine for Perl5

    kwry
    kwry 2010/07/31
  • How and when Xslate escapes html special characters - Islands in the byte stream (legacy)

    Xslate のエスケープポリシーについて考えたので、ここでまとめておく*1。 Xslate のエスケープ処理について、覚えることは以下の三つである*2。 テンプテートタグ内で生成した値は自動的にエスケープされる エスケープ処理をさせたくないときはmark_raw フィルタを使う エスケープ処理を強制させたいときは unmark_rawフィルタを使う 以下、詳しく解説する。 まず、基的には Text::MicroTemplate のポリシーを踏襲している*3。すなわち、テンプレートタグ内で生成された文字列については、HTMLのメタ文字(< > & " &apos)が自動的にエスケープされる。エスケープ処理は、一般式に対する出力コマンドが担っている。 # Text::Xslate version 0.1032 $ xslate -e '<foo>' # 地の文字列はそのまま出力 <foo>

    How and when Xslate escapes html special characters - Islands in the byte stream (legacy)
  • 1