diff --git a/src/js/search.js b/src/js/search.js index a1834ef..b2424a4 100644 --- a/src/js/search.js +++ b/src/js/search.js @@ -1,6 +1,7 @@ import { cloneObject, getIndicesOf } from "../helpers"; import removeDiacritics from "./StackOverflow/removeDiacritics"; import { renderWords } from "./render/words"; +import { translateOrthography, parseReferences } from "./wordManagement"; export function showSearchModal() { document.getElementById('searchModal').style.display = 'block'; @@ -22,6 +23,7 @@ export function getSearchFilters() { caseSensitive: document.getElementById('searchCaseSensitive').checked, ignoreDiacritics: document.getElementById('searchIgnoreDiacritics').checked, exact: document.getElementById('searchExactWords').checked, + orthography: document.getElementById('searchOrthography').checked, name: document.getElementById('searchIncludeName').checked, definition: document.getElementById('searchIncludeDefinition').checked, details: document.getElementById('searchIncludeDetails').checked, @@ -53,11 +55,13 @@ export function getMatchingSearchWords() { }).filter(word => { searchTerm = filters.ignoreDiacritics ? removeDiacritics(searchTerm) : searchTerm; searchTerm = filters.caseSensitive ? searchTerm : searchTerm.toLowerCase(); - let name = filters.ignoreDiacritics ? removeDiacritics(word.name) : word.name; + let name = filters.orthography ? translateOrthography(word.name) : word.name; + name = filters.ignoreDiacritics ? removeDiacritics(name) : name; name = filters.caseSensitive ? name : name.toLowerCase(); let definition = filters.ignoreDiacritics ? removeDiacritics(word.definition) : word.definition; definition = filters.caseSensitive ? definition : definition.toLowerCase(); - let details = filters.ignoreDiacritics ? removeDiacritics(word.details) : word.details; + let details = filters.orthography ? parseReferences(word.details) : word.details; + details = filters.ignoreDiacritics ? removeDiacritics(details) : details; details = filters.caseSensitive ? details : details.toLowerCase(); const isInName = filters.name && (filters.exact @@ -80,6 +84,10 @@ export function highlightSearchTerm(word) { if (searchTerm) { const filters = getSearchFilters(); const markedUpWord = cloneObject(word); + if (filters.orthography) { + markedUpWord.name = translateOrthography(markedUpWord.name); + markedUpWord.details = parseReferences(markedUpWord.details); + } if (filters.ignoreDiacritics) { const searchTermLength = searchTerm.length; searchTerm = removeDiacritics(searchTerm); diff --git a/template-index.html b/template-index.html index d36e001..9202c9a 100644 --- a/template-index.html +++ b/template-index.html @@ -81,6 +81,9 @@ +