将css块转换为样式属性
premailer_cspw的Python项目详细描述
将css块转换为样式属性
当你发送HTML邮件时,你不能使用样式标签,而是 必须在每个元素上放置inlinestyle属性。所以从这里:
<html> <style type="text/css"> h1 { border:1px solid black } p { color:red;} </style> <h1 style="font-weight:bolder">Peter</h1> <p>Hej</p> </html>
你想要这个:
<html> <h1 style="font-weight:bolder; border:1px solid black">Peter</h1> <p style="color:red">Hej</p> </html>
预编译器这样做。它解析一个html页面,查找样式块 并解析css。然后使用lxml.html解析器修改 相应的页面的dom树。
开始
如果您还没有安装,请先安装预编译器
$ pip install premailer
接下来,最基本的用法是使用快捷键功能,如下所示:
>>> from premailer import transform >>> print transform(""" ... <html> ... <style type="text/css"> ... h1 { border:1px solid black } ... p { color:red;} ... p::first-letter { float:left; } ... </style> ... <h1 style="font-weight:bolder">Peter</h1> ... <p>Hej</p> ... </html> ... """) <html> <head></head> <body> <h1 style="font-weight:bolder; border:1px solid black">Peter</h1> <p style="color:red">Hej</p> </body> </html>
有关更高级的选项,请查看预编译器类的代码 以及它的构造函数中的所有选项。
将相对URL转换为绝对URL
premailer可以为您做的另一件事是转换相对url(例如。 “/some/page.html”转换成“http://www.peterbe.com/some/page.html”)。它 对所有不具有属性的和src属性执行此操作:// 参与其中。例如,转动此键:
<html> <body> <a href="/">Home</a> <a href="page.html">Page</a> <a href="http://crosstips.org">External</a> <img src="/folder/">Folder</a> </body> </html>
进入这个:
<html> <body> <a href="http://www.peterbe.com/">Home</a> <a href="http://www.peterbe.com/page.html">Page</a> <a href="http://crosstips.org">External</a> <img src="http://www.peterbe.com/folder/">Folder</a> </body> </html>
通过使用转换('…',base_url='http://www.peterbe.com/')。
额外创建的HTML属性
如果css 包含任何易于转换为HTML属性的属性。为了 例如,如果您有这个css:td{背景色:eee;},则 它被转换为style=“background color:eee”并作为 html属性bgcolor=“eee”。
拥有这些额外的属性,基本上是为真正的狗屎做“后盾” 甚至不能接受样式属性的电子邮件客户端。很多 专业的html新闻稿,比如amazon使用这个。