@@ -19,9 +19,11 @@ pub(crate) fn rewrite_lol(
19
19
20
20
let templates = templates. templates . load ( ) ;
21
21
let tera_head = templates. render ( "rustdoc/head.html" , & ctx) . unwrap ( ) ;
22
+ let tera_vendored_css = templates. render ( "rustdoc/vendored.html" , & ctx) . unwrap ( ) ;
22
23
let tera_body = templates. render ( "rustdoc/body.html" , & ctx) . unwrap ( ) ;
23
24
let tera_rustdoc_header = templates. render ( "rustdoc/header.html" , & ctx) . unwrap ( ) ;
24
25
26
+ // Append `style.css` stylesheet after all head elements.
25
27
let head_handler = |head : & mut Element | {
26
28
head. append ( & tera_head, ContentType :: Html ) ;
27
29
@@ -62,17 +64,34 @@ pub(crate) fn rewrite_lol(
62
64
Ok ( ( ) )
63
65
} ;
64
66
65
- let ( head_selector, body_selector) = ( "head" . parse ( ) . unwrap ( ) , "body" . parse ( ) . unwrap ( ) ) ;
66
- let head = (
67
- & head_selector,
68
- ElementContentHandlers :: default ( ) . element ( head_handler) ,
69
- ) ;
70
- let body = (
71
- & body_selector,
72
- ElementContentHandlers :: default ( ) . element ( body_handler) ,
67
+ // Append `vendored.css` before the first stylesheet (rustdoc's first stylesheet is `normalize.css`).
68
+ let first_stylesheet_handler = |head : & mut Element | {
69
+ head. before ( & tera_vendored_css, ContentType :: Html ) ;
70
+
71
+ Ok ( ( ) )
72
+ } ;
73
+
74
+ let ( head_selector, body_selector, first_stylesheet_selector) = (
75
+ "head" . parse ( ) . unwrap ( ) ,
76
+ "body" . parse ( ) . unwrap ( ) ,
77
+ "link[type='text/css'][href*='normalize']" . parse ( ) . unwrap ( ) ,
73
78
) ;
79
+ let element_content_handlers = vec ! [
80
+ (
81
+ & head_selector,
82
+ ElementContentHandlers :: default ( ) . element( head_handler) ,
83
+ ) ,
84
+ (
85
+ & body_selector,
86
+ ElementContentHandlers :: default ( ) . element( body_handler) ,
87
+ ) ,
88
+ (
89
+ & first_stylesheet_selector,
90
+ ElementContentHandlers :: default ( ) . element( first_stylesheet_handler) ,
91
+ ) ,
92
+ ] ;
74
93
let settings = Settings {
75
- element_content_handlers : vec ! [ head , body ] ,
94
+ element_content_handlers,
76
95
memory_settings : MemorySettings {
77
96
max_allowed_memory_usage,
78
97
..MemorySettings :: default ( )
0 commit comments