From f09ec3af6fd6b7e0f0f6937782fb2c1ff3c83f4c Mon Sep 17 00:00:00 2001
From: KemoNine
No matches found
"; + } + }); +} + +function populateResults(result){ + result.forEach( function (value, key) { + let contents= value.item.contents; + let snippet = ""; + let snippetHighlights=[]; + snippetHighlights.push(searchQuery); + if(snippet.length<1){ + var getSentenceByWordRegex = new RegExp( + `[^.?!]*(?<=[.?\\s!])${searchQuery}(?=[\\s.?!])[^.?!]*[.?!]`, + 'i' + ); + var maxTextLength = summaryInclude*2 + // Index of the matched search term + var indexOfMatch = contents.toLowerCase().indexOf( + searchQuery.toLowerCase() + ); + // Index of the first word of the sentence with the search term in it + var indexOfSentence = contents.indexOf( + getSentenceByWordRegex.exec(contents) + ); + + var start + var cutStart = false + // Is the match in the result? + if(indexOfSentence+maxTextLength < indexOfMatch){ + // Make sure that the match is in the result + start = indexOfMatch + // This bool is used to replace the first part with '...' + cutStart = true + } else { + // Match is in view, even if we show the whole sentence + start = indexOfSentence + } + + // Change end length to the text length if it is longer than + // the text length to prevent problems + var end = start + maxTextLength + if (end > contents.length){ + end = contents.length + } + + if(cutStart){ + // Replace first three characters with '...' + end -= 3; + snippet += "…" + contents.substring(start, end).trim(); + } + else{ + snippet += contents.substring(start, end).trim(); + } + } + snippet += "…"; + + // Lifted from https://stackoverflow.com/posts/3700369/revisions + var elem = document.createElement('textarea'); + elem.innerHTML = snippet; + var decoded = elem.value; + + // Pull template from hugo template definition + let frag = document.getElementById('search-result-template').content.cloneNode(true); + // Replace values + frag.querySelector(".search_summary").setAttribute("id", "summary-" + key); + frag.querySelector(".search_link").setAttribute("href", value.item.permalink); + frag.querySelector(".search_title").textContent = value.item.title; + frag.querySelector(".search_snippet").textContent = decoded; + let tags = value.item.tags; + if (tags) { + frag.querySelector(".search_tags").textContent = tags; + } else { + frag.querySelector(".search_iftags").remove(); + } + snippetHighlights.forEach( function (snipvalue, snipkey) { + let markjs = new Mark(frag); + markjs.mark(snipvalue); + }); + document.getElementById("search-results").appendChild(frag); + }); +} +// @license-end diff --git a/public/notes/heat/index.html b/public/notes/heat/index.html index 593e335..a6b63b9 100644 --- a/public/notes/heat/index.html +++ b/public/notes/heat/index.html @@ -50,6 +50,12 @@ +