summaryrefslogtreecommitdiffstats
path: root/target/doc/storage.js
diff options
context:
space:
mode:
Diffstat (limited to 'target/doc/storage.js')
-rw-r--r--target/doc/storage.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/target/doc/storage.js b/target/doc/storage.js
new file mode 100644
index 0000000..0aa1065
--- /dev/null
+++ b/target/doc/storage.js
@@ -0,0 +1,36 @@
+/*!
+ * 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);
+}
+
+switchTheme(currentTheme, mainTheme, getCurrentValue('theme') || 'main');