-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgendy.js
26 lines (22 loc) · 966 Bytes
/
gendy.js
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
const GENDY_QUERY = '.gendy span:not([class]), .g';
function gendyInit(defaultVariant) {
gendyOnElements(GENDY_QUERY, element => {
[element.dataset.first, element.dataset.second, element.dataset.third=''] = element.textContent.split('|')
element.dataset.y = ['y', 'ys'].includes(element.dataset.third) ? element.dataset.first + element.dataset.third : element.dataset.third
})
gendySetVariant(defaultVariant)
}
function gendySetVariant(variant) {
gendyOnElements(GENDY_QUERY, element => {
element.textContent = gendyGetTextContent(element, variant)
});
}
function gendyGetTextContent(element, variant) {
if(variant=='y') return element.dataset.y
return element.dataset.second == '' ? element.dataset.first : element.dataset.first + variant + element.dataset.second
}
function gendyOnElements(classnames, closure) {
for(element of document.querySelectorAll(classnames)) {
closure(element)
}
}