diff options
Diffstat (limited to 'test/snapshot')
-rw-r--r-- | test/snapshot/generateAlbumAdditionalFilesList.js | 84 | ||||
-rw-r--r-- | test/snapshot/generateAlbumCoverArtwork.js | 37 | ||||
-rw-r--r-- | test/snapshot/generateAlbumReleaseInfo.js | 12 | ||||
-rw-r--r-- | test/snapshot/generateAlbumSecondaryNav.js | 45 | ||||
-rw-r--r-- | test/snapshot/generateAlbumTrackList.js | 24 | ||||
-rw-r--r-- | test/snapshot/generateCoverArtwork.js | 31 | ||||
-rw-r--r-- | test/snapshot/generatePreviousNextLinks.js | 35 | ||||
-rw-r--r-- | test/snapshot/generateTrackAdditionalNamesBox.js | 107 | ||||
-rw-r--r-- | test/snapshot/generateTrackCoverArtwork.js | 63 | ||||
-rw-r--r-- | test/snapshot/generateTrackReleaseInfo.js | 4 | ||||
-rw-r--r-- | test/snapshot/linkContribution.js | 53 | ||||
-rw-r--r-- | test/snapshot/linkThing.js | 2 | ||||
-rw-r--r-- | test/snapshot/transformContent.js | 10 |
13 files changed, 90 insertions, 417 deletions
diff --git a/test/snapshot/generateAlbumAdditionalFilesList.js b/test/snapshot/generateAlbumAdditionalFilesList.js deleted file mode 100644 index c25e5682..00000000 --- a/test/snapshot/generateAlbumAdditionalFilesList.js +++ /dev/null @@ -1,84 +0,0 @@ -import t from 'tap'; - -import {testContentFunctions} from '#test-lib'; -import thingConstructors from '#things'; - -const {Album} = thingConstructors; - -testContentFunctions(t, 'generateAlbumAdditionalFilesList (snapshot)', async (t, evaluate) => { - const sizeMap = { - 'sburbwp_1280x1024.jpg': 2500, - 'sburbwp_1440x900.jpg': null, - 'sburbwp_1920x1080.jpg': null, - 'Internet Explorer.gif': 1, - 'Homestuck_Vol4_alt1.jpg': 1234567, - 'Homestuck_Vol4_alt2.jpg': 1234567, - 'Homestuck_Vol4_alt3.jpg': 1234567, - }; - - const extraDependencies = { - getSizeOfAdditionalFile: file => - Object.entries(sizeMap) - .find(key => file.includes(key)) - ?.at(1) ?? null, - }; - - await evaluate.load({ - mock: { - image: evaluate.stubContentFunction('image'), - }, - }); - - const album = new Album(); - album.directory = 'exciting-album'; - - evaluate.snapshot('no additional files', { - extraDependencies, - name: 'generateAlbumAdditionalFilesList', - args: [album, []], - }); - - try { - evaluate.snapshot('basic behavior', { - extraDependencies, - name: 'generateAlbumAdditionalFilesList', - args: [ - album, - [ - { - title: 'SBURB Wallpaper', - files: [ - 'sburbwp_1280x1024.jpg', - 'sburbwp_1440x900.jpg', - 'sburbwp_1920x1080.jpg', - ], - }, - { - title: 'Fake Section', - description: 'No sizes for these files', - files: [ - 'oops.mp3', - 'Internet Explorer.gif', - 'daisy.mp3', - ], - }, - { - title: `Empty Section`, - description: `These files haven't been made available.`, - }, - { - title: 'Alternate Covers', - description: 'This is just an example description.', - files: [ - 'Homestuck_Vol4_alt1.jpg', - 'Homestuck_Vol4_alt2.jpg', - 'Homestuck_Vol4_alt3.jpg', - ], - }, - ], - ], - }); - } catch (error) { - console.log(error); - } -}); diff --git a/test/snapshot/generateAlbumCoverArtwork.js b/test/snapshot/generateAlbumCoverArtwork.js deleted file mode 100644 index 939c6e19..00000000 --- a/test/snapshot/generateAlbumCoverArtwork.js +++ /dev/null @@ -1,37 +0,0 @@ -import t from 'tap'; - -import contentFunction from '#content-function'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'generateAlbumCoverArtwork (snapshot)', async (t, evaluate) => { - await evaluate.load({ - mock: { - image: evaluate.stubContentFunction('image'), - }, - }); - - const album = { - directory: 'bee-forus-seatbelt-safebee', - coverArtFileExtension: 'png', - coverArtDimensions: [400, 300], - color: '#f28514', - artTags: [ - {name: 'Damara', directory: 'damara', isContentWarning: false}, - {name: 'Cronus', directory: 'cronus', isContentWarning: false}, - {name: 'Bees', directory: 'bees', isContentWarning: false}, - {name: 'creepy crawlies', isContentWarning: true}, - ], - }; - - evaluate.snapshot('display: primary', { - name: 'generateAlbumCoverArtwork', - args: [album], - slots: {mode: 'primary'}, - }); - - evaluate.snapshot('display: thumbnail', { - name: 'generateAlbumCoverArtwork', - args: [album], - slots: {mode: 'thumbnail'}, - }); -}); diff --git a/test/snapshot/generateAlbumReleaseInfo.js b/test/snapshot/generateAlbumReleaseInfo.js index a109912f..f41e502d 100644 --- a/test/snapshot/generateAlbumReleaseInfo.js +++ b/test/snapshot/generateAlbumReleaseInfo.js @@ -8,22 +8,22 @@ testContentFunctions(t, 'generateAlbumReleaseInfo (snapshot)', async (t, evaluat name: 'generateAlbumReleaseInfo', args: [{ artistContribs: [ - {artist: {name: 'Toby Fox', directory: 'toby-fox', urls: null}, annotation: 'music probably'}, + {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: null}, annotation: null}, + {artist: {name: 'Hanni Brosh', directory: 'hb', urls: []}, annotation: null}, ], wallpaperArtistContribs: [ - {artist: {name: 'Hanni Brosh', directory: 'hb', urls: null}, annotation: null}, - {artist: {name: 'Niklink', directory: 'niklink', urls: null}, annotation: 'edits'}, + {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: null}, annotation: null}, - {artist: {name: 'Niklink', directory: 'niklink', urls: null}, annotation: 'edits'}, + {artist: {name: 'Hanni Brosh', directory: 'hb', urls: []}, annotation: null}, + {artist: {name: 'Niklink', directory: 'niklink', urls: []}, annotation: 'edits'}, ], name: 'AlterniaBound', diff --git a/test/snapshot/generateAlbumSecondaryNav.js b/test/snapshot/generateAlbumSecondaryNav.js index 57618f2f..2495bc4a 100644 --- a/test/snapshot/generateAlbumSecondaryNav.js +++ b/test/snapshot/generateAlbumSecondaryNav.js @@ -4,10 +4,21 @@ import {testContentFunctions} from '#test-lib'; testContentFunctions(t, 'generateAlbumSecondaryNav (snapshot)', async (t, evaluate) => { await evaluate.load(); - let album, group1, group2; + let album, anotherAlbum, group1, group2; - group1 = {name: 'VCG', directory: 'vcg', color: '#abcdef'}; - group2 = {name: 'Bepis', directory: 'bepis', color: '#123456'}; + group1 = { + name: 'VCG', + directory: 'vcg', + color: '#abcdef', + serieses: [], + }; + + group2 = { + name: 'Bepis', + directory: 'bepis', + color: '#123456', + serieses: [], + }; album = { name: 'Album', @@ -16,15 +27,37 @@ testContentFunctions(t, 'generateAlbumSecondaryNav (snapshot)', async (t, evalua 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')}, + { + name: 'First', + directory: 'first', + date: new Date('2010-04-10'), + }, album, - {name: 'Last', directory: 'last', date: new Date('2010-06-12')}, + anotherAlbum, + ]; + + group1.serieses = [ + { + name: 'Series', + albums: [album, anotherAlbum], + group: group1, + }, ]; group2.albums = [ album, - {name: 'Second', directory: 'second', date: new Date('2011-04-13')}, + { + name: 'Second', + directory: 'second', + date: new Date('2011-04-13'), + }, ]; evaluate.snapshot('basic behavior, mode: album', { diff --git a/test/snapshot/generateAlbumTrackList.js b/test/snapshot/generateAlbumTrackList.js index 08b31902..e09f1c4a 100644 --- a/test/snapshot/generateAlbumTrackList.js +++ b/test/snapshot/generateAlbumTrackList.js @@ -6,17 +6,20 @@ testContentFunctions(t, 'generateAlbumTrackList (snapshot)', async (t, evaluate) mock: { generateAlbumTrackListMissingDuration: evaluate.stubContentFunction('generateAlbumTrackListMissingDuration'), + + image: + evaluate.stubContentFunction('image'), }, }); const contribs1 = [ - {artist: {name: 'Apricot', directory: 'apricot', urls: null}}, + {artist: {name: 'Apricot', directory: 'apricot', urls: []}}, ]; const contribs2 = [ - {artist: {name: 'Apricot', directory: 'apricot', urls: null}}, + {artist: {name: 'Apricot', directory: 'apricot', urls: []}}, {artist: {name: 'Peach', directory: 'peach', urls: ['https://peach.bandcamp.com/']}}, - {artist: {name: 'Cerise', directory: 'cerise', urls: null}}, + {artist: {name: 'Cerise', directory: 'cerise', urls: []}}, ]; const color1 = '#fb07ff'; @@ -46,6 +49,16 @@ testContentFunctions(t, 'generateAlbumTrackList (snapshot)', async (t, evaluate) 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, @@ -63,6 +76,11 @@ testContentFunctions(t, 'generateAlbumTrackList (snapshot)', async (t, evaluate) args: [albumWithoutTrackSections], }); + evaluate.snapshot(`basic behavior, with descriptions`, { + name: 'generateAlbumTrackList', + args: [albumWithTrackSectionDescriptions], + }); + evaluate.snapshot(`collapseDurationScope: never`, { name: 'generateAlbumTrackList', slots: {collapseDurationScope: 'never'}, diff --git a/test/snapshot/generateCoverArtwork.js b/test/snapshot/generateCoverArtwork.js deleted file mode 100644 index e35dd8d0..00000000 --- a/test/snapshot/generateCoverArtwork.js +++ /dev/null @@ -1,31 +0,0 @@ -import t from 'tap'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'generateCoverArtwork (snapshot)', async (t, evaluate) => { - await evaluate.load({ - mock: { - image: evaluate.stubContentFunction('image', {mock: true}), - }, - }); - - const artTags = [ - {name: 'Damara', directory: 'damara', isContentWarning: false}, - {name: 'Cronus', directory: 'cronus', isContentWarning: false}, - {name: 'Bees', directory: 'bees', isContentWarning: false}, - {name: 'creepy crawlies', isContentWarning: true}, - ]; - - const path = ['media.albumCover', 'bee-forus-seatbelt-safebee', 'png']; - - evaluate.snapshot('display: primary', { - name: 'generateCoverArtwork', - args: [artTags], - slots: {path, mode: 'primary'}, - }); - - evaluate.snapshot('display: thumbnail', { - name: 'generateCoverArtwork', - args: [artTags], - slots: {path, mode: 'thumbnail'}, - }); -}); diff --git a/test/snapshot/generatePreviousNextLinks.js b/test/snapshot/generatePreviousNextLinks.js deleted file mode 100644 index 0d952f59..00000000 --- a/test/snapshot/generatePreviousNextLinks.js +++ /dev/null @@ -1,35 +0,0 @@ -import t from 'tap'; -import * as html from '#html'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'generatePreviousNextLinks (snapshot)', async (t, evaluate) => { - await evaluate.load(); - - const quickSnapshot = (message, slots) => - evaluate.snapshot(message, { - name: 'generatePreviousNextLinks', - slots, - postprocess: template => template.content.join('\n'), - }); - - quickSnapshot('basic behavior', { - previousLink: evaluate.stubTemplate('previous'), - nextLink: evaluate.stubTemplate('next'), - }); - - quickSnapshot('previous missing', { - nextLink: evaluate.stubTemplate('next'), - }); - - quickSnapshot('next missing', { - previousLink: evaluate.stubTemplate('previous'), - }); - - quickSnapshot('neither link present', {}); - - quickSnapshot('disable id', { - previousLink: evaluate.stubTemplate('previous'), - nextLink: evaluate.stubTemplate('next'), - id: false, - }); -}); diff --git a/test/snapshot/generateTrackAdditionalNamesBox.js b/test/snapshot/generateTrackAdditionalNamesBox.js deleted file mode 100644 index 9c1e3598..00000000 --- a/test/snapshot/generateTrackAdditionalNamesBox.js +++ /dev/null @@ -1,107 +0,0 @@ -import t from 'tap'; - -import contentFunction from '#content-function'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'generateTrackAdditionalNamesBox (snapshot)', async (t, evaluate) => { - await evaluate.load({ - mock: { - generateAdditionalNamesBox: - evaluate.stubContentFunction('generateAdditionalNamesBox'), - }, - }); - - const stubTrack = { - additionalNames: [], - sharedAdditionalNames: [], - inferredAdditionalNames: [], - }; - - const quickSnapshot = (message, trackProperties) => - evaluate.snapshot(message, { - name: 'generateTrackAdditionalNamesBox', - args: [{...stubTrack, ...trackProperties}], - }); - - quickSnapshot(`no additional names`, {}); - - quickSnapshot(`own additional names only`, { - additionalNames: [ - {name: `Foo Bar`, annotation: `the Alps`}, - ], - }); - - quickSnapshot(`shared additional names only`, { - sharedAdditionalNames: [ - {name: `Bar Foo`, annotation: `the Rockies`}, - ], - }); - - quickSnapshot(`inferred additional names only`, { - inferredAdditionalNames: [ - {name: `Baz Baz`, from: [{directory: `the-pyrenees`}]}, - ], - }); - - quickSnapshot(`multiple own`, { - additionalNames: [ - {name: `Apple Time!`}, - {name: `Pterodactyl Time!`}, - {name: `Banana Time!`}, - ], - }); - - quickSnapshot(`own and shared, some overlap`, { - additionalNames: [ - {name: `weed dreams..`, annotation: `own annotation`}, - {name: `夜間のMOON汗`, annotation: `own annotation`}, - ], - sharedAdditionalNames: [ - {name: `weed dreams..`, annotation: `shared annotation`}, - {name: `GAMINGブラザー96`, annotation: `shared annotation`}, - ], - }); - - quickSnapshot(`shared and inferred, some overlap`, { - sharedAdditionalNames: [ - {name: `Coruscate`, annotation: `shared annotation`}, - {name: `Arbroath`, annotation: `shared annotation`}, - ], - inferredAdditionalNames: [ - {name: `Arbroath`, from: [{directory: `inferred-from`}]}, - {name: `Prana Ferox`, from: [{directory: `inferred-from`}]}, - ], - }); - - quickSnapshot(`own and inferred, some overlap`, { - additionalNames: [ - {name: `Ke$halo Strike Back`, annotation: `own annotation`}, - {name: `Ironic Mania`, annotation: `own annotation`}, - ], - inferredAdditionalNames: [ - {name: `Ironic Mania`, from: [{directory: `inferred-from`}]}, - {name: `ANARCHY::MEGASTRIFE`, from: [{directory: `inferred-from`}]}, - ], - }); - - quickSnapshot(`own and shared and inferred, various overlap`, { - additionalNames: [ - {name: `Own!`, annotation: `own annotation`}, - {name: `Own! Shared!`, annotation: `own annotation`}, - {name: `Own! Inferred!`, annotation: `own annotation`}, - {name: `Own! Shared! Inferred!`, annotation: `own annotation`}, - ], - sharedAdditionalNames: [ - {name: `Shared!`, annotation: `shared annotation`}, - {name: `Own! Shared!`, annotation: `shared annotation`}, - {name: `Shared! Inferred!`, annotation: `shared annotation`}, - {name: `Own! Shared! Inferred!`, annotation: `shared annotation`}, - ], - inferredAdditionalNames: [ - {name: `Inferred!`, from: [{directory: `inferred-from`}]}, - {name: `Own! Inferred!`, from: [{directory: `inferred-from`}]}, - {name: `Shared! Inferred!`, from: [{directory: `inferred-from`}]}, - {name: `Own! Shared! Inferred!`, from: [{directory: `inferred-from`}]}, - ], - }); -}); diff --git a/test/snapshot/generateTrackCoverArtwork.js b/test/snapshot/generateTrackCoverArtwork.js deleted file mode 100644 index 4d952119..00000000 --- a/test/snapshot/generateTrackCoverArtwork.js +++ /dev/null @@ -1,63 +0,0 @@ -import t from 'tap'; -import {testContentFunctions} from '#test-lib'; - -testContentFunctions(t, 'generateTrackCoverArtwork (snapshot)', async (t, evaluate) => { - await evaluate.load({ - mock: { - image: evaluate.stubContentFunction('image'), - }, - }); - - const album = { - directory: 'bee-forus-seatbelt-safebee', - coverArtFileExtension: 'png', - coverArtDimensions: [400, 300], - artTags: [ - {name: 'Damara', directory: 'damara', isContentWarning: false}, - {name: 'Cronus', directory: 'cronus', isContentWarning: false}, - {name: 'Bees', directory: 'bees', isContentWarning: false}, - {name: 'creepy crawlies', isContentWarning: true}, - ], - }; - - const track1 = { - directory: 'beesmp3', - hasUniqueCoverArt: true, - coverArtFileExtension: 'jpg', - coverArtDimensions: null, - color: '#f28514', - artTags: [{name: 'Bees', directory: 'bees', isContentWarning: false}], - album, - }; - - const track2 = { - directory: 'fake-bonus-track', - hasUniqueCoverArt: false, - color: '#abcdef', - album, - }; - - evaluate.snapshot('display: primary - unique art', { - name: 'generateTrackCoverArtwork', - args: [track1], - slots: {mode: 'primary'}, - }); - - evaluate.snapshot('display: thumbnail - unique art', { - name: 'generateTrackCoverArtwork', - args: [track1], - slots: {mode: 'thumbnail'}, - }); - - evaluate.snapshot('display: primary - no unique art', { - name: 'generateTrackCoverArtwork', - args: [track2], - slots: {mode: 'primary'}, - }); - - evaluate.snapshot('display: thumbnail - no unique art', { - name: 'generateTrackCoverArtwork', - args: [track2], - slots: {mode: 'thumbnail'}, - }); -}); diff --git a/test/snapshot/generateTrackReleaseInfo.js b/test/snapshot/generateTrackReleaseInfo.js index 78f0fee7..931377c8 100644 --- a/test/snapshot/generateTrackReleaseInfo.js +++ b/test/snapshot/generateTrackReleaseInfo.js @@ -4,8 +4,8 @@ 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: null}, annotation: null}]; - const coverArtistContribs = [{artist: {name: 'Alpaca', directory: 'alpaca', urls: null}, annotation: '🔥'}]; + 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', diff --git a/test/snapshot/linkContribution.js b/test/snapshot/linkContribution.js index 1043ddc6..47ef1503 100644 --- a/test/snapshot/linkContribution.js +++ b/test/snapshot/linkContribution.js @@ -33,53 +33,22 @@ testContentFunctions(t, 'linkContribution (snapshot)', async (t, evaluate) => { slots, }); - quickSnapshot('showContribution & showIcons (inline)', { - showContribution: true, - showIcons: true, - iconMode: 'inline', + quickSnapshot('showAnnotation & showExternalLinks', { + showAnnotation: true, + showExternalLinks: true, }); - quickSnapshot('showContribution & showIcons (tooltip)', { - showContribution: true, - showIcons: true, - iconMode: 'tooltip', + quickSnapshot('only showAnnotation', { + showAnnotation: true, }); - quickSnapshot('only showContribution', { - showContribution: true, - }); - - quickSnapshot('only showIcons (inline)', { - showIcons: true, - iconMode: 'inline', - }); - - quickSnapshot('only showIcons (tooltip)', { - showContribution: true, - showIcons: true, - iconMode: 'tooltip', + quickSnapshot('only showExternalLinks', { + showExternalLinks: true, }); quickSnapshot('no accents', {}); - evaluate.snapshot('loads of links (inline)', { - 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: {showIcons: true}, - }); - - evaluate.snapshot('loads of links (tooltip)', { + evaluate.snapshot('loads of links', { name: 'linkContribution', args: [ {artist: {name: 'Lorem Ipsum Lover', directory: 'lorem-ipsum-lover', urls: [ @@ -93,12 +62,12 @@ testContentFunctions(t, 'linkContribution (snapshot)', async (t, evaluate) => { 'https://loremipsum.io/#original-source', ]}, annotation: null}, ], - slots: {showIcons: true, iconMode: 'tooltip'}, + slots: {showExternalLinks: true}, }); quickSnapshot('no preventWrapping', { - showContribution: true, - showIcons: true, + showAnnotation: true, + showExternalLinks: true, preventWrapping: false, }); }); diff --git a/test/snapshot/linkThing.js b/test/snapshot/linkThing.js index 502db6d7..9b5cff33 100644 --- a/test/snapshot/linkThing.js +++ b/test/snapshot/linkThing.js @@ -20,7 +20,7 @@ testContentFunctions(t, 'linkThing (snapshot)', async (t, evaluate) => { }); quickSnapshot('preferShortName', { - args: ['localized.tag', { + args: ['localized.artTagGallery', { directory: 'five-oceanfalls', name: 'Five (Oceanfalls)', nameShort: 'Five', diff --git a/test/snapshot/transformContent.js b/test/snapshot/transformContent.js index 87e337e4..63391681 100644 --- a/test/snapshot/transformContent.js +++ b/test/snapshot/transformContent.js @@ -156,6 +156,16 @@ testContentFunctions(t, 'transformContent (snapshot)', async (t, evaluate) => { `[[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 }); |