From fb9ea8dcb85e6d2ac6c2a8cf5057f2fb00871b26 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Tue, 15 Feb 2022 21:52:49 +0000
Subject: [PATCH] Merge branch 'hugo' of https://github.com/jackyzha0/quartz into hugo

---
 layouts/partials/search.html |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/layouts/partials/search.html b/layouts/partials/search.html
index 06a71dc..0c853a0 100644
--- a/layouts/partials/search.html
+++ b/layouts/partials/search.html
@@ -89,8 +89,7 @@
         }
     })
 
-    const scrapedContent = {{$.Site.Data.contentIndex}}
-    for (const [key, value] of Object.entries(scrapedContent)) {
+    for (const [key, value] of Object.entries(content)) {
         contentIndex.add({
             id: key,
             title: value.title,
@@ -151,8 +150,8 @@
     const fetch = id => ({
         id,
         url: id,
-        title: scrapedContent[id].title,
-        content: scrapedContent[id].content
+        title: content[id].title,
+        content: content[id].content
     })
 
     const source = document.getElementById('search-bar')
@@ -177,16 +176,23 @@
                 limit: 5,
             }
         ]).then(searchResults => {
-        const titleIds = [...searchResults.filter(x => x.field === 'title')?.[0].result] ?? []
-        const contentIds = [...searchResults.filter(x => x.field === 'content')?.[0].result] ?? []
-        const allIds = [...titleIds, ...contentIds]
-        const finalResults = allIds.map(fetch)
+            const getByField = field => {
+                const results = searchResults.filter(x => x.field === field)
+                if (results.length === 0) {
+                    return []
+                } else {
+                    return [...results[0].result]
+                }
+            }
+            const allIds = new Set([...getByField('title'), ...getByField('content')])
+            const finalResults = [...allIds].map(fetch)
 
             // display
             if (finalResults.length === 0) {
-                results.innerHTML = `<div class="result-card">
-                    <p>No results.</p>
-                </div>`
+                results.innerHTML = `<button class="result-card">
+                    <h3>No results.</h3>
+                    <p>Try another search term?</p>
+                </button>`
             } else {
                 results.innerHTML = finalResults
                     .map(result => resultToHTML({
@@ -246,4 +252,4 @@
         })
     })
 
-</script>
\ No newline at end of file
+</script>

--
Gitblit v1.10.0