From b4bc8de7b1507acc3d0c825cf70dc84d7717b9ba Mon Sep 17 00:00:00 2001
From: weru <onewesh@gmail.com>
Date: Thu, 12 Nov 2020 02:14:27 +0000
Subject: [PATCH] update

---
 assets/js/search.js    |   50 +++++++++++++-------------------------------------
 assets/js/functions.js |    6 ++++--
 2 files changed, 17 insertions(+), 39 deletions(-)

diff --git a/assets/js/functions.js b/assets/js/functions.js
index 5ce18d2..4e8a811 100644
--- a/assets/js/functions.js
+++ b/assets/js/functions.js
@@ -108,14 +108,16 @@
 }
 
 function wrapText(text, context, wrapper = 'div') {
-  let c = context.innerHTML;
+  let c = context.textContent;
   let index = c.indexOf(text);
+  console.log(context);
+  // h1, h2, h3, h4, h5, h6, p, code, a,
   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.innerHTML = c;
+    context.textContent = c;
   }
 }
\ No newline at end of file
diff --git a/assets/js/search.js b/assets/js/search.js
index e800f3b..4a98688 100644
--- a/assets/js/search.js
+++ b/assets/js/search.js
@@ -11,17 +11,18 @@
 const searchKeys = ['title', 'link', 'body', 'id'];
 const searchOptions = {
   ignoreLocation: true,
+  findAllMatches: true,
+  includeScore: true,
   keys: searchKeys,
   threshold: 0.1
 };
 
 const index = new Fuse(idx, searchOptions);
 
-function searchResults(results=[], order =[],query="") {
+function searchResults(results=[], query="") {
   let resultsFragment = new DocumentFragment();
   let showResults = elem('.search_results');
   emptyEl(showResults);
-  let index = 0
   if(results.length) {
     let resultsTitle = createEl('h3');
     resultsTitle.className = 'search_title';
@@ -32,12 +33,11 @@
       item.href = `${result.link}?query=${query}`;
       item.className = 'search_result';
       item.textContent = result.title;
-      item.style.order = order[index];
+      item.style.order = result.score;
       resultsFragment.appendChild(item);
-      index += 1
     });
   } else {
-    showResults.innerHTML = "";
+    showResults.innerHTML = (query.length >= 3) ? `<span class="search_result">No Results</span>` : "";
   }
   showResults.appendChild(resultsFragment);
 }
@@ -50,38 +50,15 @@
       const searchTerm = this.value.trim().toLowerCase();
       if(searchTerm.length >= 3) {
         let rawResults = index.search(searchTerm);
+        // console.log(rawResults);
         rawResults = rawResults.map(function(result){
-          const matches = result.matches;
+          const score = result.score;
           const resultItem = result.item;
-          resultItem.matches = matches;
+          resultItem.score = (parseFloat(score) * 50).toFixed(0);
           return resultItem;
         });
-        console.log(JSON.stringify(rawResults));
-        console.log(rawResults);
-
-        if(rawResults.length) {
-
-          let refs = rawResults.map(function(ref){
-            // return id and score in a single string
-            return `${ref.ref}:${ref.score}`;
-          });
-
-          let ids = refs.map(function(id){
-            let positionOfSeparator = id.indexOf(":");
-            id = id.substring(0,positionOfSeparator)
-            return Number(id);
-          });
-
-          let scores = refs.map(function(score){
-            let positionOfSeparator = score.indexOf(":");
-            score = score.substring((positionOfSeparator + 1), (score.length - 1));
-            return (parseFloat(score) * 50).toFixed(0);
-          });
-          searchResults(rawResults, scores,searchTerm);
-        } else {
-          searchResults();
-        }
-
+        // console.log(rawResults);
+        searchResults(rawResults, searchTerm);
       } else {
         searchResults();
       }
@@ -96,7 +73,6 @@
     window.find(c);
     cc = `${c.charAt(0).toUpperCase()}${c.substring(1,c.length)}`;
     window.find(cc);
-    console.log(c.length);
     return [c, cc];
   }
   return ["",""];
@@ -107,8 +83,8 @@
   main = elem('.main');
 }
 const searchQuery = findQuery();
-console.log(searchQuery);
-wrapText(searchQuery[0],main,'mark');
-wrapText(searchQuery[1],main,'mark');
+// console.log(searchQuery);
+// wrapText(searchQuery[0],main,'mark');
+// wrapText(searchQuery[1],main,'mark');
 
 window.addEventListener('load', () => search());
\ No newline at end of file

--
Gitblit v1.10.0