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:
parent
c8df9a3301
commit
5da3e67a42
@ -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í" %}
|
||||
|
@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user