From 7ee9a976548a290735bb9191c7541c3229d01926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sun, 12 Jun 2022 03:12:25 +0200 Subject: Ensure datetime gets set for generated time tags. --- static/formatters.ts | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/static/formatters.ts b/static/formatters.ts index 828a0e8b..70f63504 100644 --- a/static/formatters.ts +++ b/static/formatters.ts @@ -6,11 +6,11 @@ import { makeElement } from './lib' declare global { interface Window { - formatters : Map void>; + formatters: Map void>; } } -let formatters : Map void>; +let formatters: Map void>; formatters = window.formatters = new Map(); @@ -18,13 +18,34 @@ formatters.set('categories', (el, d) => { for (let item of d) { let q = encodeURIComponent( `(member "${item}" (or (prop event (quote CATEGORIES)) (quote ())))`) - el.appendChild(makeElement('a', { - textContent: item, - href: `/search/?q=${q}`, - })) + el.appendChild(makeElement('a', { + textContent: item, + href: `/search/?q=${q}`, + })) } }) +function format_time_tag(el: HTMLElement, d: any): void { + if (el instanceof HTMLTimeElement) { + if (d instanceof Date) { + let fmt = ''; + if (!d.utc) { + fmt += '~L'; + } + fmt += '~Y-~m-~d' + if (!d.dateonly) { + fmt += 'T~H:~M:~S' + } + el.dateTime = d.format(fmt); + } + } + + formatters.get('default')!(el, d); +} + +formatters.set('dtstart', format_time_tag) +formatters.set('dtend', format_time_tag) + formatters.set('default', (el, d) => { let fmt; if ((fmt = el.dataset.fmt)) { -- cgit v1.2.3