« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content/dependencies/generateDatetimestampTemplate.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/dependencies/generateDatetimestampTemplate.js')
-rw-r--r--src/content/dependencies/generateDatetimestampTemplate.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/content/dependencies/generateDatetimestampTemplate.js b/src/content/dependencies/generateDatetimestampTemplate.js
new file mode 100644
index 0000000..d9ed036
--- /dev/null
+++ b/src/content/dependencies/generateDatetimestampTemplate.js
@@ -0,0 +1,38 @@
+export default {
+  contentDependencies: ['generateTextWithTooltip'],
+  extraDependencies: ['html'],
+
+  relations: (relation) => ({
+    textWithTooltip:
+      relation('generateTextWithTooltip'),
+  }),
+
+  slots: {
+    mainContent: {
+      type: 'html',
+      mutable: false,
+    },
+
+    tooltip: {
+      type: 'html',
+      mutable: true,
+    },
+
+    datetime: {type: 'string'},
+  },
+
+  generate: (relations, slots, {html}) =>
+    relations.textWithTooltip.slots({
+      attributes: {class: 'datetimestamp'},
+
+      text:
+        html.tag('time',
+          {datetime: slots.datetime},
+          slots.mainContent),
+
+      tooltip:
+        slots.tooltip?.slots({
+          attributes: [{class: 'datetimestamp-tooltip'}],
+        }),
+    }),
+};