@@ -107,20 +107,25 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
107107
108108 val classLikeInfo : TagArg = classLikeParts(m)
109109
110+ val attributes = Seq (
111+ docAttributes(m),
112+ companion(m),
113+ deprecation(m),
114+ defintionClasses(m),
115+ inheritedFrom(m),
116+ source(m),
117+ classLikeInfo
118+ ).filter {
119+ case Nil => false
120+ case _ => true
121+ }
122+
110123 Seq (
111- Option .when(withBrief)(div(cls := " documentableBrief doc" )(comment.flatMap(_.short).fold(" " )(renderDocPart))),
112- Some (
124+ Option .when(withBrief && comment.flatMap(_.short).nonEmpty )(div(cls := " documentableBrief doc" )(comment.flatMap(_.short).fold(" " )(renderDocPart))),
125+ Option .when(bodyContents.nonEmpty || attributes.nonEmpty) (
113126 div(cls := " cover" )(
114127 div(cls := " doc" )(bodyContents),
115- dl(cls := " attributes" )(
116- docAttributes(m),
117- companion(m),
118- deprecation(m),
119- defintionClasses(m),
120- inheritedFrom(m),
121- source(m),
122- classLikeInfo
123- )
128+ dl(cls := " attributes" )(attributes* )
124129 )
125130 )
126131 ).flatten
@@ -164,10 +169,11 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
164169 Seq (member.companion.flatMap( (_, dri) => link(dri)).fold(iconSpan)(link => a(href := link)(iconSpan)))
165170 }
166171
167- def annotations (member : Member ) =
172+ def annotations (member : Member ): Option [ TagArg ] =
168173 val rawBuilder = SignatureBuilder ().annotationsBlock(member)
169174 val signatures = rawBuilder.content
170- span(cls := " annotations monospace" )(signatures.map(renderElement(_)))
175+ val rendered = signatures.map(renderElement(_))
176+ Option .when(rendered.nonEmpty)(span(cls := " annotations monospace" )(rendered))
171177
172178 def member (member : Member ) =
173179 val filterAttributes = FilterAttributes .attributesFor(member)
@@ -176,18 +182,24 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
176182 ++ anchor
177183 ++ filterAttributes.map{ case (n, v) => Attr (s " data-f- $n" ) := v }
178184
185+ val originInf = originInfo(member)
186+ val memberInf = memberInfo(member, withBrief = true )
187+ val annots = annotations(member)
188+
179189 div(topLevelAttr:_* )(
180- button(cls := " icon-button show-content" ),
190+ Option .when(annots.nonEmpty || originInf.nonEmpty || memberInf.nonEmpty)( button(cls := " icon-button show-content" )).toList ,
181191 if ! member.needsOwnPage then a(Attr (" link" ) := link(member.dri).getOrElse(" #" ), cls := " documentableAnchor" ) else Nil ,
182- div(annotations(member)) ,
192+ annots.map( div(_)).toList ,
183193 div(cls := " header monospace" )(memberSignature(member)),
184- div(cls := " docs" )(
185- span(cls := " modifiers" ), // just to have padding on left
186- div(
187- div(cls := " originInfo" )(originInfo(member):_* ),
188- div(cls := " memberDocumentation" )(memberInfo(member, withBrief = true )),
194+ Option .when(originInf.nonEmpty || memberInf.nonEmpty)(
195+ div(cls := " docs" )(
196+ span(cls := " modifiers" ), // just to have padding on left
197+ div(
198+ div(cls := " originInfo" )(originInf* ),
199+ div(cls := " memberDocumentation" )(memberInf* ),
200+ )
189201 )
190- )
202+ ).toList
191203 )
192204
193205 private case class MGroup (header : AppliedTag , members : Seq [Member ], groupName : String )
@@ -428,7 +440,7 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
428440 ) ++ companionBadge(m) ++
429441 Seq (
430442 div(cls := " main-signature mono-medium" )(
431- annotations(m),
443+ annotations(m).getOrElse( Nil ) ,
432444 memberSignature(m)
433445 )
434446 )
0 commit comments