@@ -3,6 +3,7 @@ use std::fmt::Write;
33use std:: fs:: { self , File } ;
44use std:: io:: prelude:: * ;
55use std:: io:: { self , BufReader } ;
6+ use std:: lazy:: SyncLazy as Lazy ;
67use std:: path:: { Component , Path , PathBuf } ;
78
89use itertools:: Itertools ;
@@ -18,6 +19,26 @@ use crate::error::Error;
1819use crate :: formats:: FormatRenderer ;
1920use crate :: html:: { layout, static_files} ;
2021
22+ crate static FILES_UNVERSIONED : Lazy < FxHashMap < & str , & [ u8 ] > > = Lazy :: new ( || {
23+ map ! {
24+ "FiraSans-Regular.woff2" => static_files:: fira_sans:: REGULAR2 ,
25+ "FiraSans-Medium.woff2" => static_files:: fira_sans:: MEDIUM2 ,
26+ "FiraSans-Regular.woff" => static_files:: fira_sans:: REGULAR ,
27+ "FiraSans-Medium.woff" => static_files:: fira_sans:: MEDIUM ,
28+ "FiraSans-LICENSE.txt" => static_files:: fira_sans:: LICENSE ,
29+ "SourceSerifPro-Regular.ttf.woff" => static_files:: source_serif_pro:: REGULAR ,
30+ "SourceSerifPro-Bold.ttf.woff" => static_files:: source_serif_pro:: BOLD ,
31+ "SourceSerifPro-It.ttf.woff" => static_files:: source_serif_pro:: ITALIC ,
32+ "SourceSerifPro-LICENSE.md" => static_files:: source_serif_pro:: LICENSE ,
33+ "SourceCodePro-Regular.woff" => static_files:: source_code_pro:: REGULAR ,
34+ "SourceCodePro-Semibold.woff" => static_files:: source_code_pro:: SEMIBOLD ,
35+ "SourceCodePro-LICENSE.txt" => static_files:: source_code_pro:: LICENSE ,
36+ "LICENSE-MIT.txt" => static_files:: LICENSE_MIT ,
37+ "LICENSE-APACHE.txt" => static_files:: LICENSE_APACHE ,
38+ "COPYRIGHT.txt" => static_files:: COPYRIGHT ,
39+ }
40+ } ) ;
41+
2142pub ( super ) fn write_shared (
2243 cx : & Context < ' _ > ,
2344 krate : & Crate ,
@@ -212,21 +233,9 @@ themePicker.onblur = handleThemeButtonsBlur;
212233 static_files:: NORMALIZE_CSS ,
213234 options. enable_minification ,
214235 ) ?;
215- write ( cx. dst . join ( "FiraSans-Regular.woff2" ) , static_files:: fira_sans:: REGULAR2 ) ?;
216- write ( cx. dst . join ( "FiraSans-Medium.woff2" ) , static_files:: fira_sans:: MEDIUM2 ) ?;
217- write ( cx. dst . join ( "FiraSans-Regular.woff" ) , static_files:: fira_sans:: REGULAR ) ?;
218- write ( cx. dst . join ( "FiraSans-Medium.woff" ) , static_files:: fira_sans:: MEDIUM ) ?;
219- write ( cx. dst . join ( "FiraSans-LICENSE.txt" ) , static_files:: fira_sans:: LICENSE ) ?;
220- write ( cx. dst . join ( "SourceSerifPro-Regular.ttf.woff" ) , static_files:: source_serif_pro:: REGULAR ) ?;
221- write ( cx. dst . join ( "SourceSerifPro-Bold.ttf.woff" ) , static_files:: source_serif_pro:: BOLD ) ?;
222- write ( cx. dst . join ( "SourceSerifPro-It.ttf.woff" ) , static_files:: source_serif_pro:: ITALIC ) ?;
223- write ( cx. dst . join ( "SourceSerifPro-LICENSE.md" ) , static_files:: source_serif_pro:: LICENSE ) ?;
224- write ( cx. dst . join ( "SourceCodePro-Regular.woff" ) , static_files:: source_code_pro:: REGULAR ) ?;
225- write ( cx. dst . join ( "SourceCodePro-Semibold.woff" ) , static_files:: source_code_pro:: SEMIBOLD ) ?;
226- write ( cx. dst . join ( "SourceCodePro-LICENSE.txt" ) , static_files:: source_code_pro:: LICENSE ) ?;
227- write ( cx. dst . join ( "LICENSE-MIT.txt" ) , static_files:: LICENSE_MIT ) ?;
228- write ( cx. dst . join ( "LICENSE-APACHE.txt" ) , static_files:: LICENSE_APACHE ) ?;
229- write ( cx. dst . join ( "COPYRIGHT.txt" ) , static_files:: COPYRIGHT ) ?;
236+ for ( file, contents) in & * FILES_UNVERSIONED {
237+ write ( cx. dst . join ( file) , contents) ?;
238+ }
230239
231240 fn collect ( path : & Path , krate : & str , key : & str ) -> io:: Result < ( Vec < String > , Vec < String > ) > {
232241 let mut ret = Vec :: new ( ) ;
0 commit comments