diff options
Diffstat (limited to 'src/librustdoc/html/render/mod.rs')
| -rw-r--r-- | src/librustdoc/html/render/mod.rs | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index 20a200f0484..08022d526fe 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -64,7 +64,6 @@ use serde::ser::SerializeSeq; use serde::{Serialize, Serializer}; use crate::clean::{self, ItemId, RenderedLink, SelfTy}; -use crate::docfs::PathError; use crate::error::Error; use crate::formats::cache::Cache; use crate::formats::item_type::ItemType; @@ -173,8 +172,12 @@ impl Serialize for TypeWithKind { crate struct StylePath { /// The path to the theme crate path: PathBuf, - /// What the `disabled` attribute should be set to in the HTML tag - crate disabled: bool, +} + +impl StylePath { + pub fn basename(&self) -> Result<String, Error> { + Ok(try_none!(try_none!(self.path.file_stem(), &self.path).to_str(), &self.path).to_string()) + } } fn write_srclink(cx: &Context<'_>, item: &clean::Item, buf: &mut Buffer) { @@ -353,7 +356,7 @@ enum Setting { js_data_name: &'static str, description: &'static str, default_value: &'static str, - options: Vec<(String, String)>, + options: Vec<String>, }, } @@ -393,10 +396,9 @@ impl Setting { options .iter() .map(|opt| format!( - "<option value=\"{}\" {}>{}</option>", - opt.0, - if opt.0 == default_value { "selected" } else { "" }, - opt.1, + "<option value=\"{name}\" {}>{name}</option>", + if opt == default_value { "selected" } else { "" }, + name = opt, )) .collect::<String>(), root_path, @@ -421,18 +423,7 @@ impl<T: Into<Setting>> From<(&'static str, Vec<T>)> for Setting { } } -fn settings(root_path: &str, suffix: &str, themes: &[StylePath]) -> Result<String, Error> { - let theme_names: Vec<(String, String)> = themes - .iter() - .map(|entry| { - let theme = - try_none!(try_none!(entry.path.file_stem(), &entry.path).to_str(), &entry.path) - .to_string(); - - Ok((theme.clone(), theme)) - }) - .collect::<Result<_, Error>>()?; - +fn settings(root_path: &str, suffix: &str, theme_names: Vec<String>) -> Result<String, Error> { // (id, explanation, default value) let settings: &[Setting] = &[ ( @@ -469,10 +460,11 @@ fn settings(root_path: &str, suffix: &str, themes: &[StylePath]) -> Result<Strin <span class=\"in-band\">Rustdoc settings</span>\ </h1>\ <div class=\"settings\">{}</div>\ - <script src=\"{}settings{}.js\"></script>", + <link rel=\"stylesheet\" href=\"{root_path}settings{suffix}.css\">\ + <script src=\"{root_path}settings{suffix}.js\"></script>", settings.iter().map(|s| s.display(root_path, suffix)).collect::<String>(), - root_path, - suffix + root_path = root_path, + suffix = suffix )) } |
