From 48dde4a388fd4c31dd5680f7535419874124e554 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 25 Jul 2024 16:35:02 -0300 Subject: wip --- src/content/dependencies/generateLyricsSwitcher.js | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/content/dependencies/generateLyricsSwitcher.js (limited to 'src/content/dependencies/generateLyricsSwitcher.js') diff --git a/src/content/dependencies/generateLyricsSwitcher.js b/src/content/dependencies/generateLyricsSwitcher.js new file mode 100644 index 00000000..1c9ee6a3 --- /dev/null +++ b/src/content/dependencies/generateLyricsSwitcher.js @@ -0,0 +1,49 @@ +export default { + contentDependencies: ['transformContent'], + extraDependencies: ['html', 'language'], + + relations: (relation, entries) => ({ + annotations: + entries + .map(entry => entry.annotation) + .map(annotation => relation('transformContent', annotation)), + }), + + slots: { + tag: {type: 'string', default: 'p'}, + }, + + generate: (relations, slots, {html, language}) => + html.tag(slots.tag, {class: 'lyrics-switcher'}, + language.$('releaseInfo.lyrics.switcher', { + entries: + language.formatListWithoutSeparator( + relations.annotations + .map((annotation, index) => + html.tag('span', {[html.joinChildren]: ''}, [ + html.tag('a', + {href: '#'}, + + index === 0 && + {style: 'display: none'}, + + annotation + .slots({ + mode: 'inline', + textOnly: true, + })), + + html.tag('a', + {class: 'current'}, + + index >= 1 && + {style: 'display: none'}, + + annotation + .slots({ + mode: 'inline', + textOnly: true, + })), + ]))), + })), +}; -- cgit 1.3.0-6-gf8a5