fix(kucharka): correct surname inflection to Kamila Pešková across all recipes and UI

This commit is contained in:
Krystof Pesek
2026-11-10 21:27:04 +01:00
parent 111f7537f4
commit 56a5fa987f
4 changed files with 380 additions and 380 deletions
+22 -22
View File
@@ -1,6 +1,6 @@
/* ========================================================================= /* =========================================================================
KUCHAŘKA KAMILY PEŠEK // PASCAL 7.0 WEB ENGINE (331 RECEPTŮ & 568 JÍDEL) KUCHAŘKA KAMILY PEŠKOVÉ // PASCAL 7.0 WEB ENGINE (331 RECEPTŮ & 568 JÍDEL)
Kulinářská paměť Kamily Pešek & Software-salon ALTÁN (Helena Heroutová) Kulinářská paměť Kamily Peškové & Software-salon ALTÁN (Helena Heroutová)
========================================================================= */ ========================================================================= */
// Audio engine (Retro PC Speaker via Web Audio API) // Audio engine (Retro PC Speaker via Web Audio API)
@@ -122,7 +122,7 @@ function highlightMatches(text, query) {
}).join(""); }).join("");
} }
// Robustní vyhledávání v sešitu Kamily Pešek // Robustní vyhledávání v sešitu Kamily Peškové
function searchKniha(query, categoryFilter = 'Vše') { function searchKniha(query, categoryFilter = 'Vše') {
if (!query || !query.trim()) return []; if (!query || !query.trim()) return [];
const tokens = tokenize(query); const tokens = tokenize(query);
@@ -229,16 +229,16 @@ const KATEGORIE = [
// 1. HLAVNÍ NABÍDKA // 1. HLAVNÍ NABÍDKA
function renderMainMenu() { function renderMainMenu() {
currentView = 'menu'; currentView = 'menu';
winTitleEl.textContent = "KUCHAŘKA KAMILY PEŠEK // HLAVNÍ NABÍDKA PASCAL 7.0"; winTitleEl.textContent = "KUCHAŘKA KAMILY PEŠKOVÉ // HLAVNÍ NABÍDKA PASCAL 7.0";
let html = ` let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════ <div class="dos-header">════════════════════════════════════════════════════════════════════════════════
KUCHAŘKA KAMILY PEŠEK // AUTENTICKÝ SEŠIT RECEPTŮ (1998–2026) KUCHAŘKA KAMILY PEŠKOVÉ // AUTENTICKÝ SEŠIT RECEPTŮ (1998–2026)
Software-salon ALTÁN (Ing. Helena Heroutová, Dejvice) & Konzdat Software-salon ALTÁN (Ing. Helena Heroutová, Dejvice) & Konzdat
════════════════════════════════════════════════════════════════════════════════</div> ════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box"> <div class="dos-box">
<span style="color:var(--dos-yellow)">Vítejte v rodinném gastronomickém archivu babičky <strong>Kamily Pešek</strong>.</span> <span style="color:var(--dos-yellow)">Vítejte v rodinném gastronomickém archivu babičky <strong>Kamily Peškové</strong>.</span>
Tento systém obsahuje <strong>${KNIHA_RECEPTU.length} přepsaných receptů</strong> z jejího ručně psaného Tento systém obsahuje <strong>${KNIHA_RECEPTU.length} přepsaných receptů</strong> z jejího ručně psaného
sešitu (strany 1–43) a <strong>${HISTORICKA_JIDLA.length} záznamů rodinného jídelníčku</strong> z let 1998–2021. sešitu (strany 1–43) a <strong>${HISTORICKA_JIDLA.length} záznamů rodinného jídelníčku</strong> z let 1998–2021.
</div> </div>
@@ -258,7 +258,7 @@ function renderMainMenu() {
</div> </div>
<div class="dos-menu-item" onclick="openReceptyList('Vše')"> <div class="dos-menu-item" onclick="openReceptyList('Vše')">
<span class="hotkey">[R]</span> <span class="hotkey">[R]</span>
<span style="color:var(--dos-white); font-weight:bold">Procházet receptář Kamily Pešek podle kategorií</span> <span style="color:var(--dos-white); font-weight:bold">Procházet receptář Kamily Peškové podle kategorií</span>
</div> </div>
<div class="dos-menu-item" onclick="openSuroviny()"> <div class="dos-menu-item" onclick="openSuroviny()">
<span class="hotkey">[S]</span> <span class="hotkey">[S]</span>
@@ -324,11 +324,11 @@ function triggerMenuSearch() {
function openSearch(defaultQuery = "") { function openSearch(defaultQuery = "") {
currentView = 'hledat'; currentView = 'hledat';
playSpeaker(750, 0.05); playSpeaker(750, 0.05);
winTitleEl.textContent = `HLEDÁNÍ V KUCHAŘCE KAMILY PEŠEK // FULLTEXT ENGINE`; winTitleEl.textContent = `HLEDÁNÍ V KUCHAŘCE KAMILY PEŠKOVÉ // FULLTEXT ENGINE`;
let html = ` let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════ <div class="dos-header">════════════════════════════════════════════════════════════════════════════════
FULLTEXTOVÉ VYHLEDÁVÁNÍ // RECEPTÁŘ KAMILY PEŠEK (${KNIHA_RECEPTU.length} RECEPTŮ) FULLTEXTOVÉ VYHLEDÁVÁNÍ // RECEPTÁŘ KAMILY PEŠKOVÉ (${KNIHA_RECEPTU.length} RECEPTŮ)
════════════════════════════════════════════════════════════════════════════════</div> ════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box"> <div class="dos-box">
@@ -399,7 +399,7 @@ function executeGlobalSearch() {
const query = input.value.trim(); const query = input.value.trim();
if (!query) { if (!query) {
resEl.innerHTML = `<div style="color:var(--dos-grey); padding:10px">Zadejte alespoň 2 písmena pro vyhledání v sešitu Kamily Pešek...</div>`; resEl.innerHTML = `<div style="color:var(--dos-grey); padding:10px">Zadejte alespoň 2 písmena pro vyhledání v sešitu Kamily Peškové...</div>`;
return; return;
} }
@@ -437,7 +437,7 @@ function executeGlobalSearch() {
} }
} else { } else {
html += `<div style="color:var(--dos-red); padding:12px 0"> html += `<div style="color:var(--dos-red); padding:12px 0">
Pro dotaz "${query}" nebyl v sešitu Kamily Pešek nalezen žádný recept. Pro dotaz "${query}" nebyl v sešitu Kamily Peškové nalezen žádný recept.
</div>`; </div>`;
// Prohledat i kroniku 568 jídel jako zálohu // Prohledat i kroniku 568 jídel jako zálohu
@@ -469,11 +469,11 @@ function openReceptyList(category = 'Vše', page = 0, initialQuery = "") {
const totalPages = Math.ceil(baseList.length / PAGE_SIZE); const totalPages = Math.ceil(baseList.length / PAGE_SIZE);
const pageItems = baseList.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE); const pageItems = baseList.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE);
winTitleEl.textContent = `RECEPTÁŘ KAMILY PEŠEK // ${category.toUpperCase()} (${baseList.length} RECEPTŮ)`; winTitleEl.textContent = `RECEPTÁŘ KAMILY PEŠKOVÉ // ${category.toUpperCase()} (${baseList.length} RECEPTŮ)`;
let html = ` let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════ <div class="dos-header">════════════════════════════════════════════════════════════════════════════════
RECEPTÁŘ KAMILY PEŠEK // KATEGORIE: ${category.toUpperCase()} (Strana ${page + 1}/${totalPages || 1}) RECEPTÁŘ KAMILY PEŠKOVÉ // KATEGORIE: ${category.toUpperCase()} (Strana ${page + 1}/${totalPages || 1})
════════════════════════════════════════════════════════════════════════════════</div> ════════════════════════════════════════════════════════════════════════════════</div>
<div style="display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px"> <div style="display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px">
@@ -593,7 +593,7 @@ function openRecipe(id) {
let html = ` let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════ <div class="dos-header">════════════════════════════════════════════════════════════════════════════════
RECEPT Č. ${r.id}: ${r.nazev} RECEPT Č. ${r.id}: ${r.nazev}
Původní sešit Kamily Pešek: Strana ${r.strana} | Kategorie: ${r.kategorie} Původní sešit Kamily Peškové: Strana ${r.strana} | Kategorie: ${r.kategorie}
════════════════════════════════════════════════════════════════════════════════</div> ════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-header" style="color:var(--dos-cyan)">── POTŘEBNÉ SUROVINY ZE SEŠITU ─────────────────────────────────────────────</div> <div class="dos-header" style="color:var(--dos-cyan)">── POTŘEBNÉ SUROVINY ZE SEŠITU ─────────────────────────────────────────────</div>
@@ -609,13 +609,13 @@ function openRecipe(id) {
html += `</ul> html += `</ul>
<div class="dos-header" style="color:var(--dos-cyan)">── POSTUP PŘÍPRAVY ZE SEŠITU KAMILY PEŠEK ─────────────────────────────────</div> <div class="dos-header" style="color:var(--dos-cyan)">── POSTUP PŘÍPRAVY ZE SEŠITU KAMILY PEŠKOVÉ ─────────────────────────────────</div>
<div class="dos-box" style="line-height:1.55; color:var(--dos-white)"> <div class="dos-box" style="line-height:1.55; color:var(--dos-white)">
${r.postup || "Tradiční rodinný postup podle zápisu Kamily Pešek."} ${r.postup || "Tradiční rodinný postup podle zápisu Kamily Peškové."}
</div> </div>
<div class="secret-badge"> <div class="secret-badge">
<strong>★ TAJEMSTVÍ KAMILY PEŠEK:</strong><br> <strong>★ TAJEMSTVÍ KAMILY PEŠKOVÉ:</strong><br>
<em>"${r.tajemstvi}"</em> <em>"${r.tajemstvi}"</em>
</div> </div>
@@ -649,7 +649,7 @@ function openSuroviny(defaultQuery = "") {
════════════════════════════════════════════════════════════════════════════════</div> ════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box"> <div class="dos-box">
Zadejte suroviny, které máte právě doma ve špajzu a lednici (oddělené čárkou či mezerou). Zadejte suroviny, které máte právě doma ve špajzu a lednici (oddělené čárkou či mezerou).
Algoritmus prohledá <strong>všech ${KNIHA_RECEPTU.length} receptů Kamily Pešek</strong> i <strong>${HISTORICKA_JIDLA.length} jídel z kroniky</strong>. Algoritmus prohledá <strong>všech ${KNIHA_RECEPTU.length} receptů Kamily Peškové</strong> i <strong>${HISTORICKA_JIDLA.length} jídel z kroniky</strong>.
</div> </div>
<div class="dos-input-group"> <div class="dos-input-group">
@@ -737,10 +737,10 @@ function doSearchSuroviny() {
return { jidlo: j, score: matches.length, matchedTokens: matches }; return { jidlo: j, score: matches.length, matchedTokens: matches };
}).filter(x => x.score > 0).sort((a, b) => b.score - a.score); }).filter(x => x.score > 0).sort((a, b) => b.score - a.score);
let html = `<div class="dos-header" style="color:var(--dos-green)">VÝSLEDEK SHODY PRO: "${query}" (Nalezeno ${scoredRecipes.length} receptů Kamily Pešek)</div>`; let html = `<div class="dos-header" style="color:var(--dos-green)">VÝSLEDEK SHODY PRO: "${query}" (Nalezeno ${scoredRecipes.length} receptů Kamily Peškové)</div>`;
if (scoredRecipes.length > 0) { if (scoredRecipes.length > 0) {
html += `<div style="color:var(--dos-yellow); margin:10px 0; font-weight:bold">★ NALEZENÉ RECEPTY ZE SEŠITU KAMILY PEŠEK:</div>`; html += `<div style="color:var(--dos-yellow); margin:10px 0; font-weight:bold">★ NALEZENÉ RECEPTY ZE SEŠITU KAMILY PEŠKOVÉ:</div>`;
scoredRecipes.slice(0, 15).forEach(item => { scoredRecipes.slice(0, 15).forEach(item => {
html += `<div class="dos-menu-item" onclick="openRecipe(${item.recipe.id})"> html += `<div class="dos-menu-item" onclick="openRecipe(${item.recipe.id})">
<span class="hotkey">[${item.recipe.id}]</span> <span class="hotkey">[${item.recipe.id}]</span>
@@ -860,7 +860,7 @@ function openKronika(page = 0) {
════════════════════════════════════════════════════════════════════════════════</div> ════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box"> <div class="dos-box">
Kompletní záznamy o tom, co se skutečně vařilo a jedlo v rodině Kamily Pešek v letech 1998–2021. Kompletní záznamy o tom, co se skutečně vařilo a jedlo v rodině Kamily Peškové v letech 1998–2021.
</div> </div>
<div class="dos-menu-list"> <div class="dos-menu-list">
@@ -913,7 +913,7 @@ function openAltan() {
a DOS v dejvickém ateliéru na Václavkově ulici.<br><br> a DOS v dejvickém ateliéru na Václavkově ulici.<br><br>
Když se na přelomu tisíciletí objevilo vývojové prostředí Borland Delphi, koncept Když se na přelomu tisíciletí objevilo vývojové prostředí Borland Delphi, koncept
rodinné kuchařky se přetavil do plnohodnotné 32bitové aplikace KUCHARKA.EXE.<br><br> rodinné kuchařky se přetavil do plnohodnotné 32bitové aplikace KUCHARKA.EXE.<br><br>
Tato webová aplikace věrně propojuje kulinářské dědictví babičky <strong>Kamily Pešek</strong> Tato webová aplikace věrně propojuje kulinářské dědictví babičky <strong>Kamily Peškové</strong>
(kompletní rukopisný sešit čítající <strong>${KNIHA_RECEPTU.length} receptů</strong>) (kompletní rukopisný sešit čítající <strong>${KNIHA_RECEPTU.length} receptů</strong>)
s procedurální logikou Turbo Pascalu pro budoucí generace. s procedurální logikou Turbo Pascalu pro budoucí generace.
</div> </div>
+2 -2
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>KUCHAŘKA // Kamila Pešek & Helena Heroutová (1998–2026)</title> <title>KUCHAŘKA // Kamila Pešková & Helena Heroutová (1998–2026)</title>
<link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style.css">
</head> </head>
<body class="crt-screen"> <body class="crt-screen">
@@ -27,7 +27,7 @@
<div class="window-frame"> <div class="window-frame">
<div class="window-title-bar"> <div class="window-title-bar">
<span class="win-btn">[■]</span> <span class="win-btn">[■]</span>
<span class="win-title" id="win-title">KUCHAŘKA KAMILY PEŠEK // PASCAL 7.0 (331 RECEPTŮ)</span> <span class="win-title" id="win-title">KUCHAŘKA KAMILY PEŠKOVÉ // PASCAL 7.0 (331 RECEPTŮ)</span>
<span class="win-num">[1]</span> <span class="win-num">[1]</span>
</div> </div>
<div class="window-content" id="screen-content"> <div class="window-content" id="screen-content">
+354 -354
View File
File diff suppressed because it is too large Load Diff