Add SVG favicon.
This commit is contained in:
parent
c1ed6ee108
commit
4699269e49
|
@ -22,7 +22,8 @@ Here are the files you can override:
|
||||||
- **_highlight.js_** is the JavaScript that is used to highlight code snippets,
|
- **_highlight.js_** is the JavaScript that is used to highlight code snippets,
|
||||||
you should not need to modify this.
|
you should not need to modify this.
|
||||||
- **_highlight.css_** is the theme used for the code highlighting.
|
- **_highlight.css_** is the theme used for the code highlighting.
|
||||||
- **_favicon.png_** the favicon that will be used.
|
- **_favicon.svg_** and **_favicon.png_** the favicon that will be used. The SVG
|
||||||
|
version is used by [newer browsers].
|
||||||
|
|
||||||
Generally, when you want to tweak the theme, you don't need to override all the
|
Generally, when you want to tweak the theme, you don't need to override all the
|
||||||
files. If you only need changes in the stylesheet, there is no point in
|
files. If you only need changes in the stylesheet, there is no point in
|
||||||
|
@ -40,3 +41,4 @@ If you completely replace all built-in themes, be sure to also set
|
||||||
built-in `navy` theme.
|
built-in `navy` theme.
|
||||||
|
|
||||||
[`output.html.preferred-dark-theme`]: ../config.md#html-renderer-options
|
[`output.html.preferred-dark-theme`]: ../config.md#html-renderer-options
|
||||||
|
[newer browsers]: https://caniuse.com/#feat=link-icon-svg
|
||||||
|
|
|
@ -143,7 +143,10 @@ impl BookBuilder {
|
||||||
variables_css.write_all(theme::VARIABLES_CSS)?;
|
variables_css.write_all(theme::VARIABLES_CSS)?;
|
||||||
|
|
||||||
let mut favicon = File::create(themedir.join("favicon.png"))?;
|
let mut favicon = File::create(themedir.join("favicon.png"))?;
|
||||||
favicon.write_all(theme::FAVICON)?;
|
favicon.write_all(theme::FAVICON_PNG)?;
|
||||||
|
|
||||||
|
let mut favicon = File::create(themedir.join("favicon.svg"))?;
|
||||||
|
favicon.write_all(theme::FAVICON_SVG)?;
|
||||||
|
|
||||||
let mut js = File::create(themedir.join("book.js"))?;
|
let mut js = File::create(themedir.join("book.js"))?;
|
||||||
js.write_all(theme::JS)?;
|
js.write_all(theme::JS)?;
|
||||||
|
|
|
@ -192,7 +192,8 @@ impl HtmlHandlebars {
|
||||||
write_file(destination, "css/chrome.css", &theme.chrome_css)?;
|
write_file(destination, "css/chrome.css", &theme.chrome_css)?;
|
||||||
write_file(destination, "css/print.css", &theme.print_css)?;
|
write_file(destination, "css/print.css", &theme.print_css)?;
|
||||||
write_file(destination, "css/variables.css", &theme.variables_css)?;
|
write_file(destination, "css/variables.css", &theme.variables_css)?;
|
||||||
write_file(destination, "favicon.png", &theme.favicon)?;
|
write_file(destination, "favicon.png", &theme.favicon_png)?;
|
||||||
|
write_file(destination, "favicon.svg", &theme.favicon_svg)?;
|
||||||
write_file(destination, "highlight.css", &theme.highlight_css)?;
|
write_file(destination, "highlight.css", &theme.highlight_css)?;
|
||||||
write_file(destination, "tomorrow-night.css", &theme.tomorrow_night_css)?;
|
write_file(destination, "tomorrow-night.css", &theme.tomorrow_night_css)?;
|
||||||
write_file(destination, "ayu-highlight.css", &theme.ayu_highlight_css)?;
|
write_file(destination, "ayu-highlight.css", &theme.ayu_highlight_css)?;
|
||||||
|
@ -562,7 +563,6 @@ fn make_data(
|
||||||
"description".to_owned(),
|
"description".to_owned(),
|
||||||
json!(config.book.description.clone().unwrap_or_default()),
|
json!(config.book.description.clone().unwrap_or_default()),
|
||||||
);
|
);
|
||||||
data.insert("favicon".to_owned(), json!("favicon.png"));
|
|
||||||
if let Some(ref livereload) = html_config.livereload_url {
|
if let Some(ref livereload) = html_config.livereload_url {
|
||||||
data.insert("livereload".to_owned(), json!(livereload));
|
data.insert("livereload".to_owned(), json!(livereload));
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 199.7 184.2">
|
||||||
|
<style>
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
svg { fill: white; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<path d="M189.5,36.8c0.2,2.8,0,5.1-0.6,6.8L153,162c-0.6,2.1-2,3.7-4.2,5c-2.2,1.2-4.4,1.9-6.7,1.9H31.4c-9.6,0-15.3-2.8-17.3-8.4
|
||||||
|
c-0.8-2.2-0.8-3.9,0.1-5.2c0.9-1.2,2.4-1.8,4.6-1.8H123c7.4,0,12.6-1.4,15.4-4.1s5.7-8.9,8.6-18.4l32.9-108.6
|
||||||
|
c1.8-5.9,1-11.1-2.2-15.6S169.9,0,164,0H72.7c-1,0-3.1,0.4-6.1,1.1l0.1-0.4C64.5,0.2,62.6,0,61,0.1s-3,0.5-4.3,1.4
|
||||||
|
c-1.3,0.9-2.4,1.8-3.2,2.8S52,6.5,51.2,8.1c-0.8,1.6-1.4,3-1.9,4.3s-1.1,2.7-1.8,4.2c-0.7,1.5-1.3,2.7-2,3.7c-0.5,0.6-1.2,1.5-2,2.5
|
||||||
|
s-1.6,2-2.2,2.8s-0.9,1.5-1.1,2.2c-0.2,0.7-0.1,1.8,0.2,3.2c0.3,1.4,0.4,2.4,0.4,3.1c-0.3,3-1.4,6.9-3.3,11.6
|
||||||
|
c-1.9,4.7-3.6,8.1-5.1,10.1c-0.3,0.4-1.2,1.3-2.6,2.7c-1.4,1.4-2.3,2.6-2.6,3.7c-0.3,0.4-0.3,1.5-0.1,3.4c0.3,1.8,0.4,3.1,0.3,3.8
|
||||||
|
c-0.3,2.7-1.3,6.3-3,10.8c-1.7,4.5-3.4,8.2-5,11c-0.2,0.5-0.9,1.4-2,2.8c-1.1,1.4-1.8,2.5-2,3.4c-0.2,0.6-0.1,1.8,0.1,3.4
|
||||||
|
c0.2,1.6,0.2,2.8-0.1,3.6c-0.6,3-1.8,6.7-3.6,11c-1.8,4.3-3.6,7.9-5.4,11c-0.5,0.8-1.1,1.7-2,2.8c-0.8,1.1-1.5,2-2,2.8
|
||||||
|
s-0.8,1.6-1,2.5c-0.1,0.5,0,1.3,0.4,2.3c0.3,1.1,0.4,1.9,0.4,2.6c-0.1,1.1-0.2,2.6-0.5,4.4c-0.2,1.8-0.4,2.9-0.4,3.2
|
||||||
|
c-1.8,4.8-1.7,9.9,0.2,15.2c2.2,6.2,6.2,11.5,11.9,15.8c5.7,4.3,11.7,6.4,17.8,6.4h110.7c5.2,0,10.1-1.7,14.7-5.2s7.7-7.8,9.2-12.9
|
||||||
|
l33-108.6c1.8-5.8,1-10.9-2.2-15.5C194.9,39.7,192.6,38,189.5,36.8z M59.6,122.8L73.8,80c0,0,7,0,10.8,0s28.8-1.7,25.4,17.5
|
||||||
|
c-3.4,19.2-18.8,25.2-36.8,25.4S59.6,122.8,59.6,122.8z M78.6,116.8c4.7-0.1,18.9-2.9,22.1-17.1S89.2,86.3,89.2,86.3l-8.9,0
|
||||||
|
l-10.2,30.5C70.2,116.9,74,116.9,78.6,116.8z M75.3,68.7L89,26.2h9.8l0.8,34l23.6-34h9.9l-13.6,42.5h-7.1l12.5-35.4l-24.5,35.4h-6.8
|
||||||
|
l-0.8-35L82,68.7H75.3z"/>
|
||||||
|
</svg>
|
||||||
|
<!-- Original image Copyright Dave Gandy — CC BY 4.0 License -->
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -20,7 +20,8 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="theme-color" content="#ffffff" />
|
<meta name="theme-color" content="#ffffff" />
|
||||||
|
|
||||||
<link rel="shortcut icon" href="{{ path_to_root }}{{ favicon }}">
|
<link rel="icon" href="{{ path_to_root }}favicon.svg">
|
||||||
|
<link rel="shortcut icon" href="{{ path_to_root }}favicon.png">
|
||||||
<link rel="stylesheet" href="{{ path_to_root }}css/variables.css">
|
<link rel="stylesheet" href="{{ path_to_root }}css/variables.css">
|
||||||
<link rel="stylesheet" href="{{ path_to_root }}css/general.css">
|
<link rel="stylesheet" href="{{ path_to_root }}css/general.css">
|
||||||
<link rel="stylesheet" href="{{ path_to_root }}css/chrome.css">
|
<link rel="stylesheet" href="{{ path_to_root }}css/chrome.css">
|
||||||
|
|
|
@ -21,7 +21,8 @@ pub static CHROME_CSS: &[u8] = include_bytes!("css/chrome.css");
|
||||||
pub static GENERAL_CSS: &[u8] = include_bytes!("css/general.css");
|
pub static GENERAL_CSS: &[u8] = include_bytes!("css/general.css");
|
||||||
pub static PRINT_CSS: &[u8] = include_bytes!("css/print.css");
|
pub static PRINT_CSS: &[u8] = include_bytes!("css/print.css");
|
||||||
pub static VARIABLES_CSS: &[u8] = include_bytes!("css/variables.css");
|
pub static VARIABLES_CSS: &[u8] = include_bytes!("css/variables.css");
|
||||||
pub static FAVICON: &[u8] = include_bytes!("favicon.png");
|
pub static FAVICON_PNG: &[u8] = include_bytes!("favicon.png");
|
||||||
|
pub static FAVICON_SVG: &[u8] = include_bytes!("favicon.svg");
|
||||||
pub static JS: &[u8] = include_bytes!("book.js");
|
pub static JS: &[u8] = include_bytes!("book.js");
|
||||||
pub static HIGHLIGHT_JS: &[u8] = include_bytes!("highlight.js");
|
pub static HIGHLIGHT_JS: &[u8] = include_bytes!("highlight.js");
|
||||||
pub static TOMORROW_NIGHT_CSS: &[u8] = include_bytes!("tomorrow-night.css");
|
pub static TOMORROW_NIGHT_CSS: &[u8] = include_bytes!("tomorrow-night.css");
|
||||||
|
@ -53,7 +54,8 @@ pub struct Theme {
|
||||||
pub general_css: Vec<u8>,
|
pub general_css: Vec<u8>,
|
||||||
pub print_css: Vec<u8>,
|
pub print_css: Vec<u8>,
|
||||||
pub variables_css: Vec<u8>,
|
pub variables_css: Vec<u8>,
|
||||||
pub favicon: Vec<u8>,
|
pub favicon_png: Vec<u8>,
|
||||||
|
pub favicon_svg: Vec<u8>,
|
||||||
pub js: Vec<u8>,
|
pub js: Vec<u8>,
|
||||||
pub highlight_css: Vec<u8>,
|
pub highlight_css: Vec<u8>,
|
||||||
pub tomorrow_night_css: Vec<u8>,
|
pub tomorrow_night_css: Vec<u8>,
|
||||||
|
@ -89,7 +91,8 @@ impl Theme {
|
||||||
theme_dir.join("css/variables.css"),
|
theme_dir.join("css/variables.css"),
|
||||||
&mut theme.variables_css,
|
&mut theme.variables_css,
|
||||||
),
|
),
|
||||||
(theme_dir.join("favicon.png"), &mut theme.favicon),
|
(theme_dir.join("favicon.png"), &mut theme.favicon_png),
|
||||||
|
(theme_dir.join("favicon.svg"), &mut theme.favicon_svg),
|
||||||
(theme_dir.join("highlight.js"), &mut theme.highlight_js),
|
(theme_dir.join("highlight.js"), &mut theme.highlight_js),
|
||||||
(theme_dir.join("clipboard.min.js"), &mut theme.clipboard_js),
|
(theme_dir.join("clipboard.min.js"), &mut theme.clipboard_js),
|
||||||
(theme_dir.join("highlight.css"), &mut theme.highlight_css),
|
(theme_dir.join("highlight.css"), &mut theme.highlight_css),
|
||||||
|
@ -129,7 +132,8 @@ impl Default for Theme {
|
||||||
general_css: GENERAL_CSS.to_owned(),
|
general_css: GENERAL_CSS.to_owned(),
|
||||||
print_css: PRINT_CSS.to_owned(),
|
print_css: PRINT_CSS.to_owned(),
|
||||||
variables_css: VARIABLES_CSS.to_owned(),
|
variables_css: VARIABLES_CSS.to_owned(),
|
||||||
favicon: FAVICON.to_owned(),
|
favicon_png: FAVICON_PNG.to_owned(),
|
||||||
|
favicon_svg: FAVICON_SVG.to_owned(),
|
||||||
js: JS.to_owned(),
|
js: JS.to_owned(),
|
||||||
highlight_css: HIGHLIGHT_CSS.to_owned(),
|
highlight_css: HIGHLIGHT_CSS.to_owned(),
|
||||||
tomorrow_night_css: TOMORROW_NIGHT_CSS.to_owned(),
|
tomorrow_night_css: TOMORROW_NIGHT_CSS.to_owned(),
|
||||||
|
@ -182,6 +186,7 @@ mod tests {
|
||||||
"redirect.hbs",
|
"redirect.hbs",
|
||||||
"header.hbs",
|
"header.hbs",
|
||||||
"favicon.png",
|
"favicon.png",
|
||||||
|
"favicon.svg",
|
||||||
"css/chrome.css",
|
"css/chrome.css",
|
||||||
"css/fonts.css",
|
"css/fonts.css",
|
||||||
"css/general.css",
|
"css/general.css",
|
||||||
|
@ -214,7 +219,8 @@ mod tests {
|
||||||
general_css: Vec::new(),
|
general_css: Vec::new(),
|
||||||
print_css: Vec::new(),
|
print_css: Vec::new(),
|
||||||
variables_css: Vec::new(),
|
variables_css: Vec::new(),
|
||||||
favicon: Vec::new(),
|
favicon_png: Vec::new(),
|
||||||
|
favicon_svg: Vec::new(),
|
||||||
js: Vec::new(),
|
js: Vec::new(),
|
||||||
highlight_css: Vec::new(),
|
highlight_css: Vec::new(),
|
||||||
tomorrow_night_css: Vec::new(),
|
tomorrow_night_css: Vec::new(),
|
||||||
|
|
Loading…
Reference in New Issue