diff --git a/config.toml.example b/config.toml.example index 5c4392acca5..ee06e1bd0ba 100644 --- a/config.toml.example +++ b/config.toml.example @@ -208,6 +208,11 @@ changelog-seen = 2 # documentation. #docs = true +# Flag to specify whether CSS, JavaScript, and HTML are minified when +# docs are generated. JSON is always minified, because it's enormous, +# and generated in already-minified form from the beginning. +#docs-minification = true + # Indicate whether the compiler should be documented in addition to the standard # library and facade crates. #compiler-docs = false diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index b2af8e59b7c..b9b090bb2d2 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -51,6 +51,7 @@ pub struct Config { pub submodules: bool, pub fast_submodules: bool, pub compiler_docs: bool, + pub docs_minification: bool, pub docs: bool, pub locked_deps: bool, pub vendor: bool, @@ -362,6 +363,7 @@ struct Build { rustfmt: Option, docs: Option, compiler_docs: Option, + docs_minification: Option, submodules: Option, fast_submodules: Option, gdb: Option, @@ -557,6 +559,7 @@ impl Config { config.submodules = true; config.fast_submodules = true; config.docs = true; + config.docs_minification = true; config.rust_rpath = true; config.channel = "dev".to_string(); config.codegen_tests = true; @@ -663,6 +666,7 @@ impl Config { config.python = build.python.map(PathBuf::from); set(&mut config.low_priority, build.low_priority); set(&mut config.compiler_docs, build.compiler_docs); + set(&mut config.docs_minification, build.docs_minification); set(&mut config.docs, build.docs); set(&mut config.submodules, build.submodules); set(&mut config.fast_submodules, build.fast_submodules); diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs index 30d690c9705..1168d54b55e 100644 --- a/src/bootstrap/doc.rs +++ b/src/bootstrap/doc.rs @@ -270,6 +270,10 @@ fn invoke_rustdoc( .arg("--markdown-css") .arg("../rust.css"); + if !builder.config.docs_minification { + cmd.arg("-Z").arg("unstable-options").arg("--disable-minification"); + } + builder.run(&mut cmd); } @@ -365,6 +369,10 @@ impl Step for Standalone { .arg(&out) .arg(&path); + if !builder.config.docs_minification { + cmd.arg("--disable-minification"); + } + if filename == "not_found.md" { cmd.arg("--markdown-css").arg("https://doc.rust-lang.org/rust.css"); } else { @@ -437,6 +445,10 @@ impl Step for Std { .arg("--index-page") .arg(&builder.src.join("src/doc/index.md")); + if !builder.config.docs_minification { + cargo.arg("--disable-minification"); + } + builder.run(&mut cargo.into()); }; // Only build the following crates. While we could just iterate over the