@@ -107,20 +107,25 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
107
107
108
108
val classLikeInfo : TagArg = classLikeParts(m)
109
109
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
+
110
123
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) (
113
126
div(cls := " cover" )(
114
127
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* )
124
129
)
125
130
)
126
131
).flatten
@@ -164,10 +169,11 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
164
169
Seq (member.companion.flatMap( (_, dri) => link(dri)).fold(iconSpan)(link => a(href := link)(iconSpan)))
165
170
}
166
171
167
- def annotations (member : Member ) =
172
+ def annotations (member : Member ): Option [ TagArg ] =
168
173
val rawBuilder = SignatureBuilder ().annotationsBlock(member)
169
174
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))
171
177
172
178
def member (member : Member ) =
173
179
val filterAttributes = FilterAttributes .attributesFor(member)
@@ -176,18 +182,24 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
176
182
++ anchor
177
183
++ filterAttributes.map{ case (n, v) => Attr (s " data-f- $n" ) := v }
178
184
185
+ val originInf = originInfo(member)
186
+ val memberInf = memberInfo(member, withBrief = true )
187
+ val annots = annotations(member)
188
+
179
189
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 ,
181
191
if ! member.needsOwnPage then a(Attr (" link" ) := link(member.dri).getOrElse(" #" ), cls := " documentableAnchor" ) else Nil ,
182
- div(annotations(member)) ,
192
+ annots.map( div(_)).toList ,
183
193
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
+ )
189
201
)
190
- )
202
+ ).toList
191
203
)
192
204
193
205
private case class MGroup (header : AppliedTag , members : Seq [Member ], groupName : String )
@@ -428,7 +440,7 @@ class MemberRenderer(signatureRenderer: SignatureRenderer)(using DocContext) ext
428
440
) ++ companionBadge(m) ++
429
441
Seq (
430
442
div(cls := " main-signature mono-medium" )(
431
- annotations(m),
443
+ annotations(m).getOrElse( Nil ) ,
432
444
memberSignature(m)
433
445
)
434
446
)
0 commit comments