@@ -135,25 +135,28 @@ pub fn inline(html: &str) -> Result<String, InlineError> {
135
135
let mut parse_input = cssparser:: ParserInput :: new ( css. as_str ( ) ) ;
136
136
let mut parser = parse:: CSSParser :: new ( & mut parse_input) ;
137
137
for parsed in parser. parse ( ) {
138
- let ( selector, declarations) = parsed?;
139
- let rule = Rule :: new ( & selector, declarations)
140
- . map_err ( |_| error:: InlineError :: ParseError ) ?;
141
- let matching_elements = document
142
- . inclusive_descendants ( )
143
- . filter_map ( |node| node. into_element_ref ( ) )
144
- . filter ( |element| rule. selectors . matches ( element) ) ;
145
- for matching_element in matching_elements {
146
- let mut attributes = matching_element. attributes . borrow_mut ( ) ;
147
- let style = if let Some ( existing_style) = attributes. get ( "style" ) {
148
- merge_styles ( existing_style, & rule. declarations ) ?
149
- } else {
150
- rule. declarations
151
- . iter ( )
152
- . map ( |& ( ref key, ref value) | format ! ( "{}:{};" , key, value) )
153
- . collect ( )
154
- } ;
155
- attributes. insert ( "style" , style) ;
138
+ if let Ok ( ( selector, declarations) ) = parsed {
139
+ let rule = Rule :: new ( & selector, declarations)
140
+ . map_err ( |_| error:: InlineError :: ParseError ) ?;
141
+ let matching_elements = document
142
+ . inclusive_descendants ( )
143
+ . filter_map ( |node| node. into_element_ref ( ) )
144
+ . filter ( |element| rule. selectors . matches ( element) ) ;
145
+ for matching_element in matching_elements {
146
+ let mut attributes = matching_element. attributes . borrow_mut ( ) ;
147
+ let style = if let Some ( existing_style) = attributes. get ( "style" ) {
148
+ merge_styles ( existing_style, & rule. declarations ) ?
149
+ } else {
150
+ rule. declarations
151
+ . iter ( )
152
+ . map ( |& ( ref key, ref value) | format ! ( "{}:{};" , key, value) )
153
+ . collect ( )
154
+ } ;
155
+ attributes. insert ( "style" , style) ;
156
+ }
156
157
}
158
+ // Ignore not parsable entries. E.g. there is no parser for @media queries
159
+ // Which means that they will fall into this category and will be ignored
157
160
}
158
161
}
159
162
}
0 commit comments