removed some repetition from the themes module
This commit is contained in:
parent
ba719c00be
commit
ce2d7153f7
|
@ -68,68 +68,37 @@ impl Theme {
|
||||||
return theme;
|
return theme;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for individual files if they exist
|
// Check for individual files, if they exist copy them across
|
||||||
|
{
|
||||||
|
let files = vec![
|
||||||
|
(src.join("index.hbs"), &mut theme.index),
|
||||||
|
(src.join("book.js"), &mut theme.js),
|
||||||
|
(src.join("book.css"), &mut theme.css),
|
||||||
|
(src.join("favicon.png"), &mut theme.favicon),
|
||||||
|
(src.join("highlight.js"), &mut theme.highlight_js),
|
||||||
|
(src.join("clipboard.min.js"), &mut theme.clipboard_js),
|
||||||
|
(src.join("store.js"), &mut theme.store_js),
|
||||||
|
(src.join("highlight.css"), &mut theme.highlight_css),
|
||||||
|
(src.join("tomorrow-night.css"), &mut theme.tomorrow_night_css),
|
||||||
|
(src.join("ayu-highlight.css"), &mut theme.ayu_highlight_css),
|
||||||
|
];
|
||||||
|
|
||||||
// index.hbs
|
for (filename, dest) in files {
|
||||||
if let Ok(mut f) = File::open(&src.join("index.hbs")) {
|
load_file_contents(filename, dest);
|
||||||
theme.index.clear(); // Reset the value, because read_to_string appends...
|
}
|
||||||
let _ = f.read_to_end(&mut theme.index);
|
|
||||||
}
|
|
||||||
|
|
||||||
// book.js
|
|
||||||
if let Ok(mut f) = File::open(&src.join("book.js")) {
|
|
||||||
theme.js.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.js);
|
|
||||||
}
|
|
||||||
|
|
||||||
// book.css
|
|
||||||
if let Ok(mut f) = File::open(&src.join("book.css")) {
|
|
||||||
theme.css.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.css);
|
|
||||||
}
|
|
||||||
|
|
||||||
// favicon.png
|
|
||||||
if let Ok(mut f) = File::open(&src.join("favicon.png")) {
|
|
||||||
theme.favicon.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.favicon);
|
|
||||||
}
|
|
||||||
|
|
||||||
// highlight.js
|
|
||||||
if let Ok(mut f) = File::open(&src.join("highlight.js")) {
|
|
||||||
theme.highlight_js.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.highlight_js);
|
|
||||||
}
|
|
||||||
|
|
||||||
// clipboard.js
|
|
||||||
if let Ok(mut f) = File::open(&src.join("clipboard.min.js")) {
|
|
||||||
theme.clipboard_js.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.clipboard_js);
|
|
||||||
}
|
|
||||||
|
|
||||||
// store.js
|
|
||||||
if let Ok(mut f) = File::open(&src.join("store.js")) {
|
|
||||||
theme.store_js.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.store_js);
|
|
||||||
}
|
|
||||||
|
|
||||||
// highlight.css
|
|
||||||
if let Ok(mut f) = File::open(&src.join("highlight.css")) {
|
|
||||||
theme.highlight_css.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.highlight_css);
|
|
||||||
}
|
|
||||||
|
|
||||||
// tomorrow-night.css
|
|
||||||
if let Ok(mut f) = File::open(&src.join("tomorrow-night.css")) {
|
|
||||||
theme.tomorrow_night_css.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.tomorrow_night_css);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ayu-highlight.css
|
|
||||||
if let Ok(mut f) = File::open(&src.join("ayu-highlight.css")) {
|
|
||||||
theme.ayu_highlight_css.clear();
|
|
||||||
let _ = f.read_to_end(&mut theme.ayu_highlight_css);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
theme
|
theme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn load_file_contents<P: AsRef<Path>>(filename: P, dest: &mut Vec<u8>) {
|
||||||
|
let filename = filename.as_ref();
|
||||||
|
|
||||||
|
if let Ok(mut f) = File::open(filename) {
|
||||||
|
dest.clear();
|
||||||
|
if let Err(e) = f.read_to_end(dest) {
|
||||||
|
warn!("Couldn't load custom file, {}: {}", filename.display(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue