@@ -42,6 +42,7 @@ use std::collections::{BTreeMap, HashSet, VecDeque};
4242use std:: default:: Default ;
4343use std:: error;
4444use std:: fmt:: { self , Display , Formatter , Write as FmtWrite } ;
45+ use std:: ffi:: OsStr ;
4546use std:: fs:: { self , File , OpenOptions } ;
4647use std:: io:: prelude:: * ;
4748use 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
10521066fn 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