我使用jinja2
模板引擎创建HTML电子邮件及其明文替代方案,然后使用Sendgrid
发送。不幸的是,对于我懒惰的自我,这需要我编写和维护两个具有基本相同内容的单独模板,.html
文件和.txt
文件。除了不包含HTML标记之外,.txt
文件与HTML文件相同。
有没有办法简单地使用HTML模板,然后以某种方式动态生成txt
版本,基本上只是剥离HTML标签?我知道正则表达式可以实现这一点,但我也知道实现正则表达式来处理HTML标记是众所周知的。
答案 0 :(得分:0)
即使HTML被破坏,我也使用这个技巧从HTML中获取文本:
text = get_some_html()
import StringIO, htmllib, formatter
io = StringIO.StringIO()
htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(io))).feed("<pre>"+text+"</pre>")
text = io.getvalue()
如果您确定自己的HTML格式正确,则不需要这些<pre>
代码。