Template::Stash::AutoEscapingを利用するにはDancer2サイトのTemplate Toolkitのデフォルト設定をどのように変更しますか?Dancer2とTemplate Toolkitを別のStashモジュールを使用するように設定するには
5
A
答えて
6
あなたの設定ファイルに新しいオブジェクトを作成するPerlコードを書くことはできません。代わりに、私はDancer2 :: Template :: TemplateToolkitクラスをサブクラス化し、そこに変更を加え、代わりにそれを使用します。
コードD2::T::TTを見ると、方法_build_engine
のオブジェクトが作成されて返されます。あなたのサブクラスのaround
でこれをラップすると、それをつかんで変更を加えることができます。
package Dancer2::Template::TemplateToolkit::AutoEscaping;
use Moo;
use Template::Stash::AutoEscaping;
extends 'Dancer2::Template::TemplateToolkit';
around '_build_engine' => sub {
my $orig = shift;
my $self = shift;
my $tt = $self->$orig(@_);
# replace the stash object
$tt->service->context->{STASH} = Template::Stash::AutoEscaping->new;
return $tt;
};
1;
これは醜いハックのビットで、クラスの内部に臨検することは良いアイデアになることはありませんが、その後Template::Contextがstash
オブジェクトを変更する方法はありません。 ->stash
メソッドは読み取り専用であり、実行時にのみ設定できます。
template_toolkit
ではなく、新しいサブクラスを設定ファイルで使用できます。
engines:
template:
TemplateToolkit::AutoEscaping:
start_tag: '<%'
end_tag: '%>'
これはあなたがあなたの設定ファイルにSTASH
のために加えたかもしれない任意の構成を失うことになりますので注意してください。明示的にラッパーの設定を取得し、STASH
があればそれを除外して、新しいnew
に渡してください。私はそれを読者のための練習として残します。
関連する問題
- 1. Dancer2のconfig.yml(空白を取り除く)のTemplate :: Toolkitの設定
- 2. Template :: Toolkit- Macrosを含めるには?
- 3. Template Toolkitのマクロ引数でHTMLフィルタを使用するにはどうすればよいですか?
- 4. Dancer2でログフォーマットを設定するにはどうしたらいいですか?
- 5. Template Toolkitで一重引用符をエスケープする方法は?
- 6. Template :: Toolkitでmod_perlハンドラを使って動的コンテンツを生成するには?
- 7. httpsを使用するようSonarQube6.2を設定するには?
- 8. Elixir/Phoenix:設定ファイルでサードパーティのモジュールを使用するには?
- 9. Intellijを使用して別のプロジェクト/モジュールの設定ファイルを必要とするJavaクラスを実行するにはどうすればよいですか?
- 10. django-adminにどの設定モジュールを使用するように指示するのですか?
- 11. パティ/ピンクを使用するようにmsysgitを設定する
- 12. libgpuarrayを使用するようにtheanoを設定する
- 13. JavaScriptを使用するようにEclipseを設定する
- 14. システムユーザ/パスワードを使用するようにSubversionを設定する
- 15. SSLを使用するようにTomcatを設定する
- 16. RSA鍵を使用するようにリポジトリを設定する
- 17. Pug-PHPを使用するようにPhpStormを設定する
- 18. HTML :: FormFuを使用して、フィールド値*を処理後に変更して、Template Toolkitで変更されたように見えるようにしますか?
- 19. Zend Frameworkに 'モジュール固有の設定'を使用させるにはどうすればよいですか?
- 20. Catalyst Template :: Toolkitレンダリング出力
- 21. プリンタ設定を設定するのにC#を使用するにはどうすればよいですか?
- 22. モジュールを別のモジュールの内部で使用するにはどうすればよいですか?
- 23. 別のIPにルーティングするようにnginxを設定するには?
- 24. モジュール名をSwiftPMのディレクトリ名と異なるように設定する
- 25. smarty template engineをubuntuにインストールするには?どのようにPHPでそれを使用するには?
- 26. ボタンの設定を別のパネルで異なるように設定する
- 27. javaccをコマンドプロンプトで使用するように設定する
- 28. Dancer2のセッションオブジェクトにアクセスするには?
- 29. Template Toolkit/Date :: Manipの最後の日を取得する
- 30. URLリダイレクタでHTTPSのみを使用するように設定するには