Skip to content

Commit df4417b

Browse files
Create discover.js
Signed-off-by: Lissan <150966211+DataForSolution@users.noreply.github.com>
1 parent e9b5b4f commit df4417b

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

assets/js/discover.js

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
document.addEventListener("DOMContentLoaded", async () => {
2+
3+
const input = document.getElementById("knowledge-search");
4+
const button = document.getElementById("knowledge-search-btn");
5+
const results = document.getElementById("knowledge-results");
6+
7+
if (!input || !button || !results) return;
8+
9+
let knowledge = [];
10+
11+
try {
12+
13+
const response = await fetch("/assets/data/search-index.json");
14+
knowledge = await response.json();
15+
16+
} catch (err) {
17+
18+
results.innerHTML = "<p>Unable to load the knowledge index.</p>";
19+
console.error(err);
20+
return;
21+
22+
}
23+
24+
function searchPlatform() {
25+
26+
const query = input.value.trim().toLowerCase();
27+
28+
if (query === "") {
29+
30+
results.innerHTML = "Start typing to explore the platform.";
31+
return;
32+
33+
}
34+
35+
const matches = knowledge.filter(item => {
36+
37+
return (
38+
39+
item.title.toLowerCase().includes(query)
40+
41+
||
42+
43+
item.keywords.join(" ").toLowerCase().includes(query)
44+
45+
||
46+
47+
item.category.toLowerCase().includes(query)
48+
49+
);
50+
51+
});
52+
53+
if (matches.length === 0) {
54+
55+
results.innerHTML = "<p>No results found.</p>";
56+
return;
57+
58+
}
59+
60+
results.innerHTML = matches.map(item => `
61+
62+
<div class="discover-card">
63+
64+
<h3>${item.title}</h3>
65+
66+
<p><strong>${item.category}</strong></p>
67+
68+
<p>${item.academy}</p>
69+
70+
<a href="${item.url}">Open →</a>
71+
72+
</div>
73+
74+
`).join("");
75+
76+
}
77+
78+
button.addEventListener("click", searchPlatform);
79+
80+
input.addEventListener("keyup", event => {
81+
82+
if (event.key === "Enter") {
83+
84+
searchPlatform();
85+
86+
}
87+
88+
});
89+
90+
});

0 commit comments

Comments
 (0)