我正在使用bleach
,它用于html5lib
清理用户生成的内容,这些内容是设计为dust.js
模板的 HTML 片段
一切都很好,除了这种情况-
输入:
<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>
这种方法的问题在于,一旦我正则表达式出这种格式化黑客,我就不能轻易地将它重新构建。编码的模板变得不可编辑。