
Do you train Kung Fu?
Or know someone who does?
Then check out KungFuPeople.com
Mobile version of this pageMy first iPhone web app - Crosstips iPhone interface
Next:
setuptools usability - not good, what can be done?
Related blogs
XHTML, HTML and CSS compressorPractical CSS
10 reasons for web standards
Optimized stylesheets
setAttribute('style', ...) workaround for IE
The problem with CSS
Good design examples for a non-blog
The awesomest way possible to serve your static stuff in Django with Nginx
Related by category
premailer.py - Transform CSS into line style attributes with lxml.html
11th of July 2009
By blogging about it I can pretty much guarantee that someone will comment and say "Hey, why didn't you use the pypi/alreadyexists package which does the same thing but better". I couldn't find one after a quick search and I felt the hacker mood creeping up on my begging me to (re)invent it.
premailer.py takes a HTML page, finds all CSS blocks and transforms these into style attributes. For example, from this:
<head>
<title>Test</title>
<style>
h1, h2 { color:red; }
strong {
text-decoration:none
}
</style>
</head>
<body>
<h1>Hi!</h1>
<p><strong>Yes!</strong></p>
</body>
</html>
You get this:
<head>
<title>Test</title>
</head>
<body>
<h1 style="color:red">Hi!</h1>
<p><strong style="text-decoration:none">Yes!</strong></p>
</body>
</html>
Why is this useful? When you're writing HTML emails. Like this newsletter app that I'm working on.
I just wrote it late yesterday and it needs lots of work to impress but for the moment it works for me. If I take the time to tidy it up properly I'll turn it into a package. Assuming there isn't one already :)
UPDATE
No available on github.com and as a PyPi package
Tweet
Comment
I've been looking for something like this to use as a PyBlosxom plugin to inline styles in the RSS feed. And when I say "looking", I mean "posting a question and waiting for lazyweb to come up with an answer". So, thanks ;-)
What is the licence of your code?
No licence yet but I'm guessing something very forgiving. I've made a much improved version but haven't uploaded it yet.
I guess I'll stick it on pypi
funny I have done the same a few weeks ago. I'll compare with your module if there is anything I can add.


Save this page in del.icio.us
XIST includes a function for doing this. An online version of the CSS inliner is available from http://lltools.appspot.com/CSSInliner.html