generated from 11ty/eleventy-base-blog
/
search.js
39 lines (32 loc) · 1.27 KB
/
search.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
document.addEventListener('DOMContentLoaded', function (event) {
const search = document.getElementById('search');
const results = document.getElementById('results');
let posts = [];
let search_term = '';
fetch("/feed/feed.JSON")
.then(res => res.json())
.then(data => {
posts = data?.items;
console.log("data", posts);
});
search.addEventListener('input', (event) => {
console.log("Search");
search_term = event.target.value.toLowerCase();
showList();
});
const showList = () => {
results.innerHTML = '';
if (search_term.length <= 0) return;
let result = posts?.filter((name) => name.title.toLowerCase().indexOf(search_term.toLowerCase()) >= 0);
if (result.length == 0) {
const li = document.createElement('li');
li.innerHTML = `No results found`;
results.appendChild(li);
}
result.forEach((e) => {
const li = document.createElement('li');
li.innerHTML = `<time datetime="${e.date_published?.split("T")[0]}">${e.date_published?.split("T")[0]}</time><span> - </span><a href="${e.url}">${e.title}</a>`;
results.appendChild(li);
});
};
});