Fasten even more theme switch · rust-lang/rust@5b85044 (original) (raw)

3 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
10 10
11 11 use std::fmt;
12 12 use std::io;
13 +use std::path::PathBuf;
13 14
14 15 use externalfiles::ExternalHtml;
15 16
@@ -31,7 +32,7 @@ pub struct Page<'a> {
31 32
32 33 pub fn render<T: fmt::Display, S: fmt::Display>(
33 34 dst: &mut io::Write, layout: &Layout, page: &Page, sidebar: &S, t: &T,
34 -css_file_extension: bool)
35 +css_file_extension: bool, themes: &[PathBuf])
35 36 -> io::Result<()>
36 37 {
37 38 write!(dst,
@@ -48,7 +49,9 @@ r##"
48 49
49 50
50 51
51 -
52 + {themes}
53 +
54 +
52 55
53 56 {css_extension}
54 57
@@ -182,6 +185,12 @@ r##"
182 185 after_content = layout.external_html.after_content,
183 186 sidebar = *sidebar,
184 187 krate = layout.krate,
188 + themes = themes.iter()
189 +.filter_map(|t
190 +.filter_map(|t
191 +.map(|t
192 + page.root_path, t))
193 +.collect::<String>(),
185 194 )
186 195 }
187 196
Original file line number Diff line number Diff line change
@@ -1224,7 +1224,8 @@ impl<'a> SourceCollector<'a> {
1224 1224 };
1225 1225 layout::render(&mut w, &self.scx.layout,
1226 1226 &page, &(""), &Source(contents),
1227 -self.scx.css_file_extension.is_some())?;
1227 +self.scx.css_file_extension.is_some(),
1228 +&self.scx.themes)?;
1228 1229 w.flush()?;
1229 1230 self.scx.local_sources.insert(p.clone(), href);
1230 1231 Ok(())
@@ -1588,7 +1589,8 @@ impl Context {
1588 1589 layout::render(writer, &self.shared.layout, &page,
1589 1590 &Sidebar{ cx: self, item: it },
1590 1591 &Item{ cx: self, item: it },
1591 -self.shared.css_file_extension.is_some())?;
1592 +self.shared.css_file_extension.is_some(),
1593 +&self.shared.themes)?;
1592 1594 } else {
1593 1595 let mut url = self.root_path();
1594 1596 if let Some(&(ref names, ty)) = cache().paths.get(&it.def_id) {
Original file line number Diff line number Diff line change
@@ -31,14 +31,6 @@ function getCurrentValue(name) {
31 31 function switchTheme(styleElem, mainStyleElem, newTheme) {
32 32 styleElem.href = mainStyleElem.href.replace("rustdoc.css", newTheme + ".css");
33 33 updateLocalStorage('theme', newTheme);
34 -/*var elem = document.getElementsByTagName('body')[0];
35 - if (elem) {
36 - updateLocalStorage('background', getComputedStyle(elem)['background-color']);
37 - }*/
38 34 }
39 35
40 -/*var elem = document.getElementsByTagName('body')[0];
41 -if (elem) {
42 - var value =
43 -}*/
44 36 switchTheme(currentTheme, mainTheme, getCurrentValue('theme') |