diff --git a/src/html.rs b/src/html.rs
index 1c0f325..9373a69 100644
--- a/src/html.rs
+++ b/src/html.rs
@@ -8,7 +8,7 @@ use html5ever::{local_name, namespace_url, ns};
use http::retrieve_asset;
use js::attr_is_event_handler;
use std::default::Default;
-use utils::{data_to_dataurl, is_valid_url, resolve_url, url_has_protocol, resolve_css_imports};
+use utils::{data_to_dataurl, is_valid_url, resolve_css_imports, resolve_url, url_has_protocol};
lazy_static! {
static ref EMPTY_STRING: String = String::new();
diff --git a/src/http.rs b/src/http.rs
index a5a9475..7fa60f0 100644
--- a/src/http.rs
+++ b/src/http.rs
@@ -45,11 +45,22 @@ pub fn retrieve_asset(
};
Ok((
- if response.status() != 200 { "".to_string() } else { data_to_dataurl(&mimetype, &data) },
+ if response.status() != 200 {
+ "".to_string()
+ } else {
+ data_to_dataurl(&mimetype, &data)
+ },
response.url().to_string(),
))
} else {
- Ok((if response.status() != 200 { "".to_string() } else { response.text().unwrap() }, response.url().to_string()))
+ Ok((
+ if response.status() != 200 {
+ "".to_string()
+ } else {
+ response.text().unwrap()
+ },
+ response.url().to_string(),
+ ))
}
}
}
diff --git a/src/utils.rs b/src/utils.rs
index f93800c..069e095 100644
--- a/src/utils.rs
+++ b/src/utils.rs
@@ -1,8 +1,8 @@
extern crate base64;
use self::base64::encode;
-use regex::Regex;
use http::retrieve_asset;
+use regex::Regex;
use url::{ParseError, Url};
lazy_static! {
@@ -83,14 +83,25 @@ pub fn resolve_url(from: &str, to: &str) -> Result {
Ok(result)
}
-pub fn resolve_css_imports(css_string: &str, href: &str, opt_user_agent: &str, opt_silent: bool, opt_insecure: bool) -> Result {
+pub fn resolve_css_imports(
+ css_string: &str,
+ href: &str,
+ opt_user_agent: &str,
+ opt_silent: bool,
+ opt_insecure: bool,
+) -> Result {
let mut resolved_css = String::from(css_string);
- let re = Regex::new(r###"url\((?:(?:https?|ftp)://)?"?[\w/\-?=%.]+\.[\w/\-?=%.]+"?\)"###).unwrap();
-
+ let re =
+ Regex::new(r###"url\((?:(?:https?|ftp)://)?"?[\w/\-?=%.]+\.[\w/\-?=%.]+"?\)"###).unwrap();
+
for link in re.captures_iter(&css_string) {
- let target_link = if link[0].chars().nth(4) == Some('"') { &link[0][5..link[0].len()-2] } else {&link[0][4..link[0].len()-1]};
+ let target_link = if link[0].chars().nth(4) == Some('"') {
+ &link[0][5..link[0].len() - 2]
+ } else {
+ &link[0][4..link[0].len() - 1]
+ };
let embedded_url = String::from([href, "/../", &target_link.to_string()].concat());
-
+
let (css_dataurl, _) = retrieve_asset(
&embedded_url,
true, // true
@@ -100,13 +111,22 @@ pub fn resolve_css_imports(css_string: &str, href: &str, opt_user_agent: &str, o
opt_insecure,
)
.unwrap_or((EMPTY_STRING.clone(), EMPTY_STRING.clone()));
-
- let replacement = &["\"", &css_dataurl.replace("\"",&["\\", "\""].concat()).to_string(), "\""].concat();
- let t = resolved_css.replace(&link[0][4..link[0].len() - 1], &replacement).to_string();
+
+ let replacement = &[
+ "\"",
+ &css_dataurl
+ .replace("\"", &["\\", "\""].concat())
+ .to_string(),
+ "\"",
+ ]
+ .concat();
+ let t = resolved_css
+ .replace(&link[0][4..link[0].len() - 1], &replacement)
+ .to_string();
resolved_css = t.clone();
}
let encoded_css = data_to_dataurl("text/css", resolved_css.as_bytes());
Ok(encoded_css.to_string())
-}
\ No newline at end of file
+}