テンプレート(Template Toolkit)がロードされた後、Perlコードとしてキャッシュされる前に、簡単にテンプレートを変更できますか?私はそれで正規表現を実行したい。TTテンプレートの変更
1
A
答えて
5
Template::Providerは標準のサブクラスであることができます。ファインマニュアルから:
テンプレート::プロバイダは、テンプレートドキュメントの読み込み、解析、コンパイル、キャッシュに使用されます。この オブジェクトは、ローディングのためのより具体的な機能を提供するためにサブクラス化されてもよく、そうでなければテンプレートへのアクセスを提供するようにされてもよい。
だから、かなり簡単になるはずですが、簡単にはあなたのスキルに大きく依存します。
4
上記のTemplate :: Providerの提案は、おそらくこれを実行する最良の方法です。しかし、より単純な(ややハッキリであれば)アプローチもあります。テンプレートをスカラーに読み込んで、テンプレートプロセッサーに渡す前に任意の変換を実行することができます。
my $tt = Template->new;
open my $template_fh, '<', 'template.tt' or die $!;
my $template = do { local $/; <$template_fh> };
$template =~ s/some regex/some replacement/;
my $vars = { template => 'variables' };
$tt->process(\$template, $vars) or die $tt->error;
secretは、process()メソッドが最初のパラメータとしてさまざまな型の値をとることです。あなたがスカラーならば、それはテンプレートを含むファイルの名前とみなされます。しかし、もしそれがスカラーのリファレンスであれば、そのスカラーは実際のテンプレートを含んでいると仮定します。詳細は、the documentationを参照してください。
関連する問題
- 1. Catalyst/TTのテンプレートをインライン化する
- 2. Entity FrameworkのTTテンプレート - >ナビゲーションプロパティ名の外部キーID
- 3. 変更テンプレート
- 4. .ttテンプレートを使用してフォルダを作成する方法は?
- 5. dd/MM/yyyy HH:mm ttをMM/dd/yyyyに変換します。HH:mm tt in C#
- 6. PhpStorm変更クラススニペット(テンプレート)
- 7. TTホワイトリストのAppmaker EAP
- 8. Typo3 tt-newsカテゴリ
- 9. ASP.NET Serenity Frameworkテンプレートの変更
- 10. TT航行とストーリーボード
- 11. Django管理用テンプレートの拡張 - 変更用リストの変更
- 12. Jinja2テンプレート変数を1行に変更
- 13. AG-Gridセルのテンプレート値の変更
- 14. テンプレート内の要素のクラスを変更
- 15. テンプレート正規表現とDOMノードのテンプレート。属性の変更?
- 16. 状態の変更でnavbarテンプレートを変更するには?
- 17. TYPO3テンプレート内のアクション方法を変更
- 18. テンプレートのdjango更新時間変数
- 19. Vtiger CRMイベント通知の変更テンプレート
- 20. djangoテンプレートのパスを変更する
- 21. 変更迅速なリファクタリングのプロパティー・テンプレート
- 22. 角度4インスタンスフィールドは、コードに変更はなく変更がテンプレート
- 23. SQL Serverで時間をhh:mm:ss ttに変換する方法
- 24. djangoテンプレートがplistテンプレート内で変更された場合
- 25. カスタムフィールドでWHMCSテンプレートを変更する
- 26. MSVC2015更新3可変テンプレート回避策
- 27. Docusignテンプレートが変更されない
- 28. Wordpress - WooCommerce Germanizedテンプレートを変更する
- 29. ナビゲーション・ドロワー・テンプレートでフラグメントをツールバーに変更
- 30. IntelliJ javadocテンプレートを変更する