diff options
author | weru <onewesh@gmail.com> | 2020-11-13 09:54:45 +0300 |
---|---|---|
committer | weru <onewesh@gmail.com> | 2020-11-13 09:54:45 +0300 |
commit | 7e552b6eb3680b8f8daf8161b446219c38cce22b (patch) | |
tree | 944d6324307fa54418f19b39e98149945dbc7bb3 /assets | |
parent | 7a6cd4a40be60be67aa1cc5534fffa2e348e329a (diff) |
update
Diffstat (limited to 'assets')
-rw-r--r-- | assets/js/functions.js | 40 | ||||
-rw-r--r-- | assets/js/search.js | 8 | ||||
-rw-r--r-- | assets/sass/_components.sass | 2 |
3 files changed, 33 insertions, 17 deletions
diff --git a/assets/js/functions.js b/assets/js/functions.js index 9b17076..a72f3d3 100644 --- a/assets/js/functions.js +++ b/assets/js/functions.js @@ -107,33 +107,49 @@ function hasClasses(el) { } } - -function wrapText(text, context, wrapper = 'div') { - let c = context.textContent; - let index = c.indexOf(text); - - function wrap() { +function wrapText(text, context) { + function wrap(context, wrapper = 'mark') { + let c = context.innerHTML; + let open = `<${wrapper}>`; + let close = `</${wrapper}>`; + let index = c.indexOf(text); if (index >= 0) { let stop = index + text.length; let s = c.substring(index,stop); let before = c.substring(0,index); let after = c.substring(stop); - c = `${before}<${wrapper}>${s}</${wrapper}>${after}`; - context.textContent = c; + c = `${before}${open}${s}${close}${after}`; + context.innerHTML = c; + + // add class attribute later if need be + const attributes = ["href", "id", "title"]; + attributes.forEach(function(attr){ + if(context.hasAttribute(attr)) { + let attrValue = context.getAttribute(attr); + context.setAttribute(attr, attrValue.replaceAll(`${open}`,"").replaceAll(`${close}`,"")); + } + }); } } - const contents = ["h1", "h2", "h3", "h4", "h5", "h6", "p", "code"]; - const attributes = ["href", "title", "class", "id"]; + const contents = ["h1", "h2", "h3", "h4", "h5", "h6", "p", "code", "td", "pre"]; const children = ["span", "em", "strong", "b", "a"]; contents.forEach(function(c){ - const cs = elems(c); + const cs = elems(c, context); if(cs.length) { cs.forEach(function(cx){ - // console.log(cx); + if(cx.children.length >= 1) { + wrap(cx); + Array.from(cx.children).forEach(function(child){ + wrap(child); + }) + } else { + wrap(cx); + } // check if // if has children // check if childen is in children array above + // filter out children if listed in cs array above // check if children contain attributes // process before replacing // else replace and move on diff --git a/assets/js/search.js b/assets/js/search.js index cb485e2..e9a4347 100644 --- a/assets/js/search.js +++ b/assets/js/search.js @@ -70,9 +70,9 @@ function findQuery(query = 'query') { const urlParams = new URLSearchParams(window.location.search); if(urlParams.has(query)){ let c = urlParams.get(query); - window.find(c); + // window.find(c); cc = `${c.charAt(0).toUpperCase()}${c.substring(1,c.length)}`; - window.find(cc); + // window.find(cc); return [c, cc]; } return ["",""]; @@ -84,7 +84,7 @@ if(!main) { } const searchQuery = findQuery(); // console.log(searchQuery); -// wrapText(searchQuery[0],main,'mark'); -wrapText(searchQuery[1],main,'mark'); +wrapText(searchQuery[0],main); +wrapText(searchQuery[1],main); window.addEventListener('load', () => search());
\ No newline at end of file diff --git a/assets/sass/_components.sass b/assets/sass/_components.sass index 81a505d..560e7dc 100644 --- a/assets/sass/_components.sass +++ b/assets/sass/_components.sass @@ -71,7 +71,7 @@ background-color: var(--theme) color: var(--light) border-radius: 0.25rem - display: inline-grid + display: inline-flex padding: 0.75rem 1.5rem text-align: center &:hover |