{{ define "main" }}
<noscript>
    You need to enable JavaScript to be able to search.
</noscript>
{{- partial "searchbar.html" . -}}
<div class="postlist {{ if .Site.Params.gridView }}gridView{{ end }}" id="postlist">
</div>
{{- partial "js_paginator.html" . -}}
<script>
    function matchTags(page, term) {
        for (let tag of page.tags) {
            if (tag.includes(term)) return true;
        }
        return false;
    }
    function performSearch(term) {
        document.getElementById('postlist').innerHTML = '';
        term = term.toLowerCase();
        fetch('/search/index.json').then(res => res.json())
        .then(res => {
            let articles = res.pages.filter(page => (
                page.title.toLowerCase().includes(term) ||
                matchTags(page, term) ||
                page.text.includes(term)
            ));
            if (articles.length > 0) renderArticles(articles);
            else document.getElementById('postlist').innerHTML = `
                <h3>No results found</h3>
            `;
        });
    }
    var url = location.href;
    var baseUrl = url.split('?')[0];
    var searchbar = document.getElementById('searchbar');
    if (url.includes('?')) {
        var urlParams = new URLSearchParams(url.split('?')[1]);
        if (urlParams.has('q')) {
            let searchTerm = urlParams.get('q');
            searchbar.value = searchTerm;
            performSearch(searchTerm);
        }
    }
</script>
{{ end }}