をbleach
使用しています。これは、テンプレートhtml5lib
として設計された HTML フラグメントであるユーザー生成コンテンツをクリーンアップするために使用しますdust.js
この状況を除いて、すべてがうまくいきました-
入力:
<table>
{#loop}
<tr>
<td>{name}</td>
</tr>
{/loop}
</table>
出力:
{#loop}
{/loop}
<table>
<tr>
<td>{name}</td>
</tr>
</table>
ループ タグはテーブルの外に配置されています。これは完全に理にかなっています-html5libは私のhtmlを修正しています。コンテンツは、td/th タグでラップされていない限り、テーブル構造内にあってはなりません。私は通常、このような修正が行われることを望んでおり、それでも修正が行われることを望んでいますが、何らかの方法でこれらのタグを取得する方法があるかどうか疑問に思っています.
過去に同様の状況に遭遇し、このサニタイズ動作を抑制できた人はいますか?
これまでに思いついた唯一のアプローチは、正規表現できるタグでコントロールをラップすることです。
<table>
<tr data-layout=""><td>{#loop}</td></tr>
<tr>
<td>{name}</td>
</tr>
<tr data-layout=""><td>{/loop}</td></tr>
</table>
このアプローチの問題は、このフォーマット ハックを正規表現すると、簡単に元に戻すことができないことです。エンコードされたテンプレートは編集できなくなります。