diff --git a/src/components.js b/src/components.js
index 3f35e2e..37edd8f 100644
--- a/src/components.js
+++ b/src/components.js
@@ -32,7 +32,7 @@ export function makeSongItem(s, idx, list, { noArtistLink = false, noAlbumLink =
if(s.starred && !s._starred) s._starred = true;
el.className = 'song-item' + (S.queue[S.qIdx]?.id === s.id ? ' playing' : '');
const cv = coverUrl(s.coverArt, 60);
- const artistParts = (s.artist || '').split(' / ').filter(Boolean);
+ const artistParts = (s.artist || '').split(/\s*(?:\/|•)\s*/).filter(Boolean);
const artistHtml = artistParts.length
? artistParts.map((name, i) => {
const aid = i === 0 ? (s.artistId || '') : '';
diff --git a/src/views.js b/src/views.js
index 9191eb6..75d2955 100644
--- a/src/views.js
+++ b/src/views.js
@@ -422,8 +422,11 @@ export async function loadAlbumDetail(album) {
album._fromArtist ? navigate('artist-detail', album._fromArtist) : navigate('albums');
document.getElementById('album-detail-name').textContent = album.name;
const artistEl = document.getElementById('album-detail-artist');
- artistEl.textContent = album.artist || '';
- artistEl.onclick = () => { if(album.artistId) navigate('artist-detail', {id:album.artistId, name:album.artist}); };
+ const albumArtistParts = (album.artist || '').split(/\s*(?:\/|•)\s*/).filter(Boolean);
+ artistEl.innerHTML = albumArtistParts.map((name, i) => {
+ const aid = i === 0 ? (album.artistId || '') : '';
+ return `${esc(name)}`;
+ }).join(' / ') || '';
const cw = document.getElementById('album-cover-wrap');
const cv = coverUrl(album.coverArt, 300);
cw.innerHTML = cv ? `` : '
${e.message}
`; } } @@ -492,7 +495,7 @@ export async function loadPlaylistDetail(pl) { playQueue(shuffled, 0); }; sl.innerHTML = ''; - songs.forEach((s,i) => sl.appendChild(makeSongItem(s, i, songs, { noArtistLink: true }))); + songs.forEach((s,i) => sl.appendChild(makeSongItem(s, i, songs))); } catch(e) { sl.innerHTML = `${e.message}
`; } }