feat(kucharka): feed all 331 recipes from Kamila Pesek notebook and 568 historical meals; correct name to Kamila Pesek

This commit is contained in:
Krystof Pesek
2026-11-07 18:55:34 +01:00
parent 2050cc9ddf
commit d30cbeb106
7 changed files with 7374 additions and 281 deletions
+510
View File
@@ -0,0 +1,510 @@
DATUM JIDLOSEBOU
3.8.1998 PIZZA veèeøe
4.8.1998 špenát,uzenné maso, bramborovı knedlík veèeøe
5.8.1998 brambory francouzské, okurka veèeøe
6.8.1998 kuøe grilované, nádivka veèeøe
7.8.1998 polévka hovìzí kudrnková asijská veèeøe
17.8.1998 rizoto, zelenina veèeøe
18.8.1998 maso hovìzí, kaparová omáèka, knedlík veèeøe
19.8.1998 salát tlaèenkovı oslava
31.8.1998 karbanátek, brambory veèeøe
1.9.1998 sır sma�enı, brambory veèeøe
2.9.1998 polévka dro�ïová veèeøe
3.9.1998 PIZZA veèeøe
4.9.1998 rybí karbanátky, brambory veèeøe
5.9.1998 maso vepøové, smetanová omáèka, knedlík veèeøe
6.9.1998 kuøe, nudle, ananas (KRYŠTOF) obìd
6.9.1998 salát MIXED španìlskı veèeøe
7.9.1998 klobása, brambory veèeøe
8.9.1998 ryba na páøe, sır, brambory, tatarka veèeøe
9.9.1998 tìstoviny zapeèené, obloha veèeøe
10.9.1998 hamburger, chleba, zelenina veèeøe
12.9.1998 hospoda dle vlastního vıbìru obìd
13.9.1998 maso-uzennı jazyk, brambory, obloha oslava
14.9.1998 knedlík švestkovı, tvaroch veèeøe
15.9.1998 špagety milánské veèeøe
16.9.1998 maso tøí barev, obloha oslava
17.9.1998 lunchelot, brambory veèeøe
18.9.1998 maso krùtí-prsa, hranolky, tatarská omáèka, obloha oslava
19.9.1998 polévka kudrnková kuøecí asijská obìd
19.9.1998 ryba - uzenné makrely, bramborová kaše veèeøe
20.9.1998 tìstoviny-fleky zapeèené se špenátem obìd
20.9.1998 salát MIXED španìlskı veèeøe
21.9.1998 párek, bramborová kaše veèeøe
22.9.1998 maso vepøové, omáèka se šalvìjí, knedlík veèeøe
23.9.1998 studená veèeøe
24.9.1998 knedlík s mìruòkami, tvaroch veèeøe
25.9.1998 PIZZA veèeøe
26.9.1998 studené jídlo-vıprava, vılet obìd
26.9.1998 maso vepøové-øízek obalovanı, salát bramborovı veèeøe
27.9.1998 špagety milánské veèeøe
27.9.1998 zavináè+kuøecí kokteil veèeøe
28.9.1998 kukuøice vaøená, salát veèeøe
29.9.1998 polévka bramborová veèeøe
30.9.1998 chlupatı knedlík, zelí veèeøe
1.10.1998 polévka dro�ïová veèeøe
2.10.1998 párek, chleba, hoøèice nebo keèup veèeøe
3.10.1998 maso hovìzí-guláš, knedlík veèeøe
4.10.1998 tìstoviny-nudle zapeèené se �ampiony veèeøe
5.10.1998 tìstoviny zapeèené veèeøe
6.10.1998 maso vepøové-segedinskı guláš, knedlík veèeøe
7.10.1998 ryba zapeèená s brambory veèeøe
8.10.1998 polévka bramborová veèeøe
9.10.1998 špagety milánské veèeøe
10.10.1998 studené jídlo-vıprava, vılet obìd
10.10.1998 vnitønosti-kuøecí �aludky, kaparová omáèka, knedlík veèeøe
11.10.1998 kuøe, nudle, ananas (Malvína) obìd
11.10.1998 knedlík s vejci veèeøe
12.10.1998 sma�enı sır, brambory veèeøe
13.10.1998 brambory s èesnekovou omáèkou veèeøe
14.10.1998 ryba-sma�ené filé prsty, brambory, tatarská omáèka veèeøe
21.10.1998 maso CHINA, rı�e veèeøe
22.10.1998 polévka drš�ková, chleba veèeøe
23.10.1998 tìstoviny-nudle zapeèené se špenátem veèeøe
25.10.1998 PIZZA mexická veèeøe
26.10.1998 párek, bramborová kaše veèeøe
27.10.1998 maso vepøové-segedinskı guláš, knedlík veèeøe
28.10.1998 kuøe, nudle, ananas (Jáchym) veèeøe
31.10.1998 polévka bramborová obìd
31.10.1998 špekové knedlíky veèeøe
1.11.1998 PIZZA šunková obìd
1.11.1998 ryba moøská pøírodnì, brambor, tatarská omáèka veèeøe
8.11.1998 vepøovı øízek, brambor veèeøe
9.11.1998 špagety milánské veèeøe
10.11.1998 maso vepøové uzenné, špenát, bramborovı knedlík obìd
11.11.1998 mrkev dušená na vínì, brambor veèeøe
12.11.1998 krùtí rolka po burgundsku, brambor oslava
13.11.1998 maso hovìzí-roštìnky, svíèková omáèka, knedlík veèeøe
14.11.1998 omeleta vajeèná obìd
14.11.1998 sekaná, brambory veèeøe
15.11.1998 ryba, brambory (Dejvice) oslava
15.11.1998 chleba zapeèenı-toust, obloha veèeøe
16.11.1998 maso vepøové-øízek v tìstíèku, bramborová kaše veèeøe
17.11.1998 párek, bramborová kaše veèeøe
18.11.1998 studená veèeøe veèeøe
19.11.1998 fazolky na smetanì, brambor veèeøe
20.11.1998 knedlík špekovı plnìnı, cibulka, špenát veèeøe
21.11.1998 kuøe, nudle, ananas (Kryštof) obìd
21.11.1998 chleba zapeèenı-toust veèeøe
22.11.1998 ryba moøská pøírodnì, brambor, tatarská omáèka obìd
22.11.1998 hamburger, brambor veèeøe
23.11.1998 PIZZA šunková veèeøe
24.11.1998 maso vepøové-øízek sma�enı, bramborovı salát veèeøe
25.11.1998 hovìzí maso-ragú, knedlík veèeøe
26.11.1998 polévka gulášová veèeøe
27.11.1998 tìstoviny.TRICOLORE, cikánská omáèka, sır veèeøe
28.11.1998 polévka pórková obìd
28.11.1998 chlebíèky oblo�ené oslava
29.11.1998 buøtguláš obìd
29.11.1998 buøtguláš veèeøe
30.11.1998 sır sma�enı, brambory veèeøe
1.12.1998 hospodì dle vlastního vıbìru veèeøe
2.12.1998 klobása vinná, brambory veèeøe
3.12.1998 maso CHINA, rı�e oslava
4.12.1998 párek, èoèka veèeøe
5.12.1998 maso vepøové, tìstoviny, sır obìd
5.12.1998 MIKULÁŠ oslava
6.12.1998 maso krùtí-roláda burgundská, brambory oslava
6.12.1998 polévka bramborová veèeøe
7.12.1998 ryba-karbanátky, brambor veèeøe
8.12.1998 knedlík špekovı, špenát veèeøe
9.12.1998 maso hovìzí.roštìnky na šalvìji, knedlík veèeøe
10.12.1998 toust zapékanı chléb, zelenina veèeøe
11.12.1998 hamburger, bramborovı salát veèeøe
12.12.1998 salát bramborovı obìd
12.12.1998 PIZZA veèeøe
13.12.1998 hospoda dle vıbìru (KFC) obìd
13.12.1998 maso vepøové-segedínskı guláš, knedlík veèeøe
14.12.1998 karbanátky, brambor, tatarská omáèka veèeøe
15.12.1998 tìstoviny-fleky, cikánská omáèka veèeøe
16.12.1998 hamburger, rı�e al�írská s èoèkou veèeøe
17.12.1998 párek, bramborová kaše veèeøe
18.12.1998 kuøe, nádivka veèeøe
19.12.1998 chléb arabskı, plnìnı masem a zeleninou veèeøe
20.12.1998 polévka gulášová obìd
20.12.1998 HEMENEX veèeøe
21.12.1998 maso vepøové, omáèka smetanová, knedlík veèeøe
22.12.1998 špagety milánské veèeøe
23.12.1998 studená veèeøe veèeøe
24.12.1998 kapr sma�enı, vánoèní bramborovı salát oslava
25.12.1998 maso vepøové-uzennı jazyk, brambor (u Majky) oslava
26.12.1998 husa, zelí, knedlík (u Marcely) oslava
27.12.1998 kapr sma�enı, vánoèní bramborovı salát obìd
27.12.1998 rohlík zapeèenı veèeøe
28.12.1998 HEMENEX veèeøe
29.12.1998 hospoda dle vlastního vıbìru (KFC) obìd
29.12.1998 polévka èesneková veèeøe
30.12.1998 špekovı knedlík, špenát veèeøe
31.12.1998 silvestrovské menu oslava
1.1.1999 uzené maso, èoèka oslava
2.1.1999 špagety milánské obìd
2.1.1999 vepøové maso, burgundská omáèka, brambory veèeøe
3.1.1999 kuøe, nudle, ananas obìd
3.1.1999 polévka drš�ková veèeøe
4.1.1999 maso-øízek vepøovı holandskı, bramborová kaše veèeøe
5.1.1999 chleba zapeèenı v MV, zelenina salát veèeøe
6.1.1999 ryba na páøe, sır, brambory, tatarka veèeøe
7.1.1999 salát MIXED, španìlskı veèeøe
8.1.1999 kuøe na paprice, knedlík veèeøe
9.1.1999 chlebíèky oblo�ené veèeøe
10.1.1999 brambory s máslem veèeøe
10.1.1999 maso a ry�e veèeøe
11.1.1999 maso vepøové-pøírodní øízek se sırem, hranolky a tatarská omáèka oslava
12.1.1999 špekovı knedlík, zelí veèeøe
13.1.1999 fazolky na smetanì, brambor veèeøe
14.1.1999 ryba-sma�ené prsty, bramborová kaše, zelenina salát veèeøe
15.1.1999 PIZZA šunková veèeøe
16.1.1999 polévka hrachová obìd
16.1.1999 hovìzí maso, �ampionová omáèka, knedlík veèeøe
17.1.1999 klobása, brambory obìd
17.1.1999 holandské karbanátky, chleba, obloha veèeøe
18.1.1999 kuøe alla ba�ant, zelí, knedlík veèeøe
19.1.1999 šunkofleky veèeøe
20.1.1999 hamburger veèeøe
21.1.1999 polévka gulášová veèeøe
22.1.1999 rybí karbanátky, brambory veèeøe
23.1.1999 maso uzené, brambor, obloha obìd
23.1.1999 studená veèeøe veèeøe
24.1.1999 èevabèièi alla Malvína, brambor, obloha obìd
24.1.1999 vepøová kotleta na Curi, bramboráèky veèeøe
25.1.1999 cikánská peèenì, bramborovı knedlík, špenát veèeøe
26.1.1999 rizoto, okurka veèeøe
27.1.1999 párek, chleba veèeøe
28.1.1999 sekaná, bramborová kaše veèeøe
29.1.1999 kuøecí maso na Madrasském curi, obloha veèeøe
30.1.1999 maso hovìzí-guláš, knedlík obìd
30.1.1999 polévka bramborová veèeøe
31.1.1999 kuøe, nudle, ananas (Malvína) obìd
31.1.1999 toust zapékanı chléb, zelenina veèeøe
1.2.1999 párek, bramborová kaše veèeøe
3.2.1999 vepøové maso, kaparová omáèka, maso obìd
3.2.1999 ryba moøská zapeèená s vejcem, chleb, zeleninovy salat veèeøe
5.2.1999 karbanátek, brambory veèeøe
6.2.1999 PIZZA obìd
6.2.1999 nudle zapeèené se špenátem veèeøe
7.2.1999 bramboráky veèeøe
7.2.1999 sma�enı sır, brambory obìd
9.2.1999 maso CHINA, rı�e obìd
9.2.1999 špekové knedlíky, špenát veèeøe
11.2.1999 klobása vinná-šnek, brambory veèeøe
12.2.1999 kuøe medailonky, obloha, chleba veèeøe
13.2.1999 fazolky na smetanì, brambory veèeøe
16.2.1999 maso hovìzí-guláš, knedlíky veèeøe
15.2.1999 hamburger veèeøe
17.2.1999 rizoto veèeøe
18.2.1999 ryba uzenná, brambory veèeøe
20.2.1999 PIZZA šunková obìd
20.2.1999 tìstoviny-Tortelloni e spinaci veèeøe
21.2.1999 pizza šunková obìd
21.2.1999 masové kulièky, bramborovı salát veèeøe
22.2.1999 špagety milánské veèeøe
15.2.1999 salát MIXED, španìlskı veèeøe
23.2.1999 hovìzí maso, �ampionová omáèka, knedlíky veèeøe
25.2.1999 polévka èoèková veèeøe
26.2.1999 sekaná, bramborovı salát veèeøe
27.2.1999 maso CHINA, rı�e obìd
27.2.1999 špekové knedlíky, špenát veèeøe
28.2.1999 maso vepøové-nalo�ené, nudle rı�ové obìd
1.3.1999 maso kuøecí, omáèka francouzská, knedlík veèeøe
2.3.1999 ryba- file sma�ené, bramborovı salát veèeøe
3.3.1999 ryba-file moøská štika, obloha oslava
4.3.1999 Bon Giorno-Baguete veèeøe
5.3.1999 kuøe na paprice, knedlík veèeøe
6.3.1999 polévka banánová oslava
6.3.1999 kapustové karbanátky, bramborová kaše s kapustou oslava
6.3.1999 PIZZA Americana veèeøe
7.3.1999 ryba - filé sma�ené, bramborová kaše obìd
7.3.1999 salát tlaèenkovı, rohlík veèeøe
8.3.1999 kuøe na paprice, knedlík veèeøe
9.3.1999 tìstoviny-nudle zapeèené se �ampiony veèeøe
10.3.1999 kuøe-stehno uzenné, špenát, bramborovı knedlík veèeøe
11.3.1999 polévka dro�ïová veèeøe
11.3.1999 fazole argentinské veèeøe
12.3.1999 pizza šunková veèeøe
13.3.1999 PIZZA QUATRO veèeøe
13.3.1999 polévka hrachová obìd
13.3.1999 ryba-sma�ené prsty, BAGETA, zelenina salát veèeøe
14.3.1999 maso vepøové, omáèka cibulová, knedlík obìd
14.3.1999 chlebíèky oblo�ené veèeøe
15.3.1999 maso krùta, tìstovina, zelenina veèeøe
16.3.1999 knedlík špekovı plnìnı, cibulka, špenát veèeøe
17.3.1999 tìstoviny-nudle zapeèené se �ampiony veèeøe
18.3.1999 párek, bramborová kaše veèeøe
19.3.1999 polévka gulášová veèeøe
20.3.1999 sır a celer sma�enı, hranolky, tatarská omáèka obìd
20.3.1999 polévka bramborová veèeøe
21.3.1999 maso hovìzí na zázvoru, knedlík obìd
21.3.1999 studená veèeøe veèeøe
22.3.1999 špagety milánské veèeøe
23.3.1999 špagety milánské veèeøe
24.3.1999 rizoto, zelenina veèeøe
25.3.1999 plnìnı brambor knedlík, artyèoky veèeøe
26.3.1999 maso vepøové - øízky, bramborovı salát veèeøe
27.3.1999 sekaná, bramborovı salát obìd
27.3.1999 maso vepøové - špíz, brambor veèeøe
28.3.1999 kuøe, nudle, ananas (Jáchym) obìd
28.3.1999 polévka slepièí veèeøe
29.3.1999 chleba zapeèenı-toust veèeøe
30.3.1999 PIZZA Americana veèeøe
31.3.1999 špagety milánské veèeøe
1.4.1999 karbanátek, brambor veèeøe
2.4.1999 polévka rajská obìd
2.4.1999 tìstoviny-nudle zapeèené se špenátem veèeøe
3.4.1999 studené jídlo-vıprava, vılet obìd
3.4.1999 knedlík špekovı plnìnı, cibulka, špenát veèeøe
4.4.1999 piknik v pøírodì oslava
5.4.1999 buøtguláš obìd
5.4.1999 salát vajíèkovı, chleba veèeøe
6.4.1999 maso vepøové, štìpánská omáèka, knedlík veèeøe
7.4.1999 maso kuøecí, vepøová játra China a obloha oslava
8.4.1999 PIZZA veèeøe
9.4.1999 co dùm dá veèeøe
10.4.1999 kuøe, nádivka obìd
10.4.1999 ryba treska moøská na kmínì veèeøe
11.4.1999 knedlík s vejci obìd
11.4.1999 buøtguláš veèeøe
12.4.1999 tìstoviny-vrtule ,zelenina, sır veèeøe
13.4.1999 jitrnice, brambor veèeøe
14.4.1999 hospodì dle vlastního vıbìru veèeøe
15.4.1999 maso vepøové, zelenina veèeøe
16.4.1999 CHINA, ry�e veèeøe
17.4.1999 maso vepøové, omá�ka zázvorová, knedlík obìd
17.4.1999 salát rybí, kudrnková polévka, rohlík veèeøe
18.4.1999 kuøe, nudle, ananas obìd
18.4.1999 salát MIXED, bageta veèeøe
19.4.1999 maso vepøové, omáèka cibulová, knedlík veèeøe
20.4.1999 hospoda dle vlastního vıbìru oslava
21.4.1999 maso vepøové, zelenina veèeøe
22.4.1999 China, zelenina veèeøe
23.4.1999 omeleta s bramborem a zeleninou veèeøe
24.4.1999 studené jídlo-vıprava, vılet obìd
24.4.1999 rybí prsty, brambor, tatarská omáèka veèeøe
25.4.1999 kuøe (stehno Malvína), nudle obìd
25.4.1999 krùtí karbanátky, chleba veèeøe
26.4.1999 China, zelenina veèeøe
27.4.1999 omaèka smetanová, knedlík veèeøe
28.4.1999 chlupaté knedlík plnìny masem, zelí veèeøe
29.4.1999 polévka houbová, salát šopskı veèeøe
30.4.1999 studená veèeøe oslava
1.5.1999 ryba pøírodní, brambor obìd
1.5.1999 buøtguláš veèeøe
2.5.1999 rolka burgundská kuøecí, brambor obìd
2.5.1999 polévka kudrnková, studená mísa veèeøe
3.5.1999 CHINA, rı�e veèeøe
4.5.1999 salát tlaèenkovı veèeøe
5.5.1999 PIZZA šunková veèeøe
6.5.1999 plnìné knedlíky se špenátem veèeøe
7.5.1999 hamburger, salát bramborovı veèeøe
8.5.1999 china polévka, studenı obìd obìd
8.5.1999 China maso, zelenina veèeøe
9.5.1999 brynzové halušky obìd
9.5.1999 ryba zapeèená s bramborem veèeøe
10.5.1999 tìstoviny zapeèené se špenátem veèeøe
11.5.1999 nové brambory, èesneková pomazánka veèeøe
12.5.1999 PIZZA šunková veèeøe
13.5.1999 øízky vepøové,brambor veèeøe
12.11.1999 China maso, zelenina oslava
19.11.1999 CHINA, ry�e veèeøe
20.11.1999 polévka drš�ková, chleba obìd
21.11.1999 kuøe, nudle, ananas obìd
21.11.1999 rizoto, okurka veèeøe
22.11.1999 hospoda dle vlastního vıbìru (KFC) obìd
25.11.1999 sekaná, bramborovı salát veèeøe
26.11.1999 maso vepøové, omáèka smetanová, knedlík veèeøe
27.11.1999 sır sma�enı, brambory obìd
28.11.1999 maso uzené, zeleninová omáèka, knedlík, obloha veèeøe
28.11.1999 chléb arabskı plnìnı masem a zeleninou veèeøe
29.11.1999 maso telecí, smetanová omáèka, knedlík veèeøe
27.11.1999 špagety milánské veèeøe
30.11.1999 knedlík bramborovı, cibulka se salámem, zelí veèeøe
1.12.1999 PIZZA šunková veèeøe
2.12.1999 polévka drš�ková veèeøe
3.12.1999 China maso, zelenina oslava
4.12.1999 maso vepøové-segedínskı guláš, knedlík oslava
4.12.1999 polévka �ampionová veèeøe
5.12.1999 MIKULÁŠ veèeøe
7.12.1999 maso hovìzí-guláš, knedlík veèeøe
8.12.1999 maso vepøové, špenát, knedlík veèeøe
9.12.1999 tìstoviny-vrtule ,zelenina, sır veèeøe
10.12.1999 CHINA, rı�e veèeøe
11.12.1999 polévka kudrnková kuøecí asijská obìd
11.12.1999 sekaná, brambory veèeøe
12.12.1999 maso vepøové, obalované, plnìné nivou, brambor obìd
12.12.1999 polévka �ampionová veèeøe
13.12.1999 knedlíky jahodové, tvrdı tvaroh veèeøe
14.12.1999 špagety veèeøe
15.12.1999 ryba s vejci, chleba, pøíloha veèeøe
16.12.1999 tìstoviny vrtule s porkem a nivou zapeèené veèeøe
1.1.2001 maso uzené, èoèka obìd
2.1.2001 špagety milánské obìd
2.1.2001 polévka kuøecí veèeøe
3.1.2001 tìstoviny-fleky, cikánská omáèka veèeøe
4.1.2001 polévka drš�ková, chleba veèeøe
5.1.2001 knedlík bramborovı, špenát, uzenné maso veèeøe
6.1.2001 polévka drš�ková obìd
6.1.2001 maso vepøové-segedínskı guláš, knedlík veèeøe
25.4.2002 slepice na vínì, knedlík veèeøe
24.4.2002 maso vepøové pøírodní, brambor veèeøe
2.5.2002 brambory s máslem veèeøe
1.5.2002 knedlík špekovı plnìnı, cibulka, špenát veèeøe
1.5.2002 kuøe na paprice, knedlík obìd
16.3.2005 kuøe prsa, koprová omáèka, knedlík veèeøe
16.3.2005 špagety, pasta Genovese, sır obìd
17.3.2005 PIZZA šunková veèeøe
18.3.2005 polévka kuøecí obìd
18.3.2005 SENDVIÈ-TOUSTY obìd
21.5.2002 ryba na páøe, sır, brambory, tatarka veèeøe
1.1.2006 uzené maso, èoèka oslava
2.1.2006 kaviár, vejce, šunk, sır veèeøe
3.1.2006 brambor, mìkkı tvaroh s èesnekem a rozmarınou veèeøe
4.1.2006 vepøové maso, zelí, knedliky bramborové veèeøe
5.1.2006 polévka houbová obìd
5.1.2006 brokolice zapeèená s tousty, sır a vejce veèeøe
6.1.2006 maso kuøecí marinovaná prsa, bašamel, nádivka veèeøe
7.1.2006 tlaèenka salát,zelenina veèeøe
8.1.2006 kuøe peèené, americké brambory, ananas obìd
8.1.2006 sır s chlebem veèeøe
9.1.2006 závin z lístkového tìsta, zelí, uzenina veèeøe
10.1.2006 maso hovìzí,tatarskı biftek, topinka veèeøe
11.1.2006 maso vepøové, pøírodní krkovice, rajèata oslava
12.1.2006 maso hovìzí, guláš, brambory veèeøe
13.1.2006 slepice na paprice, knedlík veèeøe
14.1.2006 slepice na paprice, knedlík obìd
14.1.2006 tlaèenka salát, zelenina, chleba veèeøe
15.1.2006 kuøe peèené, americké brambory, ananas obìd
15.1.2006 studená veèeøe veèeøe
16.1.2006 polévka drš�ková, chleba obìd
16.1.2006 tìstoviny zapeèené, porek, rajèata, sır veèeøe
17.1.2006 klobása vinná, brambory, sálát 1000ostrovù veèeøe
18.1.2006 Pizza ètyø sırù veèeøe
19.1.2006 brambory, rajèata, okurka, zakysaná smetana veèeøe
20.1.2006 krùtí stehna, paprika, porek, zakysaná smetana, rı�e veèeøe
21.1.2006 sekaná, kapusta, vejci, brambory kaše obìd
21.1.2006 tresèí játra, obloha, chleba veèeøe
23.1.2006 Boloòské špagety veèeøe
24.1.2006 Špekové knedlíky, tymián, chilli, špenát veèeøe
25.1.2006 tresèí játra, chleba veèeøe
26.1.2006 tìstoviny-vrtule ,zelenina, sır veèeøe
27.1.2006 pizza Margarita veèeøe
28.1.2006 ryba hejk na èerném másle, nádivka obìd
28.1.2006 tlaèenka salát, zelenina, chleba veèeøe
29.1.2006 kuøe peèené, americké brambory, ananas veèeøe
30.1.2006 sekaná, brambory kaše, obloha veèeøe
31.1.2006 krùtí maso, zakysaná smetana, pepø, paprika, provensálské koøení, knedlík veèeøe
1.2.2006 pizza Margarita veèeøe
2.2.2006 špagety milánské veèeøe
2.2.2006 krùtí stehna, paprika, porek, zakysaná smetana, knedlík obìd
3.2.2006 polévka dro�ïová obìd
3.2.2006 knedlík brambory, anglická slanina, cibule, (Malvína) veèeøe
4.2.2006 salát brambory, sekaná obìd
4.2.2006 tlaèenka salát, zelenina, chleba veèeøe
5.2.2006 kuøe peèené, americké brambory, ananas obìd
5.2.2006 chleba, cibule, salám veèeøe
6.2.2006 rizoto, brokolice veèeøe
7.2.2006 špagety, sır veèeøe
8.2.2006 slepièí polévka veèeøe
9.2.2006 palaèinky, pórek, (Malvína) veèeøe
10.2.2006 krùta polévka, vejce obìd
10.2.2006 krùta, feferonky, smetana, knedlík veèeøe
11.2.2006 brambory kaše, peèenı bùèek oslava
11.2.2006 salát tlaèenka, okurka, cibule, rajèata, kapie, chleba veèeøe
12.2.2006 kuøe peèené, americké brambory, ananas obìd
12.2.2006 krùta, feferonky, smetana, knedlík veèeøe
13.2.2006 brambory polévka, houby, chleba obìd
13.2.2006 maso vepøové, øízek sma�enı, hranolky, tatarská omáèka, okurka salát (Kryštof) veèeøe
14.2.2006 suvlaki, gyros, pita chléba, tzaziki, (Valentyn-øecká teverna), camembert, francouzskı bar oslava
17.2.2006 ledvinky, slanina, smetana, knedlík veèeøe
18.2.2006 krùta, brambory, kapie obìd
18.2.2006 tlaèenka salát, zelenina, chleba veèeøe
19.2.2006 kuøe peèené, americké brambory, ananas obìd
20.2.2006 tìstoviny zapeèené, maso, vejce, zelenina veèeøe
21.2.2006 koláè JANA, (Malvína) obìd
21.2.2006 PIZZA šunková veèeøe
22.2.2006 uzenná makrela, cibule, chleba veèeøe
23.2.2006 salát MIXED, ledovı salát, vejce, surimi, italskı dresing, rajèata, okurka, jarní cibule, kapie veèeøe
24.2.2006 maso vepøové, krkovice, èesnek, oliva olej, cibule, rozmarın, smetana, knedlík veèeøe
25.2.2006 maso hovìzí, dušená mrkev, brambor veèeøe
26.2.2006 kuøe peèené, americké brambory, ananas obìd
27.2.2006 polévka hovìzí, játra knedlík, chleba obìd
27.2.2006 èoèka, cibule, èesnek, majoránka, paprika klobása, vejce volské oko veèeøe
28.2.2006 uzenné maso, špenát, chlupatı knedlík, cibule veèeøe
1.3.2006 PIZZA šunková veèeøe
2.3.2006 brambory francouzské, okurka veèeøe
3.3.2006 fondue, maso kuøecí, vepøové, krùtí, sır, �ampiony, niva, omáèka avokádo, èesnek, kapie, rajèata, okurky, bagety oslava
4.3.2006 maso vepøové, krùta, kuøe, segedinskı guláš, knedlík obìd
4.3.2006 pizza 4 sıry veèeøe
5.3.2006 kuøe peèené, americké brambory, ananas obìd
5.3.2006 polévka kuøe veèeøe
6.3.2006 rohlík, šunka, sır Madeland, mandarinka obìd
6.3.2006 sma�enı hermelín, karbanátek, brambory, okurka, rajèe, kapie salát veèeøe
7.3.2006 houska, šunka, sır Madeland, banán, horalka obìd
7.3.2006 pizza 4 sır veèeøe
8.3.2006 houska, šunka, sır, pomeranè obìd
8.3.2006 krùta maso, hranolky veèeøe
9.3.2006 houska, šunka, sır Hermelín, mandarinka obìd
9.3.2006 uzenné maso, brambory kaše veèeøe
10.3.2006 bageta, uherskı salám, sır, palivec, mandarinka, jablko obìd
10.3.2006 plnìná paprika, mleté maso, rı�e veèeøe
11.3.2006 špenát, brambory knedlík obìd
11.3.2006 tlaèenka salát, zelenina, chleba veèeøe
12.3.2006 kuøe peèené, americké brambory, ananas obìd
13.3.2006 brambory francouzské, okurka veèeøe
14.3.2006 brambory francouzské, okurka veèeøe
15.3.2006 maso vepøové-segedinskı guláš, knedlík veèeøe
16.3.2006 sekaná, brambory kaše, obloha veèeøe
17.3.2006 špagety milánské veèeøe
18.3.2006 vepøové maso, zelí, knedliky bramborové obìd
18.3.2006 tlaèenka salát, zelenina, chleba veèeøe
19.3.2006 kuøe peèené, americké brambory, ananas obìd
20.3.2006 pizza 4 sır veèeøe
21.3.2006 maso vepøové, pøírodní krkovice, rajèata veèeøe
22.3.2006 lasagne, maso mleté, mozarella, rajèata veèeøe
23.3.2006 hermelín sma�enı, brambory, tatarská omáèka veèeøe
24.3.2006 Boloòské špagety veèeøe
25.3.2006 maso vepøové - øízky, bramborovı salát obìd
25.3.2006 tlaèenka salát,zelenina veèeøe
26.3.2006 kuøe peèené, americké brambory, ananas obìd
26.3.2006 co dá lednice? veèeøe
27.3.2006 tìstoviny zapeèené, porek, rajèata, sır veèeøe
28.3.2006 rizoto, brokolice veèeøe
29.3.2006 maso vepøové, pøírodní krkovice, rajèata veèeøe
30.3.2006 buøtguláš veèeøe
31.3.2006 maso vepøové, omáèka se šalvìjí, knedlík veèeøe
1.4.2006 brambory nové, tvaroh, balkánskı sır, bazalka, èesnek, zelí obìd
1.4.2006 tlaèenka salát, zelenina, chleba veèeøe
2.4.2006 kuøe peèené, americké brambory, ananas obìd
2.4.2006 co dá lednice? veèeøe
3.4.2006 chleba zapeèenı, salám, sır, cibule, èesnek veèeøe
3.4.2006 maso krùta, stehenní øízky, kapie, cibule, okurka, rajèata, bageta veèeøe
4.4.2006 tìstoviny, bešamel, sır veèeøe
5.4.2006 PIZZA šunková veèeøe
6.4.2006 ledvinky, šalvìj, rı�e veèeøe
7.4.2006 bramborák, zelí, rajèata (Kryštof) veèeøe
8.4.2006 èoèka, vejce obìd
8.4.2006 ledvinky, šalvìj, rı�e veèeøe
9.4.2006 kuøe peèené, brambory, obìd
9.4.2006 kuøe polévka veèeøe
10.4.2006 pizza 4 sıry veèeøe
11.4.2006 krùta maso, rojaská omáèka, knedlík veèeøe
11.4.2006 èoèka polévka obìd
12.4.2006 torteliny, sır, maso mleté, parmezán omáèka veèeøe
13.4.2006 sma�enı øízek, chleba veèeøe
14.4.2006 mexické placky Tortillas, omáèka Tortillas, krùta maso veèeøe
15.4.2006 salát, brambory, sekaná obìd
15.4.2006 bramborák (Plzeò) obìd
15.4.2006 tlaèenka salát, zelenina, chleba veèeøe
16.4.2006 polévka kuøecí obìd
16.4.2006 chlupatı knedlík, zelí, maso vepøové (Marcela), veèeøe
17.4.2006 kuøe, nádivka, ananas (velikonoce) obìd
17.4.2006 vejce salát, chleba (velikonoce) veèeøe
18.4.2006 ledvinky, slanina, smetana, knedlík veèeøe
19.4.2006 tìstoviny, bešamel, sır veèeøe
20.4.2006 vepøové maso bùèek peèená nasívaná roláda, slanina, vejce natvrdo, hoøèice, okurky, slanina anglická, budapeš� klobása, brambory knedlík, zelí veèeøe
26.4.2006 krùta maso, svíèková omáèka, knedlík veèeøe
25.4.2006 èoèka, klobása veèeøe
23.4.2006 kuøe peèené, americké brambory, ananas obìd
22.4.2006 klobása, chleba obìd
23.2.2019 vepøovı øízek, brambory obìd
22.2.2019 jatrová paštika s brusinkami, chleba veèeøe
17.2.2019 kuøe, tìstoviny obìd
21.2.2019 kuøe, tìstoviny veèeøe
+60
View File
@@ -0,0 +1,60 @@
DATUM JIDLOSEBOU
23.2.2019 MASO-vepøové, BRAMBORY, ØÍZEK obìd
22.2.2019 PAŠTIKA-játrová-s-brusinkami, CHLEBA veèeøe
17.2.2019 MASO-kuøecí, TÌSTOVINY, peèené-celé-KUØE obìd
21.2.2019 MASO-kuøecí, TÌSTOVINY veèeøe
23.2.2019 MASO-vepøové, CHLEBA, ØÍZEK veèeøe
24.2.2019 MASO-kuøecí, BRAMBORY, ZELENINA-SALÁT, peèená-spodní-stehna obìd
24.2.2019 UZENINA-klobása, ZELENINA, CHLEBA, LEÈO veèeøe
25.2.2019 UZENINA-klobása, TÌSTOVINY, LEÈO obìd
26.2.2019 MASO-kuøecí, SMETANA, Rİ�E, kuøecí-srdce veèeøe
26.2.2019 zmrzlina-COPPA-CABANA obìd
27.2.2019 MASO-kuøecí, SMETANA, Rİ�E, kuøecí-srdce obìd
28.2.2019 UZENINA-klobása, tìstoviny, LEÈO veèeøe
28.2.2019 BRAMBORY, BRAMBORÁK obìd
25.2.2019 ÈOKOLÁDA veèeøe
27.2.2019 UZENINA-klobása, TÌSTOVINY, LEÈO veèeøe
1.3.2019 MASO-kuøecí, SMETANA, Rİ�E, kuøecí-srdce obìd
3.3.2019 MASO-kuøecí, CHLEBA, peèené-celé-KUØE obìd
2.3.2019 PALAÈINKY, PÓREK obìd
2.3.2019 MASO-vepøové, CHLEBA, CIBULE veèeøe
4.3.2019 MASO-vepøové, CHLEBA, CIBULE obìd
4.3.2019 KLOBÁSA, HRÁCH veèeøe
5.3.2019 KLOBÁSA, HRÁCH obìd
6.3.2019 CHLEBA, ÈESNEK, ZELENINA-salát, ZELÍ veèeøe
6.3.2019 KLOBÁSA, HRÁCH obìd
6.3.2019 BRAMBORY, HRANOLKY veèeøe
2.3.2019 MASO-kuøecí, SMETANA, Rİ�E, kuøecí-srdce veèeøe
2.3.2019 MASO-kuøecí, SMETANA, Rİ�E, kuøecí-srdce obìd
7.3.2019 KLOBÁSA, HRÁCH veèeøe
7.3.2019 BRAMBORY, FLORA obìd
8.3.2019 MASO-kuøecí, JÁTRA, BRAMBORY veèeøe
8.3.2019 zmrzlina-COPPA-CABANA obìd
11.3.2019 MASO-vepøové, ŠPENÁT, GNOCHI veèeøe
12.3.2019 MASO-vepøové, SEKANÁ, SALÁT-bramborovı obìd
13.3.2019 MASO-vepøové, SEKANÁ, SALÁT-bramborovı veèeøe
17.3.2019 MASO-kuøecí, FENYKL, peèené-celé-KUØE obìd
16.3.2019 MASO-vepøové, TÌSTOVINY, CELER obìd
15.3.2019 MASO-vepøové, TÌSTOVINY, CELER veèeøe
18.3.2019 MASO-vepøové, TÌSTOVINY, GULÁŠ SZEGEDINSKİ obìd
18.3.2019 MASO-kuøecí, TLAÈENKA, CHLEBA veèeøe
19.3.2019 MASO-vepøové, TÌSTOVINY, GULÁŠ SZEGEDINSKİ veèeøe
20.3.2019 VEJCE, CIBULKA obìd
20.3.2019 MASO-vepøové, KNEDLIK, GULÁŠ SZEGEDINSKİ veèeøe
21.3.2019 CHILLI-CON-CARNE, FAZOLE, KLOBÁSA obìd
21.3.2019 RYBÍ-MASO, CIBULE, RYBIÈKY-KONZERVA veèeøe
16.6.2019 MASO-kuøecí, BRAMBORY, ZELENINA-SALÁT, KUØE CELÉ obìd
19.6.2019 SİR AM�ENY, BRAMBOR, TATASKÁ OMÁÈKA, ZELENINA SALÁT veèeøe
20.6.2019 KVÌTÁK SMA�ENİ, BRAMBOR, TATARSKÁ OMÁÈKA, ZELENINA SALÁT veèeøe
23.7.2019 PALAÈINKY, PÓREK veèeøe
21.7.2019 MASO-kuøecí, TÌSTOVINY, peèené-2x1/4-KUØE, RYİE obìd
26.7.2019 FAZOLKY, BRAMBOR, SMETANOVÁ OMÁÈKA, NIVA veèeøe
1.4.2021 KUØECÍ MASO, FAZOLKY NA SMETANÌ obìd
3.4.2021 KUØE-sma�enı øízek, brambor, salát obìd
4.4.2021 RYBA- Pstruh peèenı, brambor, salát obìd
5.4.2021 MLETÉ MASO -ra�nièi, brambor, salát obìd
6.4.2021 RISOTO, salát zelenina obìd
7.4.2021 RISOTO, salát zelenina obìd
2.4.2021 KUØECÍ MASO, FAZOLKY NA SMETANÌ obìd
14.5.2021 SİR SMA�ENİ, BRAMBOR, TATARSKÁ OMÁÈKA obìd
14.5.2021 SİR SMA�ENİ, BRAMBOR, TATARSKÁ OMÁÈKA obìd
+224 -257
View File
@@ -1,6 +1,6 @@
/* =========================================================================
KUCHAŘKA HELENY A KAMILY HEROUTOVÉ (1998–2026) // PASCAL 7.0 WEB ENGINE
Software-salon ALTÁN (Václavkova 2, Praha 6) & The Observatoř Konzdat
KUCHAŘKA KAMILY PEŠEK // PASCAL 7.0 WEB ENGINE (331 RECEPTŮ & 568 JÍDEL)
Kulinářská paměť Kamily Pešek & Software-salon ALTÁN (Helena Heroutová)
========================================================================= */
// Audio engine (Retro PC Speaker via Web Audio API)
@@ -29,156 +29,16 @@ function playSpeaker(freq = 800, duration = 0.04, type = 'square') {
} catch (e) {}
}
// Full Authentic Recipes from Kamila Heroutová's handwritten notebook
const KNIHA_RECEPTU = [
{
id: 1,
nazev: "Zavářená kmínová polévka pro dva",
kategorie: "Polévka",
doba: 30,
suroviny: [
"1 malá cibule jemně nasekaná",
"Kousek másla na zpěnění",
"2 brambory nakrájené na drobné kostičky",
"1 lžička sladké a špetka pálivé papriky",
"Celý český kmín a sůl",
"1 litr mléka (nebo kysaná smetana) s lžící mouky"
],
postup: "Cibuli zpěnit na másle do sklovata. Přidat brambory, papriku a kmín. Zalít vodou a uvařit doměkka. V mléce rozkvedlat lžíci hrubé mouky, vlažné vlít do vroucí polévky a nechat provařit.",
tajemstvi: "Před podáváním zjemnit lžící poctivé kysané smetany a celý kmín před vhozením promnout v dlani pro uvolnění silic."
},
{
id: 2,
nazev: "Babiččino kuře na česneku a slanině",
kategorie: "Hlavní chod",
doba: 85,
suroviny: [
"1 celé kuře naporcované na čtvrtky",
"15 dkg domácí uzené slaniny na kostičky",
"1 celá hlavička třeného českého česneku",
"Kousek másla a sůl s černým pepřem",
"Příloha: vařené brambory s petrželkou"
],
postup: "Do litinového pekáče nasypat kostičky slaniny a česnek. Čtvrtky kuřete osolit, opepřit, položit kůží nahoru na lůžko, poklást plátky másla a pomalu péct přikryté.",
tajemstvi: "Posledních 15 minut odklopit poklop a zvednout žár v troubě, aby kůžička dokonale zkřupala a česnek zezlátl."
},
{
id: 3,
nazev: "Vosí hnízda s rumovým krémem",
kategorie: "Vánoční cukroví",
doba: 50,
suroviny: [
"16 dkg jemně rozdrcených piškotů",
"16 dkg moučkového cukru",
"6 dkg másla, 2 lžíce holandského kakaa",
"2 lžíce mléka a pořádná dávka tuzemského rumu",
"Krém: 5 dkg másla utřeného se žloutkem a vanilkovým cukrem",
"Celé dětské piškoty na přiklopení"
],
postup: "Z těsta vyválet váleček. Kousky vmačkat do formiček vysypaných moučkovým cukrem, udělat důlek, naplnit žloutkovým krémem a zaklopit piškotem.",
tajemstvi: "Formičku před každým kouskem vyprášit moučkovým cukrem, hnízdo pak vyklouzne jedním lehkým klepnutím o vál."
},
{
id: 4,
nazev: "Dělové koule (nepečené kakao)",
kategorie: "Cukroví",
doba: 40,
suroviny: [
"10 dkg pravého změklého másla",
"10 lžic moučkového cukru",
"1 sáček vanilkového cukru",
"1 čerstvý vaječný žloutek",
"2 plné lžíce holandského kakaa",
"Strouhaný kokos nebo mleté vlašské ořechy na obalení"
],
postup: "Máslo utřít s cukrem, kakaem a žloutkem do kompaktní hmoty. Tvarovat kuličky a obalovat v kokosu či ořeších. Nechat odležet v chladu.",
tajemstvi: "Přímo do kakaového základu kápnout tři kapky rumu pro sametový lesk a plnost čokoládové chuti."
},
{
id: 5,
nazev: "Kočičí oči s rybízovou marmeládou",
kategorie: "Pečení",
doba: 45,
suroviny: [
"10 dkg hladké mouky",
"8 dkg poctivého másla",
"3 dkg moučkového cukru",
"1 vaječný žloutek",
"Ostrá domácí rybízová marmeláda"
],
postup: "Křehké těsto nechat odpočinout v chladu. Vyválet na tenko, vykrajovat plná kolečka a kolečka se třemi dírkami. Péct do světle růžova a slepovat rybízem.",
tajemstvi: "Rybízovou marmeládu před mazáním mírně nahřát v kastrůlku, aby se dokonale vpila do křehkého těsta."
},
{
id: 6,
nazev: "Sváteční taštičky s vepřovým masem",
kategorie: "Sváteční pečení",
doba: 55,
suroviny: [
"2 balíčky listového těsta",
"30 dkg mletého vepřového masa",
"1 cibule nasekaná najemno",
"Domácí slanina na kostičky",
"1 vejce do náplně, 1 vejce na potření",
"Jemně strouhaná citronová kůra a pepř"
],
postup: "Mleté maso orestovat na cibulce se slaninou a citronovou kůrou. Z těsta vyválet čtverce, plnit masem, okraje stisknout vidličkou, potřít vejcem a péct zprudka v horké troubě.",
tajemstvi: "Citronová kůra dodá vepřové náplni neuvěřitelnou svěžest a lehkost (ochranná známka Kamily)."
},
{
id: 7,
nazev: "Zapečené fleky se špenátem a uzeným masem",
kategorie: "Hlavní chod",
doba: 40,
suroviny: [
"Těstoviny fleky",
"Listový špenát čerstvý či drcený",
"Uzené maso nebo klobása na kostičky",
"3 vejce a trochu plnotučného mléka",
"4 stroužky třeného českého česneku"
],
postup: "Fleky uvařit al dente, špenát podusit na česneku. Promíchat s uzeným masem, rozprostřít do vymazaného pekáčku a zapéct zalité rozšlehaným vejcem s mlékem.",
tajemstvi: "Do vaječné zálivky přistrouhnout čerstvý muškátový oříšek a na povrch položit plátky uzeného boku."
},
{
id: 8,
nazev: "Kuřecí srdíčka na smetaně s rýží",
kategorie: "Hlavní chod",
doba: 50,
suroviny: [
"Čerstvá kuřecí srdíčka (500g)",
"Hustá 33% smetana ke šlehání",
"Rýže parboiled nebo jasmínová",
"Cibule a poctivé máslo",
"Nové koření, bobkový list a černý pepř"
],
postup: "Srdíčka očistit a podusit na cibulce s divokým kořením doměkka. Vyjmout koření, zalít smetanou a nechat zredukovat do sametové omáčky.",
tajemstvi: "Omáčku nezahušťovat moukou! Nechat ji přirozeně zhoustnout pouhou redukcí poctivé smetany."
}
];
// Historical Database records (510 entries sample from 1998-2021 Bohnice)
const HISTORICKA_JIDLA = [
{ nazev: "PIZZA [založení deníku v Bohnicích]", datum: "03.08.1998", typ: "Večeře", vareni: 12, tagy: ["pizza", "syr", "testo"] },
{ nazev: "Špenát, uzené maso, bramborový knedlík", datum: "04.08.1998", typ: "Večeře", vareni: 19, tagy: ["spenat", "maso", "knedlik", "uzene"] },
{ nazev: "Kuře, nudle, ananas (Kryštofovo oblíbené)", datum: "06.09.1998", typ: "Oběd", vareni: 18, tagy: ["kure", "nudle", "ananas", "maso"] },
{ nazev: "Maso – uzený jazyk, brambory, obloha", datum: "13.09.1998", typ: "Oslava", vareni: 7, tagy: ["maso", "brambory", "jazyk"] },
{ nazev: "Smažený sýr, vařené brambory a tatarka", datum: "14.05.2021", typ: "Večeře", vareni: 32, tagy: ["syr", "brambory", "tatarka", "vejce"] },
{ nazev: "Špagety milánské se sýrem a masem", datum: "10.04.2021", typ: "Oběd", vareni: 29, tagy: ["spagety", "maso", "syr", "rajcata"] },
{ nazev: "Domácí lečo s klobásou a čerstvým chlebem", datum: "12.08.2020", typ: "Večeře", vareni: 27, tagy: ["leco", "vejce", "klobasa", "chleb"] },
{ nazev: "Rizoto se zeleninou, kuřecím masem a sýrem", datum: "02.03.2021", typ: "Oběd", vareni: 25, tagy: ["ryze", "kure", "zelenina", "syr"] },
{ nazev: "Smažený vepřový řízek s bramborovým salátem", datum: "23.02.2019", typ: "Oběd", vareni: 24, tagy: ["maso", "brambory", "vejce", "salat"] },
{ nazev: "Královská drůbeží sekaná s bramborovou kaší", datum: "15.01.2021", typ: "Oběd", vareni: 23, tagy: ["maso", "brambory", "kase", "mleko"] },
{ nazev: "Křupavý bramborák s česnekem a majoránkou", datum: "05.11.2020", typ: "Večeře", vareni: 22, tagy: ["brambory", "cesnek", "vejce", "majoranka"] },
{ nazev: "Fazolky na kyselo se smetanou a bramborem", datum: "18.06.2020", typ: "Oběd", vareni: 17, tagy: ["fazolky", "smetana", "brambory", "ocet"] },
{ nazev: "Hovězí guláš s cibulí a houskovým knedlíkem", datum: "20.10.2019", typ: "Oběd", vareni: 20, tagy: ["maso", "hovezi", "cibule", "knedlik"] },
{ nazev: "Palačinky s tvarohem a jahodovou marmeládou", datum: "11.04.2020", typ: "Večeře", vareni: 16, tagy: ["mleko", "mouka", "vejce", "tvaroh"] },
{ nazev: "Květákový mozeček s vařeným bramborem", datum: "28.05.2019", typ: "Oběd", vareni: 14, tagy: ["kvetak", "vejce", "brambory", "cibule"] }
];
// Data references
const KNIHA_RECEPTU = window.KNIHA_RECEPTU || [];
const HISTORICKA_JIDLA = window.HISTORICKA_JIDLA || [];
// App State
let currentView = 'menu'; // 'menu', 'recept', 'recepty_list', 'suroviny', 'davno', 'oblibena', 'kronika', 'altan'
let currentRecipeId = 1;
let currentCategory = 'Vše';
let listPage = 0;
const PAGE_SIZE = 12;
const screenEl = document.getElementById('screen-content');
const winTitleEl = document.getElementById('win-title');
@@ -190,50 +50,56 @@ setInterval(() => {
timeEl.textContent = d.toTimeString().split(' ')[0];
}, 1000);
// Normalization function (strip accents)
// Normalization function (strip accents & non-alphanumeric)
function norm(str) {
return (str || "").toLowerCase()
.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
.replace(/[^a-z0-9]/g, "");
}
// Categories list
const KATEGORIE = [
'Vše',
'Polévky',
'Masitá jídla',
'Vánoční cukroví',
'Moučníky a sladké',
'Přílohy a bezmasá',
'Omáčky',
'Saláty a zelenina'
];
// Views renderers
function renderMainMenu() {
currentView = 'menu';
winTitleEl.textContent = "KUCHAŘKA HELENY A KAMILY HEROUTOVÉ // HLAVNÍ NABÍDKA";
winTitleEl.textContent = "KUCHAŘKA KAMILY PEŠEK // HLAVNÍ NABÍDKA PASCAL 7.0";
let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════
KUCHAŘKA HELENY A KAMILY HEROUTOVÉ // SOFTWARE-SALON ALTÁN (1998–2026)
Dejvice, Václavkova 2 & Bohnice | Rekonstrukce v Pascalu pro The Observatoř
KUCHAŘKA KAMILY PEŠEK // AUTENTICKÝ SEŠIT RECEPTŮ (1998–2026)
Software-salon ALTÁN (Ing. Helena Heroutová, Dejvice) & Konzdat
════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box">
<span style="color:var(--dos-yellow)">Vítejte v rodinném softwarovém archivu receptů a jídelníčků.</span>
Tento systém propojil procedurální přesnost Turbo Pascalu s každodenní
péčí o teplo domova a společný stůl po více než dvě dekády.
<span style="color:var(--dos-yellow)">Vítejte v rodinném gastronomickém archivu babičky <strong>Kamily Pešek</strong>.</span>
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.
</div>
<div class="dos-header" style="color:var(--dos-cyan)">── RUČNĚ PSANÝ SEŠIT RECEPTŮ KAMILY HEROUTOVÉ ─────────────────────────────</div>
<div class="dos-menu-list">
`;
KNIHA_RECEPTU.forEach(r => {
html += `<div class="dos-menu-item" onclick="openRecipe(${r.id})">
<span class="hotkey">[${r.id}]</span>
<span style="color:var(--dos-white)">${r.nazev}</span>
<span class="tag-badge" style="margin-left:auto">${r.kategorie} (${r.doba} min)</span>
</div>`;
});
html += `</div>
<div class="dos-header" style="color:var(--dos-cyan)">── ALGORITMICKÉ MODULY & VAŘENÍ (KUCHARKA.EXE) ─────────────────────────────</div>
<div class="dos-header" style="color:var(--dos-cyan)">── HLAVNÍ PROGRAMOVÉ MODULY ────────────────────────────────────────────────</div>
<div class="dos-menu-list">
<div class="dos-menu-item" onclick="openReceptyList('Vše')">
<span class="hotkey">[R]</span>
<span style="color:var(--dos-white); font-weight:bold">>> PROCHÁZET CELÝ RECEPTÁŘ KAMILY PEŠEK (${KNIHA_RECEPTU.length} receptů dle kategorií) <<</span>
</div>
<div class="dos-menu-item" onclick="openSuroviny()">
<span class="hotkey">[S]</span>
<span style="color:var(--dos-yellow); font-weight:bold">>> VAŘIT PODLE SUROVIN VE ŠPAJZU << (Algoritmus prohledání lednice)</span>
</div>
<div class="dos-menu-item" onclick="openRandomRecipe()">
<span class="hotkey">[N]</span>
<span style="color:var(--dos-green)">Náhodný recept pro dnešní den (Inspirace z Kamilina sešitu)</span>
</div>
<div class="dos-menu-item" onclick="openDavno()">
<span class="hotkey">[D]</span>
<span>Doporučení: Dávno nevařeno (Prevence stereotypu - DoporucD)</span>
@@ -244,7 +110,7 @@ function renderMainMenu() {
</div>
<div class="dos-menu-item" onclick="openKronika()">
<span class="hotkey">[K]</span>
<span>Kronika rodinného stolu (Prohlížeč 510 záznamů JÍDLA 1998–2021)</span>
<span>Kronika rodinného stolu (Prohlížeč ${HISTORICKA_JIDLA.length} záznamů z Bohnic a Dejvic)</span>
</div>
<div class="dos-menu-item" onclick="openAltan()">
<span class="hotkey">[A]</span>
@@ -252,13 +118,106 @@ function renderMainMenu() {
</div>
</div>
<div class="dos-header" style="color:var(--dos-cyan)">── RYCHLÝ VÝBĚR KATEGORIE ──────────────────────────────────────────────────</div>
<div style="display:flex; flex-wrap:wrap; gap:8px; margin:10px 0">
`;
KATEGORIE.slice(1).forEach((cat, idx) => {
const count = KNIHA_RECEPTU.filter(r => r.kategorie === cat).length;
html += `<button class="dos-btn" onclick="openReceptyList('${cat}')">[${idx + 1}] ${cat} (${count})</button>`;
});
html += `</div>
<div style="margin-top:20px; color:var(--dos-grey)">
Zvolte číslo <span class="hotkey">[1-8]</span> nebo klávesu <span class="hotkey">[S, D, O, K, A]</span>. Na mobilu klepněte prstem.
Zvolte klávesu <span class="hotkey">[R, S, N, D, O, K, A]</span> nebo kategorii <span class="hotkey">[1-7]</span>. Na mobilu klepněte prstem.
</div>
`;
screenEl.innerHTML = html;
}
// List of recipes with category filter & pagination
function openReceptyList(category = 'Vše', page = 0) {
currentView = 'recepty_list';
currentCategory = category;
listPage = page;
playSpeaker(700, 0.04);
const filtered = category === 'Vše' ? KNIHA_RECEPTU : KNIHA_RECEPTU.filter(r => r.kategorie === category);
const totalPages = Math.ceil(filtered.length / PAGE_SIZE);
const pageItems = filtered.slice(page * PAGE_SIZE, (page + 1) * PAGE_SIZE);
winTitleEl.textContent = `RECEPTÁŘ KAMILY PEŠEK // ${category.toUpperCase()} (${filtered.length} RECEPTŮ)`;
let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════
RECEPTÁŘ KAMILY PEŠEK // KATEGORIE: ${category.toUpperCase()} (Strana ${page + 1}/${totalPages || 1})
════════════════════════════════════════════════════════════════════════════════</div>
<div style="display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px">
`;
KATEGORIE.forEach(cat => {
const activeClass = cat === category ? 'style="background-color:var(--dos-yellow); color:var(--dos-black)"' : '';
html += `<button class="dos-btn" ${activeClass} onclick="openReceptyList('${cat}', 0)">${cat}</button>`;
});
html += `</div>
<div class="dos-input-group" style="margin:8px 0 14px 0">
<input type="text" id="recipe-search-input" class="dos-input" placeholder="Rychlé hledání v receptech (např. bábovka, kuře, kmínová, závin)...">
</div>
<div class="dos-menu-list" id="recipe-items-container">
`;
pageItems.forEach((r, idx) => {
html += `<div class="dos-menu-item" onclick="openRecipe(${r.id})">
<span class="hotkey">[${r.id}]</span>
<span style="color:var(--dos-white)">${r.nazev}</span>
<span class="tag-badge" style="margin-left:auto">Str. ${r.strana} | ${r.kategorie}</span>
</div>`;
});
html += `</div>
<div style="margin-top:16px; display:flex; justify-content:space-between; align-items:center">
<div style="display:flex; gap:10px">
<button class="dos-btn" onclick="renderMainMenu()">[ESC] HLAVNÍ NABÍDKA</button>
${page > 0 ? `<button class="dos-btn" onclick="openReceptyList('${category}', ${page - 1})">[◄] PŘEDCHOZÍ STRANA</button>` : ''}
${page < totalPages - 1 ? `<button class="dos-btn" onclick="openReceptyList('${category}', ${page + 1})">[►] DALŠÍ STRANA</button>` : ''}
</div>
<div style="color:var(--dos-yellow); font-size:13px">
Celkem ${filtered.length} receptů
</div>
</div>
`;
screenEl.innerHTML = html;
// Search input live filtering
const searchInput = document.getElementById('recipe-search-input');
searchInput.addEventListener('input', (e) => {
const q = norm(e.target.value);
if (!q) {
openReceptyList(category, page);
return;
}
const matched = filtered.filter(r => norm(r.nazev).includes(q) || norm(r.postup).includes(q) || r.suroviny.some(s => norm(s).includes(q)));
const container = document.getElementById('recipe-items-container');
let mHtml = "";
matched.slice(0, 15).forEach(r => {
mHtml += `<div class="dos-menu-item" onclick="openRecipe(${r.id})">
<span class="hotkey">[${r.id}]</span>
<span style="color:var(--dos-white)">${r.nazev}</span>
<span class="tag-badge" style="margin-left:auto">Str. ${r.strana} | ${r.kategorie}</span>
</div>`;
});
if (matched.length === 0) {
mHtml = `<div style="color:var(--dos-red); padding:10px">Žádný recept neodpovídá hledanému výrazu "${e.target.value}".</div>`;
}
container.innerHTML = mHtml;
});
}
function openRecipe(id) {
const r = KNIHA_RECEPTU.find(x => x.id === id);
if (!r) return;
@@ -266,15 +225,15 @@ function openRecipe(id) {
currentRecipeId = id;
playSpeaker(900, 0.05);
winTitleEl.textContent = `RECEPT [${r.id}]: ${r.nazev.toUpperCase()}`;
winTitleEl.textContent = `RECEPT [${r.id}/${KNIHA_RECEPTU.length}]: ${r.nazev.toUpperCase()}`;
let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════
RECEPT Č. ${r.id}: ${r.nazev}
Kategorie: ${r.kategorie} | Odhadovaná doba přípravy: ${r.doba} minut
Původní sešit Kamily Pešek: Strana ${r.strana} | Kategorie: ${r.kategorie}
════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-header" style="color:var(--dos-cyan)">── POTŘEBNÉ SUROVINY ───────────────────────────────────────────────────────</div>
<div class="dos-header" style="color:var(--dos-cyan)">── POTŘEBNÉ SUROVINY ZE SEŠITU ─────────────────────────────────────────────</div>
<ul style="list-style:none; padding-left:10px; margin-bottom:15px">
`;
r.suroviny.forEach(s => {
@@ -283,25 +242,31 @@ function openRecipe(id) {
html += `</ul>
<div class="dos-header" style="color:var(--dos-cyan)">── POSTUP PŘÍPRAVY ZE SEŠITU ──────────────────────────────────────────────</div>
<div class="dos-box" style="line-height:1.5; color:var(--dos-white)">
<div class="dos-header" style="color:var(--dos-cyan)">── POSTUP PŘÍPRAVY ZE SEŠITU KAMILY PEŠEK ─────────────────────────────────</div>
<div class="dos-box" style="line-height:1.55; color:var(--dos-white)">
${r.postup}
</div>
<div class="secret-badge">
<strong>★ TAJEMSTVÍ KAMILY HEROUTOVÉ:</strong><br>
<strong>★ TAJEMSTVÍ KAMILY PEŠEK:</strong><br>
<em>"${r.tajemstvi}"</em>
</div>
<div style="margin-top:20px; display:flex; gap:10px">
<button class="dos-btn" onclick="renderMainMenu()">[ESC] ZPĚT DO NABÍDKY</button>
${id > 1 ? `<button class="dos-btn" onclick="openRecipe(${id - 1})">[◄] PŘEDCHOZÍ</button>` : ''}
${id < KNIHA_RECEPTU.length ? `<button class="dos-btn" onclick="openRecipe(${id + 1})">[►] DALŠÍ</button>` : ''}
<div style="margin-top:20px; display:flex; gap:10px; flex-wrap:wrap">
<button class="dos-btn" onclick="openReceptyList(currentCategory, listPage)">[ESC] ZPĚT DO SEZNAMU</button>
<button class="dos-btn" onclick="renderMainMenu()">[H] HLAVNÍ NABÍDKA</button>
${id > 1 ? `<button class="dos-btn" onclick="openRecipe(${id - 1})">[◄] PŘEDCHOZÍ (${id - 1})</button>` : ''}
${id < KNIHA_RECEPTU.length ? `<button class="dos-btn" onclick="openRecipe(${id + 1})">[►] DALŠÍ (${id + 1})</button>` : ''}
</div>
`;
screenEl.innerHTML = html;
}
function openRandomRecipe() {
const randomId = Math.floor(Math.random() * KNIHA_RECEPTU.length) + 1;
openRecipe(randomId);
}
function openSuroviny(defaultQuery = "") {
currentView = 'suroviny';
playSpeaker(700, 0.06);
@@ -313,12 +278,12 @@ function openSuroviny(defaultQuery = "") {
════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box">
Zadejte suroviny, které máte právě doma ve špajzu a lednici (oddělené čárkou či mezerou).
Algoritmus porovná databázi receptů Kamily i 510 historických jídel a spočítá shodu.
Algoritmus prohledá <strong>všech ${KNIHA_RECEPTU.length} receptů Kamily Pešek</strong> i <strong>${HISTORICKA_JIDLA.length} jídel z kroniky</strong>.
</div>
<div class="dos-input-group">
<span style="color:var(--dos-yellow); font-weight:bold">MÁM DOMA:</span>
<input type="text" id="suroviny-input" class="dos-input" placeholder="např. brambory, maso, smetana, vejce, kure" value="${defaultQuery}">
<input type="text" id="suroviny-input" class="dos-input" placeholder="např. brambory, maso, smetana, vejce, kuře, jablka..." value="${defaultQuery}">
<button class="dos-btn" onclick="doSearchSuroviny()">HLEDAT [ENTER]</button>
</div>
@@ -356,16 +321,16 @@ function doSearchSuroviny() {
const tokens = query.toLowerCase().split(/[\s,]+/).filter(t => t.length > 1).map(norm);
// Score Recipes
// Score Recipes (both suroviny and postup)
const scoredRecipes = KNIHA_RECEPTU.map(r => {
let matches = [];
r.suroviny.forEach(sur => {
const nSur = norm(sur);
tokens.forEach(tok => {
if (nSur.includes(tok)) {
matches.push(tok);
}
});
const fullText = (r.suroviny.join(' ') + ' ' + r.postup).toLowerCase();
const nFull = norm(fullText);
tokens.forEach(tok => {
if (nFull.includes(tok)) {
matches.push(tok);
}
});
matches = [...new Set(matches)];
return { recipe: r, score: matches.length, matchedTokens: matches };
@@ -374,23 +339,21 @@ function doSearchSuroviny() {
// Score Historical Database
const scoredHist = HISTORICKA_JIDLA.map(j => {
let matches = [];
j.tagy.forEach(tag => {
const nTag = norm(tag);
tokens.forEach(tok => {
if (nTag.includes(tok) || norm(j.nazev).includes(tok)) {
matches.push(tok);
}
});
const nJidlo = norm(j.jidlo);
tokens.forEach(tok => {
if (nJidlo.includes(tok)) {
matches.push(tok);
}
});
matches = [...new Set(matches)];
return { jidlo: j, score: matches.length, matchedTokens: matches };
}).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}"</div>`;
let html = `<div class="dos-header" style="color:var(--dos-green)">VÝSLEDEK SHODY PRO: "${query}" (Nalezeno ${scoredRecipes.length} receptů Kamily Pešek)</div>`;
if (scoredRecipes.length > 0) {
html += `<div style="color:var(--dos-yellow); margin:10px 0; font-weight:bold">★ RECEPTY Z RUČNÍHO SEŠITU KAMILY:</div>`;
scoredRecipes.forEach(item => {
html += `<div style="color:var(--dos-yellow); margin:10px 0; font-weight:bold">★ NALEZENÉ RECEPTY ZE SEŠITU KAMILY PEŠEK:</div>`;
scoredRecipes.slice(0, 15).forEach(item => {
html += `<div class="dos-menu-item" onclick="openRecipe(${item.recipe.id})">
<span class="hotkey">[${item.recipe.id}]</span>
<span style="color:var(--dos-white)">${item.recipe.nazev}</span>
@@ -401,9 +364,9 @@ function doSearchSuroviny() {
if (scoredHist.length > 0) {
html += `<div style="color:var(--dos-cyan); margin:15px 0 5px 0; font-weight:bold">📜 ZÁZNAMY Z HISTORICKÉHO JÍDELNÍČKU (1998–2021):</div>`;
scoredHist.slice(0, 8).forEach(item => {
scoredHist.slice(0, 10).forEach(item => {
html += `<div style="padding:3px 8px; border-left:2px solid var(--dos-cyan); margin:4px 0">
<span style="color:var(--dos-white)">${item.jidlo.nazev}</span>
<span style="color:var(--dos-white)">${item.jidlo.jidlo}</span>
<span style="color:var(--dos-grey)"> [${item.jidlo.datum}, ${item.jidlo.typ}]</span>
<span style="color:var(--dos-yellow); float:right">shoda: ${item.matchedTokens.join(', ')}</span>
</div>`;
@@ -411,7 +374,7 @@ function doSearchSuroviny() {
}
if (scoredRecipes.length === 0 && scoredHist.length === 0) {
html += `<div style="color:var(--dos-red); padding:10px">Pro tyto suroviny nebyla v databázi nalezena přímá shoda. Zkuste zadat základní ingredience jako: brambory, maso, vejce, smetana, kure.</div>`;
html += `<div style="color:var(--dos-red); padding:10px">Pro tyto suroviny nebyla v databázi nalezena přímá shoda. Zkuste zadat základní ingredience jako: brambory, maso, vejce, smetana, kuře.</div>`;
}
resEl.innerHTML = html;
@@ -434,10 +397,10 @@ function openDavno() {
<div class="dos-header" style="color:var(--dos-yellow)">DOPORUČENÁ JÍDLA S NEJDELŠÍM ČASOVÝM ODSTUPEM:</div>
<div class="dos-menu-list">
`;
HISTORICKA_JIDLA.slice(0, 8).forEach((j, idx) => {
html += `<div style="padding:6px 10px; border-bottom:1px dashed var(--dos-cyan); display:flex; justify-content:space-between">
<span><strong style="color:var(--dos-cyan)">${idx + 1}.</strong> <span style="color:var(--dos-white)">${j.nazev}</span></span>
<span><span style="color:var(--dos-yellow)">Naposledy: ${j.datum}</span> | Celkem vařeno: ${j.vareni}×</span>
HISTORICKA_JIDLA.slice(0, 12).forEach((j, idx) => {
html += `<div style="padding:5px 10px; border-bottom:1px dashed var(--dos-cyan); display:flex; justify-content:space-between">
<span><strong style="color:var(--dos-cyan)">${idx + 1}.</strong> <span style="color:var(--dos-white)">${j.jidlo}</span></span>
<span><span style="color:var(--dos-yellow)">Naposledy: ${j.datum}</span> | ${j.typ}</span>
</div>`;
});
@@ -454,26 +417,34 @@ function openOblibena() {
playSpeaker(850, 0.05);
winTitleEl.textContent = "OBLÍBENÁ JÍDLA // ŽELEZNÁ STATISTIKA STOLU";
const top = [...HISTORICKA_JIDLA].sort((a, b) => b.vareni - a.vareni);
// Count occurrences of keywords in historical records
const freq = {};
HISTORICKA_JIDLA.forEach(j => {
const title = j.jidlo.split(',')[0].trim();
freq[title] = (freq[title] || 0) + 1;
});
const top = Object.entries(freq).sort((a, b) => b[1] - a[1]).slice(0, 12);
let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════
ŽELEZNÁ STATISTIKA OBLÍBENÝCH JÍDEL RODINNÉHO STOLU (DoporucO)
════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box">
Frekvenční žebříček z 510 záznamů rodinného jídelníčku z let 1998–2021:
Frekvenční žebříček z ${HISTORICKA_JIDLA.length} záznamů rodinného jídelníčku z let 1998–2021:
</div>
<div class="dos-menu-list">
`;
top.slice(0, 10).forEach((j, idx) => {
const barWidth = Math.round((j.vareni / top[0].vareni) * 25);
const maxVal = top[0] ? top[0][1] : 1;
top.forEach(([name, count], idx) => {
const barWidth = Math.max(2, Math.round((count / maxVal) * 24));
const bar = "█".repeat(barWidth);
html += `<div style="padding:4px 8px; font-family:monospace">
<span style="color:var(--dos-yellow); width:24px; display:inline-block">${idx + 1}.</span>
<span style="color:var(--dos-white); display:inline-block; width:340px">${j.nazev}</span>
<span style="color:var(--dos-white); display:inline-block; width:300px">${name}</span>
<span style="color:var(--dos-cyan)">${bar}</span>
<span style="color:var(--dos-yellow); margin-left:10px">${j.vareni}×</span>
<span style="color:var(--dos-yellow); margin-left:10px">${count}×</span>
</div>`;
});
@@ -485,33 +456,38 @@ function openOblibena() {
screenEl.innerHTML = html;
}
function openKronika() {
function openKronika(page = 0) {
currentView = 'kronika';
playSpeaker(650, 0.05);
winTitleEl.textContent = "KRONIKA RODINNÉHO STOLU // 510 ZÁZNAMŮ BOHNICE (1998–2021)";
winTitleEl.textContent = `KRONIKA RODINNÉHO STOLU // ${HISTORICKA_JIDLA.length} ZÁZNAMŮ BOHNICE (1998–2021)`;
const totalPages = Math.ceil(HISTORICKA_JIDLA.length / 20);
const items = HISTORICKA_JIDLA.slice(page * 20, (page + 1) * 20);
let html = `
<div class="dos-header">════════════════════════════════════════════════════════════════════════════════
KRONIKA RODINNÉHO STOLU // BOHNICE & DEJVICE (1998–2021)
KRONIKA RODINNÉHO STOLU // BOHNICE & DEJVICE (Strana ${page + 1}/${totalPages})
════════════════════════════════════════════════════════════════════════════════</div>
<div class="dos-box">
Autentické záznamy z databázových souborů JIDLA.TXT a JIDLA-bohnice.TXT.
Celkem ${HISTORICKA_JIDLA.length} autentických záznamů z databázových souborů JIDLA.TXT a JIDLA-bohnice.TXT.
Od srpna 1998, přes dětská léta až po rok 2021.
</div>
<div style="max-height:360px; overflow-y:auto; border:1px solid var(--dos-cyan); padding:10px">
<div style="max-height:360px; overflow-y:auto; border:1px solid var(--dos-cyan); padding:8px">
`;
HISTORICKA_JIDLA.forEach(j => {
html += `<div style="padding:4px 0; border-bottom:1px dotted rgba(0,170,170,0.4)">
<span style="color:var(--dos-yellow); font-weight:bold">${j.datum}</span>
items.forEach(j => {
html += `<div style="padding:3px 0; border-bottom:1px dotted rgba(0,170,170,0.3)">
<span style="color:var(--dos-yellow); font-weight:bold; width:95px; display:inline-block">${j.datum}</span>
<span class="tag-badge">[${j.typ}]</span>
<span style="color:var(--dos-white)">${j.nazev}</span>
<span style="color:var(--dos-white); margin-left:6px">${j.jidlo}</span>
</div>`;
});
html += `</div>
<div style="margin-top:20px">
<div style="margin-top:16px; display:flex; gap:10px">
<button class="dos-btn" onclick="renderMainMenu()">[ESC] ZPĚT DO MENU</button>
${page > 0 ? `<button class="dos-btn" onclick="openKronika(${page - 1})">[◄] PŘEDCHOZÍ (20)</button>` : ''}
${page < totalPages - 1 ? `<button class="dos-btn" onclick="openKronika(${page + 1})">[►] DALŠÍ (20)</button>` : ''}
</div>
`;
screenEl.innerHTML = html;
@@ -540,9 +516,10 @@ function openAltan() {
které v 80. a 90. letech tvořily základní procedurální knihovny pro Turbo Pascal
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
rodinné kuchařky se přetavil do plnohodnotné 32bitové aplikace KUCHARKA.EXE.
Tato webová aplikace věrně rekonstruuje veškeré algoritmy a zachovává
rodinný odkaz pro další generace.
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>
(kompletní rukopisný sešit čítající <strong>${KNIHA_RECEPTU.length} receptů</strong>)
s procedurální logikou Turbo Pascalu pro budoucí generace.
</div>
<div style="margin-top:20px">
@@ -554,7 +531,7 @@ function openAltan() {
// Global Keyboard Handler (Turbo Pascal Hotkeys)
window.addEventListener('keydown', (e) => {
// If in search input, don't hijack all keys except ESC
// If in input, only hijack ESC
if (document.activeElement && document.activeElement.tagName === 'INPUT') {
if (e.key === 'Escape') {
document.activeElement.blur();
@@ -566,14 +543,17 @@ window.addEventListener('keydown', (e) => {
playSpeaker(800, 0.03);
switch (e.key) {
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8':
openRecipe(parseInt(e.key));
case 'r': case 'R': case 'F2':
e.preventDefault();
openReceptyList('Vše');
break;
case 's': case 'S': case 'F3':
e.preventDefault();
openSuroviny();
break;
case 'n': case 'N':
openRandomRecipe();
break;
case 'd': case 'D': case 'F4':
e.preventDefault();
openDavno();
@@ -589,37 +569,24 @@ window.addEventListener('keydown', (e) => {
e.preventDefault();
openAltan();
break;
case 'F2':
e.preventDefault();
renderMainMenu();
break;
case 'Escape':
renderMainMenu();
break;
case '1': case '2': case '3': case '4': case '5': case '6': case '7':
if (currentView === 'menu') {
const idx = parseInt(e.key);
if (KATEGORIE[idx]) openReceptyList(KATEGORIE[idx]);
}
break;
}
});
// Touch button handler
document.querySelectorAll('.t-btn').forEach(btn => {
btn.addEventListener('click', () => {
const key = btn.getAttribute('data-key');
if (key === 'Escape') renderMainMenu();
else if (key === 's') openSuroviny();
else if (key === 'd') openDavno();
else if (key === 'o') openOblibena();
else if (key === 'k') openKronika();
else {
const num = parseInt(key);
if (!isNaN(num)) openRecipe(num);
}
});
});
// Menu bar clicks
document.querySelectorAll('.menu-item').forEach(item => {
item.addEventListener('click', () => {
const act = item.getAttribute('data-act');
if (act === 'menu' || act === 'recepty') renderMainMenu();
// Touch / Navigation controls handler
document.querySelectorAll('[data-act]').forEach(el => {
el.addEventListener('click', () => {
const act = el.getAttribute('data-act');
if (act === 'menu') renderMainMenu();
else if (act === 'recepty') openReceptyList('Vše');
else if (act === 'suroviny') openSuroviny();
else if (act === 'davno') openDavno();
else if (act === 'oblibena') openOblibena();
+3
View File
File diff suppressed because one or more lines are too long
+19 -24
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>KUCHAŘKA // Helena & Kamila Heroutová (1998–2026)</title>
<title>KUCHAŘKA // Kamila Pešek & Helena Heroutová (1998–2026)</title>
<link rel="stylesheet" href="style.css">
</head>
<body class="crt-screen">
@@ -11,14 +11,14 @@
<!-- Turbo Pascal Top Menu Bar -->
<header id="menu-bar">
<span class="menu-item active" data-act="menu"><span class="hotkey">S</span>oubor</span>
<span class="menu-item" data-act="recepty"><span class="hotkey">R</span>eceptář</span>
<span class="menu-item" data-act="recepty"><span class="hotkey">R</span>eceptář (331)</span>
<span class="menu-item" data-act="suroviny"><span class="hotkey">Š</span>pajz</span>
<span class="menu-item" data-act="davno"><span class="hotkey">D</span>ávno</span>
<span class="menu-item" data-act="oblibena"><span class="hotkey">O</span>blíbená</span>
<span class="menu-item" data-act="kronika"><span class="hotkey">K</span>ronika</span>
<span class="menu-item" data-act="kronika"><span class="hotkey">K</span>ronika (568)</span>
<span class="menu-item" data-act="altan"><span class="hotkey">A</span>ltán</span>
<span class="menu-spacer"></span>
<span class="time-display" id="time-display">18:35:00</span>
<span class="time-display" id="time-display">18:55:00</span>
</header>
<!-- Main CRT Terminal Window -->
@@ -26,7 +26,7 @@
<div class="window-frame">
<div class="window-title-bar">
<span class="win-btn">[■]</span>
<span class="win-title" id="win-title">KUCHAŘKA HELENY A KAMILY HEROUTOVÉ // PASCAL 7.0</span>
<span class="win-title" id="win-title">KUCHAŘKA KAMILY PEŠEK // PASCAL 7.0 (331 RECEPTŮ)</span>
<span class="win-num">[1]</span>
</div>
<div class="window-content" id="screen-content">
@@ -37,33 +37,28 @@
<!-- Mobile Touch Keyboard Bar -->
<nav id="touch-controls">
<button class="t-btn" data-key="1">1</button>
<button class="t-btn" data-key="2">2</button>
<button class="t-btn" data-key="3">3</button>
<button class="t-btn" data-key="4">4</button>
<button class="t-btn" data-key="5">5</button>
<button class="t-btn" data-key="6">6</button>
<button class="t-btn" data-key="7">7</button>
<button class="t-btn" data-key="8">8</button>
<button class="t-btn highlight" data-key="s">ŠPAJZ [S]</button>
<button class="t-btn" data-key="d">DÁVNO [D]</button>
<button class="t-btn" data-key="o">TOP [O]</button>
<button class="t-btn" data-key="k">KRONIKA [K]</button>
<button class="t-btn esc" data-key="Escape">ESC [MENU]</button>
<button class="t-btn highlight" data-act="recepty">RECEPTÁŘ (331)</button>
<button class="t-btn highlight" data-act="suroviny">ŠPAJZ [S]</button>
<button class="t-btn" data-act="davno">DÁVNO [D]</button>
<button class="t-btn" data-act="oblibena">TOP [O]</button>
<button class="t-btn" data-act="kronika">KRONIKA [K]</button>
<button class="t-btn" data-act="altan">ALTÁN [A]</button>
<button class="t-btn esc" data-act="menu">ESC [MENU]</button>
</nav>
<!-- Turbo Pascal Bottom Status Bar -->
<footer id="status-bar">
<span class="f-key"><span class="f-num">F1</span> Nápověda</span>
<span class="f-key"><span class="f-num">F2</span> Receptář</span>
<span class="f-key"><span class="f-num">F3</span> Vařit ze špajzu</span>
<span class="f-key"><span class="f-num">F4</span> Dávno nevařeno</span>
<span class="f-key"><span class="f-num">F5</span> Kronika 510</span>
<span class="f-key"><span class="f-num">ESC</span> Hlavní menu</span>
<span class="f-key" data-act="altan"><span class="f-num">F1</span> Nápověda</span>
<span class="f-key" data-act="recepty"><span class="f-num">F2</span> Receptář</span>
<span class="f-key" data-act="suroviny"><span class="f-num">F3</span> Vařit ze špajzu</span>
<span class="f-key" data-act="davno"><span class="f-num">F4</span> Dávno nevařeno</span>
<span class="f-key" data-act="kronika"><span class="f-num">F5</span> Kronika 568</span>
<span class="f-key" data-act="menu"><span class="f-num">ESC</span> Hlavní menu</span>
<span class="f-key sound-toggle" id="sound-btn">🔊 ZVUK: ON</span>
</footer>
</div>
<script src="data.js"></script>
<script src="app.js"></script>
</body>
</html>
+2842
View File
File diff suppressed because it is too large Load Diff
+3716
View File
File diff suppressed because it is too large Load Diff