« get me outta code hell

content: generatePageBanner -> generateBanner - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateBanner.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-06-15 16:58:33 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-06-15 16:58:33 -0300
commite8be35c86308eaf66fb40da311d3e1ed54662a0a (patch)
treef83a13f17e8f541cbbf0ea71f96cf4ac05d4c687 /src/content/dependencies/generateBanner.js
parent6389af975c93f2c35ba21636cc697251fea580d6 (diff)
content: generatePageBanner -> generateBanner
Diffstat (limited to 'src/content/dependencies/generateBanner.js')
-rw-r--r--src/content/dependencies/generateBanner.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/content/dependencies/generateBanner.js b/src/content/dependencies/generateBanner.js
new file mode 100644
index 0000000..835140a
--- /dev/null
+++ b/src/content/dependencies/generateBanner.js
@@ -0,0 +1,28 @@
+export default {
+  extraDependencies: ['html', 'to'],
+
+  slots: {
+    path: {
+      validate: v => v.validateArrayItems(v.isString),
+    },
+
+    dimensions: {
+      validate: v => v.isDimensions,
+    },
+
+    alt: {
+      type: 'string',
+    },
+  },
+
+  generate(slots, {html, to}) {
+    return (
+      html.tag('div', {id: 'banner'},
+        html.tag('img', {
+          src: to(...slots.path),
+          alt: slots.alt,
+          width: slots.dimensions?.[0] ?? 1100,
+          height: slots.dimensions?.[1] ?? 200,
+        })));
+  },
+};