aboutsummaryrefslogtreecommitdiff
path: root/static/formatters.ts
blob: 828a0e8b31fac470f904fc4abdb8175020335a76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;
    }
})