light.css: tools/stripcss base.css
$(call cmdsave,$^)
-word: data/wordlist.en.json data/wordlist.nl.json data/wordlist.ru.json
+word: word/put.js data/wordlist.en.json data/wordlist.nl.json data/wordlist.ru.json
+
+word/put.js: $(download)
+ tools/wget-ifmodified https://github.com/kriszyp/put-selector/raw/master/put.js $@
data/DerivedAge.txt: $(download)
tools/wget-ifmodified http://www.unicode.org/Public/UNIDATA/$(@F) $@
next: () => {
let word = quiz.words.shift();
- let question = document.createElement('img');
- question.src = `/data/word/en/${word[0]}.jpg`;
- question.style.maxWidth = '50%';
+ let form = put(quiz.form,
+ 'img[src=$]+ul', `/data/word/en/${word[0]}.jpg`,
+ );
let answers = [word[2], quiz.words[1][2], quiz.words[2][2], quiz.words[3][2]]
.sort(() => {return .5 - Math.random()}) // shuffle
- let form = document.createElement('ul');
answers.forEach(suggest => {
- let option = document.createElement('li');
- option.onclick = () => {
+ let option = put(form, 'li', suggest, {onclick: () => {
if (suggest != word[2]) {
// incorrect
- option.classList.add('wrong');
+ put(option, '.wrong');
return;
}
- option.classList.add('good');
+ put(option, '.good');
window.setTimeout(quiz.next, 500);
- };
- option.append(suggest);
- form.append(option);
+ }});
});
- quiz.form.append(question, form);
},
setup: () => {