Skip to content

Commit 76f8ced

Browse files
committed
add prominent details button
1 parent 7202459 commit 76f8ced

3 files changed

Lines changed: 23 additions & 5 deletions

File tree

‎LeanExposition/Collect.lean‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ structure DeclCardData where
7575
isLemma : Bool := false
7676
isInstanceDecl : Bool := false
7777
tags : Array String := #[]
78+
detailsUrl? : Option String := none
7879
deriving Repr, ToJson, FromJson, Inhabited
7980

8081
/-- Data container for DetailsData. -/
@@ -314,10 +315,9 @@ def codeListParagraph (label : String) (items : Array String) : Option (Block Ma
314315
joinInlines entries #[.text " · "]
315316

316317
/-- Helper for mkLinkParagraph. -/
317-
def mkLinkParagraph (sourceUrl? issueUrl? detailsUrl? : Option String) : Option (Block Manual) :=
318+
def mkLinkParagraph (sourceUrl? issueUrl? : Option String) : Option (Block Manual) :=
318319
let items :=
319-
([detailsUrl?.map fun url => .link #[.text "Details"] url,
320-
sourceUrl?.map fun url => .link #[.text "Source"] url,
320+
([sourceUrl?.map fun url => .link #[.text "Source"] url,
321321
issueUrl?.map fun url => .link #[.text "Open Issue"] url].filterMap id)
322322
if items.isEmpty then
323323
none

‎LeanExposition/Site.lean‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,11 @@ block_extension Block.declCard (_payload : DeclCardData) where
158158
.empty
159159
else
160160
{{<div class="decl-card-tags">{{tags}}</div>}}
161+
let detailsHtml :=
162+
if let some url := payload.detailsUrl? then
163+
{{<a class="decl-card-action decl-card-details" href={{url}}>"Details"</a>}}
164+
else
165+
.empty
161166
let isMainTheorem := payload.kindLabel == "Theorem" && !payload.isLemma && !payload.isInstanceDecl
162167
let displayLabel :=
163168
if payload.isInstanceDecl then "Instance"
@@ -178,7 +183,7 @@ block_extension Block.declCard (_payload : DeclCardData) where
178183
<span class={{labelClass}}>{{displayLabel}}</span>
179184
<code class="decl-card-name">{{payload.fullName}}</code>
180185
</div>
181-
<div class="decl-card-tagbar">{{tagsHtml}}</div>
186+
<div class="decl-card-tagbar">{{detailsHtml}}{{tagsHtml}}</div>
182187
</div>
183188
<div class="decl-card-body">
184189
{{← contents.mapM goB}}
@@ -326,7 +331,7 @@ private def mkDeclBlock (decl : DeclInfo) (ctx : SiteContext) : Block Manual :=
326331
blocks := blocks.push <| .other (Block.details { summary := s!"Body uses ({proofDepLinks.size})" }) #[block]
327332
if let some block := depListBlock usedByLinks then
328333
blocks := blocks.push <| .other (Block.details { summary := s!"Used by ({usedByLinks.size})" }) #[block]
329-
if let some block := mkLinkParagraph sourceUrl issueUrl detailsUrl then
334+
if let some block := mkLinkParagraph sourceUrl issueUrl then
330335
blocks := blocks.push block
331336
if let some proof := decl.proofText? then
332337
blocks := blocks.push <| .other (Block.details { summary := "Proof" }) #[.code proof]
@@ -340,6 +345,7 @@ private def mkDeclBlock (decl : DeclInfo) (ctx : SiteContext) : Block Manual :=
340345
tags := #[
341346
if decl.dependsOnSorry then some "depends transitively on sorry" else none
342347
].filterMap id
348+
detailsUrl? := detailsUrl
343349
}
344350
.other (Block.declCard cardData) blocks
345351

‎LeanExposition/Theme.lean‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ body {
126126
.decl-card-tagbar {
127127
align-items: flex-start;
128128
display: flex;
129+
flex-wrap: wrap;
130+
gap: 0.45rem;
129131
flex: 0 0 auto;
130132
}
131133
@@ -139,6 +141,16 @@ body {
139141
text-decoration: none !important;
140142
}
141143
144+
.decl-card-details {
145+
background: var(--site-accent);
146+
font-weight: 700;
147+
box-shadow: 0 4px 12px rgba(214, 93, 93, 0.35);
148+
}
149+
150+
.decl-card-details:hover {
151+
background: var(--site-ink);
152+
}
153+
142154
.decl-card details {
143155
border-top: 1px solid rgba(240, 212, 212, 0.9);
144156
margin-top: 0.9rem;

0 commit comments

Comments
 (0)