我正在使用pystache
(在Python 3.4上)来模拟通过电子邮件发送的HTML文件。
我有一个main.mustache
文件,其中一些标记意味着被其他.mustache
文件的内容替换。
所以我有这样的东西(简化版):
<body>
<table>
.......
{{some_params}}
....
</table>
{{special_warning}}
</body>
{{special_warning}}
标记仅在某些条件下使用,来自文件special_warning.mustache
:
<table>
<tbody>
<tr>
<td>
<h4 style="margin: 0; margin-bottom: 20px;"
Well, this is odd. please re-do last action.
</h4>
</td>
</tr>
</tbody>
</table>
在我的python脚本中,我做了:
special_message = ''
if <some condition>:
special_message = renderer.render_path('special_warning.mustache', {})
proc_templ = renderer.render_path('main.mustache', {'special_warning': special_message , <the other params>})
我得到的结果是main.mustache
部分的正确消息,但来自special_warning.mustache
的部分是HTML编码的:
<body>
<table>
.......
some_params
....
</table>
<table>
<tbody>
....
</tbody>
</table>
</body>
我有什么想法可以阻止这种HTML编码?是python string
这样做,还是pystache渲染呢?
答案 0 :(得分:1)
使用三重括号可以避免html转义。所以我的main.mustache应该是:
<body>
<table>
.......
{{some_params}}
....
</table>
{{{special_warning}}}
</body>