Optimalizace vyhledávání

Normalizace názvu probíhá na klientovi, ale lepší by bylo napsat filtr
to Teru, který provede normalizaci při kompilování webu.
This commit is contained in:
Emil Miler 2022-10-03 09:48:19 +02:00
parent c8df9a3301
commit 5da3e67a42
2 changed files with 6 additions and 7 deletions

View File

@ -1,5 +1,5 @@
{% macro print_recipe(recipe) %}
<article
<article data-title="{{ recipe.title | lower }}"
{% if recipe.taxonomies.tagy %}
{% for tag in recipe.taxonomies.tagy %}
{% if tag == "pikantní" %}

View File

@ -21,6 +21,10 @@ let input = document.getElementById("input");
input.oninput = function() { filter_name(input.value) };
let articles = document.getElementsByTagName("article");
for (let i=0; i<articles.length; i++) {
articles[i].dataset.title = articles[i].dataset.title.normalize("NFD").replace(/\p{Diacritic}/gu, "");
}
function filter_name(str) {
str = str.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
@ -30,12 +34,7 @@ function filter_name(str) {
}
} else {
for (let i=0; i<articles.length; i++) {
let name = articles[i].getElementsByClassName("title")[0].innerHTML.toLowerCase().normalize("NFD").replace(/\p{Diacritic}/gu, "");
if (!name.includes(str)) {
articles[i].style.display = "none";
} else {
articles[i].style.display = "flex";
}
articles[i].style.display = !articles[i].dataset.title.includes(str) ? "none" : "flex";
}
}
}