1document.addEventListener("DOMContentLoaded", function () { 2 var a_z_filters = [].slice.call(document.querySelectorAll(".a-z-filter li[data-letter]")); 3 var entry_cards = [].slice.call(document.querySelectorAll("article.hentry")); 4 a_z_filters.forEach(function (a_z_filter) { 5 a_z_filter.addEventListener("click", (event) => { 6 if (a_z_filter.classList.contains('reset')) { 7 entry_cards.forEach(function (entry_card) { 8 entry_card.classList.remove('hidden') 9 }) 10 a_z_filters.forEach(function (reset_a_z_filter) { 11 reset_a_z_filter.classList.remove('current') 12 }) 13 a_z_filter.classList.add('current'); 14 return; 15 } 16 if (!a_z_filter.classList.contains('current')) { 17 entry_cards.forEach(function (entry_card) { 18 entry_card.classList.add('hidden') 19 }) 20 var active_cards = [].slice.call(document.querySelectorAll("article.hentry.fc-" + a_z_filter.dataset.letter)); 21 active_cards.forEach(function (active_card) { 22 active_card.classList.remove('hidden') 23 }) 24 var current_filters = [].slice.call(document.querySelectorAll(".a-z-filter li.current")); 25 current_filters.forEach(function (current_filter) { 26 current_filter.classList.remove('current') 27 }) 28 a_z_filter.classList.add('current'); 29 } else if (a_z_filter.classList.contains('current')) { 30 entry_cards.forEach(function (entry_card) { 31 entry_card.classList.remove('hidden') 32 }) 33 a_z_filter.classList.remove('current'); 34 } 35 }, false); 36 }) 37 function liveSearch() { 38 let cards = document.querySelectorAll('article.hentry:not(.hidden)') 39 let search_query = document.getElementById("liveSearch").value; 40 for (var i = 0; i < cards.length; i++) { 41 if (cards[i].innerText.toLowerCase() 42 .includes(search_query.toLowerCase())) { 43 cards[i].classList.remove("liveSearchHidden"); 44 } else { 45 cards[i].classList.add("liveSearchHidden"); 46 } 47 } 48 } 49 let typingTimer; 50 let typeInterval = 200; 51 let searchInput = document.getElementById("liveSearch") 52 if (searchInput) { 53 searchInput.addEventListener('keyup', () => { 54 clearTimeout(typingTimer); 55 typingTimer = setTimeout(liveSearch, typeInterval); 56 }); 57 } 58});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.