« get me outta code hell

test: remove all existing snapshot tests - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2025-10-15 14:27:29 -0300
committer(quasar) nebula <qznebula@protonmail.com>2025-10-15 14:27:29 -0300
commit1aa217195f4d5f82653e29d6c265f92c2d1bbd7e (patch)
tree98511aa6b51bdc5cbc4c31ddcf144f03bf2b8422
parent643797e6a2dcf4c39117e6ef99d9c8672e2d2511 (diff)
test: remove all existing snapshot tests
Deliberately keeping evaluate.snapshot() for possible future use.

There are also these folders which were seemingly never included
in the working tree:

test/snapshot/complete
test/snapshot/isolated
test/snapshot/mixed

If and when we come back to snasphot tests, maybe we'll bounce
off of that idea shaped out of three words.
-rw-r--r--tap-snapshots/test/snapshot/generateAlbumBanner.js.test.cjs18
-rw-r--r--tap-snapshots/test/snapshot/generateAlbumReleaseInfo.js.test.cjs41
-rw-r--r--tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs34
-rw-r--r--tap-snapshots/test/snapshot/generateAlbumSidebarGroupBox.js.test.cjs31
-rw-r--r--tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs185
-rw-r--r--tap-snapshots/test/snapshot/generateBanner.js.test.cjs14
-rw-r--r--tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs36
-rw-r--r--tap-snapshots/test/snapshot/image.js.test.cjs74
-rw-r--r--tap-snapshots/test/snapshot/linkArtist.js.test.cjs14
-rw-r--r--tap-snapshots/test/snapshot/linkContribution.js.test.cjs118
-rw-r--r--tap-snapshots/test/snapshot/linkExternal.js.test.cjs228
-rw-r--r--tap-snapshots/test/snapshot/linkTemplate.js.test.cjs32
-rw-r--r--tap-snapshots/test/snapshot/linkThing.js.test.cjs45
-rw-r--r--tap-snapshots/test/snapshot/transformContent.js.test.cjs142
-rw-r--r--test/snapshot/generateAlbumBanner.js34
-rw-r--r--test/snapshot/generateAlbumReleaseInfo.js74
-rw-r--r--test/snapshot/generateAlbumSecondaryNav.js90
-rw-r--r--test/snapshot/generateAlbumSidebarGroupBox.js57
-rw-r--r--test/snapshot/generateAlbumTrackList.js123
-rw-r--r--test/snapshot/generateBanner.js22
-rw-r--r--test/snapshot/generateTrackReleaseInfo.js51
-rw-r--r--test/snapshot/image.js132
-rw-r--r--test/snapshot/linkArtist.js30
-rw-r--r--test/snapshot/linkContribution.js73
-rw-r--r--test/snapshot/linkExternal.js225
-rw-r--r--test/snapshot/linkTemplate.js63
-rw-r--r--test/snapshot/linkThing.js94
-rw-r--r--test/snapshot/transformContent.js171
28 files changed, 0 insertions, 2251 deletions
diff --git a/tap-snapshots/test/snapshot/generateAlbumBanner.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumBanner.js.test.cjs
deleted file mode 100644
index b23df5c5..00000000
--- a/tap-snapshots/test/snapshot/generateAlbumBanner.js.test.cjs
+++ /dev/null
@@ -1,18 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateAlbumBanner.js > TAP > generateAlbumBanner (snapshot) > basic behavior 1`] = `
-<div id="banner"><img src="media/album-art/cool-album/banner.png" width="800" height="200" alt="album banner"></div>
-`
-
-exports[`test/snapshot/generateAlbumBanner.js > TAP > generateAlbumBanner (snapshot) > no banner 1`] = `
-
-`
-
-exports[`test/snapshot/generateAlbumBanner.js > TAP > generateAlbumBanner (snapshot) > no dimensions 1`] = `
-<div id="banner"><img src="media/album-art/cool-album/banner.png" width="1100" height="200" alt="album banner"></div>
-`
diff --git a/tap-snapshots/test/snapshot/generateAlbumReleaseInfo.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumReleaseInfo.js.test.cjs
deleted file mode 100644
index 14cce64e..00000000
--- a/tap-snapshots/test/snapshot/generateAlbumReleaseInfo.js.test.cjs
+++ /dev/null
@@ -1,41 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateAlbumReleaseInfo.js > TAP > generateAlbumReleaseInfo (snapshot) > basic behavior 1`] = `
-<p>
-    By <span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a> (music probably)</span> and <span class="contribution nowrap"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/tensei/">Tensei</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://tenseimusic.bandcamp.com/">
-                        <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-bandcamp"></use></svg></span>
-                        <span class="external-handle">tenseimusic</span>
-                    </a>
-                    <span class="external-platform">Bandcamp</span></span></span></span> (hot jams)</span>.
-    <br>
-    Cover art by <span class="contribution nowrap"><a href="artist/hb/">Hanni Brosh</a></span>.
-    <br>
-    Wallpaper art by <span class="contribution nowrap"><a href="artist/hb/">Hanni Brosh</a></span> and <span class="contribution nowrap"><a href="artist/niklink/">Niklink</a> (edits)</span>.
-    <br>
-    Banner art by <span class="contribution nowrap"><a href="artist/hb/">Hanni Brosh</a></span> and <span class="contribution nowrap"><a href="artist/niklink/">Niklink</a> (edits)</span>.
-    <br>
-    Released 3/14/2011.
-    <br>
-    Art released 4/1/1991.
-    <br>
-    Duration: ~10:25.
-</p>
-<p>Listen on <a class="external-link" href="https://homestuck.bandcamp.com/album/alterniabound-with-alternia">Bandcamp</a>, <a class="external-link" href="https://www.youtube.com/playlist?list=PLnVpmehyaOFZWO9QOZmD6A3TIK0wZ6xE2">YouTube (playlist)</a>, or <a class="external-link" href="https://www.youtube.com/watch?v=HO5V2uogkYc">YouTube (full album)</a>.</p>
-`
-
-exports[`test/snapshot/generateAlbumReleaseInfo.js > TAP > generateAlbumReleaseInfo (snapshot) > equal cover art date 1`] = `
-<p>Released 4/12/2020.</p>
-`
-
-exports[`test/snapshot/generateAlbumReleaseInfo.js > TAP > generateAlbumReleaseInfo (snapshot) > reduced details 1`] = `
-
-`
-
-exports[`test/snapshot/generateAlbumReleaseInfo.js > TAP > generateAlbumReleaseInfo (snapshot) > URLs only 1`] = `
-<p>Listen on <a class="external-link" href="https://homestuck.bandcamp.com/foo">Bandcamp</a> or <a class="external-link" href="https://soundcloud.com/bar">SoundCloud</a>.</p>
-`
diff --git a/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs
deleted file mode 100644
index 145dd0f7..00000000
--- a/tap-snapshots/test/snapshot/generateAlbumSecondaryNav.js.test.cjs
+++ /dev/null
@@ -1,34 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateAlbumSecondaryNav.js > TAP > generateAlbumSecondaryNav (snapshot) > basic behavior, mode: album 1`] = `
-<nav id="secondary-nav" class="album-secondary-nav with-previous-next">
-    <span class="group-with-series">
-        <span style="--primary-color: #abcdef"><a href="group/vcg/">VCG</a> (<span class="dot-switcher interpage"><span><a title="First" href="album/first/">Previous</a></span><span><a title="Last" href="album/last/">Next</a></span></span>)</span>
-        <span class="series-nav-link" style="--primary-color: #abcdef"><a class="series" href="group/vcg/">Series</a> (<span class="dot-switcher interpage"><span><a class="inert-previous-next-link">Previous</a></span><span><a title="Last" href="album/last/">Next</a></span></span>)</span>
-    </span>
-    <span style="--primary-color: #123456"><a href="group/bepis/">Bepis</a> (<span class="dot-switcher interpage"><span><a class="inert-previous-next-link">Previous</a></span><span><a title="Second" href="album/second/">Next</a></span></span>)</span>
-</nav>
-`
-
-exports[`test/snapshot/generateAlbumSecondaryNav.js > TAP > generateAlbumSecondaryNav (snapshot) > basic behavior, mode: track 1`] = `
-<nav id="secondary-nav" class="album-secondary-nav">
-    <span class="dot-switcher"><span>
-            <span class="group-with-series">
-                <span style="--primary-color: #abcdef"><a href="group/vcg/">VCG</a></span>
-                <span class="series-nav-link" style="--primary-color: #abcdef"><a class="series" href="group/vcg/">Series</a></span>
-            </span>
-        </span><span><span style="--primary-color: #123456"><a href="group/bepis/">Bepis</a></span></span></span>
-</nav>
-`
-
-exports[`test/snapshot/generateAlbumSecondaryNav.js > TAP > generateAlbumSecondaryNav (snapshot) > dateless album in mixed group 1`] = `
-<nav id="secondary-nav" class="album-secondary-nav with-previous-next">
-    <span style="--primary-color: #abcdef"><a href="group/vcg/">VCG</a></span>
-    <span style="--primary-color: #123456"><a href="group/bepis/">Bepis</a></span>
-</nav>
-`
diff --git a/tap-snapshots/test/snapshot/generateAlbumSidebarGroupBox.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumSidebarGroupBox.js.test.cjs
deleted file mode 100644
index 6502f719..00000000
--- a/tap-snapshots/test/snapshot/generateAlbumSidebarGroupBox.js.test.cjs
+++ /dev/null
@@ -1,31 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateAlbumSidebarGroupBox.js > TAP > generateAlbumSidebarGroupBox (snapshot) > basic behavior, mode: album 1`] = `
-<div class="sidebar collapsible individual-group-sidebar-box">
-    <h1><a href="group/vcg/">VCG</a></h1>
-    Very cool group.
-    <p>Visit on <a class="external-link" href="https://vcg.bandcamp.com/">Bandcamp</a> or <a class="external-link" href="https://youtube.com/@vcg">YouTube</a>.</p>
-    <p class="group-chronology-link">Next: <a href="album/last/">Last</a></p>
-    <p class="group-chronology-link">Previous: <a href="album/first/">First</a></p>
-</div>
-`
-
-exports[`test/snapshot/generateAlbumSidebarGroupBox.js > TAP > generateAlbumSidebarGroupBox (snapshot) > basic behavior, mode: track 1`] = `
-<div class="sidebar collapsible individual-group-sidebar-box">
-    <h1><a href="group/vcg/">VCG</a></h1>
-    <p>Visit on <a class="external-link" href="https://vcg.bandcamp.com/">Bandcamp</a> or <a class="external-link" href="https://youtube.com/@vcg">YouTube</a>.</p>
-</div>
-`
-
-exports[`test/snapshot/generateAlbumSidebarGroupBox.js > TAP > generateAlbumSidebarGroupBox (snapshot) > dateless album in mixed group 1`] = `
-<div class="sidebar collapsible individual-group-sidebar-box">
-    <h1><a href="group/vcg/">VCG</a></h1>
-    Very cool group.
-    <p>Visit on <a class="external-link" href="https://vcg.bandcamp.com/">Bandcamp</a> or <a class="external-link" href="https://youtube.com/@vcg">YouTube</a>.</p>
-</div>
-`
diff --git a/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs b/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs
deleted file mode 100644
index 40a8017d..00000000
--- a/tap-snapshots/test/snapshot/generateAlbumTrackList.js.test.cjs
+++ /dev/null
@@ -1,185 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > basic behavior, default track section 1`] = `
-<ul>
-    <li>(0:20) <a href="track/t1/">Track 1</a></li>
-    <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-    <li>(0:40) <a href="track/t3/">Track 3</a></li>
-    <li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-`
-
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > basic behavior, with descriptions 1`] = `
-<dl class="album-group-list">
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">First section: (~1:00)</span>
-        <template class="content-heading-sticky-title">First section:</template>
-    </dt>
-    <dd>
-        <blockquote><p>Why yes!</p></blockquote>
-        <ul>
-            <li>(0:20) <a href="track/t1/">Track 1</a></li>
-            <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-            <li>(0:40) <a href="track/t3/">Track 3</a></li>
-        </ul>
-    </dd>
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">Second section:</span>
-        <template class="content-heading-sticky-title">Second section:</template>
-    </dt>
-    <dd>
-        <blockquote><p>How <em>contentful,</em> this is.</p></blockquote>
-        <ul><li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li></ul>
-    </dd>
-</dl>
-`
-
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > basic behavior, with track sections 1`] = `
-<dl class="album-group-list">
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">First section: (~1:00)</span>
-        <template class="content-heading-sticky-title">First section:</template>
-    </dt>
-    <dd>
-        <ul>
-            <li>(0:20) <a href="track/t1/">Track 1</a></li>
-            <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-            <li>(0:40) <a href="track/t3/">Track 3</a></li>
-        </ul>
-    </dd>
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">Second section:</span>
-        <template class="content-heading-sticky-title">Second section:</template>
-    </dt>
-    <dd><ul><li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li></ul></dd>
-</dl>
-`
-
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > collapseDurationScope: album 1`] = `
-<dl class="album-group-list">
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">First section: (~1:00)</span>
-        <template class="content-heading-sticky-title">First section:</template>
-    </dt>
-    <dd>
-        <ul>
-            <li>(0:20) <a href="track/t1/">Track 1</a></li>
-            <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-            <li>(0:40) <a href="track/t3/">Track 3</a></li>
-        </ul>
-    </dd>
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">Second section:</span>
-        <template class="content-heading-sticky-title">Second section:</template>
-    </dt>
-    <dd><ul><li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li></ul></dd>
-</dl>
-<ul>
-    <li>(0:20) <a href="track/t1/">Track 1</a></li>
-    <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-    <li>(0:40) <a href="track/t3/">Track 3</a></li>
-    <li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-<ul>
-    <li><a href="track/t2/">Track 2</a></li>
-    <li style="--primary-color: #ea2e83"><a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-`
-
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > collapseDurationScope: never 1`] = `
-<dl class="album-group-list">
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">First section: (~1:00)</span>
-        <template class="content-heading-sticky-title">First section:</template>
-    </dt>
-    <dd>
-        <ul>
-            <li>(0:20) <a href="track/t1/">Track 1</a></li>
-            <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-            <li>(0:40) <a href="track/t3/">Track 3</a></li>
-        </ul>
-    </dd>
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">Second section:</span>
-        <template class="content-heading-sticky-title">Second section:</template>
-    </dt>
-    <dd><ul><li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li></ul></dd>
-</dl>
-<ul>
-    <li>(0:20) <a href="track/t1/">Track 1</a></li>
-    <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-    <li>(0:40) <a href="track/t3/">Track 3</a></li>
-    <li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-<ul>
-    <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-    <li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-`
-
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > collapseDurationScope: section 1`] = `
-<dl class="album-group-list">
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">First section: (~1:00)</span>
-        <template class="content-heading-sticky-title">First section:</template>
-    </dt>
-    <dd>
-        <ul>
-            <li>(0:20) <a href="track/t1/">Track 1</a></li>
-            <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-            <li>(0:40) <a href="track/t3/">Track 3</a></li>
-        </ul>
-    </dd>
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">Second section:</span>
-        <template class="content-heading-sticky-title">Second section:</template>
-    </dt>
-    <dd><ul><li style="--primary-color: #ea2e83"><a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li></ul></dd>
-</dl>
-<ul>
-    <li>(0:20) <a href="track/t1/">Track 1</a></li>
-    <li>[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t2/">Track 2</a></li>
-    <li>(0:40) <a href="track/t3/">Track 3</a></li>
-    <li style="--primary-color: #ea2e83">[mocked: generateAlbumTrackListMissingDuration - slots: {}] <a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-<ul>
-    <li><a href="track/t2/">Track 2</a></li>
-    <li style="--primary-color: #ea2e83"><a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-`
-
-exports[`test/snapshot/generateAlbumTrackList.js > TAP > generateAlbumTrackList (snapshot) > collapseDurationScope: track 1`] = `
-<dl class="album-group-list">
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">First section: (~1:00)</span>
-        <template class="content-heading-sticky-title">First section:</template>
-    </dt>
-    <dd>
-        <ul>
-            <li>(0:20) <a href="track/t1/">Track 1</a></li>
-            <li><a href="track/t2/">Track 2</a></li>
-            <li>(0:40) <a href="track/t3/">Track 3</a></li>
-        </ul>
-    </dd>
-    <dt class="content-heading" tabindex="0">
-        <span class="content-heading-main-title">Second section:</span>
-        <template class="content-heading-sticky-title">Second section:</template>
-    </dt>
-    <dd><ul><li style="--primary-color: #ea2e83"><a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li></ul></dd>
-</dl>
-<ul>
-    <li>(0:20) <a href="track/t1/">Track 1</a></li>
-    <li><a href="track/t2/">Track 2</a></li>
-    <li>(0:40) <a href="track/t3/">Track 3</a></li>
-    <li style="--primary-color: #ea2e83"><a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-<ul>
-    <li><a href="track/t2/">Track 2</a></li>
-    <li style="--primary-color: #ea2e83"><a href="track/t4/">Track 4</a> <span class="by"><span class="chunkwrap">by <span class="contribution nowrap"><a href="artist/apricot/">Apricot</a></span>,</span> <span class="chunkwrap"><span class="contribution nowrap"><a href="artist/peach/">Peach</a></span>,</span> <span class="chunkwrap">and <span class="contribution nowrap"><a href="artist/cerise/">Cerise</a></span></span></span></li>
-</ul>
-`
diff --git a/tap-snapshots/test/snapshot/generateBanner.js.test.cjs b/tap-snapshots/test/snapshot/generateBanner.js.test.cjs
deleted file mode 100644
index 870097c8..00000000
--- a/tap-snapshots/test/snapshot/generateBanner.js.test.cjs
+++ /dev/null
@@ -1,14 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateBanner.js > TAP > generateBanner (snapshot) > basic behavior 1`] = `
-<div id="banner"><img src="media/album-art/cool-album/banner.png" width="800" height="200" alt="Very cool banner art."></div>
-`
-
-exports[`test/snapshot/generateBanner.js > TAP > generateBanner (snapshot) > no dimensions 1`] = `
-<div id="banner"><img src="media/album-art/cool-album/banner.png" width="1100" height="200"></div>
-`
diff --git a/tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs b/tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs
deleted file mode 100644
index 098fe145..00000000
--- a/tap-snapshots/test/snapshot/generateTrackReleaseInfo.js.test.cjs
+++ /dev/null
@@ -1,36 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/generateTrackReleaseInfo.js > TAP > generateTrackReleaseInfo (snapshot) > basic behavior 1`] = `
-<p>
-    By <span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a></span>.
-    <br>
-    Released 11/29/2011.
-    <br>
-    Duration: 0:58.
-</p>
-<p>Listen on <a class="external-link" href="https://soundcloud.com/foo">SoundCloud</a> or <a class="external-link" href="https://youtube.com/watch?v=bar">YouTube</a>.</p>
-`
-
-exports[`test/snapshot/generateTrackReleaseInfo.js > TAP > generateTrackReleaseInfo (snapshot) > cover artist contribs, non-unique 1`] = `
-<p>By <span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a></span>.</p>
-<p>This wiki doesn't have any listening links for <i>Suspicious Track</i>.</p>
-`
-
-exports[`test/snapshot/generateTrackReleaseInfo.js > TAP > generateTrackReleaseInfo (snapshot) > cover artist contribs, unique 1`] = `
-<p>
-    By <span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a></span>.
-    <br>
-    Cover art by <span class="contribution nowrap"><a href="artist/alpaca/">Alpaca</a> (&#x1F525;)</span>.
-</p>
-<p>This wiki doesn't have any listening links for <i>Suspicious Track</i>.</p>
-`
-
-exports[`test/snapshot/generateTrackReleaseInfo.js > TAP > generateTrackReleaseInfo (snapshot) > reduced details 1`] = `
-<p>By <span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a></span>.</p>
-<p>This wiki doesn't have any listening links for <i>Suspicious Track</i>.</p>
-`
diff --git a/tap-snapshots/test/snapshot/image.js.test.cjs b/tap-snapshots/test/snapshot/image.js.test.cjs
deleted file mode 100644
index 283f4352..00000000
--- a/tap-snapshots/test/snapshot/image.js.test.cjs
+++ /dev/null
@@ -1,74 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/image.js > TAP > image (snapshot) > content warnings via tags 1`] = `
-<div class="image-container reveal">
-    <div class="image-outer-area">
-        <div class="image-inner-area">
-            <img class="image" src="media/album-art/beyond-canon/cover.png">
-            <span class="reveal-text-container">
-                <span class="reveal-text">
-                    <img class="reveal-symbol" src="static/misc/warning.svg">
-                    <br>
-                    <span class="reveal-warnings">too cool for school</span>
-                    <br>
-                    <span class="reveal-interaction">click to show</span>
-                </span>
-            </span>
-        </div>
-    </div>
-</div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > dimensions 1`] = `
-<div class="image-container"><div class="image-outer-area"><div class="image-inner-area"><img class="image" width="600" height="400" src="foobar"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > dimensions with square 1`] = `
-<div class="image-container square"><div class="image-outer-area square-content"><div class="image-inner-area"><img class="image" width="600" height="400" src="foobar"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > lazy with square 1`] = `
-<noscript><div class="image-container square"><div class="image-outer-area square-content"><div class="image-inner-area"><img class="image" src="foobar"></div></div></div></noscript>
-<div class="image-container square js-hide"><div class="image-outer-area square-content"><div class="image-inner-area"><img class="image lazy" data-original="foobar"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > link with file size 1`] = `
-<div class="image-container has-link"><div class="image-outer-area"><a class="image-link" href="media/album-art/pingas/cover.png"><div class="image-inner-area"><img class="image" src="media/album-art/pingas/cover.png"></div></a></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > missing image path 1`] = `
-<div class="image-container placeholder-image"><div class="image-outer-area"><div class="image-inner-area"><div class="image-text-area">(This image file is missing)</div></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > missing image path w/ missingSourceContent 1`] = `
-<div class="image-container placeholder-image"><div class="image-outer-area"><div class="image-inner-area"><div class="image-text-area">Cover's missing, whoops</div></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > source missing 1`] = `
-<div class="image-container placeholder-image"><div class="image-outer-area"><div class="image-inner-area"><div class="image-text-area">Example of missing source message.</div></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > source via path 1`] = `
-<div class="image-container"><div class="image-outer-area"><div class="image-inner-area"><img class="image" src="media/album-art/beyond-canon/cover.png"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > source via src 1`] = `
-<div class="image-container"><div class="image-outer-area"><div class="image-inner-area"><img class="image" src="https://example.com/bananas.gif"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > square 1`] = `
-<div class="image-container square"><div class="image-outer-area square-content"><div class="image-inner-area"><img class="image" src="foobar"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > thumb requested but source is gif 1`] = `
-<div class="image-container"><div class="image-outer-area"><div class="image-inner-area"><img class="image" src="media/flash-art/5426.gif"></div></div></div>
-`
-
-exports[`test/snapshot/image.js > TAP > image (snapshot) > thumbnail details 1`] = `
-<div class="image-container"><div class="image-outer-area"><div class="image-inner-area"><img class="image" data-original-length="1200" data-thumbs="voluminous:1200 middling:900 petite:20" src="thumb/album-art/beyond-canon/cover.voluminous.jpg"></div></div></div>
-`
diff --git a/tap-snapshots/test/snapshot/linkArtist.js.test.cjs b/tap-snapshots/test/snapshot/linkArtist.js.test.cjs
deleted file mode 100644
index ae3677c3..00000000
--- a/tap-snapshots/test/snapshot/linkArtist.js.test.cjs
+++ /dev/null
@@ -1,14 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/linkArtist.js > TAP > linkArtist (snapshot) > basic behavior 1`] = `
-<a href="artist/toby-fox/">Toby Fox</a>
-`
-
-exports[`test/snapshot/linkArtist.js > TAP > linkArtist (snapshot) > prefer short name 1`] = `
-<span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/55gore/">55gore</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">ICCTTCMDMIROTMCWMWFTPFTDDOTARHPOESWGBTWEATFCWSEBTSSFOFG</span></span></span>
-`
diff --git a/tap-snapshots/test/snapshot/linkContribution.js.test.cjs b/tap-snapshots/test/snapshot/linkContribution.js.test.cjs
deleted file mode 100644
index 0c44a85c..00000000
--- a/tap-snapshots/test/snapshot/linkContribution.js.test.cjs
+++ /dev/null
@@ -1,118 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/linkContribution.js > TAP > linkContribution (snapshot) > loads of links 1`] = `
-<span class="contribution nowrap"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/lorem-ipsum-lover/">Lorem Ipsum Lover</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://loremipsum.io">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/generator/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/#meaning">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/#usage-and-examples">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/#controversy">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/#when-to-use-lorem-ipsum">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/#lorem-ipsum-all-the-things">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span>
-                <a class="external-link" href="https://loremipsum.io/#original-source">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">loremipsum.io</span>
-                </a>
-                <span class="external-platform">Other</span></span></span></span></span>
-`
-
-exports[`test/snapshot/linkContribution.js > TAP > linkContribution (snapshot) > no accents 1`] = `
-<span class="contribution nowrap"><a href="artist/clark-powell/">Clark Powell</a></span>
-<span class="contribution nowrap"><a href="artist/the-big-baddies/">Grounder &amp; Scratch</a></span>
-<span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a></span>
-`
-
-exports[`test/snapshot/linkContribution.js > TAP > linkContribution (snapshot) > no preventWrapping 1`] = `
-<span class="contribution"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/clark-powell/">Clark Powell</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://soundcloud.com/plazmataz">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-soundcloud"></use></svg></span>
-                    <span class="external-handle">plazmataz</span>
-                </a>
-                <span class="external-platform">SoundCloud</span></span></span></span></span>
-<span class="contribution"><a href="artist/the-big-baddies/">Grounder &amp; Scratch</a> (Snooping)</span>
-<span class="contribution"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/toby-fox/">Toby Fox</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://tobyfox.bandcamp.com/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-bandcamp"></use></svg></span>
-                    <span class="external-handle">tobyfox</span>
-                </a>
-                <span class="external-platform">Bandcamp</span>
-                <a class="external-link" href="https://toby.fox/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">toby.fox</span>
-                </a>
-                <span class="external-platform">Other</span></span></span></span> (Arrangement)</span>
-`
-
-exports[`test/snapshot/linkContribution.js > TAP > linkContribution (snapshot) > only showAnnotation 1`] = `
-<span class="contribution nowrap"><a href="artist/clark-powell/">Clark Powell</a></span>
-<span class="contribution nowrap"><a href="artist/the-big-baddies/">Grounder &amp; Scratch</a> (Snooping)</span>
-<span class="contribution nowrap"><a href="artist/toby-fox/">Toby Fox</a> (Arrangement)</span>
-`
-
-exports[`test/snapshot/linkContribution.js > TAP > linkContribution (snapshot) > only showExternalLinks 1`] = `
-<span class="contribution nowrap"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/clark-powell/">Clark Powell</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://soundcloud.com/plazmataz">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-soundcloud"></use></svg></span>
-                    <span class="external-handle">plazmataz</span>
-                </a>
-                <span class="external-platform">SoundCloud</span></span></span></span></span>
-<span class="contribution nowrap"><a href="artist/the-big-baddies/">Grounder &amp; Scratch</a></span>
-<span class="contribution nowrap"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/toby-fox/">Toby Fox</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://tobyfox.bandcamp.com/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-bandcamp"></use></svg></span>
-                    <span class="external-handle">tobyfox</span>
-                </a>
-                <span class="external-platform">Bandcamp</span>
-                <a class="external-link" href="https://toby.fox/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">toby.fox</span>
-                </a>
-                <span class="external-platform">Other</span></span></span></span></span>
-`
-
-exports[`test/snapshot/linkContribution.js > TAP > linkContribution (snapshot) > showAnnotation & showExternalLinks 1`] = `
-<span class="contribution nowrap"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/clark-powell/">Clark Powell</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://soundcloud.com/plazmataz">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-soundcloud"></use></svg></span>
-                    <span class="external-handle">plazmataz</span>
-                </a>
-                <span class="external-platform">SoundCloud</span></span></span></span></span>
-<span class="contribution nowrap"><a href="artist/the-big-baddies/">Grounder &amp; Scratch</a> (Snooping)</span>
-<span class="contribution nowrap"><span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="artist/toby-fox/">Toby Fox</a></span><span class="tooltip contribution-tooltip"><span class="tooltip-content"><a class="external-link" href="https://tobyfox.bandcamp.com/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-bandcamp"></use></svg></span>
-                    <span class="external-handle">tobyfox</span>
-                </a>
-                <span class="external-platform">Bandcamp</span>
-                <a class="external-link" href="https://toby.fox/">
-                    <span class="external-icon"><svg><use href="static/misc/icons.svg#icon-globe"></use></svg></span>
-                    <span class="external-handle">toby.fox</span>
-                </a>
-                <span class="external-platform">Other</span></span></span></span> (Arrangement)</span>
-`
diff --git a/tap-snapshots/test/snapshot/linkExternal.js.test.cjs b/tap-snapshots/test/snapshot/linkExternal.js.test.cjs
deleted file mode 100644
index 03192e82..00000000
--- a/tap-snapshots/test/snapshot/linkExternal.js.test.cjs
+++ /dev/null
@@ -1,228 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: album, style: handle 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: album, style: platform 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: albumMultipleTracks, style: handle 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube (full album)</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube (full album)</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: albumMultipleTracks, style: platform 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube (full album)</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube (full album)</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: albumNoTracks, style: handle 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: albumNoTracks, style: platform 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: albumOneTrack, style: handle 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: albumOneTrack, style: platform 1`] = `
-<a class="external-link" href="https://youtu.be/abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/watch?v=abc">YouTube</a>
-<a class="external-link" href="https://youtube.com/Playlist?list=kweh">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: flash, style: handle 1`] = `
-<a class="external-link" href="https://www.bgreco.net/hsflash/002238.html">bgreco.net (high quality audio)</a>
-<a class="external-link" href="https://homestuck.com/story/1234">Homestuck (page 1234)</a>
-<a class="external-link" href="https://homestuck.com/story/pony">Homestuck (secret page)</a>
-<a class="external-link" href="https://www.youtube.com/watch?v=wKgOp3Kg2wI">YouTube (on any device)</a>
-<a class="external-link" href="https://youtu.be/IOcvkkklWmY">YouTube (on any device)</a>
-<a class="external-link" href="https://some.external.site/foo/bar/">some.external.site</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: flash, style: platform 1`] = `
-<a class="external-link" href="https://www.bgreco.net/hsflash/002238.html">bgreco.net (high quality audio)</a>
-<a class="external-link" href="https://homestuck.com/story/1234">Homestuck (page 1234)</a>
-<a class="external-link" href="https://homestuck.com/story/pony">Homestuck (secret page)</a>
-<a class="external-link" href="https://www.youtube.com/watch?v=wKgOp3Kg2wI">YouTube (on any device)</a>
-<a class="external-link" href="https://youtu.be/IOcvkkklWmY">YouTube (on any device)</a>
-<a class="external-link" href="https://some.external.site/foo/bar/">some.external.site</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: generic, style: handle 1`] = `
-<a class="external-link" href="https://music.apple.com/us/artist/system-of-a-down/462715">Apple Music</a>
-<a class="external-link" href="https://www.artstation.com/eevaningtea">eevaningtea</a>
-<a class="external-link" href="https://witnesstheabsurd.artstation.com/">witnesstheabsurd</a>
-<a class="external-link" href="https://music.solatrus.com/">music.solatrus.com</a>
-<a class="external-link" href="https://homestuck.bandcamp.com/">homestuck</a>
-<a class="external-link" href="https://bsky.app/profile/jacobtheloofah.bsky.social">jacobtheloofah</a>
-<a class="external-link" href="https://aliceflare.carrd.co">aliceflare</a>
-<a class="external-link" href="https://bigchaslappa.carrd.co/">bigchaslappa</a>
-<a class="external-link" href="https://cohost.org/cosmoptera">cosmoptera</a>
-<a class="external-link" href="https://music.deconreconstruction.com/albums/catch-322">MUSIC@DCRC</a>
-<a class="external-link" href="https://music.deconreconstruction.com/albums/catch-322?track=arcjecs-theme">MUSIC@DCRC</a>
-<a class="external-link" href="https://www.deconreconstruction.com/">Deconreconstruction</a>
-<a class="external-link" href="https://culdhira.deviantart.com">culdhira</a>
-<a class="external-link" href="https://www.deviantart.com/chesswanderlust-sama">chesswanderlust-sama</a>
-<a class="external-link" href="https://www.deviantart.com/shilloshilloh/art/Homestuck-Jake-English-268874606">DeviantArt</a>
-<a class="external-link" href="https://www.facebook.com/DoomedCloud/">DoomedCloud</a>
-<a class="external-link" href="https://www.facebook.com/pages/WoodenToaster/280642235307371">WoodenToaster</a>
-<a class="external-link" href="https://www.facebook.com/Svixy/posts/400018786702633">Facebook</a>
-<a class="external-link" href="https://mspaintadventures.fandom.com/wiki/Draconian_Dignitary">MSPA Wiki (Draconian Dignitary)</a>
-<a class="external-link" href="https://mspaintadventures.fandom.com/wiki/">MSPA Wiki</a>
-<a class="external-link" href="https://mspaintadventures.fandom.com/">MSPA Wiki</a>
-<a class="external-link" href="https://community.fandom.com/">Fandom</a>
-<a class="external-link" href="https://community.fandom.com/wiki/">Fandom</a>
-<a class="external-link" href="https://community.fandom.com/wiki/Community_Central">Fandom</a>
-<a class="external-link" href="https://gamebanana.com/members/2028092">GameBanana</a>
-<a class="external-link" href="https://gamebanana.com/mods/459476">GameBanana</a>
-<a class="external-link" href="https://homestuck.com/">Homestuck</a>
-<a class="external-link" href="https://hsmusic.wiki/media/misc/archive/Firefly%20Cloud%20Remix.mp3">HSMusic (wiki archive)</a>
-<a class="external-link" href="https://hsmusic.wiki/feedback/">HSMusic</a>
-<a class="external-link" href="https://archive.org/details/a-life-well-lived">Internet Archive</a>
-<a class="external-link" href="https://archive.org/details/VastError_Volume1/11+Renaissance.mp3">Internet Archive</a>
-<a class="external-link" href="https://instagram.com/bass.and.noises">bass.and.noises</a>
-<a class="external-link" href="https://www.instagram.com/levc_egm/">levc_egm</a>
-<a class="external-link" href="https://tuyoki.itch.io/">tuyoki</a>
-<a class="external-link" href="https://itch.io/profile/bravelittletoreador">bravelittletoreador</a>
-<a class="external-link" href="https://ko-fi.com/gnaach">gnaach</a>
-<a class="external-link" href="https://linktr.ee/bbpanzu">bbpanzu</a>
-<a class="external-link" href="https://types.pl/">types.pl</a>
-<a class="external-link" href="https://canwc.mspfa.com/">MSPFA</a>
-<a class="external-link" href="https://mspfa.com/?s=12003&p=1045">MSPFA</a>
-<a class="external-link" href="https://mspfa.com/user/?u=103334508819793669241">MSPFA</a>
-<a class="external-link" href="https://wodaro.neocities.org">wodaro.neocities.org</a>
-<a class="external-link" href="https://neomints.neocities.org/">neomints.neocities.org</a>
-<a class="external-link" href="https://buzinkai.newgrounds.com/">buzinkai</a>
-<a class="external-link" href="https://www.newgrounds.com/audio/listen/1256058">Newgrounds</a>
-<a class="external-link" href="https://www.patreon.com/CecilyRenns">CecilyRenns</a>
-<a class="external-link" href="https://www.poetryfoundation.org/poets/christina-rossetti">Poetry Foundation</a>
-<a class="external-link" href="https://www.poetryfoundation.org/poems/45000/remember-56d224509b7ae">Poetry Foundation</a>
-<a class="external-link" href="https://soundcloud.com/plazmataz">plazmataz</a>
-<a class="external-link" href="https://soundcloud.com/worthikids/1-i-accidentally-broke-my">SoundCloud</a>
-<a class="external-link" href="https://open.spotify.com/artist/63SNNpNOicDzG3LY82G4q3">Spotify</a>
-<a class="external-link" href="https://open.spotify.com/album/0iHvPD8rM3hQa0qeVtPQ3t">Spotify</a>
-<a class="external-link" href="https://open.spotify.com/track/6YEGQH32aAXb9vQQbBrPlw">Spotify</a>
-<a class="external-link" href="https://www.tiktok.com/@richaadeb">richaadeb</a>
-<a class="external-link" href="https://toyhou.se/ghastaboo">ghastaboo</a>
-<a class="external-link" href="https://aeritus.tumblr.com/">aeritus</a>
-<a class="external-link" href="https://vol5anthology.tumblr.com/post/159528808107/hey-everyone-its-413-and-that-means-we-have">vol5anthology</a>
-<a class="external-link" href="https://www.tumblr.com/electricwestern">electricwestern</a>
-<a class="external-link" href="https://www.tumblr.com/spellmynamewithabang/142767566733/happy-413-this-is-the-first-time-anyones-heard">Tumblr</a>
-<a class="external-link" href="https://www.twitch.tv/ajhebard">ajhebard</a>
-<a class="external-link" href="https://www.twitch.tv/vargskelethor/">vargskelethor/</a>
-<a class="external-link" href="https://twitter.com/awkwarddoesart">awkwarddoesart</a>
-<a class="external-link" href="https://twitter.com/purenonsens/">purenonsens</a>
-<a class="external-link" href="https://twitter.com/circlejourney/status/1202265927183548416">Twitter</a>
-<a class="external-link" href="https://web.archive.org/web/20120405160556/https://homestuck.bandcamp.com/album/colours-and-mayhem-universe-a">Wayback Machine</a>
-<a class="external-link" href="https://web.archive.org/web/20160807111207/http://griffinspacejam.com:80/">Wayback Machine</a>
-<a class="external-link" href="https://en.wikipedia.org/wiki/Haydn_Quartet_(vocal_ensemble)">Wikipedia</a>
-<a class="external-link" href="https://youtube.com/@bani-chan8949">bani-chan8949</a>
-<a class="external-link" href="https://www.youtube.com/@Razzie16">Razzie16</a>
-<a class="external-link" href="https://www.youtube.com/channel/UCQXfvlKkpbOqEz4BepHqK7g">YouTube</a>
-<a class="external-link" href="https://www.youtube.com/watch?v=6ekVnZm29kw">YouTube</a>
-<a class="external-link" href="https://youtu.be/WBkC038wSio">YouTube</a>
-<a class="external-link" href="https://www.youtube.com/playlist?list=PLy5UGIMKOXpONMExgI7lVYFwQa54QFp_H">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > context: generic, style: platform 1`] = `
-<a class="external-link" href="https://music.apple.com/us/artist/system-of-a-down/462715">Apple Music</a>
-<a class="external-link" href="https://www.artstation.com/eevaningtea">ArtStation</a>
-<a class="external-link" href="https://witnesstheabsurd.artstation.com/">ArtStation</a>
-<a class="external-link" href="https://music.solatrus.com/">Bandcamp (music.solatrus.com)</a>
-<a class="external-link" href="https://homestuck.bandcamp.com/">Bandcamp</a>
-<a class="external-link" href="https://bsky.app/profile/jacobtheloofah.bsky.social">Bluesky</a>
-<a class="external-link" href="https://aliceflare.carrd.co">Carrd</a>
-<a class="external-link" href="https://bigchaslappa.carrd.co/">Carrd</a>
-<a class="external-link" href="https://cohost.org/cosmoptera">Cohost</a>
-<a class="external-link" href="https://music.deconreconstruction.com/albums/catch-322">MUSIC@DCRC</a>
-<a class="external-link" href="https://music.deconreconstruction.com/albums/catch-322?track=arcjecs-theme">MUSIC@DCRC</a>
-<a class="external-link" href="https://www.deconreconstruction.com/">Deconreconstruction</a>
-<a class="external-link" href="https://culdhira.deviantart.com">DeviantArt</a>
-<a class="external-link" href="https://www.deviantart.com/chesswanderlust-sama">DeviantArt</a>
-<a class="external-link" href="https://www.deviantart.com/shilloshilloh/art/Homestuck-Jake-English-268874606">DeviantArt</a>
-<a class="external-link" href="https://www.facebook.com/DoomedCloud/">Facebook</a>
-<a class="external-link" href="https://www.facebook.com/pages/WoodenToaster/280642235307371">Facebook</a>
-<a class="external-link" href="https://www.facebook.com/Svixy/posts/400018786702633">Facebook</a>
-<a class="external-link" href="https://mspaintadventures.fandom.com/wiki/Draconian_Dignitary">MSPA Wiki (Draconian Dignitary)</a>
-<a class="external-link" href="https://mspaintadventures.fandom.com/wiki/">MSPA Wiki</a>
-<a class="external-link" href="https://mspaintadventures.fandom.com/">MSPA Wiki</a>
-<a class="external-link" href="https://community.fandom.com/">Fandom</a>
-<a class="external-link" href="https://community.fandom.com/wiki/">Fandom</a>
-<a class="external-link" href="https://community.fandom.com/wiki/Community_Central">Fandom</a>
-<a class="external-link" href="https://gamebanana.com/members/2028092">GameBanana</a>
-<a class="external-link" href="https://gamebanana.com/mods/459476">GameBanana</a>
-<a class="external-link" href="https://homestuck.com/">Homestuck</a>
-<a class="external-link" href="https://hsmusic.wiki/media/misc/archive/Firefly%20Cloud%20Remix.mp3">HSMusic (wiki archive)</a>
-<a class="external-link" href="https://hsmusic.wiki/feedback/">HSMusic</a>
-<a class="external-link" href="https://archive.org/details/a-life-well-lived">Internet Archive</a>
-<a class="external-link" href="https://archive.org/details/VastError_Volume1/11+Renaissance.mp3">Internet Archive</a>
-<a class="external-link" href="https://instagram.com/bass.and.noises">Instagram</a>
-<a class="external-link" href="https://www.instagram.com/levc_egm/">Instagram</a>
-<a class="external-link" href="https://tuyoki.itch.io/">itch.io</a>
-<a class="external-link" href="https://itch.io/profile/bravelittletoreador">itch.io</a>
-<a class="external-link" href="https://ko-fi.com/gnaach">Ko-fi</a>
-<a class="external-link" href="https://linktr.ee/bbpanzu">Linktree</a>
-<a class="external-link" href="https://types.pl/">Mastodon (types.pl)</a>
-<a class="external-link" href="https://canwc.mspfa.com/">MSPFA</a>
-<a class="external-link" href="https://mspfa.com/?s=12003&p=1045">MSPFA</a>
-<a class="external-link" href="https://mspfa.com/user/?u=103334508819793669241">MSPFA</a>
-<a class="external-link" href="https://wodaro.neocities.org">Neocities</a>
-<a class="external-link" href="https://neomints.neocities.org/">Neocities</a>
-<a class="external-link" href="https://buzinkai.newgrounds.com/">Newgrounds</a>
-<a class="external-link" href="https://www.newgrounds.com/audio/listen/1256058">Newgrounds</a>
-<a class="external-link" href="https://www.patreon.com/CecilyRenns">Patreon</a>
-<a class="external-link" href="https://www.poetryfoundation.org/poets/christina-rossetti">Poetry Foundation</a>
-<a class="external-link" href="https://www.poetryfoundation.org/poems/45000/remember-56d224509b7ae">Poetry Foundation</a>
-<a class="external-link" href="https://soundcloud.com/plazmataz">SoundCloud</a>
-<a class="external-link" href="https://soundcloud.com/worthikids/1-i-accidentally-broke-my">SoundCloud</a>
-<a class="external-link" href="https://open.spotify.com/artist/63SNNpNOicDzG3LY82G4q3">Spotify</a>
-<a class="external-link" href="https://open.spotify.com/album/0iHvPD8rM3hQa0qeVtPQ3t">Spotify</a>
-<a class="external-link" href="https://open.spotify.com/track/6YEGQH32aAXb9vQQbBrPlw">Spotify</a>
-<a class="external-link" href="https://www.tiktok.com/@richaadeb">TikTok</a>
-<a class="external-link" href="https://toyhou.se/ghastaboo">Toyhouse</a>
-<a class="external-link" href="https://aeritus.tumblr.com/">Tumblr</a>
-<a class="external-link" href="https://vol5anthology.tumblr.com/post/159528808107/hey-everyone-its-413-and-that-means-we-have">Tumblr</a>
-<a class="external-link" href="https://www.tumblr.com/electricwestern">Tumblr</a>
-<a class="external-link" href="https://www.tumblr.com/spellmynamewithabang/142767566733/happy-413-this-is-the-first-time-anyones-heard">Tumblr</a>
-<a class="external-link" href="https://www.twitch.tv/ajhebard">Twitch</a>
-<a class="external-link" href="https://www.twitch.tv/vargskelethor/">Twitch</a>
-<a class="external-link" href="https://twitter.com/awkwarddoesart">Twitter</a>
-<a class="external-link" href="https://twitter.com/purenonsens/">Twitter</a>
-<a class="external-link" href="https://twitter.com/circlejourney/status/1202265927183548416">Twitter</a>
-<a class="external-link" href="https://web.archive.org/web/20120405160556/https://homestuck.bandcamp.com/album/colours-and-mayhem-universe-a">Wayback Machine</a>
-<a class="external-link" href="https://web.archive.org/web/20160807111207/http://griffinspacejam.com:80/">Wayback Machine</a>
-<a class="external-link" href="https://en.wikipedia.org/wiki/Haydn_Quartet_(vocal_ensemble)">Wikipedia</a>
-<a class="external-link" href="https://youtube.com/@bani-chan8949">YouTube</a>
-<a class="external-link" href="https://www.youtube.com/@Razzie16">YouTube</a>
-<a class="external-link" href="https://www.youtube.com/channel/UCQXfvlKkpbOqEz4BepHqK7g">YouTube</a>
-<a class="external-link" href="https://www.youtube.com/watch?v=6ekVnZm29kw">YouTube</a>
-<a class="external-link" href="https://youtu.be/WBkC038wSio">YouTube</a>
-<a class="external-link" href="https://www.youtube.com/playlist?list=PLy5UGIMKOXpONMExgI7lVYFwQa54QFp_H">YouTube</a>
-`
-
-exports[`test/snapshot/linkExternal.js > TAP > linkExternal (snapshot) > unknown domain (arbitrary world wide web path) 1`] = `
-<a class="external-link" href="https://snoo.ping.as/usual/i/see/">snoo.ping.as</a>
-`
diff --git a/tap-snapshots/test/snapshot/linkTemplate.js.test.cjs b/tap-snapshots/test/snapshot/linkTemplate.js.test.cjs
deleted file mode 100644
index b5acde91..00000000
--- a/tap-snapshots/test/snapshot/linkTemplate.js.test.cjs
+++ /dev/null
@@ -1,32 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/linkTemplate.js > TAP > linkTemplate (snapshot) > fill many slots 1`] = `
-<a class="dog" id="cat1" href="https://hsmusic.wiki/media/cool%20file.pdf#fooey">My Cool Link</a>
-`
-
-exports[`test/snapshot/linkTemplate.js > TAP > linkTemplate (snapshot) > fill path slot & provide appendIndexHTML 1`] = `
-<a href="/c*lzone/myCoolPath/ham/pineapple/tomato/index.html">delish</a>
-`
-
-exports[`test/snapshot/linkTemplate.js > TAP > linkTemplate (snapshot) > link in content 1`] = `
-<a href="#the-more-ye-know">
-    Oh geez oh heck
-    There's a link in here!!
-    But here's <b>a normal tag.</b>
-    <div>Gotta keep them normal tags.</div>
-    <div>But not... NESTED LINKS, OOO.</div>
-</a>
-`
-
-exports[`test/snapshot/linkTemplate.js > TAP > linkTemplate (snapshot) > missing content 1`] = `
-<a href="banana">(Missing link content)</a>
-`
-
-exports[`test/snapshot/linkTemplate.js > TAP > linkTemplate (snapshot) > special characters in path argument 1`] = `
-<a href="media/album-additional/homestuck-vol-1/Showtime%20(Piano%20Refrain)%20-%20%23xXxAwesomeSheetMusick%3FrxXx%23.pdf">Damn, that's some good sheet music</a>
-`
diff --git a/tap-snapshots/test/snapshot/linkThing.js.test.cjs b/tap-snapshots/test/snapshot/linkThing.js.test.cjs
deleted file mode 100644
index 7dd8b003..00000000
--- a/tap-snapshots/test/snapshot/linkThing.js.test.cjs
+++ /dev/null
@@ -1,45 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/linkThing.js > TAP > linkThing (snapshot) > basic behavior 1`] = `
-<a style="--primary-color: #abcdef" href="track/foo/">Cool track!</a>
-`
-
-exports[`test/snapshot/linkThing.js > TAP > linkThing (snapshot) > color 1`] = `
-<a href="track/showtime-piano-refrain/">Showtime (Piano Refrain)</a>
-<a style="--primary-color: #38f43d" href="track/showtime-piano-refrain/">Showtime (Piano Refrain)</a>
-<a style="--primary-color: #aaccff" href="track/showtime-piano-refrain/">Showtime (Piano Refrain)</a>
-<span style="--primary-color: #aaccff" class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="track/showtime-piano-refrain/">Showtime (Piano Refrain)</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">Showtime (Piano Refrain)</span></span></span>
-`
-
-exports[`test/snapshot/linkThing.js > TAP > linkThing (snapshot) > nested links in content stripped 1`] = `
-<a href="foo/"><b>Oooo! Very spooky.</b></a>
-`
-
-exports[`test/snapshot/linkThing.js > TAP > linkThing (snapshot) > preferShortName 1`] = `
-<span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="tag/five-oceanfalls/">Five</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">Five (Oceanfalls)</span></span></span>
-`
-
-exports[`test/snapshot/linkThing.js > TAP > linkThing (snapshot) > tags in name escaped 1`] = `
-<a href="track/foo/">&lt;a href=&quot;SNOOPING&quot;&gt;AS USUAL&lt;/a&gt; I SEE</a>
-<a href="track/bar/">&lt;b&gt;boldface&lt;/b&gt;</a>
-<a href="album/exile/">&gt;Exile&lt;</a>
-<a href="track/heart/">&lt;3</a>
-`
-
-exports[`test/snapshot/linkThing.js > TAP > linkThing (snapshot) > tooltip & content 1`] = `
-<a href="album/beyond-canon/">Beyond Canon</a>
-<a title="Beyond Canon" href="album/beyond-canon/">Beyond Canon</a>
-<a title="Beyond Canon" href="album/beyond-canon/">Next</a>
-<a href="album/beyond-canon/">Beyond Canon</a>
-<span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="album/beyond-canon/">BC</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">Beyond Canon</span></span></span>
-<span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="album/beyond-canon/">Next</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">Beyond Canon</span></span></span>
-<a href="album/beyond-canon/">Next</a>
-<span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="album/beyond-canon/">Beyond Canon</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">Beyond Canon</span></span></span>
-<span class="text-with-tooltip"><span class="hoverable"><a class="text-with-tooltip-interaction-cue" href="album/beyond-canon/">Next</a></span><span class="tooltip thing-name-tooltip"><span class="tooltip-content">Beyond Canon</span></span></span>
-<a href="album/beyond-canon/">Banana</a>
-`
diff --git a/tap-snapshots/test/snapshot/transformContent.js.test.cjs b/tap-snapshots/test/snapshot/transformContent.js.test.cjs
deleted file mode 100644
index ac23a1bf..00000000
--- a/tap-snapshots/test/snapshot/transformContent.js.test.cjs
+++ /dev/null
@@ -1,142 +0,0 @@
-/* IMPORTANT
- * This snapshot file is auto-generated, but designed for humans.
- * It should be checked into source control and tracked carefully.
- * Re-generate by setting TAP_SNAPSHOT=1 and running tests.
- * Make sure to inspect the output below.  Do not ignore changes!
- */
-'use strict'
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > absorb punctuation 1`] = `
-<p>Don&#39;t you think this is an <a class="external-link from-content indicate-external" href="https://github.com/hsmusic/hsmusic-wiki/pull/567" title="github.com (opens in new tab)" target="_blank">interesting pull request<span class="normal-content">,</span></a> Steve?</p>
-<p>Aren&#39;t you <a class="external-link from-content indicate-external" href="https://github.com/hsmusic/hsmusic-wiki/pull/567" title="github.com (opens in new tab)" target="_blank">interested<span class="normal-content">...</span></a> in <a class="external-link from-content indicate-external" href="https://github.com/hsmusic/hsmusic-wiki/pull/567" title="github.com (opens in new tab)" target="_blank">checking it out<span class="normal-content">?!!</span></a></p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > basic markdown 1`] = `
-<p>Hello <em>world!</em> This is <strong>SO COOL.</strong></p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > dates 1`] = `
-<p><time datetime="Thu, 13 Apr 2023 00:00:00 GMT">4/12/2023</time> Yep!</p>
-<p>Very nice: <time datetime="Fri, 25 Oct 2413 03:00:00 GMT">10/25/2413</time></p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > emails 1`] = `
-<p>Email cute dogs to qznebula@protonmail.com please.</p>
-<p>Just kidding... <a class="external-link from-content indicate-external" href="mailto:qznebula@protonmail.com" title="External (opens in new tab)" target="_blank">unless?</a></p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > escape end of tag 1`] = `
-<p>My favorite album is <a style="--primary-color: #123456" href="to-localized.album/cool-album">[Tactical Omission]</a>.</p>
-<p>Your favorite album is <a style="--primary-color: #123456" href="to-localized.album/cool-album">[Tactical Wha-Huh-Now</a>].</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > escape entire tag 1`] = `
-<p>[[album:cool-album|spooky]] <a style="--primary-color: #123456" href="to-localized.album/cool-album">scary</a></p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > escape markdown 1`] = `
-<p>What will it be, <em>ye fool?</em> *arr*</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > hanging indent list 1`] = `
-<p>Hello!</p>
-<ul>
-<li><p>I am a list item and I
-go on and on and on
-and on and on and on.</p>
-</li>
-<li><p>I am another list item.
-Yeah.</p>
-</li>
-</ul>
-<p>In-between!</p>
-<ul>
-<li>Spooky,
-spooky, I say!</li>
-<li>Following list item.
-No empty line around me.</li>
-<li>Very cool.
-So, so cool.</li>
-</ul>
-<p>Goodbye!</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > indent on a directly following line 1`] = `
-<div>
-    <span>Wow!</span>
-</div>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > indent on an indierctly following line 1`] = `
-<p>Some text.</p>
-<p>Yes, some more text.</p>
-<pre><code>I am hax0rz!!
-All yor base r blong 2 us.
-</code></pre>
-<p>Aye.</p>
-<p>Aye aye aye.</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > inline images 1`] = `
-<p><img src="snooping.png"> as USUAL...</p>
-<p>What do you know? <img src="cowabunga.png" width="24" height="32"></p>
-<p><a style="--primary-color: #123456" href="to-localized.album/cool-album">I'm on the left.</a><img src="im-on-the-right.jpg"></p>
-<p><img src="im-on-the-left.jpg"><a style="--primary-color: #123456" href="to-localized.album/cool-album">I'm on the right.</a></p>
-<p>Media time! <img src="to-media.path/misc/interesting.png"> Oh yeah!</p>
-<p><img src="must.png"><img src="stick.png"><img src="together.png"></p>
-<p>And... all done! <img src="end-of-source.png"></p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > links to a thing 1`] = `
-<p>This is <a style="--primary-color: #123456" href="to-localized.album/cool-album">my favorite album</a>.</p>
-<p>That&#39;s right, <a style="--primary-color: #123456" href="to-localized.album/cool-album">Cool Album</a>!</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > lyrics - basic line breaks 1`] = `
-<p>Hey, ho<br>
-And away we go<br>
-Truly, music</p>
-<p>(Oh yeah)<br>
-(That&#39;s right)</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > lyrics - line breaks around tags 1`] = `
-<p>The date be <time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-I say, the date be <time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-<time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-<time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-(Aye!)</p>
-<p><time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-<time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-<time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br></p>
-<p><time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time><br>
-<time datetime="Tue, 13 Apr 2004 03:00:00 GMT">4/13/2004</time>, and don&#39;t ye forget it</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > lyrics - repeated and edge line breaks 1`] = `
-<p>Well, you know<br>
-How it goes</p>
-<p>Yessiree</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > non-inline image #1 1`] = `
-<div class="content-image-container">[mocked: image - slots: { src: 'spark.png', link: true, thumb: 'large', attributes: [ { class: 'content-image' }, undefined ] }]</div>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > non-inline image #2 1`] = `
-<p>Rad.</p>
-<div class="content-image-container">[mocked: image - slots: { src: 'spark.png', link: true, thumb: 'large', attributes: [ { class: 'content-image' }, undefined ] }]</div>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > non-inline image #3 1`] = `
-<div class="content-image-container">[mocked: image - slots: { src: 'spark.png', link: true, thumb: 'large', attributes: [ { class: 'content-image' }, undefined ] }]</div>
-<p>Baller.</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > super basic string 1`] = `
-<p>Neat listing: Albums - by Date</p>
-`
-
-exports[`test/snapshot/transformContent.js > TAP > transformContent (snapshot) > two text paragraphs 1`] = `
-<p>Hello, world!</p>
-<p>Wow, this is very cool.</p>
-`
diff --git a/test/snapshot/generateAlbumBanner.js b/test/snapshot/generateAlbumBanner.js
deleted file mode 100644
index 8e63308f..00000000
--- a/test/snapshot/generateAlbumBanner.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateAlbumBanner (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  evaluate.snapshot('basic behavior', {
-    name: 'generateAlbumBanner',
-    args: [{
-      directory: 'cool-album',
-      hasBannerArt: true,
-      bannerDimensions: [800, 200],
-      bannerFileExtension: 'png',
-    }],
-  });
-
-  evaluate.snapshot('no dimensions', {
-    name: 'generateAlbumBanner',
-    args: [{
-      directory: 'cool-album',
-      hasBannerArt: true,
-      bannerDimensions: null,
-      bannerFileExtension: 'png',
-    }],
-  });
-
-  evaluate.snapshot('no banner', {
-    name: 'generateAlbumBanner',
-    args: [{
-      directory: 'cool-album',
-      hasBannerArt: false,
-    }],
-  });
-});
diff --git a/test/snapshot/generateAlbumReleaseInfo.js b/test/snapshot/generateAlbumReleaseInfo.js
deleted file mode 100644
index f41e502d..00000000
--- a/test/snapshot/generateAlbumReleaseInfo.js
+++ /dev/null
@@ -1,74 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateAlbumReleaseInfo (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  evaluate.snapshot('basic behavior', {
-    name: 'generateAlbumReleaseInfo',
-    args: [{
-      artistContribs: [
-        {artist: {name: 'Toby Fox', directory: 'toby-fox', urls: []}, annotation: 'music probably'},
-        {artist: {name: 'Tensei', directory: 'tensei', urls: ['https://tenseimusic.bandcamp.com/']}, annotation: 'hot jams'},
-      ],
-
-      coverArtistContribs: [
-        {artist: {name: 'Hanni Brosh', directory: 'hb', urls: []}, annotation: null},
-      ],
-
-      wallpaperArtistContribs: [
-        {artist: {name: 'Hanni Brosh', directory: 'hb', urls: []}, annotation: null},
-        {artist: {name: 'Niklink', directory: 'niklink', urls: []}, annotation: 'edits'},
-      ],
-
-      bannerArtistContribs: [
-        {artist: {name: 'Hanni Brosh', directory: 'hb', urls: []}, annotation: null},
-        {artist: {name: 'Niklink', directory: 'niklink', urls: []}, annotation: 'edits'},
-      ],
-
-      name: 'AlterniaBound',
-      date: new Date('March 14, 2011'),
-      coverArtDate: new Date('April 1, 1991'),
-      urls: [
-        'https://homestuck.bandcamp.com/album/alterniabound-with-alternia',
-        'https://www.youtube.com/playlist?list=PLnVpmehyaOFZWO9QOZmD6A3TIK0wZ6xE2',
-        'https://www.youtube.com/watch?v=HO5V2uogkYc',
-      ],
-
-      tracks: [{duration: 253}, {duration: 372}],
-    }],
-  });
-
-  const sparse = {
-    artistContribs: [],
-    coverArtistContribs: [],
-    wallpaperArtistContribs: [],
-    bannerArtistContribs: [],
-
-    name: 'Suspicious Album',
-    urls: [],
-    tracks: [],
-  };
-
-  evaluate.snapshot('reduced details', {
-    name: 'generateAlbumReleaseInfo',
-    args: [sparse],
-  });
-
-  evaluate.snapshot('URLs only', {
-    name: 'generateAlbumReleaseInfo',
-    args: [{
-      ...sparse,
-      urls: ['https://homestuck.bandcamp.com/foo', 'https://soundcloud.com/bar'],
-    }],
-  });
-
-  evaluate.snapshot('equal cover art date', {
-    name: 'generateAlbumReleaseInfo',
-    args: [{
-      ...sparse,
-      date: new Date('2020-04-13'),
-      coverArtDate: new Date('2020-04-13'),
-    }],
-  });
-});
diff --git a/test/snapshot/generateAlbumSecondaryNav.js b/test/snapshot/generateAlbumSecondaryNav.js
deleted file mode 100644
index 2495bc4a..00000000
--- a/test/snapshot/generateAlbumSecondaryNav.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateAlbumSecondaryNav (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  let album, anotherAlbum, group1, group2;
-
-  group1 = {
-    name: 'VCG',
-    directory: 'vcg',
-    color: '#abcdef',
-    serieses: [],
-  };
-
-  group2 = {
-    name: 'Bepis',
-    directory: 'bepis',
-    color: '#123456',
-    serieses: [],
-  };
-
-  album = {
-    name: 'Album',
-    directory: 'album',
-    date: new Date('2010-04-13'),
-    groups: [group1, group2],
-  };
-
-  anotherAlbum = {
-    name: 'Last',
-    directory: 'last',
-    date: new Date('2010-06-12'),
-  };
-
-  group1.albums = [
-    {
-      name: 'First',
-      directory: 'first',
-      date: new Date('2010-04-10'),
-    },
-    album,
-    anotherAlbum,
-  ];
-
-  group1.serieses = [
-    {
-      name: 'Series',
-      albums: [album, anotherAlbum],
-      group: group1,
-    },
-  ];
-
-  group2.albums = [
-    album,
-    {
-      name: 'Second',
-      directory: 'second',
-      date: new Date('2011-04-13'),
-    },
-  ];
-
-  evaluate.snapshot('basic behavior, mode: album', {
-    name: 'generateAlbumSecondaryNav',
-    args: [album],
-    slots: {mode: 'album'},
-  });
-
-  evaluate.snapshot('basic behavior, mode: track', {
-    name: 'generateAlbumSecondaryNav',
-    args: [album],
-    slots: {mode: 'track'},
-  });
-
-  album = {
-    date: null,
-    groups: [group1, group2],
-  };
-
-  group1.albums = [
-    ...group1.albums,
-    album,
-  ];
-
-  evaluate.snapshot('dateless album in mixed group', {
-    name: 'generateAlbumSecondaryNav',
-    args: [album],
-    slots: {mode: 'album'},
-  });
-});
diff --git a/test/snapshot/generateAlbumSidebarGroupBox.js b/test/snapshot/generateAlbumSidebarGroupBox.js
deleted file mode 100644
index f920bd96..00000000
--- a/test/snapshot/generateAlbumSidebarGroupBox.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateAlbumSidebarGroupBox (snapshot)', async (t, evaluate) => {
-  await evaluate.load({
-    mock: {
-      ...evaluate.mock.transformContent,
-    },
-  });
-
-  let album, group;
-
-  album = {
-    name: 'Middle',
-    directory: 'middle',
-    date: new Date('2010-04-13'),
-  };
-
-  group = {
-    name: 'VCG',
-    directory: 'vcg',
-    descriptionShort: 'Very cool group.',
-    urls: ['https://vcg.bandcamp.com/', 'https://youtube.com/@vcg'],
-    albums: [
-      {name: 'First', directory: 'first', date: new Date('2010-04-10')},
-      album,
-      {name: 'Last', directory: 'last', date: new Date('2010-06-12')},
-    ],
-  };
-
-  evaluate.snapshot('basic behavior, mode: album', {
-    name: 'generateAlbumSidebarGroupBox',
-    args: [album, group],
-    slots: {mode: 'album'},
-  });
-
-  evaluate.snapshot('basic behavior, mode: track', {
-    name: 'generateAlbumSidebarGroupBox',
-    args: [album, group],
-    slots: {mode: 'track'},
-  });
-
-  album = {
-    date: null,
-  };
-
-  group.albums = [
-    ...group.albums,
-    album,
-  ];
-
-  evaluate.snapshot('dateless album in mixed group', {
-    name: 'generateAlbumSidebarGroupBox',
-    args: [album, group],
-    slots: {mode: 'album'},
-  });
-});
diff --git a/test/snapshot/generateAlbumTrackList.js b/test/snapshot/generateAlbumTrackList.js
deleted file mode 100644
index e09f1c4a..00000000
--- a/test/snapshot/generateAlbumTrackList.js
+++ /dev/null
@@ -1,123 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateAlbumTrackList (snapshot)', async (t, evaluate) => {
-  await evaluate.load({
-    mock: {
-      generateAlbumTrackListMissingDuration:
-        evaluate.stubContentFunction('generateAlbumTrackListMissingDuration'),
-
-      image:
-        evaluate.stubContentFunction('image'),
-    },
-  });
-
-  const contribs1 = [
-    {artist: {name: 'Apricot', directory: 'apricot', urls: []}},
-  ];
-
-  const contribs2 = [
-    {artist: {name: 'Apricot', directory: 'apricot', urls: []}},
-    {artist: {name: 'Peach', directory: 'peach', urls: ['https://peach.bandcamp.com/']}},
-    {artist: {name: 'Cerise', directory: 'cerise', urls: []}},
-  ];
-
-  const color1 = '#fb07ff';
-  const color2 = '#ea2e83';
-
-  const tracks = [
-    {name: 'Track 1', directory: 't1', duration: 20, artistContribs: contribs1, color: color1},
-    {name: 'Track 2', directory: 't2', duration: 0, artistContribs: contribs1, color: color1},
-    {name: 'Track 3', directory: 't3', duration: 40, artistContribs: contribs1, color: color1},
-    {name: 'Track 4', directory: 't4', duration: 0, artistContribs: contribs2, color: color2},
-  ];
-
-  const albumWithTrackSections = {
-    color: color1,
-    artistContribs: contribs1,
-    trackSections: [
-      {name: 'First section', tracks: tracks.slice(0, 3)},
-      {name: 'Second section', tracks: tracks.slice(3)},
-    ],
-    tracks,
-  };
-
-  const albumWithoutTrackSections = {
-    color: color1,
-    artistContribs: contribs1,
-    trackSections: [{isDefaultTrackSection: true, tracks}],
-    tracks,
-  };
-
-  const albumWithTrackSectionDescriptions = {
-    color: color1,
-    artistContribs: contribs1,
-    trackSections: [
-      {name: 'First section', tracks: tracks.slice(0, 3), description: `Why yes!`},
-      {name: 'Second section', tracks: tracks.slice(3), description: `How *contentful,* this is.`},
-    ],
-    tracks,
-  };
-
-  const albumWithNoDuration = {
-    color: color1,
-    artistContribs: contribs1,
-    trackSections: [{isDefaultTrackSection: true, tracks: [tracks[1], tracks[3]]}],
-    tracks: [tracks[1], tracks[3]],
-  };
-
-  evaluate.snapshot(`basic behavior, with track sections`, {
-    name: 'generateAlbumTrackList',
-    args: [albumWithTrackSections],
-  });
-
-  evaluate.snapshot(`basic behavior, default track section`, {
-    name: 'generateAlbumTrackList',
-    args: [albumWithoutTrackSections],
-  });
-
-  evaluate.snapshot(`basic behavior, with descriptions`, {
-    name: 'generateAlbumTrackList',
-    args: [albumWithTrackSectionDescriptions],
-  });
-
-  evaluate.snapshot(`collapseDurationScope: never`, {
-    name: 'generateAlbumTrackList',
-    slots: {collapseDurationScope: 'never'},
-    multiple: [
-      {args: [albumWithTrackSections]},
-      {args: [albumWithoutTrackSections]},
-      {args: [albumWithNoDuration]},
-    ],
-  });
-
-  evaluate.snapshot(`collapseDurationScope: track`, {
-    name: 'generateAlbumTrackList',
-    slots: {collapseDurationScope: 'track'},
-    multiple: [
-      {args: [albumWithTrackSections]},
-      {args: [albumWithoutTrackSections]},
-      {args: [albumWithNoDuration]},
-    ],
-  });
-
-  evaluate.snapshot(`collapseDurationScope: section`, {
-    name: 'generateAlbumTrackList',
-    slots: {collapseDurationScope: 'section'},
-    multiple: [
-      {args: [albumWithTrackSections]},
-      {args: [albumWithoutTrackSections]},
-      {args: [albumWithNoDuration]},
-    ],
-  });
-
-  evaluate.snapshot(`collapseDurationScope: album`, {
-    name: 'generateAlbumTrackList',
-    slots: {collapseDurationScope: 'album'},
-    multiple: [
-      {args: [albumWithTrackSections]},
-      {args: [albumWithoutTrackSections]},
-      {args: [albumWithNoDuration]},
-    ],
-  });
-});
diff --git a/test/snapshot/generateBanner.js b/test/snapshot/generateBanner.js
deleted file mode 100644
index ab57c3cc..00000000
--- a/test/snapshot/generateBanner.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateBanner (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  evaluate.snapshot('basic behavior', {
-    name: 'generateBanner',
-    slots: {
-      path: ['media.albumBanner', 'cool-album', 'png'],
-      alt: 'Very cool banner art.',
-      dimensions: [800, 200],
-    },
-  });
-
-  evaluate.snapshot('no dimensions', {
-    name: 'generateBanner',
-    slots: {
-      path: ['media.albumBanner', 'cool-album', 'png'],
-    },
-  });
-});
diff --git a/test/snapshot/generateTrackReleaseInfo.js b/test/snapshot/generateTrackReleaseInfo.js
deleted file mode 100644
index 931377c8..00000000
--- a/test/snapshot/generateTrackReleaseInfo.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'generateTrackReleaseInfo (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  const artistContribs = [{artist: {name: 'Toby Fox', directory: 'toby-fox', urls: []}, annotation: null}];
-  const coverArtistContribs = [{artist: {name: 'Alpaca', directory: 'alpaca', urls: []}, annotation: '🔥'}];
-
-  evaluate.snapshot('basic behavior', {
-    name: 'generateTrackReleaseInfo',
-    args: [{
-      artistContribs,
-      name: 'An Apple Disaster!!',
-      date: new Date('2011-11-30'),
-      duration: 58,
-      urls: ['https://soundcloud.com/foo', 'https://youtube.com/watch?v=bar'],
-    }],
-  });
-
-  const sparse = {
-    artistContribs,
-    name: 'Suspicious Track',
-    date: null,
-    duration: null,
-    urls: [],
-  };
-
-  evaluate.snapshot('reduced details', {
-    name: 'generateTrackReleaseInfo',
-    args: [sparse],
-  });
-
-  evaluate.snapshot('cover artist contribs, non-unique', {
-    name: 'generateTrackReleaseInfo',
-    args: [{
-      ...sparse,
-      coverArtistContribs,
-      hasUniqueCoverArt: false,
-    }],
-  });
-
-  evaluate.snapshot('cover artist contribs, unique', {
-    name: 'generateTrackReleaseInfo',
-    args: [{
-      ...sparse,
-      coverArtistContribs,
-      hasUniqueCoverArt: true,
-    }],
-  });
-});
diff --git a/test/snapshot/image.js b/test/snapshot/image.js
deleted file mode 100644
index 1985211f..00000000
--- a/test/snapshot/image.js
+++ /dev/null
@@ -1,132 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'image (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  const quickSnapshot = (message, {extraDependencies, ...opts}) =>
-    evaluate.snapshot(message, {
-      name: 'image',
-      extraDependencies: {
-        checkIfImagePathHasCachedThumbnails: path => !path.endsWith('.gif'),
-        getSizeOfImagePath: () => 0,
-        getDimensionsOfImagePath: () => [600, 600],
-        getThumbnailEqualOrSmaller: () => 'medium',
-        getThumbnailsAvailableForDimensions: () =>
-          [['large', 800], ['medium', 400], ['small', 250]],
-        missingImagePaths: ['album-art/missing/cover.png'],
-        ...extraDependencies,
-      },
-      ...opts,
-    });
-
-  quickSnapshot('source via path', {
-    slots: {
-      path: ['media.albumCover', 'beyond-canon', 'png'],
-    },
-  });
-
-  quickSnapshot('source via src', {
-    slots: {
-      src: 'https://example.com/bananas.gif',
-    },
-  });
-
-  quickSnapshot('source missing', {
-    slots: {
-      missingSourceContent: 'Example of missing source message.',
-    },
-  });
-
-  quickSnapshot('dimensions', {
-    slots: {
-      src: 'foobar',
-      dimensions: [600, 400],
-    },
-  });
-
-  quickSnapshot('square', {
-    slots: {
-      src: 'foobar',
-      square: true,
-    },
-  });
-
-  quickSnapshot('dimensions with square', {
-    slots: {
-      src: 'foobar',
-      dimensions: [600, 400],
-      square: true,
-    },
-  });
-
-  quickSnapshot('lazy with square', {
-    slots: {
-      src: 'foobar',
-      lazy: true,
-      square: true,
-    },
-  });
-
-  quickSnapshot('link with file size', {
-    extraDependencies: {
-      getSizeOfImagePath: () => 10 ** 6,
-    },
-    slots: {
-      path: ['media.albumCover', 'pingas', 'png'],
-      link: true,
-    },
-  });
-
-  quickSnapshot('content warnings via tags', {
-    args: [
-      [
-        {name: 'Dirk Strider', directory: 'dirk'},
-        {name: 'too cool for school', isContentWarning: true},
-      ],
-    ],
-    slots: {
-      path: ['media.albumCover', 'beyond-canon', 'png'],
-    },
-  });
-
-  evaluate.snapshot('thumbnail details', {
-    name: 'image',
-    extraDependencies: {
-      checkIfImagePathHasCachedThumbnails: () => true,
-      getSizeOfImagePath: () => 0,
-      getDimensionsOfImagePath: () => [900, 1200],
-      getThumbnailsAvailableForDimensions: () =>
-        [['voluminous', 1200], ['middling', 900], ['petite', 20]],
-      getThumbnailEqualOrSmaller: () => 'voluminous',
-      missingImagePaths: [],
-    },
-    slots: {
-      thumb: 'gargantuan',
-      path: ['media.albumCover', 'beyond-canon', 'png'],
-    },
-  });
-
-  quickSnapshot('thumb requested but source is gif', {
-    slots: {
-      thumb: 'medium',
-      path: ['media.flashArt', '5426', 'gif'],
-    },
-  });
-
-  quickSnapshot('missing image path', {
-    slots: {
-      thumb: 'medium',
-      path: ['media.albumCover', 'missing', 'png'],
-      link: true,
-    },
-  });
-
-  quickSnapshot('missing image path w/ missingSourceContent', {
-    slots: {
-      thumb: 'medium',
-      path: ['media.albumCover', 'missing', 'png'],
-      missingSourceContent: `Cover's missing, whoops`,
-    },
-  });
-});
diff --git a/test/snapshot/linkArtist.js b/test/snapshot/linkArtist.js
deleted file mode 100644
index 7b2114b5..00000000
--- a/test/snapshot/linkArtist.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'linkArtist (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  evaluate.snapshot('basic behavior', {
-    name: 'linkArtist',
-    args: [
-      {
-        name: `Toby Fox`,
-        directory: `toby-fox`,
-      }
-    ],
-  });
-
-  evaluate.snapshot('prefer short name', {
-    name: 'linkArtist',
-    args: [
-      {
-        name: 'ICCTTCMDMIROTMCWMWFTPFTDDOTARHPOESWGBTWEATFCWSEBTSSFOFG',
-        nameShort: '55gore',
-        directory: '55gore',
-      },
-    ],
-    slots: {
-      preferShortName: true,
-    },
-  });
-});
diff --git a/test/snapshot/linkContribution.js b/test/snapshot/linkContribution.js
deleted file mode 100644
index 47ef1503..00000000
--- a/test/snapshot/linkContribution.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'linkContribution (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  const quickSnapshot = (message, slots) =>
-    evaluate.snapshot(message, {
-      name: 'linkContribution',
-      multiple: [
-        {args: [
-          {artist: {
-            name: 'Clark Powell',
-            directory: 'clark-powell',
-            urls: ['https://soundcloud.com/plazmataz'],
-          }, annotation: null},
-        ]},
-        {args: [
-          {artist: {
-            name: 'Grounder & Scratch',
-            directory: 'the-big-baddies',
-            urls: [],
-          }, annotation: 'Snooping'},
-        ]},
-        {args: [
-          {artist: {
-            name: 'Toby Fox',
-            directory: 'toby-fox',
-            urls: ['https://tobyfox.bandcamp.com/', 'https://toby.fox/'],
-          }, annotation: 'Arrangement'},
-        ]},
-      ],
-      slots,
-    });
-
-  quickSnapshot('showAnnotation & showExternalLinks', {
-    showAnnotation: true,
-    showExternalLinks: true,
-  });
-
-  quickSnapshot('only showAnnotation', {
-    showAnnotation: true,
-  });
-
-  quickSnapshot('only showExternalLinks', {
-    showExternalLinks: true,
-  });
-
-  quickSnapshot('no accents', {});
-
-  evaluate.snapshot('loads of links', {
-    name: 'linkContribution',
-    args: [
-      {artist: {name: 'Lorem Ipsum Lover', directory: 'lorem-ipsum-lover', urls: [
-        'https://loremipsum.io',
-        'https://loremipsum.io/generator/',
-        'https://loremipsum.io/#meaning',
-        'https://loremipsum.io/#usage-and-examples',
-        'https://loremipsum.io/#controversy',
-        'https://loremipsum.io/#when-to-use-lorem-ipsum',
-        'https://loremipsum.io/#lorem-ipsum-all-the-things',
-        'https://loremipsum.io/#original-source',
-      ]}, annotation: null},
-    ],
-    slots: {showExternalLinks: true},
-  });
-
-  quickSnapshot('no preventWrapping', {
-    showAnnotation: true,
-    showExternalLinks: true,
-    preventWrapping: false,
-  });
-});
diff --git a/test/snapshot/linkExternal.js b/test/snapshot/linkExternal.js
deleted file mode 100644
index 90c98f4b..00000000
--- a/test/snapshot/linkExternal.js
+++ /dev/null
@@ -1,225 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'linkExternal (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  evaluate.snapshot('unknown domain (arbitrary world wide web path)', {
-    name: 'linkExternal',
-    args: ['https://snoo.ping.as/usual/i/see/'],
-  });
-
-  const urlsToArgs = urls =>
-    urls.map(url => ({args: [url]}));
-
-  const quickSnapshot = (message, urls, slots) =>
-    evaluate.snapshot(message, {
-      name: 'linkExternal',
-      slots,
-      multiple: urlsToArgs(urls),
-    });
-
-  const quickSnapshotAllStyles = (context, urls) => {
-    for (const style of ['platform', 'handle']) {
-      const message = `context: ${context}, style: ${style}`;
-      quickSnapshot(message, urls, {context, style});
-    }
-  };
-
-  // Try to comprehensively test every regular expression
-  // (in `match` and extractions like `handle` or `details`).
-
-  // Try to *also* represent a reasonable variety of what kinds
-  // of URLs appear throughout the wiki. (This should serve to
-  // identify areas which #external-links is expected to
-  // accommodate, regardless whether or not there is special
-  // attention given in the actual descriptors.)
-
-  // For normal custom-domain matches (e.g. Mastodon),
-  // it's OK to just test one custom domain in the list.
-
-  // Generally match the sorting order in externalLinkSpec,
-  // so corresponding and missing test cases are easy to locate.
-
-  quickSnapshotAllStyles('generic', [
-    // platform: appleMusic
-    'https://music.apple.com/us/artist/system-of-a-down/462715',
-
-    // platform: artstation
-    'https://www.artstation.com/eevaningtea',
-    'https://witnesstheabsurd.artstation.com/',
-
-    // platform: bandcamp
-    'https://music.solatrus.com/',
-    'https://homestuck.bandcamp.com/',
-
-    // platform: bluesky
-    'https://bsky.app/profile/jacobtheloofah.bsky.social',
-
-    // platform: carrd
-    'https://aliceflare.carrd.co',
-    'https://bigchaslappa.carrd.co/',
-
-    // platform: cohost
-    'https://cohost.org/cosmoptera',
-
-    // platform: deconreconstruction.music
-    'https://music.deconreconstruction.com/albums/catch-322',
-    'https://music.deconreconstruction.com/albums/catch-322?track=arcjecs-theme',
-
-    // platform: deconreconstruction
-    'https://www.deconreconstruction.com/',
-
-    // platform: deviantart
-    'https://culdhira.deviantart.com',
-    'https://www.deviantart.com/chesswanderlust-sama',
-    'https://www.deviantart.com/shilloshilloh/art/Homestuck-Jake-English-268874606',
-
-    // platform: facebook
-    'https://www.facebook.com/DoomedCloud/',
-    'https://www.facebook.com/pages/WoodenToaster/280642235307371',
-    'https://www.facebook.com/Svixy/posts/400018786702633',
-
-    // platform: fandom.mspaintadventures
-    'https://mspaintadventures.fandom.com/wiki/Draconian_Dignitary',
-    'https://mspaintadventures.fandom.com/wiki/',
-    'https://mspaintadventures.fandom.com/',
-
-    // platform: fandom
-    'https://community.fandom.com/',
-    'https://community.fandom.com/wiki/',
-    'https://community.fandom.com/wiki/Community_Central',
-
-    // platform: gamebanana
-    'https://gamebanana.com/members/2028092',
-    'https://gamebanana.com/mods/459476',
-
-    // platform: homestuck
-    'https://homestuck.com/',
-
-    // platform: hsmusic.archive
-    'https://hsmusic.wiki/media/misc/archive/Firefly%20Cloud%20Remix.mp3',
-
-    // platform: hsmusic
-    'https://hsmusic.wiki/feedback/',
-
-    // platform: internetArchive
-    'https://archive.org/details/a-life-well-lived',
-    'https://archive.org/details/VastError_Volume1/11+Renaissance.mp3',
-
-    // platform: instagram
-    'https://instagram.com/bass.and.noises',
-    'https://www.instagram.com/levc_egm/',
-
-    // platform: itch
-    'https://tuyoki.itch.io/',
-    'https://itch.io/profile/bravelittletoreador',
-
-    // platform: ko-fi
-    'https://ko-fi.com/gnaach',
-
-    // platform: linktree
-    'https://linktr.ee/bbpanzu',
-
-    // platform: mastodon
-    'https://types.pl/',
-
-    // platform: mspfa
-    'https://canwc.mspfa.com/',
-    'https://mspfa.com/?s=12003&p=1045',
-    'https://mspfa.com/user/?u=103334508819793669241',
-
-    // platform: neocities
-    'https://wodaro.neocities.org',
-    'https://neomints.neocities.org/',
-
-    // platform: newgrounds
-    'https://buzinkai.newgrounds.com/',
-    'https://www.newgrounds.com/audio/listen/1256058',
-
-    // platform: patreon
-    'https://www.patreon.com/CecilyRenns',
-
-    // platform: poetryFoundation
-    'https://www.poetryfoundation.org/poets/christina-rossetti',
-    'https://www.poetryfoundation.org/poems/45000/remember-56d224509b7ae',
-
-    // platform: soundcloud
-    'https://soundcloud.com/plazmataz',
-    'https://soundcloud.com/worthikids/1-i-accidentally-broke-my',
-
-    // platform: spotify
-    'https://open.spotify.com/artist/63SNNpNOicDzG3LY82G4q3',
-    'https://open.spotify.com/album/0iHvPD8rM3hQa0qeVtPQ3t',
-    'https://open.spotify.com/track/6YEGQH32aAXb9vQQbBrPlw',
-
-    // platform: tiktok
-    'https://www.tiktok.com/@richaadeb',
-
-    // platform: toyhouse
-    'https://toyhou.se/ghastaboo',
-
-    // platform: tumblr
-    'https://aeritus.tumblr.com/',
-    'https://vol5anthology.tumblr.com/post/159528808107/hey-everyone-its-413-and-that-means-we-have',
-    'https://www.tumblr.com/electricwestern',
-    'https://www.tumblr.com/spellmynamewithabang/142767566733/happy-413-this-is-the-first-time-anyones-heard',
-
-    // platform: twitch
-    'https://www.twitch.tv/ajhebard',
-    'https://www.twitch.tv/vargskelethor/',
-
-    // platform: twitter
-    'https://twitter.com/awkwarddoesart',
-    'https://twitter.com/purenonsens/',
-    'https://twitter.com/circlejourney/status/1202265927183548416',
-
-    // platform: waybackMachine
-    'https://web.archive.org/web/20120405160556/https://homestuck.bandcamp.com/album/colours-and-mayhem-universe-a',
-    'https://web.archive.org/web/20160807111207/http://griffinspacejam.com:80/',
-
-    // platform: wikipedia
-    'https://en.wikipedia.org/wiki/Haydn_Quartet_(vocal_ensemble)',
-
-    // platform: youtube
-    'https://youtube.com/@bani-chan8949',
-    'https://www.youtube.com/@Razzie16',
-    'https://www.youtube.com/channel/UCQXfvlKkpbOqEz4BepHqK7g',
-    'https://www.youtube.com/watch?v=6ekVnZm29kw',
-    'https://youtu.be/WBkC038wSio',
-    'https://www.youtube.com/playlist?list=PLy5UGIMKOXpONMExgI7lVYFwQa54QFp_H',
-  ]);
-
-  quickSnapshotAllStyles('album', [
-    'https://youtu.be/abc',
-    'https://youtube.com/watch?v=abc',
-    'https://youtube.com/Playlist?list=kweh',
-  ]);
-
-  quickSnapshotAllStyles('albumNoTracks', [
-    'https://youtu.be/abc',
-    'https://youtube.com/watch?v=abc',
-    'https://youtube.com/Playlist?list=kweh',
-  ]);
-
-  quickSnapshotAllStyles('albumOneTrack', [
-    'https://youtu.be/abc',
-    'https://youtube.com/watch?v=abc',
-    'https://youtube.com/Playlist?list=kweh',
-  ]);
-
-  quickSnapshotAllStyles('albumMultipleTracks', [
-    'https://youtu.be/abc',
-    'https://youtube.com/watch?v=abc',
-    'https://youtube.com/Playlist?list=kweh',
-  ]);
-
-  quickSnapshotAllStyles('flash', [
-    'https://www.bgreco.net/hsflash/002238.html',
-    'https://homestuck.com/story/1234',
-    'https://homestuck.com/story/pony',
-    'https://www.youtube.com/watch?v=wKgOp3Kg2wI',
-    'https://youtu.be/IOcvkkklWmY',
-    'https://some.external.site/foo/bar/',
-  ]);
-});
diff --git a/test/snapshot/linkTemplate.js b/test/snapshot/linkTemplate.js
deleted file mode 100644
index 300065e2..00000000
--- a/test/snapshot/linkTemplate.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import t from 'tap';
-import * as html from '#html';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'linkTemplate (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  evaluate.snapshot('fill many slots', {
-    name: 'linkTemplate',
-
-    slots: {
-      'href': 'https://hsmusic.wiki/media/cool file.pdf',
-      'hash': 'fooey',
-      'attributes': {class: 'dog', id: 'cat1'},
-      'content': 'My Cool Link',
-    },
-  });
-
-  evaluate.snapshot('fill path slot & provide appendIndexHTML', {
-    name: 'linkTemplate',
-
-    extraDependencies: {
-      to: (...path) => '/c*lzone/' + path.join('/') + '/',
-      appendIndexHTML: true,
-    },
-
-    slots: {
-      path: ['myCoolPath', 'ham', 'pineapple', 'tomato'],
-      content: 'delish',
-    },
-  });
-
-  evaluate.snapshot('special characters in path argument', {
-    name: 'linkTemplate',
-    slots: {
-      path: [
-        'media.albumAdditionalFile',
-        'homestuck-vol-1',
-        'Showtime (Piano Refrain) - #xXxAwesomeSheetMusick?rxXx#.pdf',
-      ],
-      content: `Damn, that's some good sheet music`,
-    },
-  });
-
-  evaluate.snapshot('missing content', {
-    name: 'linkTemplate',
-    slots: {href: 'banana'},
-  });
-
-  evaluate.snapshot('link in content', {
-    name: 'linkTemplate',
-    slots: {
-      hash: 'the-more-ye-know',
-      content: [
-        `Oh geez oh heck`,
-        html.tag('a', {href: 'dogs'}, `There's a link in here!!`),
-        `But here's <b>a normal tag.</b>`,
-        html.tag('div', `Gotta keep them normal tags.`),
-        html.tag('div', `But not... <a href="#">NESTED LINKS, OOO.</a>`),
-      ],
-    },
-  });
-});
diff --git a/test/snapshot/linkThing.js b/test/snapshot/linkThing.js
deleted file mode 100644
index 9b5cff33..00000000
--- a/test/snapshot/linkThing.js
+++ /dev/null
@@ -1,94 +0,0 @@
-import t from 'tap';
-import * as html from '#html';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'linkThing (snapshot)', async (t, evaluate) => {
-  await evaluate.load();
-
-  const quickSnapshot = (message, oneOrMultiple) =>
-    evaluate.snapshot(message,
-      (Array.isArray(oneOrMultiple)
-        ? {name: 'linkThing', multiple: oneOrMultiple}
-        : {name: 'linkThing', ...oneOrMultiple}));
-
-  quickSnapshot('basic behavior', {
-    args: ['localized.track', {
-      directory: 'foo',
-      color: '#abcdef',
-      name: `Cool track!`,
-    }],
-  });
-
-  quickSnapshot('preferShortName', {
-    args: ['localized.artTagGallery', {
-      directory: 'five-oceanfalls',
-      name: 'Five (Oceanfalls)',
-      nameShort: 'Five',
-    }],
-    slots: {preferShortName: true},
-  });
-
-  quickSnapshot('tooltip & content', {
-    args: ['localized.album', {
-      directory: 'beyond-canon',
-      name: 'Beyond Canon',
-      nameShort: 'BC',
-    }],
-    multiple: [
-      {slots: {tooltipStyle: 'none'}},
-      {slots: {tooltipStyle: 'browser'}},
-      {slots: {tooltipStyle: 'browser', content: 'Next'}},
-      {slots: {tooltipStyle: 'auto'}},
-      {slots: {tooltipStyle: 'auto', preferShortName: true}},
-      {slots: {tooltipStyle: 'auto', preferShortName: true, content: 'Next'}},
-      {slots: {tooltipStyle: 'auto', content: 'Next'}},
-      {slots: {tooltipStyle: 'wiki'}},
-      {slots: {tooltipStyle: 'wiki', content: 'Next'}},
-      {slots: {content: 'Banana'}},
-    ],
-  });
-
-  quickSnapshot('color', {
-    args: ['localized.track', {
-      directory: 'showtime-piano-refrain',
-      name: 'Showtime (Piano Refrain)',
-      color: '#38f43d',
-    }],
-    multiple: [
-      {slots: {color: false}},
-      {slots: {color: true}},
-      {slots: {color: '#aaccff'}},
-      {slots: {color: '#aaccff', tooltipStyle: 'wiki'}},
-    ],
-  });
-
-  quickSnapshot('tags in name escaped', [
-    {args: ['localized.track', {
-      directory: 'foo',
-      name: `<a href="SNOOPING">AS USUAL</a> I SEE`,
-    }]},
-    {args: ['localized.track', {
-      directory: 'bar',
-      name: `<b>boldface</b>`,
-    }]},
-    {args: ['localized.album', {
-      directory: 'exile',
-      name: '>Exile<',
-    }]},
-    {args: ['localized.track', {
-      directory: 'heart',
-      name: '<3',
-    }]},
-  ]);
-
-  quickSnapshot('nested links in content stripped', {
-    args: ['localized.staticPage', {directory: 'foo', name: 'Foo'}],
-    slots: {
-      content:
-        html.tag('b', {[html.joinChildren]: ''}, [
-          html.tag('a', {href: 'bar'}, `Oooo!`),
-          ` Very spooky.`,
-        ]),
-    },
-  });
-});
diff --git a/test/snapshot/transformContent.js b/test/snapshot/transformContent.js
deleted file mode 100644
index 63391681..00000000
--- a/test/snapshot/transformContent.js
+++ /dev/null
@@ -1,171 +0,0 @@
-import t from 'tap';
-import {testContentFunctions} from '#test-lib';
-
-testContentFunctions(t, 'transformContent (snapshot)', async (t, evaluate) => {
-  await evaluate.load({
-    mock: {
-      image: evaluate.stubContentFunction('image'),
-    },
-  });
-
-  const extraDependencies = {
-    wikiData: {
-      albumData: [
-        {directory: 'cool-album', name: 'Cool Album', color: '#123456'},
-      ],
-    },
-
-    to: (key, ...args) => `to-${key}/${args.join('/')}`,
-  };
-
-  const quickSnapshot = (message, content, slots) =>
-    evaluate.snapshot(message, {
-      name: 'transformContent',
-      args: [content],
-      extraDependencies,
-      slots,
-    });
-
-  quickSnapshot(
-    'two text paragraphs',
-      `Hello, world!\n` +
-      `Wow, this is very cool.`);
-
-  quickSnapshot(
-    'links to a thing',
-      `This is [[album:cool-album|my favorite album]].\n` +
-      `That's right, [[album:cool-album]]!`);
-
-  quickSnapshot(
-    'indent on a directly following line',
-      `<div>\n` +
-      `    <span>Wow!</span>\n` +
-      `</div>`);
-
-  quickSnapshot(
-    'indent on an indierctly following line',
-      `Some text.\n` +
-      `Yes, some more text.\n` +
-      `\n` +
-      `    I am hax0rz!!\n` +
-      `    All yor base r blong 2 us.\n` +
-      `\n` +
-      `Aye.\n` +
-      `Aye aye aye.`);
-
-  quickSnapshot(
-    'hanging indent list',
-      `Hello!\n` +
-      `\n` +
-      `* I am a list item and I\n` +
-      `  go on and on and on\n` +
-      `  and on and on and on.\n` +
-      `\n` +
-      `* I am another list item.\n` +
-      `  Yeah.\n` +
-      `\n` +
-      `In-between!\n` +
-      `\n` +
-      `* Spooky,\n` +
-      `  spooky, I say!\n` +
-      `* Following list item.\n` +
-      `  No empty line around me.\n` +
-      `* Very cool.\n` +
-      `  So, so cool.\n` +
-      `\n` +
-      `Goodbye!`);
-
-  quickSnapshot(
-    'inline images',
-      `<img src="snooping.png"> as USUAL...\n` +
-      `What do you know? <img src="cowabunga.png" width="24" height="32">\n` +
-      `[[album:cool-album|I'm on the left.]]<img src="im-on-the-right.jpg">\n` +
-      `<img src="im-on-the-left.jpg">[[album:cool-album|I'm on the right.]]\n` +
-      `Media time! <img src="media/misc/interesting.png"> Oh yeah!\n` +
-      `<img src="must.png"><img src="stick.png"><img src="together.png">\n` +
-      `And... all done! <img src="end-of-source.png">`);
-
-  quickSnapshot(
-    'non-inline image #1',
-      `<img src="spark.png">`);
-
-  quickSnapshot(
-    'non-inline image #2',
-      `Rad.\n` +
-      `<img src="spark.png">`);
-
-  quickSnapshot(
-    'non-inline image #3',
-      `<img src="spark.png">\n` +
-      `Baller.`);
-
-  quickSnapshot(
-    'dates',
-      `[[date:2023-04-13]] Yep!\n` +
-      `Very nice: [[date:25 October 2413]]`);
-
-  quickSnapshot(
-    'super basic string',
-      `Neat listing: [[string:listingPage.listAlbums.byDate.title]]`);
-
-  quickSnapshot(
-    'basic markdown',
-      `Hello *world!* This is **SO COOL.**`);
-
-  quickSnapshot(
-    'escape entire tag',
-      `\\[[album:cool-album|spooky]] [[album:cool-album|scary]]`);
-
-  quickSnapshot(
-    'escape end of tag',
-      `My favorite album is [[album:cool-album|[Tactical Omission\\]]].\n` +
-      `Your favorite album is [[album:cool-album|[Tactical Wha-Huh-Now]]].`);
-
-  quickSnapshot(
-    'escape markdown',
-      `What will it be, *ye fool?* \\*arr*`);
-
-  quickSnapshot(
-    'lyrics - basic line breaks',
-      `Hey, ho\n` +
-      `And away we go\n` +
-      `Truly, music\n` +
-      `\n` +
-      `(Oh yeah)\n` +
-      `(That's right)`,
-      {mode: 'lyrics'});
-
-  quickSnapshot(
-    'lyrics - repeated and edge line breaks',
-      `\n\nWell, you know\nHow it goes\n\n\nYessiree\n\n\n`,
-      {mode: 'lyrics'});
-
-  quickSnapshot(
-    'lyrics - line breaks around tags',
-      `The date be [[date:13 April 2004]]\n` +
-      `I say, the date be [[date:13 April 2004]]\n` +
-      `[[date:13 April 2004]]\n` +
-      `[[date:13 April 2004]][[date:13 April 2004]][[date:13 April 2004]]\n` +
-      `(Aye!)\n` +
-      `\n` +
-      `[[date:13 April 2004]]\n` +
-      `[[date:13 April 2004]][[date:13 April 2004]]\n` +
-      `[[date:13 April 2004]]\n` +
-      `\n` +
-      `[[date:13 April 2004]]\n` +
-      `[[date:13 April 2004]], and don't ye forget it`,
-      {mode: 'lyrics'});
-
-  quickSnapshot(
-    'emails',
-      `Email cute dogs to qznebula@protonmail.com please.\n` +
-      `Just kidding... [unless?](mailto:qznebula@protonmail.com)`);
-
-  quickSnapshot(
-    `absorb punctuation`,
-      `Don't you think this is an [interesting pull request](https://github.com/hsmusic/hsmusic-wiki/pull/567), Steve?\n` +
-      `Aren't you [interested](https://github.com/hsmusic/hsmusic-wiki/pull/567)... in [checking it out](https://github.com/hsmusic/hsmusic-wiki/pull/567)?!!`);
-
-  // TODO: Snapshots for mode: inline
-  // TODO: Snapshots for mode: single-link
-});