From 0de1361b2dbb3fc463d5b205f213f4c2debe28d2 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Wed, 9 Apr 2025 21:27:12 +1200 Subject: [PATCH] Explain it good --- pug/home.pug | 24 +++++++++++++++++++++++- pug/includes/layout.pug | 5 ++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/pug/home.pug b/pug/home.pug index a88c2ac..dc931a5 100644 --- a/pug/home.pug +++ b/pug/home.pug @@ -37,7 +37,29 @@ html h2 About BC Explorer p Explore your Bandcamp collection online! p You can easily search your whole collection and play it streaming rather than downloading every mp3 to your computer and using a media player. - aside: p.fs-fine (you should download every mp3, though, because the Bandcamp TOS says they can take away your online access at any time) + p.fs-fine (you #[em should] download every mp3, though, because the Bandcamp TOS says they can take away your online access at any time) + + h2 Why? + p I mainly wanted to arrange my collection as labels instead of album covers. I've bought music from a variety of artists, but it's hard to find all of them amidst the enormous backlogs from Singto Conley and Lost Frog Productions. Giving each label the same amount of space makes my collection more fun to browse because I'm not scrolling past the same things over and over again. + p It's also faster to browse through because there's no "load more", everything shows up instantly. + p I also wanted as many different facets as possible for browsing my collection: albums, artists, labels, and tags. I want to be able to jump from one place to another. What else has this artist produced? Who has produced music in these tags? What else have I written reviews for? + p + | All the little tags under things, like + | + a.s-tag.s-tag__sm.bg-black-200(href="/cloudrac3r/?account=cloudrac3r&arrange=album&shape=grid&filter_field=band_url&filter=overheaven") + span.s-tag--sponsor!= icons.get("album", 18) + | 39 + | + | the number of albums, or + | + a.s-tag.s-tag__sm.bg-black-200(href="/cloudrac3r/?account=cloudrac3r&arrange=artist&shape=grid&filter_field=band_url&filter=lostfrog") + span.s-tag--sponsor!= icons.get("people-tag", 18) + | 92 + | + | the artists in a label, are clickable. If you click them it applies a filter and switches tabs to show you who they are. + p While having a filter active, you can click the tabs at the top to use the same filter in a different facet. For example, you can go to the #[a(href="/cloudrac3r/?arrange=tag&shape=grid") tag cloud], search "breakcore", click it to #[a(href="/cloudrac3r/?filter=breakcore&filter_field=tag&filter_fuzzy=true&arrange=album&shape=grid") see all the breakcore albums] - there's a lot, right? Yes, but it's not because I'm enthusiastic about breakcore. Switch to #[a(href="/cloudrac3r/?filter=breakcore&filter_field=tag&arrange=label&shape=grid") the labels view]. Most of the breakcore is just from the same label, so there's not actually much diversity there. + p The tag cloud view takes this diversity into account automatically. Everything is grouped by label before being counted, to ensure that a large backlog from a single label does not take up an unworthy amount of "space" and crowd out the other singles that you're quite fond of. It's the same with the statistics heat bar. If you have #[a(href="http://localhost:2239/cloudrac3r/?arrange=album&shape=grid&filter_field=band_url&filter=louiezong") all of Louie Zong's albums], they'll only count for one red hot entry rather than over 150 entries. + p Oh, and there's an inline music player which sticks around while you keep exploring. footer.mt32.d-flex.fw-wrap.gx8.ai-center a(href="https://cadence.moe") Created by Cadence diff --git a/pug/includes/layout.pug b/pug/includes/layout.pug index b68f932..5b74e7d 100644 --- a/pug/includes/layout.pug +++ b/pug/includes/layout.pug @@ -1,5 +1,8 @@ mixin navi(key, value, icon, text) - a.s-navigation--item(href="./" + and({shape: query && query.shape || "grid", [key]: value}) class={"is-selected": query && query[key] === value})&attributes(attributes) + - + let bits = {[key]: value} + if (isStatsPage) bits.shape = "grid" + a.s-navigation--item(href="./" + and(bits) class={"is-selected": query && query[key] === value})&attributes(attributes) if icon != icons.get(icon) if text