« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--album/diverging-delicacies/album.txt263
-rw-r--r--site.css7
-rw-r--r--upd8.js51
3 files changed, 312 insertions, 9 deletions
diff --git a/album/diverging-delicacies/album.txt b/album/diverging-delicacies/album.txt
new file mode 100644
index 00000000..2cdc3d5e
--- /dev/null
+++ b/album/diverging-delicacies/album.txt
@@ -0,0 +1,263 @@
+Album: Diverging Delicacies
+Cover Art: Ephemerald
+Date: March 1, 2020
+FG: #f2a400
+Canon: Fanon
+-------------------------------------------------------------------------------
+Track: Greetings from Earth C!
+Artist: pizzagremlin
+Track Art: Jas
+References: Homestuck
+URLs: https://unofficialmspafans.bandcamp.com/track/greetings-from-earth-c
+-------------------------------------------------------------------------------
+Track: Hauntological Nightmares
+Artist: M3l0m4ni4c
+Track Art: tipsy
+References:
+- Heir Transparent
+- Spirit of Storms
+URLs: https://unofficialmspafans.bandcamp.com/track/hauntological-nightmares
+-------------------------------------------------------------------------------
+Track: The Decision | The Division
+Artist: Viko Riféo
+Track Art: BlueAmethyst
+References:
+- The Paradox Paradigm (by Jack McMenamin)
+URLs: https://unofficialmspafans.bandcamp.com/track/the-decision-the-division
+-------------------------------------------------------------------------------
+Track: [MEAT EPILOGUE | 🥩]
+Artist: ndividedbyzero
+Track Art: none
+References:
+- The Paradox Paradigm (by Jack McMenamin)
+URLs: https://unofficialmspafans.bandcamp.com/track/meat-epilogue
+-------------------------------------------------------------------------------
+Track: Party God
+Artist: Cristata
+Track Art: Crystalrina
+References:
+- Umbral Ultimatum
+URLs: https://unofficialmspafans.bandcamp.com/track/party-god
+-------------------------------------------------------------------------------
+Track: Constituent Hearts
+Artist: Ucklin
+Track Art: BlueAmethyst
+References:
+- English
+- Horsecatska
+- [S] Dirk: Unite Synchronization (WITH LYRICS) (by toucanSandwiches)
+- Whistling Jackhammer
+- Austin, Atlantis
+- Stress
+- Sweet Dreams, Timaeus
+- Moonsetter
+- timaeusAmplified (by Shandy)
+- Battle Brotocol
+- Brobot Scrimmage (by Pascal van den Bos)
+- Eternity Served Cold
+- WORST END THEME
+- Strider Showdown (by Bill Bolin)
+- Character Theme for Dirk Strider (by WindlessZephyr)
+- I Am An Island (by PhemieC)
+- Dominion (by Thomas Ferkol)
+- Orange Hat
+- Rematch (by Pascal van den Bos)
+- Shut me down [A Song for Brobot] (by TotalSpiffage)
+- Synchronize // A Dirk Strider Fansong (by seven-lillies)
+- Good Morning, Dirk (by Pascal van den Bos)
+- Heart Beat (by Pascal van den Bos)
+- The Engineer [A Dirk Strider Fansong] (by ari music)
+URLs: https://unofficialmspafans.bandcamp.com/track/constituent-hearts
+-------------------------------------------------------------------------------
+Track: The Cyan Experience
+Artist: heir-of-puns
+Track Art: Jas
+References:
+- Homestuck Anthem
+- Cyan Beast
+- First Steps (by David Ellis)
+URLs: https://unofficialmspafans.bandcamp.com/track/the-cyan-experience
+-------------------------------------------------------------------------------
+Track: THE RAREST. AND MOST INTERPRETIVE. DANCE MEATCABRE.
+Artist: ndividedbyzero
+Track Art: Aeritus
+References:
+- Singularity (by ndividedbyzero)
+- HOMOSUCK, DIRECTOR'S CUT, OF THE YEAR EDITION. (by ndividedbyzero)
+- Eternity Served Cold
+- Purple Bard
+- Beatdown
+- Horsechestra
+- Homosuck Swan Song
+- Savior of the Waking World
+- The Lyrist
+- The Paradox Paradigm (by Jack McMenamin)
+- Swing of the Clock
+URLs: https://unofficialmspafans.bandcamp.com/track/the-rarest-and-most-interpretive-dance-meatcabre
+-------------------------------------------------------------------------------
+Track: Irrelevance Event Horizon
+Artist: M3l0m4ni4c
+Track Art: Jas
+References:
+- Ecstacy
+- Even in Death
+- Spider8reath
+- Killed by BR8K Spider!!!!!!!!
+- Savior of the Waking World
+- Retcnojuration (by ndividedbyzero)
+- Conflict! (by Emilia K.)
+- Homestuck
+URLs: https://unofficialmspafans.bandcamp.com/track/irrelevance-event-horizon
+-------------------------------------------------------------------------------
+Track: Betrayed
+Artist: Joe Ouellet
+Track Art: sw4nfire
+References:
+- Horschestra
+- Sunsetter
+URLs: https://unofficialmspafans.bandcamp.com/track/betrayed
+-------------------------------------------------------------------------------
+Track: Gone in a moment
+Artist: Not Eno
+Track Art: ricemilk
+References:
+- Showtime (Piano Refrain)
+- Flare
+URLs: https://unofficialmspafans.bandcamp.com/track/gone-in-a-moment
+-------------------------------------------------------------------------------
+Track: I Am Ascending (And It Is Terrible)
+Artist: heir-of-puns
+Track Art: Spades
+References:
+- Black Rose / Green Sun
+- Lilith in Starlight
+- At the Price of Oblivion
+- Aggrieve
+- Flare
+- Endless Climb
+- Chorale for Jaspers
+URLs: https://unofficialmspafans.bandcamp.com/track/i-am-ascending-and-it-is-terrible
+-------------------------------------------------------------------------------
+Track: Come
+Artist: Grace Medley
+Track Art: Mikkynga
+References:
+- Limelight (by psithurist)
+- Voidlight
+- Glide (by VeritasUnae)
+URLs: https://unofficialmspafans.bandcamp.com/track/come
+-------------------------------------------------------------------------------
+Track: Kamina Burana (Ascend to the highest point of the building)
+Directory: kamina-burana
+Artist: Grace Medley
+Track Art: Mikkynga
+References:
+- Orange Hat
+- Upward Movement (Dave Owns)
+URLs: https://unofficialmspafans.bandcamp.com/track/kamina-burana-ascend-to-the-highest-point-of-the-building
+-------------------------------------------------------------------------------
+Track: Giving Up the Ghost
+Artist: M3l0m4ni4c
+Track Art: ricemilk
+References:
+- Lifdoff
+URLs: https://unofficialmspafans.bandcamp.com/track/giving-up-the-ghost
+-------------------------------------------------------------------------------
+Track: Pursuit in Polykrome
+Artist: heir-of-puns
+Track Art: swan
+URLs: https://unofficialmspafans.bandcamp.com/track/pursuit-in-polykrome
+-------------------------------------------------------------------------------
+Track: [CANDY EPILOGUE | 🍭]
+Artist: ndividedbyzero
+Track Art: none
+References:
+- The Paradox Paradigm (by Jack McMenamin)
+URLs: https://unofficialmspafans.bandcamp.com/track/candy-epilogue
+-------------------------------------------------------------------------------
+Track: Athazagoraphobia
+Artist: Toris Crow
+Track Art: BlueAmethyst
+URLs: https://unofficialmspafans.bandcamp.com/track/athazagoraphobia
+-------------------------------------------------------------------------------
+Track: Repentance Galore
+Artist: M3l0m4ni4c
+Track Art: cherry bomb bunny
+References:
+- Heir of Grief
+- Theme
+- Purple Bard
+URLs: https://unofficialmspafans.bandcamp.com/track/repentance-galore
+-------------------------------------------------------------------------------
+Track: RUMBLE IN DA PUMPKIN PATCH
+Artist: pizzagremlin
+Track Art: Nerd
+URLs: https://unofficialmspafans.bandcamp.com/track/rumble-in-da-pumpkin-patch
+-------------------------------------------------------------------------------
+Track: Remember Me When I Am Gone Away
+Artist: Kal-la-kal-la
+Track Art: Cosmic
+References:
+- Homestuck Anthem
+- Do You Remem8er Me
+- Savior of the Waking World
+- Infinity Mechanism
+URLs: https://unofficialmspafans.bandcamp.com/track/remember-me-when-i-am-gone-away
+-------------------------------------------------------------------------------
+Track: Dirk's Dreamers
+Artist: heir-of-puns
+Track Art: Skyplayer
+References:
+- Derse Dreamers
+URLs: https://unofficialmspafans.bandcamp.com/track/dirks-dreamers
+-------------------------------------------------------------------------------
+Track: Ghost Hole
+Artist: heir-of-puns
+Track Art: Jas
+References:
+- English
+- The Lemonsnout Turnabout
+- Savior of the Waking World
+- MeGaLoVania
+- Upward Movement (Dave Owns)
+- Black Rose / Green Sun
+- Courser
+- Lotus
+URLs: https://unofficialmspafans.bandcamp.com/track/ghost-hole
+-------------------------------------------------------------------------------
+Track: Heritage for the Future
+Artist: M3l0m4ni4c
+Track Art: sw4nfire, Jas
+References:
+- Throwdown
+- Homefree
+URLs: https://unofficialmspafans.bandcamp.com/track/heritage-for-the-future
+-------------------------------------------------------------------------------
+Track: That's Kind of Xenophobic
+Artist: pizzagremlin
+Track Art: sw4nfire
+URLs: https://unofficialmspafans.bandcamp.com/track/thats-kind-of-xenophobic
+-------------------------------------------------------------------------------
+Track: The Floor Is Faygo
+Artist: M3l0m4ni4c
+Track Art: tipsy
+URLs: https://unofficialmspafans.bandcamp.com/track/the-floor-is-faygo
+-------------------------------------------------------------------------------
+Track: Universal Remission
+Artist: Kal-la-kal-la
+Contributors: OneDragonArmy (Additional vocals)
+Track Art: Mikkynga
+References:
+- Galactic Cancer
+URLs: https://unofficialmspafans.bandcamp.com/track/universal-remission
+Lyrics:
+    The moon cracks through the cave roof above,<br>Illuminates our gambits all in pale, wan white.<br>Amidst the scattered remnants of ill-fated love,<br>A last bid for freedom in the arms of the knight.
+    The blood remembers a dream of the sea, the scars in scattershot filigree.<br>See through the eyes, the eyes of the child, the old, haunted forests stretch out whispering and wild.
+    We have cracked the heavens themselves apart,<br>And their numbers are joined with our own,<br>Against the wretched, bitter heart,<br>That sets our world ablaze with drones.
+    The reverend mother's bones grow dolorous with vines, upon the shores of the great oceans, sometimes pale moonlight shines,<br>Twin eyes glare from the Alternian sky, where from time to time her graceless warships drift by.
+    We will paint the firmament in flame,<br>Offer up our blood in sacrifice,<br><i>Sic semper tyrannis</i>, a baptism,<br>In the milk of paradise.
+-------------------------------------------------------------------------------
+Track: Postscript (Sugar Mix)
+Artist: pizzagremlin
+Track Art: Mikkynga
+URLs: https://unofficialmspafans.bandcamp.com/track/postscript-sugar-mix
diff --git a/site.css b/site.css
index 9ec544d8..f799b1dd 100644
--- a/site.css
+++ b/site.css
@@ -177,6 +177,13 @@ h1 {
     font-size: 2em;
 }
 
+#top-index #content h2 {
+    text-align: center;
+    font-size: 3em;
+    font-variant: small-caps;
+    font-style: oblique;
+}
+
 #intro-menu {
     margin: 24px 0;
     padding: 10px;
diff --git a/upd8.js b/upd8.js
index f84226c1..ad7eb237 100644
--- a/upd8.js
+++ b/upd8.js
@@ -325,6 +325,8 @@ async function processAlbumDataFile(file) {
     const albumCommentary = getCommentaryField(albumSection);
     let albumDirectory = getBasicField(albumSection, 'Directory');
 
+    const isFanon = getBasicField(albumSection, 'Canon') === 'Fanon';
+
     if (albumCoverArtists && albumCoverArtists.error) {
         return albumCoverArtists;
     }
@@ -382,6 +384,7 @@ async function processAlbumDataFile(file) {
         coverArtists: albumCoverArtists,
         commentary: albumCommentary,
         directory: albumDirectory,
+        isFanon,
         theme: {
             fg: albumColorFG,
             bg: albumColorBG,
@@ -477,6 +480,7 @@ async function processAlbumDataFile(file) {
             date,
             directory: trackDirectory,
             urls: trackURLs,
+            isFanon,
             // 8ack-reference the al8um o8ject! This is very useful for when
             // we're outputting the track pages.
             album: albumData
@@ -622,8 +626,19 @@ function writeMiscellaneousPages(albumData, flashData) {
                         <a href="${FEEDBACK_DIRECTORY}/index.html">Feedback</a>
                         <p>...or choose an album:</p>
                     </div>
+                    <h2>Fandom</h2>
                     <div class="grid-listing">
-                        ${albumData.map(album => fixWS`
+                        ${albumData.filter(album => album.isFanon).map(album => fixWS`
+                            <a class="grid-item" href="${ALBUM_DIRECTORY}/${album.directory}/index.html" style="${getThemeString(album.theme)}">
+                                <img src="${getAlbumCover(album)}">
+                                <span>${album.name}</span>
+                            </a>
+                        `).join('\n')}
+                        <a class="grid-item" href="#" style="--fg-color: #ffffff">...and more to be added soon</a>
+                    </div>
+                    <h2>Official</h2>
+                    <div class="grid-listing">
+                        ${albumData.filter(album => !album.isFanon).map(album => fixWS`
                             <a class="grid-item" href="${ALBUM_DIRECTORY}/${album.directory}/index.html" style="${getThemeString(album.theme)}">
                                 <img src="${getAlbumCover(album)}">
                                 <span>${album.name}</span>
@@ -738,6 +753,8 @@ async function writeTrackPage(track, albumData, flashData) {
     const artistNames = getArtistNames(albumData);
     const allTracks = getAllTracks(albumData);
     const tracksThatReference = getTracksThatReference(track, allTracks);
+    const ttrFanon = tracksThatReference.filter(t => t.isFanon);
+    const ttrCanon = tracksThatReference.filter(t => !t.isFanon);
     const tracksReferenced = getTracksReferencedBy(track, allTracks);
     const flashesThatFeature = getFlashesThatFeature(track, allTracks, flashData);
     await writePage([TRACK_DIRECTORY, track.directory], track.name, fixWS`
@@ -787,14 +804,30 @@ async function writeTrackPage(track, albumData, flashData) {
                 `}
                 ${tracksThatReference.length && fixWS`
                     <p>Tracks that reference <i>${track.name}</i>:</p>
-                    <ul>
-                        ${tracksThatReference.map(track => fixWS`
-                            <li>
-                                <a href="${TRACK_DIRECTORY}/${track.directory}/index.html" style="${getThemeString(track.album.theme)}">${track.name}</a>
-                                <span class="by">by ${getArtistString(track.artists, albumData)}</span>
-                            </li>
-                        `).join('\n')}
-                    </ul>
+                    <dl>
+                        ${ttrCanon.length && fixWS`
+                            <dt>Official:</dt>
+                            <dd><ul>
+                                ${ttrCanon.map(track => fixWS`
+                                    <li>
+                                        <a href="${TRACK_DIRECTORY}/${track.directory}/index.html" style="${getThemeString(track.album.theme)}">${track.name}</a>
+                                        <span class="by">by ${getArtistString(track.artists, albumData)}</span>
+                                    </li>
+                                `).join('\n')}
+                            </ul></dd>
+                        `}
+                        ${ttrFanon.length && fixWS`
+                            <dt>Fandom:</dt>
+                            <dd><ul>
+                                ${ttrFanon.map(track => fixWS`
+                                    <li>
+                                        <a href="${TRACK_DIRECTORY}/${track.directory}/index.html" style="${getThemeString(track.album.theme)}">${track.name}</a>
+                                        <span class="by">by ${getArtistString(track.artists, albumData)}</span>
+                                    </li>
+                                `).join('\n')}
+                            </ul></dd>
+                        `}
+                    </dl>
                 `}
                 ${flashesThatFeature.length && fixWS`
                     <p>Flashes that feature <i>${track.name}</i>:</p>