..
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 | const searchBox = document.getElementById('searchBox');
const results = document.getElementById('results');
const natural = require('natural');
const wordnet = new natural.WordNet();
document.addEventListener('click', event => {
if (event.target.className === 'synonymLink') {
const word = event.target.innerHTML;
searchBox.value = word;
searchForWord(word);
}
});
searchBox.addEventListener('keypress', (e) => {
if (e.keyCode === 13) {
const word = searchBox.value;
searchForWord(word);
}
});
function searchForWord(word) {
results.innerHTML = '';
wordnet.lookup(word, details => {
details.forEach(detail => {
let pos = '';
switch (detail.pos) {
case 'n':
pos = 'noun';
break;
case 'v':
pos = 'verb';
break;
case 'a':
pos = 'adjective';
break;
case 's':
pos = 'adjective';
break;
case 'r':
pos = 'adverb';
break;
default:
pos = '';
break;
}
const wordType = document.createElement('p');
wordType.innerHTML = pos;
wordType.className = 'wordType';
results.appendChild(wordType);
const definition = document.createElement('p');
definition.innerHTML = detail.def;
definition.className = 'definition';
results.appendChild(definition);
if (detail.synonyms.length) {
const synonymText = document.createTextNode('Synonyms: ');
const synonymParagraph = document.createElement('p');
synonymParagraph.appendChild(synonymText);
detail.synonyms.forEach(synonym => {
const currentSynonym = document.createElement('a');
currentSynonym.innerHTML = synonym;
currentSynonym.className = 'synonymLink';
synonymParagraph.appendChild(currentSynonym);
const spacer = document.createTextNode(' ');
synonymParagraph.appendChild(spacer);
});
synonymParagraph.className = 'synonym'
results.appendChild(synonymParagraph);
}
detail.exp.forEach(example => {
const currentExample = document.createElement('p');
currentExample.innerHTML = example;
currentExample.className = 'example';
results.appendChild(currentExample);
});
const divider = document.createElement('div');
divider.className = 'divider';
results.appendChild(divider);
});
});
}
|
|