Skip to content

Commit a60ef52

Browse files
authored
Merge pull request #7 from szymon-rd/fix-nested-html-tags
Fix nested html tags
2 parents 38184ec + 451db6c commit a60ef52

File tree

2 files changed

+15
-96
lines changed

2 files changed

+15
-96
lines changed

.github/workflows/scaladoc.yaml

Lines changed: 0 additions & 88 deletions
This file was deleted.

scaladoc/src/dotty/tools/scaladoc/renderers/HtmlRenderer.scala

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)