hogashi.*

日記から何から

Text::XslateでTTerseでも%%で行コードが書けるの知らなかった

 Perl のテンプレートエンジン https://metacpan.org/pod/Text::Xslate にはシンタックスがいくつかある。 Kolon も TTerse も使っていて、 Perl コードを書くのに Kolon では <: ... :>: ... どっちもあるのは知っていたけど、 TTerse では [% ... %] しか知らなかった。

 が、 Text::Xslate::Syntax::TTerse のコードを眺めていたら、 %% ... で行コードを書けるようだった (https://metacpan.org/pod/Text::Xslate::Syntax::TTerse をよく見ると書いてあった)。

https://metacpan.org/pod/Text::Xslate#TEMPLATE-SYNTAX

Kolon

Kolon is the default syntax, using <: ... :> inline code and : ... line code, which is explained in Text::Xslate::Syntax::Kolon.

Metakolon

Metakolon is the same as Kolon except for using [% ... %] inline code and %% ... line code, instead of <: ... :> and : ....

TTerse

TTerse is a syntax that is a subset of Template-Toolkit 2 (and partially TT3), which is explained in Text::Xslate::Syntax::TTerse.

HTMLTemplate

There's HTML::Template compatible layers in CPAN.

Text::Xslate::Syntax::HTMLTemplate is a syntax for HTML::Template.

HTML::Template::Parser is a converter from HTML::Template to Text::Xslate.

https://metacpan.org/pod/Text::Xslate#TEMPLATE-SYNTAX

コードの様子

sub _build_line_start { '%%' }
https://github.com/xslate/p5-Text-Xslate/blob/a7908ee382ed01f3a407fe826f2741de76287d36/lib/Text/Xslate/Syntax/TTerse.pm#L13

https://metacpan.org/pod/Text::Xslate::Syntax::TTerse#DESCRIPTION

TTerse is a subset of the Template-Toolkit 2 (and partially 3) syntax, using [% ... %] tags and %% ... line code.

https://metacpan.org/pod/Text::Xslate::Syntax::TTerse#DESCRIPTION