タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

xslateとperlに関するYAAのブックマーク (11)

  • 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 がつかえるようになっているわけですナ。 という前提があった上で、汎用的につかえる解決策

  • Xslateのキャッシュ更新メカニズムの変更 - Islands in the byte stream (legacy)

    1.5015までのXslateのキャッシュ更新メカニズムでは問題があると報告されたため、1.5016で修正しました。 cache => 1 のとき、従来は render() ごとにテンプレートのキャッシュファイルのmtimeとテンプレートファイルのmtimeを比較してキャッシュの更新が必要かどうかをチェックしていたのでした。しかし、これでは以下の様なシナリオの元でキャッシュ更新ミスが発生しうるのでした*1。 foo.tx のmtimeが11:00とする 12:00 に foo.tx を render() する。このときcacheの mtime は 12:00 となる foo.tx を更新し、foo.txのmtimeが 12:00 になる foo.tx を render() すると、cacheはtemplate fileより古くないため、cacheを使う 1.5016では、キャッシュのmti

    Xslateのキャッシュ更新メカニズムの変更 - Islands in the byte stream (legacy)
  • Xslate 1.5008 released - Islands in the byte stream (legacy)

    異常系の振る舞いを少し変えました。 https://metacpan.org/release/Text-Xslate Xslateでは、render()へ渡すテンプレートパラメータや登録関数からの戻り値は必ずEncodeモジュールでデコードしたテキスト文字列であるべきです。しかし、デコードしてないバイト列を渡したときの挙動は未定義で、XS/PPあるいはcacheの有無によって挙動が異なっていました。特にcacheの有無で挙動が変わることがあるのが厄介で、特定の条件が重なるとリロードすると文字化けするという挙動を示すことがありました。 Xslateに限らず、Perlではスクリプト内のテキストの操作はデコードされたテキスト文字列で行うべきで、これを守らなければ文字化けを引き起こします。よって、Xslateでも、上記のようにデコードされていないバイト列を与えると文字化けが起きるのが、Perl的に

    Xslate 1.5008 released - Islands in the byte stream (legacy)
  • 第43回 Text::Xslate:永続環境に特化したテンプレートエンジン | gihyo.jp

    TTの体を差し替える 前回はウェブ業界で標準的に使われているTemplate Toolkitをより安全に使うためのカスタマイズ方法をいくつか紹介しました。しばしば批判の対象となってきたエスケープの問題については、TTでも適切な拡張を施せば後発のモジュールと遜色ないか、それ以上に便利に使えることは確認できたかと思います。 ただし、エスケープの仕方ひとつとってもさまざまなやり方があったように、TTは、柔軟である代償として速度面ではかなりの不利を抱えています。 もっとも、不利といってもそれはいまの、しかもかなり規模の大きな現場の視点で見たときの話で、数年前、おもなライバルがHTML::Mason(と、機能面で大きな差があるHTML::Template)だった時代にはTTも十分に高速といえましたし[1]⁠、中小規模のサイトではいまでもTTで十分なレスポンスは得られます。 また、かれこれ10年近く

    第43回 Text::Xslate:永続環境に特化したテンプレートエンジン | gihyo.jp
  • Xslate 1.3000 リリースメモ - Islands in the byte stream (legacy)

    Xslate 1.3000でhtml_builder()に非互換な変更を行いました。 html_builder()で作成したフィルタは、いままではunmark_raw()で型情報を落とした引数を受け取っていました。しかし1.3000からは引数をそのまま受け取るようになります。これによりフィルタが全ての責任を負えるようになりましたが、非互換な変更なので挙動が変わるフィルタも出てくる可能性があります。ご注意ください。 また未修正の問題も幾つかあります。いずれ対応するつもりですが、修正するまではご注意願います。 コメント終端子としてセミコロン(;)を使っているため、コメント内に& < >などが書けません。 TTerseにおいて、変数名として「x」が使えたり使えなかったりします。これはxが演算子であるためです。

    Xslate 1.3000 リリースメモ - Islands in the byte stream (legacy)
  • Xslate 1.0006 released! - Islands in the byte stream (legacy)

    リリースしました。 1.0001から1.0006の間には後方互換性を破壊する変更はなく、バグフィクスと小さな機能追加のみです。SEGVを起こすバグや非常に分かりにくいエラーメッセージを吐くバグも修正されているのでアップデートをお勧めします。 また、1.0006から追加されたText::Xslate->print()メソッドを使うと、エラーメッセージをテンプレート内に出力することができます。なお、このprint()はテンプレート内部の出力同様、スマートエスケープが適用されます。 #!perl -w use strict; use Text::Xslate; my %vpath = ( hello => 'Hello, <: $lang :> world!' . "\n", ); my $tx = Text::Xslate->new( cache => 0, path => \%vpath,

    Xslate 1.0006 released! - Islands in the byte stream (legacy)
  • Re: Chromeのスタートページで自分のはてブをインクリメンタル検索する拡張(ただしPerlで書いた) - Islands in the byte stream (legacy)

    http://d.hatena.ne.jp/Cside/20110214/p1 こんなに簡単にChrome拡張が作れるとは!と感動する一方で、Xslateの使い方がいまいちだったので直してみました。pull-reqだけでいいかとも思ったのですが、これらの修正はすべて何度か見たことのあるFAQ的なものなので、エントリにすることにしました。 具体的には、 Xslateインスタンスをリクエスト毎に作るのは非効率なので、最初に作って使いまわす render_string()は非常に遅いのでテストやデバッグ以外の用途で使うべきではない 今回のケースでは普通にファイル名を渡すだけでよい スクリプト中にテンプレートを書きたい場合は、pathオプションにハッシュリファレンスを渡すとよい Xslateは基的にテキスト文字列(decodeされたもの)を扱うので、functionはテキスト文字列を受け取って文

    Re: Chromeのスタートページで自分のはてブをインクリメンタル検索する拡張(ただしPerlで書いた) - Islands in the byte stream (legacy)
  • 第5回 Xslate 次世代テンプレートエンジン(3) | gihyo.jp

    TTerse Template Toolkit互換の構文 KolonはXslateの機能を引き出すのに最適な構文です。しかしXslateでは、TT2からの移行を容易にするために、TT2のサブセットであるTTerseという構文も用意しています。 TTerseの使い方 TTerseを使うには、Text::Xslate->new()メソッドのsyntaxオプションに「TTerse」を渡します。別のディストリビューションとして配布しているText::Xslate::Bridge::TT2Likeを使うと、TT2組み込みのメソッドやフィルタを使えるようにもなります(リスト17⁠)⁠。 リスト17 TTerseの使い方(tterse.pl) use Text::Xslate; my $tx = Text::Xslate->new( syntax => 'TTerse', module => ['Tex

    第5回 Xslate 次世代テンプレートエンジン(3) | gihyo.jp
  • 第5回 Xslate 次世代テンプレートエンジン(2) | gihyo.jp

    ※1)Xslateではテンプレートのコンパイル結果をキャッシュできる ※2)デフォルトは$ENV{HOME}/.xslate_cacheだが、$ENV{HOME}が書き込み可能でなければほかのディレクトリも試す ※3) テンプレートの構文によってデフォルトは変わる。これらはデフォルト構文Kolonのデフォルト値 リスト8 オプションを指定する(hello_xslate2.pl) use strict; use Text::Xslate; my %vpath = ( header => "- - - - - - - - - - -\n", footer => "- - - - - - - - - - -\n", hello => "Hello, Xslate world!\n", ); my $tx = Text::Xslate->new( path => \%vpath, header =

    第5回 Xslate 次世代テンプレートエンジン(2) | gihyo.jp
  • Perl Hackers Hub:第5回 Xslate 次世代テンプレートエンジン(1)|gihyo.jp … 技術評論社

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は藤吾郎さんで、テーマはXslateです。 はじめに PerlとWebアプリケーションとの相性の良さは周知のとおりです。そして、Web開発にはテンプレートエンジンが欠かせません。テンプレートエンジンは、プレゼンテーションとロジックを分離し、デザイナとプログラマの分業を可能にし、MVC(Model-View-Controller)のV(View)を担う重要な要素です。 今回は、そんなテンプレートエンジンンの一つであり、筆者が開発しているXslateを紹介します。Xslateは2010年4月に開発を始めた新しいモジュールですが、速度・安定性・機能ともに高い水準になってきました。また、牧大輔氏や松野徳大氏をはじめとしたShibuya.pmの面々に多くのアドバイスをいただき、既存のテンプレートエンジンを置き換えられるくらい実用的に

    Perl Hackers Hub:第5回 Xslate 次世代テンプレートエンジン(1)|gihyo.jp … 技術評論社
  • Kolonでかこう - Articles Advent Calendar 2010 Casual

    nihenです。こんにちは。 今年もブクマ数ビリを目指したいとおもいます! Perl界隈で今年はText::Xslateというテンプレートエンジンが流行っています。 しかしこのXslateで現在主流に使われているSyntaxはTTerse*1であり、XslateネィティブともいえるKolonはまだあまり使われていないというのが現状のようです。 というわけで今回はKolonの使い方の基を紹介します。 Perlコード側 use Text::Xslate; use Hash::MultiValue; my $tx = Text::Xslate->new(); my $var = { foo => 'xslate', bar => { baz => '111', bazbaz => '112', }, baz => [5, 6, 7], hoge => Hash::MultiValue->new

    Kolonでかこう - Articles Advent Calendar 2010 Casual
  • 1