<link rel="stylesheet" type="text/css" href="{root_path}normalize.css">
<link rel="stylesheet" type="text/css" href="{root_path}rustdoc.css" id="mainThemeStyle">
- <link rel="stylesheet" type="text/css" href="{root_path}main.css" id="themeStyle">
+ <link rel="stylesheet" type="text/css" href="" id="themeStyle">
+ <script src="{root_path}storage.js"></script>
{css_extension}
{favicon}
{sidebar}
</nav>
- <div id="theme-picker">
+ <button id="theme-picker">
<img src="{root_path}brush.svg" width="18" alt="Pick another theme!">
<div id="theme-choices"></div>
- </div>
+ </button>
<script src="{root_path}theme.js"></script>
<nav class="sub">
<form class="search-form js-only">
themePicker.style.borderBottomLeftRadius = "0";
}}
}};
-var currentTheme = document.getElementById("themeStyle");
-var mainTheme = document.getElementById("mainThemeStyle");
[{}].forEach(function(item) {{
var div = document.createElement('div');
div.innerHTML = item;
}};
themes.appendChild(div);
}});
-
-function updateLocalStorage(theme) {{
- if (typeof(Storage) !== "undefined") {{
- localStorage.theme = theme;
- }} else {{
- // No Web Storage support so we do nothing
- }}
-}}
-function switchTheme(styleElem, mainStyleElem, newTheme) {{
- styleElem.href = mainStyleElem.href.replace("rustdoc.css", newTheme + ".css");
- updateLocalStorage(newTheme);
-}}
-function getCurrentTheme() {{
- if (typeof(Storage) !== "undefined" && localStorage.theme !== undefined) {{
- return localStorage.theme;
- }}
- return "main";
-}}
-
-switchTheme(currentTheme, mainTheme, getCurrentTheme());
"#, themes.iter()
.map(|s| format!("\"{}\"", s))
.collect::<Vec<String>>()
.join(",")).as_bytes())?;
write(cx.dst.join("main.js"), include_bytes!("static/main.js"))?;
+ write(cx.dst.join("storage.js"), include_bytes!("static/storage.js"))?;
if let Some(ref css) = cx.shared.css_file_extension {
let out = cx.dst.join("theme.css");
--- /dev/null
+/*!
+ * Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+ * file at the top-level directory of this distribution and at
+ * http://rust-lang.org/COPYRIGHT.
+ *
+ * Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+ * http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+ * <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+ * option. This file may not be copied, modified, or distributed
+ * except according to those terms.
+ */
+
+var currentTheme = document.getElementById("themeStyle");
+var mainTheme = document.getElementById("mainThemeStyle");
+
+function updateLocalStorage(name, value) {
+ if (typeof(Storage) !== "undefined") {
+ localStorage[name] = value;
+ } else {
+ // No Web Storage support so we do nothing
+ }
+}
+
+function getCurrentValue(name) {
+ if (typeof(Storage) !== "undefined" && localStorage[name] !== undefined) {
+ return localStorage[name];
+ }
+ return null;
+}
+
+function switchTheme(styleElem, mainStyleElem, newTheme) {
+ styleElem.href = mainStyleElem.href.replace("rustdoc.css", newTheme + ".css");
+ updateLocalStorage('theme', newTheme);
+ /*var elem = document.getElementsByTagName('body')[0];
+ if (elem) {
+ updateLocalStorage('background', getComputedStyle(elem)['background-color']);
+ }*/
+}
+
+/*var elem = document.getElementsByTagName('body')[0];
+if (elem) {
+ var value =
+}*/
+switchTheme(currentTheme, mainTheme, getCurrentValue('theme') || 'main');