Template::Toolkit はすごい ( らしい ) 2009/09/10 masaki.kawamura
■  Template::Toolkit ?? <ul><li>Perl 製のテンプレートエンジン  Template  のディスリビューション名  テンプレートツールキットと言われたり、 TT と略されたりする </li></ul><ul><...
■  テンプレートエンジンを使うと。。 <ul><ul><li>#!/usr/bin/perl </li></ul></ul><ul><ul><li>print << &quot;DOC&quot;; </li></ul></ul><ul><u...
<ul><ul><ul><li>#!/usr/bin/perl </li></ul></ul></ul><ul><ul><ul><li>use strict; </li></ul></ul></ul><ul><ul><ul><li>use Te...
<ul><li>・  Template::Toolkit 以前に使っていたものが HTML::Template だったので以下のことが出来なかった。 (HTML::Template と TT しか触ったことはないですが ) </li></ul>...
■  こうなってます  <ul><li>テンプレでの IF 文 </li></ul><ul><li>受取った変数の値を評価出来るようになっている </li></ul><ul><li>ロジックに引数を渡して処理する </li></ul><ul><...
[% MACRO amacro(var) BLOCK; IF var; var; ELSE ‘ Argument is nothing’; END %] ・  Amacro という MACRO を定義 [% amacro(‘Template’)...
■  TT で他に出来ること <ul><li>-  正規表現での評価  (search) </li></ul><ul><li>[% IF var.search('regex') %] </li></ul><ul><li>   match </l...
 まとめ <ul><li>最近新しいものを使ってみても、古いものを使ったことがないことがあるので、どこがすごいのやらわからないことが多い。 </li></ul><ul><li>若いって怖いなぁと思います。 </li></ul>
Upcoming SlideShare
Loading in...5
×

エンジニア知識共有会発表資料 20090910

1,012

Published on

Published in: Technology, Design
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,012
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

エンジニア知識共有会発表資料 20090910

  1. 1. Template::Toolkit はすごい ( らしい ) 2009/09/10 masaki.kawamura
  2. 2. ■ Template::Toolkit ?? <ul><li>Perl 製のテンプレートエンジン Template のディスリビューション名  テンプレートツールキットと言われたり、 TT と略されたりする </li></ul><ul><li>テンプレートエンジンなので主にプログラムと HTML を分けて開発できるようにするもの </li></ul><ul><li>CPAN から install することができる ( 簡単! ) </li></ul>
  3. 3. ■ テンプレートエンジンを使うと。。 <ul><ul><li>#!/usr/bin/perl </li></ul></ul><ul><ul><li>print << &quot;DOC&quot;; </li></ul></ul><ul><ul><li>Content-type:text/html </li></ul></ul><ul><ul><li><html> </li></ul></ul><ul><ul><li><head> </li></ul></ul><ul><ul><li><title> ぱーる </title> </li></ul></ul><ul><ul><li></head> </li></ul></ul><ul><ul><li><body> </li></ul></ul><ul><ul><li>DOC </li></ul></ul><ul><ul><li>my $a = &quot;TemplateToolkit!! &quot;; </li></ul></ul><ul><ul><li>print $a; </li></ul></ul><ul><ul><li>print << &quot;DOC&quot;; </li></ul></ul><ul><ul><li></body> </li></ul></ul><ul><ul><li></html> </li></ul></ul><ul><ul><li>DOC </li></ul></ul>・  example.pl :!perl nnn.pl Content-type:text/html <html> <head> <title> ぱーる </title> </head> <body> TemplateToolkit!! </body> </html> こうではなくて 実行 結果
  4. 4. <ul><ul><ul><li>#!/usr/bin/perl </li></ul></ul></ul><ul><ul><ul><li>use strict; </li></ul></ul></ul><ul><ul><ul><li>use Template; </li></ul></ul></ul><ul><ul><ul><li>my $content = 'TemplateToolkit!!'; </li></ul></ul></ul><ul><ul><ul><li>my $tt = Template->new; </li></ul></ul></ul><ul><ul><ul><li>$tt->process('example.html', </li></ul></ul></ul><ul><ul><ul><li>            { char => $content } ); </li></ul></ul></ul><html> <head> <title> ぱーる </title> </head> <body> [% char %] </body> </html> ・  example.pl ・ example.html + 実行 <html> <head> <title> ぱーる </title> </head> <body> TemplateToolkit!! </body> </html> 結果 こんな感じでファイルを分けることが出来るので、 HTML がわかる人にテンプレの編集をしてもらう時に比較的さわりやすくなる。
  5. 5. <ul><li>・ Template::Toolkit 以前に使っていたものが HTML::Template だったので以下のことが出来なかった。 (HTML::Template と TT しか触ったことはないですが ) </li></ul><ul><li>・ テンプレート側で IF 構文を使用した時、 0,1 の判定しか行なえなかった </li></ul><ul><li>・ プログラム側から受取ったデータを表示するのみで、テンプレート側から引数を与えて処理することが出来なかった </li></ul><ul><li>・ いちいち {TMPL_VAR name=..} と書くのがイヤ </li></ul><ul><li>という、諸々が </li></ul>■ すごい ( と思った ) ところ {TMPL_IF name=hoge} hoge がある {TMPL_ELSE} hoge がない {/TMPL_IF} {TMPL_VAR name=data} // data の中身を表示するだけ
  6. 6. ■ こうなってます <ul><li>テンプレでの IF 文 </li></ul><ul><li>受取った変数の値を評価出来るようになっている </li></ul><ul><li>ロジックに引数を渡して処理する </li></ul><ul><li>MACRO という呼び出し時に実行される処理のブロックを </li></ul><ul><li>定義することができるものがあるので、これを使用して実現できる。 </li></ul>[% IF hoge = ‘TemplateToolkit’ %] TemplateToolkit!! [% ELSE %] HokanoNanika [% END %] [% amacro(‘TemplateToolkit’) %]
  7. 7. [% MACRO amacro(var) BLOCK; IF var; var; ELSE ‘ Argument is nothing’; END %] ・ Amacro という MACRO を定義 [% amacro(‘Template’) %] ・ テンプレートで amacro を呼び出す こうすれば、 Template という文字列を amacro に与えて表示することができる。 MACRO は記述しておいても、呼び出さない限り何も処理をしない ( はず ) なので 無駄な処理が省ける。
  8. 8. ■ TT で他に出来ること <ul><li>- 正規表現での評価 (search) </li></ul><ul><li>[% IF var.search('regex') %] </li></ul><ul><li>  match </li></ul><ul><li>[% END %] </li></ul><ul><li>- 文字の切り出し (substr) </li></ul><ul><li>[% var.substr(0,100) %] </li></ul><ul><li>他にも以下を読めば使うかどうかは別として、 </li></ul><ul><li>  色々出来ます。 </li></ul><ul><li>  Template::Manual::VMethods </li></ul>
  9. 9.  まとめ <ul><li>最近新しいものを使ってみても、古いものを使ったことがないことがあるので、どこがすごいのやらわからないことが多い。 </li></ul><ul><li>若いって怖いなぁと思います。 </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×