diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-11-24 14:56:10 -0400 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-11-24 14:56:10 -0400 |
commit | ca30b07b9e116f6d42d6ea6a2623e1500c289383 (patch) | |
tree | 64a65bbff14b09c914743c15f0e17d26bd27b87c /src/content/dependencies/generateAdditionalNamesBox.js | |
parent | 9e00e7770e5c3987b6a6a1437d79a38ff57115b9 (diff) | |
parent | bad238355e19c4fef5e5f3b41df88fa9b1b84aaa (diff) |
Merge branch 'additional-names' into preview
Diffstat (limited to 'src/content/dependencies/generateAdditionalNamesBox.js')
-rw-r--r-- | src/content/dependencies/generateAdditionalNamesBox.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/content/dependencies/generateAdditionalNamesBox.js b/src/content/dependencies/generateAdditionalNamesBox.js new file mode 100644 index 00000000..f7fa3b00 --- /dev/null +++ b/src/content/dependencies/generateAdditionalNamesBox.js @@ -0,0 +1,48 @@ +import {stitchArrays} from '#sugar'; + +export default { + contentDependencies: ['transformContent'], + extraDependencies: ['html', 'language'], + + relations: (relation, additionalNames) => ({ + names: + additionalNames.map(({name}) => + relation('transformContent', name)), + + annotations: + additionalNames.map(({annotation}) => + (annotation + ? relation('transformContent', annotation) + : null)), + }), + + generate: (relations, {html, language}) => { + const names = + relations.names.map(name => + html.tag('span', {class: 'additional-name'}, + name.slot('mode', 'inline'))); + + const annotations = + relations.annotations.map(annotation => + (annotation + ? html.tag('span', {class: 'annotation'}, + language.$('misc.additionalNames.item.annotation', { + annotation: + annotation.slot('mode', 'inline'), + })) + : null)); + + return html.tag('div', {id: 'additional-names-box'}, [ + html.tag('p', + language.$('misc.additionalNames.title')), + + html.tag('ul', + stitchArrays({name: names, annotation: annotations}) + .map(({name, annotation}) => + html.tag('li', + (annotation + ? language.$('misc.additionalNames.item.withAnnotation', {name, annotation}) + : language.$('misc.additionalNames.item', {name}))))), + ]); + }, +}; |