@@ -135,25 +135,28 @@ pub fn inline(html: &str) -> Result<String, InlineError> {
135135 let mut parse_input = cssparser:: ParserInput :: new ( css. as_str ( ) ) ;
136136 let mut parser = parse:: CSSParser :: new ( & mut parse_input) ;
137137 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+ }
156157 }
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
157160 }
158161 }
159162 }
0 commit comments