diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-06-12 03:12:25 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-06-13 12:09:07 +0200 |
commit | 7ee9a976548a290735bb9191c7541c3229d01926 (patch) | |
tree | f84787b0360ce9fcbc8901d6cb86704222c54b9b /static/formatters.ts | |
parent | Escape some unicode in initial xhtml output. (diff) | |
download | calp-7ee9a976548a290735bb9191c7541c3229d01926.tar.gz calp-7ee9a976548a290735bb9191c7541c3229d01926.tar.xz |
Ensure datetime gets set for generated time tags.
Diffstat (limited to '')
-rw-r--r-- | static/formatters.ts | 33 |
1 files 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<string, (e : HTMLElement, s : any) => void>; + formatters: Map<string, (e: HTMLElement, s: any) => void>; } } -let formatters : Map<string, (e : HTMLElement, s : any) => void>; +let formatters: Map<string, (e: HTMLElement, s: any) => 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)) { |