diff --git a/scala3doc/src/dotty/renderers/HtmlRenderer.scala b/scala3doc/src/dotty/renderers/HtmlRenderer.scala
index 22c49a51227c..deca09a0f9a5 100644
--- a/scala3doc/src/dotty/renderers/HtmlRenderer.scala
+++ b/scala3doc/src/dotty/renderers/HtmlRenderer.scala
@@ -29,10 +29,20 @@ class HtmlRenderer(rootPackage: Member, val members: Map[DRI, Member])(using ctx
private val args = summon[DocContext].args
val staticSite = summon[DocContext].staticSiteContext
+ private def needsOwnPage(member: Member): Boolean =
+ def properKind(kind: Kind): Boolean = kind match
+ case Kind.Package => true
+ case _ if kind.isInstanceOf[Classlike] => true
+ case Kind.Given(inner, _, _) => properKind(inner)
+ case Kind.EnumCase(inner) => properKind(inner)
+ case _ => false
+
+ properKind(member.kind) &&
+ member.origin == Origin.RegularlyDefined &&
+ member.inheritedFrom.isEmpty
+
private def memberPage(member: Member): Page =
- val childrenPages = member
- .membersBy(m => m.kind == Kind.Package || m.kind.isInstanceOf[Classlike])
- .filter(m => m.origin == Origin.RegularlyDefined && m.inheritedFrom.isEmpty)
+ val childrenPages = member.members.filter(needsOwnPage)
Page(Link(member.name, member.dri), member, childrenPages.map(memberPage))
val navigablePage: Page =