@@ -19,11 +19,18 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
19
19
extends Renderer (rootPackage, members, extension = " html" ):
20
20
21
21
override def pageContent (page : Page , parents : Vector [Link ]): AppliedTag =
22
+ val PageContent (content, toc) = renderContent(page)
23
+ val contentStr =
24
+ content.toString.stripPrefix(" \n " ).stripPrefix(" <div>" ).stripSuffix(" \n " ).stripSuffix(" </div>" )
25
+ val document = Jsoup .parse(contentStr)
26
+ val docHead = raw(document.head().html())
27
+ val docBody = raw(document.body().html())
28
+
22
29
html(
23
- mkHead(page),
30
+ head(( mkHead(page) :+ docHead) :_* ),
24
31
body(
25
- if ! page.hasFrame then renderContent(page).content
26
- else mkFrame(page.link, parents, renderContent(page) )
32
+ if ! page.hasFrame then docBody
33
+ else mkFrame(page.link, parents, docBody, toc )
27
34
)
28
35
)
29
36
@@ -56,7 +63,7 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
56
63
val resources = staticSiteResources ++ allResources(allPages) ++ onlyRenderedResources
57
64
resources.flatMap(renderResource)
58
65
59
- def mkHead (page : Page ): AppliedTag =
66
+ def mkHead (page : Page ): Seq [ TagArg ] =
60
67
val resources = page.content match
61
68
case t : ResolvedTemplate =>
62
69
t.resolved.resources ++ (if t.hasFrame then commonResourcesPaths ++ staticSiteOnlyResourcesPaths else Nil )
@@ -67,7 +74,7 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
67
74
case t : ResolvedTemplate => if t.hasFrame then earlyCommonResourcePaths else Nil
68
75
case _ => earlyCommonResourcePaths
69
76
70
- head (
77
+ Seq (
71
78
meta(charset := " utf-8" ),
72
79
meta(util.HTML .name := " viewport" , content := " width=device-width, initial-scale=1, maximum-scale=1" ),
73
80
title(page.link.name),
@@ -183,7 +190,7 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
183
190
renderTocRec(1 , toc).headOption.map(toc => nav(cls := " toc-nav" )(ul(cls := " toc-list" )(toc)))
184
191
185
192
186
- private def mkFrame (link : Link , parents : Vector [Link ], content : => PageContent ): AppliedTag =
193
+ private def mkFrame (link : Link , parents : Vector [Link ], content : AppliedTag , toc : Seq [ TocEntry ] ): AppliedTag =
187
194
val projectLogoElem =
188
195
projectLogo.flatMap {
189
196
case Resource .File (path, _) =>
@@ -295,8 +302,8 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
295
302
div(id := " main" )(
296
303
parentsHtml,
297
304
div(id := " content" , cls := " body-medium" )(
298
- content.content ,
299
- renderTableOfContents(content. toc).fold(Nil ) { toc =>
305
+ div( content) ,
306
+ renderTableOfContents(toc).fold(Nil ) { toc =>
300
307
div(id := " toc" , cls:= " body-small" )(
301
308
div(id := " toc-container" ) (
302
309
span(cls := " toc-title h200" )(" In this article" ),
0 commit comments