2011-07-25 5 views
2

ちょっと整理したいと思うTTテンプレートがあります。私はコマンドラインできちんと使っています。html.ttテンプレートでTidコードをきちんと無視する方法は?

[% aoh.unshift({ label => '', value => 'All types' }); %] 

同じで起こる:それは、結果として得られたファイルで終わる

[% aoh.unshift({ label => '', value => 'All types' }); %] 

:ように私は、コードを持っている不幸な場合

$ tidy -utf8 --preserve-entities y -indent -wrap 120 file.html.tt 

私のコマンドは次のようになりますタグ属性のTemplate Toolkitコード(例:

<a href="[%%20%20c.url_for('/content/edit').query('data_type'%20=%3Edata_type%20)%20%]" > 

「[%」と「%]」間のすべてを無視するために必要なオプションは何ですか? PHPの開始タグと終了タグには同じ質問が当てはまります。

ありがとうございました。

+1

フム、本当にテンプレートを整理するものではありません整頓、実際のHTMLを。しかし、あなたのhrefが処理されるのを避けるためには、 'fix-uri'をfalseに設定することができます。' assume-xml-procins'はPHPタグで何かできます_small_チャンスがあります。 – Wrikken

+1

しかし、私が望むのは、HTMLコメントを無視するので、いくつかのコンテンツを無視することだけです。私はしかし、試してみます。 –

+1

別の言い方をすると: ジョブの適切なツールは何ですか(整頓されていない場合)。 –

答えて

2

TTスニペットを完全に無害なものに置き換え、整頓して元のものを戻すのはどういうわけか、ここでアイディアを広げてみましょう。以下のコードでは、私は<!-- sn20 -->のようなコメントに置き換えています:

use File::Slurp; 
my $template = read_file(shift); 

# replace TT snippets with <!-- snNN --> 
my %snip =(); 
my $id = 0; 
$template =~ s/ \[% (.*?) %\]/$snip{++$id} = $1; "<!-- sn$id -->" /gxse; 

# run tidy 
open my $tidy_fh, '|-', 'tidy -utf8 --preserve-entities y -indent -wrap 120 >tidy_out' 
    or die; 
print $tidy_fh $template; 
close $tidy_fh; 

# fix code back 
my $template_tidied = read_file('tidy_out'); 
$template_tidied =~ s/<!-- sn(\d+) -->/ "[%$snip{$1}%]" /ge; 

# print the result 
print $template_tidied; 
+0

それは良い考えです。あなたのコードと最初のアプローチの組み合わせを試してみましょう。ありがとうございます...それは正しい答えを尋ねるのが難しくなっています:)。これをコラボレーションといいます! –

+1

@Berov - 私はずっと前にテンプレートを整理することを考えましたが、実際の実験に進むことはありません。あなたは本当にあなたの質問で私をプッシュしてくれました。ありがとうございました。 – bvr

+0

そして、あなたのアイデア@bvrを使用して https://github.com/kberov/MYDLjEでテンプレートの整頓を実装します。再度、感謝します。 –

3

TTタグを一時的に変装すればどうなりますか?

$ perl -pie 's/\[%/<!--\[ %/g; s/%\]/% \]-->/g' file.html.tt 
$ tidy -utf8 --preserve-entities y -indent -wrap 120 file.html.tt 
$ perl -pie 's/<!--\[ %/\[%/g; s/% \]-->/%\]/g' file.html.tt 

最初のコマンドはすべてのTT要素をHTMLコメントに変換し、最後のコマンドはそれらを元に戻します。

+0

okですが、タグ属性のTTはどうですか? 私が上でコメントしたように、私はそれを試しました。結果は:

関連する問題