Skip to content

Commit a539885

Browse files
authored
Rollup merge of #51791 - GuillaumeGomez:minify-css, r=estebank
Minify css Sizes changes: ``` dark.css: 8821 => 7804 (~11%) light.css: 8587 => 7565 (~11%) rustdoc.css: 22364 => 17818 (~20%) settings.css: 1384 => 1236 (~10%) ``` So obviously, the bigger the file, the bigger minification. r? @QuietMisdreavus
2 parents f2a099b + f7485df commit a539885

File tree

3 files changed

+35
-16
lines changed

3 files changed

+35
-16
lines changed

src/Cargo.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -1220,7 +1220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
12201220

12211221
[[package]]
12221222
name = "minifier"
1223-
version = "0.0.11"
1223+
version = "0.0.14"
12241224
source = "registry+https://github.com/rust-lang/crates.io-index"
12251225
dependencies = [
12261226
"regex 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2426,7 +2426,7 @@ dependencies = [
24262426
name = "rustdoc"
24272427
version = "0.0.0"
24282428
dependencies = [
2429-
"minifier 0.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
2429+
"minifier 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
24302430
"pulldown-cmark 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
24312431
"tempfile 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
24322432
]
@@ -3263,7 +3263,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
32633263
"checksum mdbook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "90b5a8d7e341ceee5db3882a06078d42661ddcfa2b3687319cc5da76ec4e782f"
32643264
"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d"
32653265
"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
3266-
"checksum minifier 0.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "26f3e36a4db1981b16567e4abfd6ddc3641bc9b950bdc868701f656bf9b74bdd"
3266+
"checksum minifier 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "78cb57f9a385530d60f2d67f6e108050b478b7a0ffd0bb9c350803e1356535dd"
32673267
"checksum miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4"
32683268
"checksum miow 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9224c91f82b3c47cf53dcf78dfaa20d6888fbcc5d272d5f2fcdf8a697f3c987d"
32693269
"checksum nibble_vec 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c8d77f3db4bce033f4d04db08079b2ef1c3d02b44e86f25d08886fafa7756ffa"

src/librustdoc/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ path = "lib.rs"
99

1010
[dependencies]
1111
pulldown-cmark = { version = "0.1.2", default-features = false }
12-
minifier = "0.0.11"
12+
minifier = "0.0.14"
1313
tempfile = "3"

src/librustdoc/html/render.rs

+31-12
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ use std::collections::{BTreeMap, HashSet, VecDeque};
4242
use std::default::Default;
4343
use std::error;
4444
use std::fmt::{self, Display, Formatter, Write as FmtWrite};
45+
use std::ffi::OsStr;
4546
use std::fs::{self, File, OpenOptions};
4647
use std::io::prelude::*;
4748
use std::io::{self, BufWriter, BufReader};
@@ -756,10 +757,12 @@ fn write_shared(cx: &Context,
756757
// Add all the static files. These may already exist, but we just
757758
// overwrite them anyway to make sure that they're fresh and up-to-date.
758759

759-
write(cx.dst.join(&format!("rustdoc{}.css", cx.shared.resource_suffix)),
760-
include_bytes!("static/rustdoc.css"))?;
761-
write(cx.dst.join(&format!("settings{}.css", cx.shared.resource_suffix)),
762-
include_bytes!("static/settings.css"))?;
760+
write_minify(cx.dst.join(&format!("rustdoc{}.css", cx.shared.resource_suffix)),
761+
include_str!("static/rustdoc.css"),
762+
enable_minification)?;
763+
write_minify(cx.dst.join(&format!("settings{}.css", cx.shared.resource_suffix)),
764+
include_str!("static/settings.css"),
765+
enable_minification)?;
763766

764767
// To avoid "light.css" to be overwritten, we'll first run over the received themes and only
765768
// then we'll run over the "official" styles.
@@ -781,11 +784,13 @@ fn write_shared(cx: &Context,
781784
include_bytes!("static/brush.svg"))?;
782785
write(cx.dst.join(&format!("wheel{}.svg", cx.shared.resource_suffix)),
783786
include_bytes!("static/wheel.svg"))?;
784-
write(cx.dst.join(&format!("light{}.css", cx.shared.resource_suffix)),
785-
include_bytes!("static/themes/light.css"))?;
787+
write_minify(cx.dst.join(&format!("light{}.css", cx.shared.resource_suffix)),
788+
include_str!("static/themes/light.css"),
789+
enable_minification)?;
786790
themes.insert("light".to_owned());
787-
write(cx.dst.join(&format!("dark{}.css", cx.shared.resource_suffix)),
788-
include_bytes!("static/themes/dark.css"))?;
791+
write_minify(cx.dst.join(&format!("dark{}.css", cx.shared.resource_suffix)),
792+
include_str!("static/themes/dark.css"),
793+
enable_minification)?;
789794
themes.insert("dark".to_owned());
790795

791796
let mut themes: Vec<&String> = themes.iter().collect();
@@ -857,10 +862,19 @@ themePicker.onblur = handleThemeButtonsBlur;
857862

858863
if let Some(ref css) = cx.shared.css_file_extension {
859864
let out = cx.dst.join(&format!("theme{}.css", cx.shared.resource_suffix));
860-
try_err!(fs::copy(css, out), css);
865+
if !enable_minification {
866+
try_err!(fs::copy(css, out), css);
867+
} else {
868+
let mut f = try_err!(File::open(css), css);
869+
let mut buffer = String::with_capacity(1000);
870+
871+
try_err!(f.read_to_string(&mut buffer), css);
872+
write_minify(out, &buffer, enable_minification)?;
873+
}
861874
}
862-
write(cx.dst.join(&format!("normalize{}.css", cx.shared.resource_suffix)),
863-
include_bytes!("static/normalize.css"))?;
875+
write_minify(cx.dst.join(&format!("normalize{}.css", cx.shared.resource_suffix)),
876+
include_str!("static/normalize.css"),
877+
enable_minification)?;
864878
write(cx.dst.join("FiraSans-Regular.woff"),
865879
include_bytes!("static/FiraSans-Regular.woff"))?;
866880
write(cx.dst.join("FiraSans-Medium.woff"),
@@ -1051,7 +1065,12 @@ fn write(dst: PathBuf, contents: &[u8]) -> Result<(), Error> {
10511065

10521066
fn write_minify(dst: PathBuf, contents: &str, enable_minification: bool) -> Result<(), Error> {
10531067
if enable_minification {
1054-
write(dst, minifier::js::minify(contents).as_bytes())
1068+
if dst.extension() == Some(&OsStr::new("css")) {
1069+
let res = try_none!(minifier::css::minify(contents).ok(), &dst);
1070+
write(dst, res.as_bytes())
1071+
} else {
1072+
write(dst, minifier::js::minify(contents).as_bytes())
1073+
}
10551074
} else {
10561075
write(dst, contents.as_bytes())
10571076
}

0 commit comments

Comments
 (0)