feat: show track numbers on album tracklist

This commit is contained in:
rramiachraf 2024-05-02 13:09:09 +01:00
parent 59929bb891
commit 8f838a20e6
3 changed files with 32 additions and 6 deletions

View File

@ -17,8 +17,9 @@ type Album struct {
}
type Track struct {
Title string
Url string
Title string
Url string
Number int
}
type albumMetadata struct {
@ -65,7 +66,7 @@ func (a *Album) parseAlbumData(doc *goquery.Document) error {
for _, track := range albumMetadataFromPage.AlbumAppearances {
url := strings.Replace(track.Song.Url, "https://genius.com", "", -1)
a.Tracks = append(a.Tracks, Track{Title: track.Song.Title, Url: url})
a.Tracks = append(a.Tracks, Track{Title: track.Song.Title, Url: url, Number: track.TrackNumber})
}
return nil

View File

@ -12,3 +12,25 @@
flex-shrink: 0;
flex-grow: 1;
}
#album-single-track {
display: grid;
grid-template-columns: 3rem 1fr;
gap: 1rem;
align-items: center;
justify-content: center;
}
#album-single-track p {
color: #181d31;
font-weight: 500;
}
#album-single-track small {
font-size: 1.5rem;
color: #333;
}
#album-single-track:hover p {
text-decoration: underline;
}

View File

@ -10,12 +10,15 @@ templ AlbumPage(a data.Album) {
<div id="container">
<div id="metadata">
<img id="album-artwork" src={ data.ExtractImageURL(a.Image) } alt="Album image"/>
<h2>{ a.Artist }</h2>
<h1>{ a.Name }</h1>
<div id="metadata-info">
<h2>{ a.Artist }</h2>
<h1>{ a.Name }</h1>
</div>
</div>
<div id="album-tracklist">
for _, t := range a.Tracks {
<a href={ templ.URL(t.Url) }>
<a href={ templ.URL(t.Url) } id="album-single-track">
<small>{ fmt.Sprintf("%d", t.Number) }</small>
<p>{ t.Title }</p>
</a>
}