@@ -19,11 +19,18 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
1919 extends Renderer (rootPackage, members, extension = " html" ):
2020
2121 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+
2229 html(
23- mkHead(page),
30+ head(( mkHead(page) :+ docHead) :_* ),
2431 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 )
2734 )
2835 )
2936
@@ -56,7 +63,7 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
5663 val resources = staticSiteResources ++ allResources(allPages) ++ onlyRenderedResources
5764 resources.flatMap(renderResource)
5865
59- def mkHead (page : Page ): AppliedTag =
66+ def mkHead (page : Page ): Seq [ TagArg ] =
6067 val resources = page.content match
6168 case t : ResolvedTemplate =>
6269 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
6774 case t : ResolvedTemplate => if t.hasFrame then earlyCommonResourcePaths else Nil
6875 case _ => earlyCommonResourcePaths
6976
70- head (
77+ Seq (
7178 meta(charset := " utf-8" ),
7279 meta(util.HTML .name := " viewport" , content := " width=device-width, initial-scale=1, maximum-scale=1" ),
7380 title(page.link.name),
@@ -183,7 +190,7 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
183190 renderTocRec(1 , toc).headOption.map(toc => nav(cls := " toc-nav" )(ul(cls := " toc-list" )(toc)))
184191
185192
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 =
187194 val projectLogoElem =
188195 projectLogo.flatMap {
189196 case Resource .File (path, _) =>
@@ -295,8 +302,8 @@ class HtmlRenderer(rootPackage: Member, members: Map[DRI, Member])(using ctx: Do
295302 div(id := " main" )(
296303 parentsHtml,
297304 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 =>
300307 div(id := " toc" , cls:= " body-small" )(
301308 div(id := " toc-container" ) (
302309 span(cls := " toc-title h200" )(" In this article" ),
0 commit comments