@@ -644,10 +644,9 @@ themePicker.onblur = handleThemeButtonsBlur;
644644 themes.appendChild(but);
645645}});"# ,
646646 as_json( & themes) ) ;
647- write ( cx. dst . join ( & format ! ( "theme{}.js" , cx. shared. resource_suffix) ) ,
648- theme_js. as_bytes ( )
649- ) ?;
650-
647+ write_minify ( & cx. shared . fs , cx. path ( "theme.js" ) ,
648+ & theme_js,
649+ options. enable_minification ) ?;
651650 write_minify ( & cx. shared . fs , cx. path ( "main.js" ) ,
652651 static_files:: MAIN_JS ,
653652 options. enable_minification ) ?;
@@ -715,19 +714,13 @@ themePicker.onblur = handleThemeButtonsBlur;
715714 path : & Path ,
716715 krate : & str ,
717716 key : & str ,
718- for_search_index : bool ,
719- ) -> io:: Result < ( Vec < String > , Vec < String > , Vec < String > ) > {
717+ ) -> io:: Result < ( Vec < String > , Vec < String > ) > {
720718 let mut ret = Vec :: new ( ) ;
721719 let mut krates = Vec :: new ( ) ;
722- let mut variables = Vec :: new ( ) ;
723720
724721 if path. exists ( ) {
725722 for line in BufReader :: new ( File :: open ( path) ?) . lines ( ) {
726723 let line = line?;
727- if for_search_index && line. starts_with ( "var R" ) {
728- variables. push ( line. clone ( ) ) ;
729- continue ;
730- }
731724 if !line. starts_with ( key) {
732725 continue ;
733726 }
@@ -741,7 +734,7 @@ themePicker.onblur = handleThemeButtonsBlur;
741734 . unwrap_or_else ( || String :: new ( ) ) ) ;
742735 }
743736 }
744- Ok ( ( ret, krates, variables ) )
737+ Ok ( ( ret, krates) )
745738 }
746739
747740 fn show_item ( item : & IndexItem , krate : & str ) -> String {
@@ -756,7 +749,7 @@ themePicker.onblur = handleThemeButtonsBlur;
756749
757750 let dst = cx. dst . join ( & format ! ( "aliases{}.js" , cx. shared. resource_suffix) ) ;
758751 {
759- let ( mut all_aliases, _, _ ) = try_err ! ( collect( & dst, & krate. name, "ALIASES" , false ) , & dst) ;
752+ let ( mut all_aliases, _) = try_err ! ( collect( & dst, & krate. name, "ALIASES" ) , & dst) ;
760753 let mut output = String :: with_capacity ( 100 ) ;
761754 for ( alias, items) in & cx. cache . aliases {
762755 if items. is_empty ( ) {
@@ -853,9 +846,7 @@ themePicker.onblur = handleThemeButtonsBlur;
853846 }
854847
855848 let dst = cx. dst . join ( & format ! ( "source-files{}.js" , cx. shared. resource_suffix) ) ;
856- let ( mut all_sources, _krates, _) = try_err ! ( collect( & dst, & krate. name, "sourcesIndex" ,
857- false ) ,
858- & dst) ;
849+ let ( mut all_sources, _krates) = try_err ! ( collect( & dst, & krate. name, "sourcesIndex" ) , & dst) ;
859850 all_sources. push ( format ! ( "sourcesIndex[\" {}\" ] = {};" ,
860851 & krate. name,
861852 hierarchy. to_json_string( ) ) ) ;
@@ -867,20 +858,15 @@ themePicker.onblur = handleThemeButtonsBlur;
867858
868859 // Update the search index
869860 let dst = cx. dst . join ( & format ! ( "search-index{}.js" , cx. shared. resource_suffix) ) ;
870- let ( mut all_indexes, mut krates, variables) = try_err ! ( collect( & dst,
871- & krate. name,
872- "searchIndex" ,
873- true ) , & dst) ;
861+ let ( mut all_indexes, mut krates) = try_err ! ( collect( & dst, & krate. name, "searchIndex" ) , & dst) ;
874862 all_indexes. push ( search_index) ;
875863
876864 // Sort the indexes by crate so the file will be generated identically even
877865 // with rustdoc running in parallel.
878866 all_indexes. sort ( ) ;
879867 {
880- let mut v = String :: from ( "var N=null,E=\" \" ,T=\" t\" ,U=\" u\" ,searchIndex={};\n " ) ;
881- v. push_str ( & minify_replacer (
882- & format ! ( "{}\n {}" , variables. join( "" ) , all_indexes. join( "\n " ) ) ,
883- options. enable_minification ) ) ;
868+ let mut v = String :: from ( "var searchIndex={};\n " ) ;
869+ v. push_str ( & all_indexes. join ( "\n " ) ) ;
884870 // "addSearchOptions" has to be called first so the crate filtering can be set before the
885871 // search might start (if it's set into the URL for example).
886872 v. push_str ( "addSearchOptions(searchIndex);initSearch(searchIndex);" ) ;
@@ -981,9 +967,8 @@ themePicker.onblur = handleThemeButtonsBlur;
981967 remote_item_type,
982968 remote_path[ remote_path. len( ) - 1 ] ) ) ;
983969
984- let ( mut all_implementors, _, _) = try_err ! ( collect( & mydst, & krate. name, "implementors" ,
985- false ) ,
986- & mydst) ;
970+ let ( mut all_implementors, _) = try_err ! ( collect( & mydst, & krate. name, "implementors" ) ,
971+ & mydst) ;
987972 all_implementors. push ( implementors) ;
988973 // Sort the implementors by crate so the file will be generated
989974 // identically even with rustdoc running in parallel.
@@ -1020,68 +1005,6 @@ fn write_minify(fs:&DocFS, dst: PathBuf, contents: &str, enable_minification: bo
10201005 }
10211006}
10221007
1023- fn minify_replacer (
1024- contents : & str ,
1025- enable_minification : bool ,
1026- ) -> String {
1027- use minifier:: js:: { simple_minify, Keyword , ReservedChar , Token , Tokens } ;
1028-
1029- if enable_minification {
1030- let tokens: Tokens < ' _ > = simple_minify ( contents)
1031- . into_iter ( )
1032- . filter ( |( f, next) | {
1033- // We keep backlines.
1034- minifier:: js:: clean_token_except ( f, next, & |c : & Token < ' _ > | {
1035- c. get_char ( ) != Some ( ReservedChar :: Backline )
1036- } )
1037- } )
1038- . map ( |( f, _) | {
1039- minifier:: js:: replace_token_with ( f, & |t : & Token < ' _ > | {
1040- match * t {
1041- Token :: Keyword ( Keyword :: Null ) => Some ( Token :: Other ( "N" ) ) ,
1042- Token :: String ( s) => {
1043- let s = & s[ 1 ..s. len ( ) -1 ] ; // The quotes are included
1044- if s. is_empty ( ) {
1045- Some ( Token :: Other ( "E" ) )
1046- } else if s == "t" {
1047- Some ( Token :: Other ( "T" ) )
1048- } else if s == "u" {
1049- Some ( Token :: Other ( "U" ) )
1050- } else {
1051- None
1052- }
1053- }
1054- _ => None ,
1055- }
1056- } )
1057- } )
1058- . collect :: < Vec < _ > > ( )
1059- . into ( ) ;
1060- let o = tokens. apply ( |f| {
1061- // We add a backline after the newly created variables.
1062- minifier:: js:: aggregate_strings_into_array_with_separation_filter (
1063- f,
1064- "R" ,
1065- Token :: Char ( ReservedChar :: Backline ) ,
1066- // This closure prevents crates' names from being aggregated.
1067- //
1068- // The point here is to check if the string is preceded by '[' and
1069- // "searchIndex". If so, it means this is a crate name and that it
1070- // shouldn't be aggregated.
1071- |tokens, pos| {
1072- pos < 2 ||
1073- !tokens[ pos - 1 ] . eq_char ( ReservedChar :: OpenBracket ) ||
1074- tokens[ pos - 2 ] . get_other ( ) != Some ( "searchIndex" )
1075- }
1076- )
1077- } )
1078- . to_string ( ) ;
1079- format ! ( "{}\n " , o)
1080- } else {
1081- format ! ( "{}\n " , contents)
1082- }
1083- }
1084-
10851008#[ derive( Debug , Eq , PartialEq , Hash ) ]
10861009struct ItemEntry {
10871010 url : String ,
0 commit comments