From 2e3dc2289bba2447fc550e88dc9e7334ae3ff4f7 Mon Sep 17 00:00:00 2001 From: Teascade Date: Sat, 21 Apr 2018 16:08:44 +0300 Subject: [PATCH] Make only per-site css/js have tags --- src/builder.rs | 24 ++++++++++++++++-------- src/template.rs | 5 +++-- src/templates/default-js.js | 4 ++-- src/templates/meta_tags/css_tag.html | 2 +- src/templates/meta_tags/js_tag.html | 2 +- 5 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/builder.rs b/src/builder.rs index f8c2308..27c732f 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -88,28 +88,36 @@ pub fn build(logger: &Logger, opt: &Opt, _: &BuildOpt) -> Result<(), Error> { logger.log(LogLevel::DETAILER, "Generating CSS tags"); let mut css_string = String::new(); let mut css_list = config.global_config.website.css.clone(); - if let Some(mut list) = config.page_config.page.css.clone() { - css_list.append(&mut list); - } for item in css_list { - let data = Template::css_tag_data_from(item); + let data = Template::css_tag_data_from(item, false); css_string += &*css_tag_template.render(&data); } + if let Some(mut list) = config.page_config.page.css.clone() { + for item in list { + let data = Template::css_tag_data_from(item, true); + css_string += &*css_tag_template.render(&data); + } + } + // Generate JS tags logger.log(LogLevel::DETAILER, "Generating JS tags"); let mut js_string = String::new(); let mut js_list = config.global_config.website.javascript.clone(); - if let Some(mut list) = config.page_config.page.javascript.clone() { - js_list.append(&mut list); - } for item in js_list { - let data = Template::css_tag_data_from(item); + let data = Template::css_tag_data_from(item, false); js_string += &*js_tag_template.render(&data); } + if let Some(mut list) = config.page_config.page.javascript.clone() { + for item in list { + let data = Template::css_tag_data_from(item, true); + js_string += &*js_tag_template.render(&data); + } + } + // Generate and render Injections logger.log(LogLevel::DETAILER, "Rendering injections."); let (before_navbar, before_content, after_content) = diff --git a/src/template.rs b/src/template.rs index bd9c2e4..72679a6 100644 --- a/src/template.rs +++ b/src/template.rs @@ -63,9 +63,10 @@ impl Template { result } - pub fn css_tag_data_from(link: String) -> Data { + pub fn css_tag_data_from(link: String, is_per_site: bool) -> Data { hashmap!( - "link".to_owned() => link + "link".to_owned() => link, + "class".to_owned() => if is_per_site {"_default_js_meta".to_owned()} else {String::new()} ) } diff --git a/src/templates/default-js.js b/src/templates/default-js.js index 2fa9a53..a2077a8 100644 --- a/src/templates/default-js.js +++ b/src/templates/default-js.js @@ -66,7 +66,7 @@ function change_page(new_document, new_url, no_pop_state) { document.querySelector("link[rel*='icon']").href = new_favicon; // Replace css/js tags - let list = document.getElementsByClassName("._default_js_meta"); + let list = document.getElementsByClassName("_default_js_meta"); for (i in list) { let element = list[0]; if (element !== undefined) { @@ -74,7 +74,7 @@ function change_page(new_document, new_url, no_pop_state) { } } - let new_list = new_document.getElementsByClassName("._default_js_meta"); + let new_list = new_document.getElementsByClassName("_default_js_meta"); for (i in new_list) { let element = new_list[0]; if (element !== undefined) { diff --git a/src/templates/meta_tags/css_tag.html b/src/templates/meta_tags/css_tag.html index adf1645..68e5073 100644 --- a/src/templates/meta_tags/css_tag.html +++ b/src/templates/meta_tags/css_tag.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/templates/meta_tags/js_tag.html b/src/templates/meta_tags/js_tag.html index 0264858..0597c71 100644 --- a/src/templates/meta_tags/js_tag.html +++ b/src/templates/meta_tags/js_tag.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file