次のシナリオがあります。
- サーバー側でweb2pyを使用しています
- いくつかのember.jsページを提供しています
- 現在、これらのember.jsページはiframe内にあります。これは、ember.jsとweb2pyがテンプレート{{}}マークと競合するためです。つまり、web2pyテンプレートとember.jsテンプレートを簡単に混在させることはできません。
- だから私はヘルパークラスのソリューションを実装しました:
class em(DIV)
- ここで、元のemberタグ付きhtmlファイルを処理し、emタグ付きファイルを作成して、ember.jsとweb2pyテンプレートシステムをまとまりのあるユニットに統合したいと思います。
そのために{{XXX}}
は、ember.jsファイル内のすべてのインスタンスを{{= em('XXX')}}に変更する必要があります。これには、複数行にまたがるインスタンスも含まれます。ここで正規表現を使用することを考えていますが、車輪の再発明を避けたいと思います(そして奇妙なコーナーケースを処理する必要があります)
これらの種類のテンプレートを解析するPythonの一般的な方法を考えてみてください。{{
開始と終了の区切り文字(および}}
)を探し、、を入れ、改行を処理=em('XXX')
し、形式を保持する(つまり、改行がある場合は保持する)だけです。
注:これは実際にはember.js固有ではありません。複数行の区切り文字ベースのテンプレートシステムに適用できます。