Skip to content
Fuji, Goro edited this page Nov 12, 2011 · 8 revisions

Text::Xslateクラスの使い方

基本的な使い方

use Text::Xslate qw(mark_raw);

my $tx = Text::Xslate->new();

my %vars = (
    title => 'A list of books',
    books => [
        { title => 'Islands in the stream' },
        { title => 'Programming Perl'      },
        # ...
    ],

    # mark HTML components as raw not to escape its HTML tags
    gadget => mark_raw('<div class="gadget">...</div>'),
);

# for files
print $tx->render('hello.tx', \%vars);

# for strings
my $template = q{
    <h1><: $title :></h1>
    <ul>
    : for $books -> $book {
        <li><: $book.title :></li>
    : } # for
    </ul>
};

newのオプション

path => \@path // ['.']

cache => $level // 1

cache_dir => $dir // "$ENV{HOME}/.xslate_cache"

function => \%functions

module => [$module => ?\@import_args, ...]

input_layer => $perliolayers // ':utf8'

verbose => $level // 1

suffix => $ext // '.tx'

syntax => $name // 'Kolon'

type => $type // 'html'

line_start => $token // $parser_defined_line_str

tag_start => $str // $parser_defined_tag_start_str

tag_end => $str // $parser_defined_tag_end_str

header => \@template_files

footer => \@template_files

warn_handler => \&cb

die_handler => \&cb

インスタンスメソッド

$xslate->render($file, \%vars)

__$file__を読み込んでテンプレートとして解釈し、レンダリングします。 __$file__はpathオプションに渡したディレクトリないしハッシュリファレンスから検索します。

$xslate->render_string($string, \%vars)

__$string__をテンプレートとみなしてレンダリングします。 このメソッドはキャッシュをしないので非常に遅いです。 プロダクションコードではなるべく使わないほうがいいでしょう。

render()中で使えるメソッド

render()メソッドの中で呼び出されるPerlのコールバック中でのみ使えるメソッドがいくつか存在します。

Text::Xslate->curren_engine

Text::Xslate->current_vars

Text::Xslate->current_file

Text::Xslate->current_line

Text::Xslate->print(@args)

SEE ALSO