diff options
Diffstat (limited to 'target/doc/storage.js')
-rw-r--r-- | target/doc/storage.js | 36 |
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'); |