プレーンテキストフィールドからsvgイメージマークアップコードをhtmlにレンダリングしようとして壁にぶつかりました。
プレーンテキストフィールドレンダリングを他の場所でオーバーライドせずに、プレーンテキストフィールドからsvgコードをレンダリングしようとしています。
プレーンテキスト形式は現在、すべてのhtmlタグと<>をに変換し< >
ます。
フィールドテンプレートを作成し、両方のフィールドコンテンツを出力しようとしました
{{ item.content.context.value }}
そして
{{ item.content|raw }}
どちらも、値を「引用符」ですべての行をラップする文字列としてレンダリングし、改行を <br/>
タグにます。
以前はフィールドタイプの書式設定されたテキストがありましたが、それでもすべてがラップされていました <pre>
、すべてのタグが許可されて、タグでいました。プレーンテキストで動作するようにしたいです。
フィールドがテキスト形式で保持する必要があるsvg-codeの例:
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 290 290" enable-background="new 0 0 290 290" xml:space="preserve">
<g>
<path fill="none" stroke="#78C681" stroke-width="3" stroke-miterlimit="10" d="M261.1,273.1H28.9c-6.6,0-12-5.4-12-12V28.9
c0-6.6,5.4-12,12-12h232.1c6.6,0,12,5.4,12,12v232.1C273.1,267.7,267.7,273.1,261.1,273.1z"/>
<circle fill="none" stroke="#1B435D" stroke-width="2" stroke-miterlimit="10" cx="145.2" cy="166.9" r="62.7"/>
<line fill="none" stroke="#78C681" stroke-width="3" stroke-miterlimit="10" x1="16.9" y1="60.8" x2="273.1" y2="60.8"/>
<circle fill="none" stroke="#1B435D" stroke-width="2" stroke-miterlimit="10" cx="178.3" cy="152.3" r="6.8"/>
<path fill="none" stroke="#1B435D" stroke-width="2" stroke-linecap="round" stroke-miterlimit="10" d="M115.1,167.9
c8.8,0,22.3,3.2,28.4,4.7"/>
<path fill="none" stroke="#1B435D" stroke-width="2" stroke-linecap="round" stroke-miterlimit="10" d="M151.9,216.9
c0,0,17.2-1.5,29.6-14.8"/>
</g>
</svg>
誰かが助けてくれることを願っています。
ベスト、
アラリ
|raw
既にマークアップをエスケープしていません。エスケープはTwigの自動エスケープよりも早く発生しています。