@@ -775,6 +775,8 @@ fn build_index(krate: &clean::Crate, cache: &mut Cache) -> String {
775
775
Json :: Object ( crate_data) )
776
776
}
777
777
778
+ const MINIFIED_VARIABLES : & str = "var N=null,E=\" \" ,T=\" t\" ,U=\" u\" ,searchIndex={};" ;
779
+
778
780
fn write_shared (
779
781
cx : & Context ,
780
782
krate : & clean:: Crate ,
@@ -952,10 +954,11 @@ themePicker.onblur = handleThemeButtonsBlur;
952
954
krate : & str ,
953
955
key : & str ,
954
956
for_search_index : bool ,
955
- ) -> io:: Result < ( Vec < String > , Vec < String > , Vec < String > ) > {
957
+ ) -> io:: Result < ( Vec < String > , Vec < String > , Vec < String > , bool ) > {
956
958
let mut ret = Vec :: new ( ) ;
957
959
let mut krates = Vec :: new ( ) ;
958
960
let mut variables = Vec :: new ( ) ;
961
+ let mut is_minified = false ;
959
962
960
963
if path. exists ( ) {
961
964
for line in BufReader :: new ( File :: open ( path) ?) . lines ( ) {
@@ -964,10 +967,11 @@ themePicker.onblur = handleThemeButtonsBlur;
964
967
variables. push ( line. clone ( ) ) ;
965
968
continue ;
966
969
}
967
- if !line. starts_with ( key) {
970
+ if !line. starts_with ( key) || line . starts_with ( & format ! ( r#"{}["{}"]"# , key , krate ) ) {
968
971
continue ;
969
972
}
970
- if line. starts_with ( & format ! ( r#"{}["{}"]"# , key, krate) ) {
973
+ if line. starts_with ( MINIFIED_VARIABLES ) {
974
+ is_minified = true ;
971
975
continue ;
972
976
}
973
977
ret. push ( line. to_string ( ) ) ;
@@ -977,7 +981,7 @@ themePicker.onblur = handleThemeButtonsBlur;
977
981
. unwrap_or_else ( || String :: new ( ) ) ) ;
978
982
}
979
983
}
980
- Ok ( ( ret, krates, variables) )
984
+ Ok ( ( ret, krates, variables, is_minified ) )
981
985
}
982
986
983
987
fn show_item ( item : & IndexItem , krate : & str ) -> String {
@@ -992,7 +996,8 @@ themePicker.onblur = handleThemeButtonsBlur;
992
996
993
997
let dst = cx. dst . join ( & format ! ( "aliases{}.js" , cx. shared. resource_suffix) ) ;
994
998
{
995
- let ( mut all_aliases, _, _) = try_err ! ( collect( & dst, & krate. name, "ALIASES" , false ) , & dst) ;
999
+ let ( mut all_aliases, _, _, _) = try_err ! ( collect( & dst, & krate. name, "ALIASES" , false ) ,
1000
+ & dst) ;
996
1001
let mut w = try_err ! ( File :: create( & dst) , & dst) ;
997
1002
let mut output = String :: with_capacity ( 100 ) ;
998
1003
for ( alias, items) in & cache. aliases {
@@ -1088,33 +1093,37 @@ themePicker.onblur = handleThemeButtonsBlur;
1088
1093
}
1089
1094
1090
1095
let dst = cx. dst . join ( & format ! ( "source-files{}.js" , cx. shared. resource_suffix) ) ;
1091
- let ( mut all_sources, _krates, _) = try_err ! ( collect( & dst, & krate. name, "sourcesIndex" ,
1092
- false ) ,
1093
- & dst) ;
1096
+ let ( mut all_sources, _krates, _, _ ) = try_err ! ( collect( & dst, & krate. name, "sourcesIndex" ,
1097
+ false ) ,
1098
+ & dst) ;
1094
1099
all_sources. push ( format ! ( "sourcesIndex[\" {}\" ] = {};" ,
1095
1100
& krate. name,
1096
1101
hierarchy. to_json_string( ) ) ) ;
1097
1102
all_sources. sort ( ) ;
1098
1103
let mut w = try_err ! ( File :: create( & dst) , & dst) ;
1099
1104
try_err ! ( writeln!( & mut w,
1100
- "var N = null;var sourcesIndex = {{}};\n {}\n createSourceSidebar();" ,
1105
+ "var N= null, sourcesIndex= {{}};\n {}\n createSourceSidebar();" ,
1101
1106
all_sources. join( "\n " ) ) ,
1102
1107
& dst) ;
1103
1108
}
1104
1109
1105
1110
// Update the search index
1106
1111
let dst = cx. dst . join ( & format ! ( "search-index{}.js" , cx. shared. resource_suffix) ) ;
1107
- let ( mut all_indexes, mut krates, variables) = try_err ! ( collect( & dst,
1108
- & krate. name,
1109
- "searchIndex" ,
1110
- true ) , & dst) ;
1112
+ let ( mut all_indexes, mut krates, variables, is_minified ) = try_err ! ( collect( & dst,
1113
+ & krate. name,
1114
+ "searchIndex" ,
1115
+ true ) , & dst) ;
1111
1116
all_indexes. push ( search_index) ;
1112
1117
1113
1118
// Sort the indexes by crate so the file will be generated identically even
1114
1119
// with rustdoc running in parallel.
1115
1120
all_indexes. sort ( ) ;
1116
1121
let mut w = try_err ! ( File :: create( & dst) , & dst) ;
1117
- try_err ! ( writeln!( & mut w, "var N=null,E=\" \" ,T=\" t\" ,U=\" u\" ,searchIndex={{}};" ) , & dst) ;
1122
+ if is_minified || options. enable_minification {
1123
+ try_err ! ( writeln!( & mut w, "{}" , MINIFIED_VARIABLES ) , & dst) ;
1124
+ } else {
1125
+ try_err ! ( writeln!( & mut w, "var searchIndex={{}};" ) , & dst) ;
1126
+ }
1118
1127
try_err ! ( write_minify_replacer( & mut w,
1119
1128
& format!( "{}\n {}" , variables. join( "" ) , all_indexes. join( "\n " ) ) ,
1120
1129
options. enable_minification) ,
@@ -1219,9 +1228,9 @@ themePicker.onblur = handleThemeButtonsBlur;
1219
1228
remote_item_type. css_class( ) ,
1220
1229
remote_path[ remote_path. len( ) - 1 ] ) ) ;
1221
1230
1222
- let ( mut all_implementors, _, _) = try_err ! ( collect( & mydst, & krate. name, "implementors" ,
1223
- false ) ,
1224
- & mydst) ;
1231
+ let ( mut all_implementors, _, _, _ ) = try_err ! ( collect( & mydst, & krate. name, "implementors" ,
1232
+ false ) ,
1233
+ & mydst) ;
1225
1234
all_implementors. push ( implementors) ;
1226
1235
// Sort the implementors by crate so the file will be generated
1227
1236
// identically even with rustdoc running in parallel.
0 commit comments