diff options
Diffstat (limited to 'static/formatters.ts')
-rw-r--r-- | static/formatters.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/static/formatters.ts b/static/formatters.ts new file mode 100644 index 00000000..828a0e8b --- /dev/null +++ b/static/formatters.ts @@ -0,0 +1,35 @@ +export { + formatters, +} + +import { makeElement } from './lib' + +declare global { + interface Window { + formatters : Map<string, (e : HTMLElement, s : any) => void>; + } +} + +let formatters : Map<string, (e : HTMLElement, s : any) => void>; +formatters = window.formatters = new Map(); + + +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}`, + })) + } +}) + +formatters.set('default', (el, d) => { + let fmt; + if ((fmt = el.dataset.fmt)) { + el.textContent = d.format(fmt); + } else { + el.textContent = d; + } +}) |