about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/config.rs16
-rw-r--r--src/librustdoc/html/layout.rs2
-rw-r--r--src/librustdoc/lib.rs10
3 files changed, 26 insertions, 2 deletions
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index baa0a934126..45106c5dbf6 100644
--- a/src/librustdoc/config.rs
+++ b/src/librustdoc/config.rs
@@ -377,6 +377,20 @@ impl Options {
             }
         };
 
+        let mut default_settings: Vec<Vec<(String, String)>> = vec![
+            matches
+                .opt_strs("default-setting")
+                .iter()
+                .map(|s| {
+                    let mut kv = s.splitn(2, '=');
+                    let k = kv.next().unwrap().to_string();
+                    let v = kv.next().unwrap_or("true").to_string();
+                    (k, v)
+                })
+                .collect(),
+        ];
+        let default_settings = default_settings.drain(..).flatten().collect();
+
         let test_args = matches.opt_strs("test-args");
         let test_args: Vec<String> =
             test_args.iter().flat_map(|s| s.split_whitespace()).map(|s| s.to_string()).collect();
@@ -599,7 +613,7 @@ impl Options {
                 themes,
                 extension_css,
                 extern_html_root_urls,
-                default_settings: Default::default(),
+                default_settings,
                 resource_suffix,
                 enable_minification,
                 enable_index_page,
diff --git a/src/librustdoc/html/layout.rs b/src/librustdoc/html/layout.rs
index 54891133662..29e44922c76 100644
--- a/src/librustdoc/html/layout.rs
+++ b/src/librustdoc/html/layout.rs
@@ -178,7 +178,7 @@ pub fn render<T: Print, S: Print>(
         default_settings = layout
             .default_settings
             .iter()
-            .map(|(k, v)| format!(r#" data-{}="{}""#, k.replace('-',"_"), Escape(v),))
+            .map(|(k, v)| format!(r#" data-{}="{}""#, k.replace('-', "_"), Escape(v),))
             .collect::<String>(),
         style_files = style_files
             .iter()
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index 616f0efcd75..90c77488ee9 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -269,6 +269,16 @@ fn opts() -> Vec<RustcOptGroup> {
                 "sort modules by where they appear in the program, rather than alphabetically",
             )
         }),
+        unstable("default-setting", |o| {
+            o.optmulti(
+                "",
+                "default-setting",
+                "Default value for a rustdoc setting (used when \"rustdoc-SETTING\" is absent \
+                 from web browser Local Storage).    If VALUE is not supplied, \"true\" is used. \
+                 Supported SETTINGs and VALUEs are not documented and not stable.",
+                "SETTING[=VALUE]",
+            )
+        }),
         stable("theme", |o| {
             o.optmulti(
                 "",