diff options
| author | Kumar Priyansh <[email protected]> | 2020-08-31 01:39:52 +0530 |
|---|---|---|
| committer | Kumar Priyansh <[email protected]> | 2020-08-31 01:39:52 +0530 |
| commit | 276016cb8582cdee63d10f4e7e6dfe2ba2af6a30 (patch) | |
| tree | afc988599de6a5f40207037ca8c4534bf48d77d6 /app | |
| parent | 3a660d4bb6e70afb7dd5baa8ecb81fd4213f38de (diff) | |
| download | dictionary-276016cb8582cdee63d10f4e7e6dfe2ba2af6a30.tar.xz dictionary-276016cb8582cdee63d10f4e7e6dfe2ba2af6a30.zip | |
Added capabitlity to search with synonyms
Diffstat (limited to 'app')
| -rw-r--r-- | app/scripts/search.js | 123 |
1 files changed, 67 insertions, 56 deletions
diff --git a/app/scripts/search.js b/app/scripts/search.js index 23479c6..76dc8f8 100644 --- a/app/scripts/search.js +++ b/app/scripts/search.js @@ -3,70 +3,81 @@ 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) { - results.innerHTML = ''; const word = searchBox.value; - wordnet.lookup(word, details => { - console.log(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); + searchForWord(word); + } +}); - const definition = document.createElement('p'); - definition.innerHTML = detail.def; - definition.className = 'definition'; - results.appendChild(definition); +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; + } - if (detail.synonyms.length) { - const synonymText = document.createTextNode('Synonyms: '); - const synonymParagraph = document.createElement('p'); - synonymParagraph.appendChild(synonymText); + const wordType = document.createElement('p'); + wordType.innerHTML = pos; + wordType.className = 'wordType'; + results.appendChild(wordType); - 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); - }); + const definition = document.createElement('p'); + definition.innerHTML = detail.def; + definition.className = 'definition'; + results.appendChild(definition); - synonymParagraph.className = 'synonym' - results.appendChild(synonymParagraph); - } + if (detail.synonyms.length) { + const synonymText = document.createTextNode('Synonyms: '); + const synonymParagraph = document.createElement('p'); + synonymParagraph.appendChild(synonymText); - detail.exp.forEach(example => { - const currentExample = document.createElement('p'); - currentExample.innerHTML = example; - currentExample.className = 'example'; - results.appendChild(currentExample); + 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); }); }); - } -}); + }); +} |
