diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-10-02 19:34:53 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2024-06-18 22:56:10 -0300 |
commit | 8d175b6dddd3502e379e79cdaa348ee725398a8e (patch) | |
tree | 0be09e98d4c35b1fdf815b01ec32bfb5aa8c5589 /src/content/dependencies/generateQuickDescription.js | |
parent | 113d63482157dea70f1615f40f3cc8fd43ddd8bf (diff) |
content: generateQuickDescription
Diffstat (limited to 'src/content/dependencies/generateQuickDescription.js')
-rw-r--r-- | src/content/dependencies/generateQuickDescription.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/content/dependencies/generateQuickDescription.js b/src/content/dependencies/generateQuickDescription.js new file mode 100644 index 00000000..3dadfbcf --- /dev/null +++ b/src/content/dependencies/generateQuickDescription.js @@ -0,0 +1,41 @@ +export default { + contentDependencies: ['transformContent'], + extraDependencies: ['html', 'language'], + + relations: (relation, thing) => + ({description: + (thing.descriptionShort || thing.description + ? relation('transformContent', + thing.descriptionShort ?? thing.description) + : null)}), + + data: (thing) => + ({hasLongerDescription: + thing.description && + thing.descriptionShort && + thing.descriptionShort !== thing.description}), + + slots: { + infoPageLink: { + type: 'html', + mutable: true, + }, + }, + + generate: (data, relations, slots, {html, language}) => + html.tag('p', {class: 'quick-info'}, + {[html.joinChildren]: html.tag('br')}, + {[html.onlyIfContent]: true}, + + [ + relations.description?.slot('mode', 'inline'), + + data.hasLongerDescription && + slots.infoPageLink && + language.$('misc.quickDescription.moreInfo', { + link: + slots.infoPageLink + .slot('content', language.$('misc.quickDescription.moreInfo.link')), + }), + ]), +}; |