@@ -2,10 +2,10 @@ use std::path::PathBuf;
2
2
3
3
use rustc_data_structures:: fx:: FxHashMap ;
4
4
5
- use crate :: error:: Error ;
6
5
use crate :: externalfiles:: ExternalHtml ;
7
6
use crate :: html:: format:: { Buffer , Print } ;
8
7
use crate :: html:: render:: { ensure_trailing_slash, StylePath } ;
8
+ use crate :: html:: static_files;
9
9
10
10
use askama:: Template ;
11
11
@@ -45,6 +45,25 @@ struct PageLayout<'a> {
45
45
static_root_path : & ' a str ,
46
46
page : & ' a Page < ' a > ,
47
47
layout : & ' a Layout ,
48
+ font_preloads : Vec < & ' static static_files:: StaticFile > ,
49
+
50
+ storage_js : & ' static static_files:: StaticFile ,
51
+ main_js : & ' static static_files:: StaticFile ,
52
+ source_script_js : & ' static static_files:: StaticFile ,
53
+ scrape_examples_js : & ' static static_files:: StaticFile ,
54
+
55
+ search_js : & ' static static_files:: StaticFile ,
56
+ settings_js : & ' static static_files:: StaticFile ,
57
+ settings_css : & ' static static_files:: StaticFile ,
58
+
59
+ favicon_svg : & ' static static_files:: StaticFile ,
60
+ favicon_png_16 : & ' static static_files:: StaticFile ,
61
+ favicon_png_32 : & ' static static_files:: StaticFile ,
62
+
63
+ rust_logo_svg : & ' static static_files:: StaticFile ,
64
+ wheel_svg : & ' static static_files:: StaticFile ,
65
+
66
+ css : Vec < & ' static static_files:: StaticFile > ,
48
67
themes : Vec < String > ,
49
68
sidebar : String ,
50
69
content : String ,
@@ -61,19 +80,47 @@ pub(crate) fn render<T: Print, S: Print>(
61
80
) -> String {
62
81
let static_root_path = page. get_static_root_path ( ) ;
63
82
let krate_with_trailing_slash = ensure_trailing_slash ( & layout. krate ) . to_string ( ) ;
64
- let mut themes: Vec < String > = style_files
65
- . iter ( )
66
- . map ( StylePath :: basename )
67
- . collect :: < Result < _ , Error > > ( )
68
- . unwrap_or_default ( ) ;
83
+ let mut themes: Vec < String > =
84
+ style_files . iter ( ) . map ( |s| s . path . display ( ) . to_string ( ) ) . collect ( ) ;
85
+ themes . push ( static_files :: themes :: LIGHT . to_string ( ) ) ;
86
+ themes . push ( static_files :: themes :: DARK . to_string ( ) ) ;
87
+ themes . push ( static_files :: themes :: AYU . to_string ( ) ) ;
69
88
themes. sort ( ) ;
89
+ let css = vec ! [ & static_files:: NORMALIZE_CSS , & static_files:: RUSTDOC_CSS ] ;
90
+
70
91
let rustdoc_version = rustc_interface:: util:: version_str ( ) . unwrap_or ( "unknown version" ) ;
71
92
let content = Buffer :: html ( ) . to_display ( t) ; // Note: This must happen before making the sidebar.
72
93
let sidebar = Buffer :: html ( ) . to_display ( sidebar) ;
73
94
PageLayout {
74
95
static_root_path,
75
96
page,
76
97
layout,
98
+ font_preloads : vec ! [
99
+ & static_files:: source_serif_4:: REGULAR ,
100
+ & static_files:: source_serif_4:: BOLD ,
101
+ & static_files:: fira_sans:: REGULAR ,
102
+ & static_files:: fira_sans:: MEDIUM ,
103
+ & static_files:: source_code_pro:: REGULAR ,
104
+ & static_files:: source_code_pro:: SEMIBOLD ,
105
+ ] ,
106
+
107
+ storage_js : & static_files:: STORAGE_JS ,
108
+ main_js : & static_files:: MAIN_JS ,
109
+ source_script_js : & static_files:: sidebar:: SOURCE_SCRIPT ,
110
+ scrape_examples_js : & static_files:: SCRAPE_EXAMPLES_JS ,
111
+
112
+ search_js : & static_files:: SEARCH_JS ,
113
+ settings_js : & static_files:: SETTINGS_JS ,
114
+ settings_css : & static_files:: SETTINGS_CSS ,
115
+
116
+ favicon_svg : & static_files:: RUST_FAVICON_SVG ,
117
+ favicon_png_16 : & static_files:: RUST_FAVICON_PNG_16 ,
118
+ favicon_png_32 : & static_files:: RUST_FAVICON_PNG_32 ,
119
+
120
+ rust_logo_svg : & static_files:: RUST_LOGO_SVG ,
121
+ wheel_svg : & static_files:: WHEEL_SVG ,
122
+
123
+ css,
77
124
themes,
78
125
sidebar,
79
126
content,
0 commit comments