Skip to content

Commit cc87d06

Browse files
authored
Merge pull request #11575 from romanowski/scaladoc/add-index-page
Add top level index page
2 parents 45d0678 + 9660a70 commit cc87d06

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

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

+14-6
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,14 @@ class HtmlRenderer(rootPackage: Member, val members: Map[DRI, Member])(using ctx
5757
templateToPage(indexPage, siteContext).withNewChildren(newChildren)
5858

5959
val hiddenPages: Seq[Page] =
60-
staticSite.toSeq.flatMap(c => c.orphanedTemplates.map(templateToPage(_, c)))
60+
staticSite match
61+
case None =>
62+
Seq(navigablePage.copy( // Add index page that is a copy of api/index.html
63+
link = navigablePage.link.copy(dri = docsRootDRI),
64+
children = Nil
65+
))
66+
case Some(site) =>
67+
site.orphanedTemplates.map(templateToPage(_, site))
6168

6269
val allPages = navigablePage +: hiddenPages
6370

@@ -139,10 +146,10 @@ class HtmlRenderer(rootPackage: Member, val members: Map[DRI, Member])(using ctx
139146
case _ => Nil
140147
}
141148

142-
def renderNested(nav: Page): (Boolean, AppliedTag) =
149+
def renderNested(nav: Page, toplevel: Boolean = false): (Boolean, AppliedTag) =
143150
val isSelected = nav.link.dri == pageLink.dri
144151
def linkHtml(exapnded: Boolean = false) =
145-
val attrs = if (isSelected) Seq(cls := "selected expanded") else Nil
152+
val attrs = if (isSelected || toplevel) Seq(cls := "selected expanded") else Nil
146153
val icon = nav.content match {
147154
case m: Member => navigationIcon(m)
148155
case _ => Nil
@@ -152,15 +159,16 @@ class HtmlRenderer(rootPackage: Member, val members: Map[DRI, Member])(using ctx
152159
nav.children match
153160
case Nil => isSelected -> div(linkHtml())
154161
case children =>
155-
val nested = children.map(renderNested)
162+
val nested = children.map(renderNested(_))
156163
val expanded = nested.exists(_._1) || nav.link == pageLink
157-
val attr = if expanded || isSelected then Seq(cls := "expanded") else Nil
164+
val attr =
165+
if expanded || isSelected || toplevel then Seq(cls := "expanded") else Nil
158166
(isSelected || expanded) -> div(attr)(
159167
linkHtml(expanded),
160168
span(cls := "ar"),
161169
nested.map(_._2)
162170
)
163-
renderNested(navigablePage)._2
171+
renderNested(navigablePage, toplevel = true)._2
164172

165173
private def hasSocialLinks = !args.socialLinks.isEmpty
166174

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ trait Locations(using ctx: DocContext):
3434
case dri =>
3535
val loc = dri.location
3636
val fqn = loc.split(Array('.')).toList match
37-
case "<empty>" :: Nil => "index" :: Nil
37+
case "<empty>" :: Nil => "_empty_" :: Nil
3838
case "<empty>" :: tail => "_empty_" :: tail
3939
case other => other
4040

0 commit comments

Comments
 (0)