Crate css_purify [−] [src]
css-purify
This library provides a way to identify and remove unused CSS from stylesheets.
It does this by looking for selectors that do not match a provided HTML5 document.
Pseudo-elements and psuedo-classes are assumed to always match except for :empty, :root, :any-link, :link and :visited.
## Getting Started
### Purifying a CSS stylesheet
extern crate css_purify;
use ::css_purify::*;
use ::css_purify::html5ever_ext::*;
use ::css_purify::html5ever_ext::css::*;
let document = RcDom::from_file_path_verified_and_stripped_of_comments_and_processing_instructions_and_with_a_sane_doc_type("/path/to/document.html");
let stylesheet = Stylesheet::from_file_path("/path/to/stylesheet.css");
// If a CSS rule is unused in all documents (or nodes), then remove it.
stylesheet.remove_unused_css_rules(&[&document]);
// (Optionally) Save stylesheet
stylesheet.to_file_path("/path/to/stylesheet.css");
// (Optionally) Inject CSS into document, eg for use in self-contained Google AMP pages.
let mut first_style_node = None;
rc_dom.find_all_matching_child_nodes_depth_first_including_this_one(&parse_css_selector("head > style[amp]").unwrap(), &mut |node|
{
first_style_node = Some(node.clone());
true
});
if let Some(ref first_style_node) = first_style_node
{
first_style_node.append_text(&mut rc_dom, &stylesheet.to_css_string());
}
```Reexports
pub extern crate html5ever_ext; |
Traits
| DeduplicatedSelectorsExt |
Extensions to DeduplicatedSelectors. |
| HasCssRulesExt |
An extension trait for HasCssRules |