Comments (6)
Looks like this could be related to #15
Did that pull request get unmerged somehow?
from premailer.
Hi @mxdubois !
Yeah, premailer isn't as smart as the css parser in a web browser for example.
What do you think the right thing is to do here? It could recognize it with a simple regex and then do a urllib.urlopen(url).read()
and include that.
from premailer.
Regarding #15 I think that got merged. It's here: https://github.com/peterbe/premailer/blob/master/premailer/premailer.py#L129
from premailer.
Well @SimonSapin recommended using tinycss:
Consider using an actual CSS parser like tinycss. With tinycss you can test if some_rule.at_keyword is None: … to only pick style rules (as opposed to at-rules such as
@import
.)
He didn't seem to approve of using regex to parse CSS. He linked me to this and said it applies to CSS as well.
I was thinking it'd be good just to ignore the @import
so that it doesn't break cssselect. But if you want to take on the challenge of importing it, that could be neat. I'm not sure if you'd be able to inline an @font-face
definition though.
from premailer.
I'll be honest... @SimonSapin is right. Doing a regex is cheating that will eventually fail. But I feel like there's lots more things that can go wrong if you expect premailer to be as smart as a web browser.
I don't think I will set aside time to work on a solution that uses tinycss or urllib.urlopen to import those external dependencies.
But if there's a nice patch with tests I'd be very eager to look at it. :)
from premailer.
And giving <style type="text/css" media="all">
only strip classes but not generates inline styles.
Removing media="all"
works as expected. <style type="text/css" >
from premailer.
Related Issues (20)
- Premailer strips important tags from stylesheets meant to be ignored HOT 2
- Does premailer support css variables? HOT 4
- Mustache {{ }} syntax in href is broken on transform HOT 2
- premailer doesn't appear to work on m1 macs HOT 18
- premailer issue
- Prefill advanced options of hosted Premailer? HOT 3
- Add cache support for _load_external_url HOT 2
- To support css var HOT 1
- :not is not supported
- Style sorting breaking proper precedence HOT 3
- Question about self-closing tags HOT 1
- allow_network=False prevents loading of local stylesheets
- preserve_handlebar_syntax regex should be improved
- Direct child selector (">") is ignored
- Bug: Global style with !important do not take precedence over the respective inline style
- Deleted HOT 1
- load_external_url should have a proper timeout set
- AttributeError: 'CSSMediaRule' object has no attribute 'style'
- 1 HOT 2
- lxml 5.0 Seems To Break preserve_handlebar_syntax
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from premailer.