@@ -176,15 +176,19 @@ function prettyPath(path: string): string {
176
176
return path . replace ( / \/ i n d e x $ / , "/" ) || "/" ;
177
177
}
178
178
179
- function renderHead ( parse : MarkdownPage , resolvers : Resolvers , { scripts, head, root} : RenderOptions ) : Html {
179
+ function renderHead (
180
+ parse : MarkdownPage ,
181
+ { stylesheets, staticImports, resolveImport, resolveStylesheet} : Resolvers ,
182
+ { scripts, head, root} : RenderOptions
183
+ ) : Html {
180
184
if ( parse . data ?. head !== undefined ) head = parse . data . head ;
181
- const resolveScript = ( src : string ) => ( / ^ \w + : / . test ( src ) ? src : resolvers . resolveImport ( relativePath ( root , src ) ) ) ;
185
+ const resolveScript = ( src : string ) => ( / ^ \w + : / . test ( src ) ? src : resolveImport ( relativePath ( root , src ) ) ) ;
182
186
return html `< link rel ="preconnect " href ="https://fonts.gstatic.com " crossorigin > ${
183
- Array . from ( resolvers . stylesheets , ( i ) => renderStylesheetPreload ( resolvers . resolveStylesheet ( i ) ) ) // <link rel=preload as=style>
187
+ Array . from ( new Set ( Array . from ( stylesheets , ( i ) => resolveStylesheet ( i ) ) ) , renderStylesheetPreload ) // <link rel=preload as=style>
184
188
} ${
185
- Array . from ( resolvers . stylesheets , ( i ) => renderStylesheet ( resolvers . resolveStylesheet ( i ) ) ) // <link rel=stylesheet>
189
+ Array . from ( new Set ( Array . from ( stylesheets , ( i ) => resolveStylesheet ( i ) ) ) , renderStylesheet ) // <link rel=stylesheet>
186
190
} ${
187
- Array . from ( resolvers . staticImports , ( i ) => renderModulePreload ( resolvers . resolveImport ( i ) ) ) // <link rel=modulepreload>
191
+ Array . from ( new Set ( Array . from ( staticImports , ( i ) => resolveImport ( i ) ) ) , renderModulePreload ) // <link rel=modulepreload>
188
192
} ${
189
193
head ? html `\n${ html . unsafe ( head ) } ` : null // arbitrary user content
190
194
} ${
0 commit comments