364 lines
41 KiB
HTML
Executable File
364 lines
41 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Kochstube</title>
|
|
<style>
|
|
:root {
|
|
--bg: #f5f0e8;
|
|
--card: #ffffff;
|
|
--accent: #d94f30;
|
|
--accent2: #fef3e2;
|
|
--text: #2d2a26;
|
|
--muted: #7a7470;
|
|
--tag-bg: #f0e6d6;
|
|
--tag-text: #6b5e4f;
|
|
--quick: #e8960c;
|
|
--border: #e8e0d4;
|
|
--shadow: rgba(120, 100, 70, .1);
|
|
}
|
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
body {
|
|
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
|
background: var(--bg);
|
|
color: var(--text);
|
|
min-height: 100vh;
|
|
}
|
|
header {
|
|
text-align: center;
|
|
padding: 2.5rem 1rem 1.5rem;
|
|
background: linear-gradient(135deg, #fff8ef, #fef3e2);
|
|
border-bottom: 3px solid var(--accent);
|
|
}
|
|
header h1 { font-size: 2.4rem; letter-spacing: 2px; color: #2d2a26; }
|
|
header h1 span { color: var(--accent); }
|
|
header p { color: var(--muted); margin-top: .4rem; font-size: .95rem; }
|
|
|
|
/* Filter bar */
|
|
.filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: .5rem;
|
|
justify-content: center;
|
|
padding: 1.2rem 1rem;
|
|
position: sticky;
|
|
top: 0;
|
|
background: var(--bg);
|
|
z-index: 10;
|
|
border-bottom: 1px solid var(--border);
|
|
box-shadow: 0 2px 8px var(--shadow);
|
|
}
|
|
.filters button {
|
|
background: var(--card);
|
|
color: var(--text);
|
|
border: 1px solid var(--border);
|
|
padding: .45rem 1rem;
|
|
border-radius: 20px;
|
|
cursor: pointer;
|
|
font-size: .85rem;
|
|
transition: all .2s;
|
|
}
|
|
.filters button:hover { background: var(--accent2); border-color: var(--accent); }
|
|
.filters button.active {
|
|
background: var(--accent);
|
|
border-color: var(--accent);
|
|
color: #fff;
|
|
}
|
|
.filters input {
|
|
background: var(--card);
|
|
color: var(--text);
|
|
border: 1px solid var(--border);
|
|
padding: .45rem 1rem;
|
|
border-radius: 20px;
|
|
font-size: .85rem;
|
|
width: 220px;
|
|
outline: none;
|
|
}
|
|
.filters input:focus { border-color: var(--accent); }
|
|
.filters input::placeholder { color: #b5ada5; }
|
|
|
|
/* Grid */
|
|
.grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
|
gap: 1.5rem;
|
|
padding: 1.5rem;
|
|
max-width: 1400px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Card */
|
|
.card {
|
|
background: var(--card);
|
|
border-radius: 16px;
|
|
overflow: hidden;
|
|
cursor: pointer;
|
|
transition: transform .2s, box-shadow .2s;
|
|
position: relative;
|
|
border: 1px solid var(--border);
|
|
box-shadow: 0 2px 12px var(--shadow);
|
|
}
|
|
.card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(120, 100, 70, .18); }
|
|
.card img {
|
|
width: 100%;
|
|
height: 200px;
|
|
object-fit: cover;
|
|
display: block;
|
|
}
|
|
.card-body { padding: 1rem 1.2rem 1.2rem; }
|
|
.card-body h3 { font-size: 1.1rem; margin-bottom: .5rem; line-height: 1.3; color: var(--text); }
|
|
.card-body .desc { color: var(--muted); font-size: .85rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
|
|
.card-meta {
|
|
display: flex;
|
|
gap: .8rem;
|
|
margin-top: .7rem;
|
|
font-size: .8rem;
|
|
color: var(--muted);
|
|
}
|
|
.card-meta span { display: flex; align-items: center; gap: .3rem; }
|
|
.badge-quick {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 12px;
|
|
background: var(--quick);
|
|
color: #fff;
|
|
font-size: .7rem;
|
|
font-weight: 700;
|
|
padding: .25rem .6rem;
|
|
border-radius: 10px;
|
|
box-shadow: 0 2px 6px rgba(0,0,0,.15);
|
|
}
|
|
.tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .6rem; }
|
|
.tags span {
|
|
background: var(--tag-bg);
|
|
color: var(--tag-text);
|
|
padding: .15rem .55rem;
|
|
border-radius: 8px;
|
|
font-size: .72rem;
|
|
}
|
|
|
|
/* Modal / Detail */
|
|
.overlay {
|
|
display: none;
|
|
position: fixed;
|
|
inset: 0;
|
|
background: rgba(45, 42, 38, .55);
|
|
backdrop-filter: blur(4px);
|
|
z-index: 100;
|
|
overflow-y: auto;
|
|
padding: 2rem 1rem;
|
|
}
|
|
.overlay.open { display: flex; justify-content: center; align-items: flex-start; }
|
|
.detail {
|
|
background: var(--card);
|
|
border-radius: 20px;
|
|
max-width: 750px;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
position: relative;
|
|
animation: slideUp .3s ease;
|
|
box-shadow: 0 20px 60px rgba(0,0,0,.2);
|
|
}
|
|
@keyframes slideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
|
|
.detail img { width: 100%; height: 280px; object-fit: cover; }
|
|
.detail-body { padding: 1.5rem 2rem 2rem; }
|
|
.detail-body h2 { font-size: 1.5rem; margin-bottom: .3rem; color: var(--text); }
|
|
.detail-body .desc-full { color: var(--muted); margin-bottom: 1.2rem; line-height: 1.5; }
|
|
.detail-body .meta-row {
|
|
display: flex;
|
|
gap: 1.5rem;
|
|
margin-bottom: 1.2rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
.meta-row .chip {
|
|
background: var(--accent2);
|
|
color: var(--text);
|
|
padding: .4rem .9rem;
|
|
border-radius: 12px;
|
|
font-size: .85rem;
|
|
border: 1px solid var(--border);
|
|
}
|
|
.detail-body h4 { color: var(--accent); margin: 1rem 0 .5rem; font-size: 1rem; text-transform: uppercase; letter-spacing: 1px; }
|
|
.detail-body ul { padding-left: 1.2rem; margin-bottom: .5rem; }
|
|
.detail-body li { margin-bottom: .3rem; line-height: 1.5; font-size: .92rem; }
|
|
.detail-body ol { padding-left: 1.2rem; }
|
|
.detail-body ol li { margin-bottom: .6rem; line-height: 1.5; font-size: .92rem; }
|
|
.detail .close-btn {
|
|
position: absolute;
|
|
top: 14px;
|
|
right: 14px;
|
|
background: rgba(45, 42, 38, .7);
|
|
color: #fff;
|
|
border: none;
|
|
width: 38px;
|
|
height: 38px;
|
|
border-radius: 50%;
|
|
font-size: 1.3rem;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: background .2s;
|
|
}
|
|
.detail .close-btn:hover { background: var(--accent); }
|
|
.source-link {
|
|
display: inline-block;
|
|
margin-top: 1rem;
|
|
color: var(--accent);
|
|
font-size: .85rem;
|
|
text-decoration: none;
|
|
}
|
|
.source-link:hover { text-decoration: underline; }
|
|
.fresh-list { background: #fef6e9; border-left: 3px solid var(--quick); padding: .6rem 1rem; border-radius: 8px; margin-top: .5rem; font-size: .85rem; }
|
|
.fresh-list strong { color: #b47409; }
|
|
|
|
.no-results { text-align: center; padding: 3rem; color: var(--muted); font-size: 1.1rem; grid-column: 1 / -1; }
|
|
|
|
@media (max-width: 600px) {
|
|
header h1 { font-size: 1.8rem; }
|
|
.grid { padding: 1rem; gap: 1rem; grid-template-columns: 1fr; }
|
|
.detail-body { padding: 1.2rem; }
|
|
.filters input { width: 100%; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<header>
|
|
<h1>🍳 Koch<span>stube</span></h1>
|
|
<p>Rezepte von Tausi & Nocki</p>
|
|
</header>
|
|
|
|
<div class="filters">
|
|
<input type="text" id="search" placeholder="🔍 Rezept suchen...">
|
|
<button class="active" data-filter="alle">Alle</button>
|
|
<button data-filter="unter-15-min">⚡ Unter 15 Min</button>
|
|
<button data-filter="vegan">🌱 Vegan</button>
|
|
<button data-filter="vegetarisch">🧀 Vegetarisch</button>
|
|
<button data-filter="fleisch">🥩 Fleisch</button>
|
|
<button data-filter="fisch">🐟 Fisch</button>
|
|
<button data-filter="ofen">🔥 Ofen</button>
|
|
<button data-filter="low-cal">💪 Low-Cal / Protein</button>
|
|
</div>
|
|
|
|
<div class="grid" id="grid"></div>
|
|
|
|
<div class="overlay" id="overlay">
|
|
<div class="detail" id="detail"></div>
|
|
</div>
|
|
|
|
<script>
|
|
const rezepte = [{"id": "15-minuten-pfanne", "titel": "15-Minuten-Pfanne mit Hackfleisch und Paprika", "bild": "https://ais.kochbar.de/kbrezept/74349_33645/1200x1200/15-minuten-pfanne-rezept.jpg", "beschreibung": "Hackfleisch, Paprika, Frühlingszwiebeln und Nudeln in einer schnellen Pfanne. Alltagstauglich und sättigend.", "kategorie": "Hauptspeise", "tags": ["pfanne", "hackfleisch", "schnell", "nudeln", "unter-15-min"], "schwierigkeit": "einfach", "zubereitungszeit_min": 15, "portionen": 4, "frisch_besorgen": ["Hackfleisch (300 g)", "Frühlingszwiebeln (1 Bund)"], "zutaten": [{"menge": "1 Bund", "zutat": "Frühlingszwiebeln"}, {"menge": "1", "zutat": "Paprikaschote"}, {"menge": "300 g", "zutat": "Hackfleisch"}, {"menge": "300 ml", "zutat": "Wasser"}, {"menge": "1 TL", "zutat": "Gemüsebrühe (Pulver)"}, {"menge": "200 g", "zutat": "kurze Nudeln (Gabelspaghetti o.ä.)"}, {"menge": "nach Wunsch", "zutat": "frische Champignons (optional)"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}, {"menge": "optional", "zutat": "Curry"}], "zubereitung": ["Hackfleisch scharf anbraten.", "Frühlingszwiebeln in Ringe schneiden, Paprika schneiden und dazugeben. Wer mag, gibt Champignons dazu. Kurz durchbraten.", "Gemüsebrühe in Wasser auflösen und dazugeben.", "Nudeln separat kochen, abgießen und zur Pfanne geben.", "Evtl. mit etwas Stärke andicken. Mit Salz, Pfeffer und optional Curry abschmecken."], "notizen": "Hackfleisch und Frühlingszwiebeln frisch besorgen. Paprika und Nudeln aus dem Vorrat.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/74349/15-Minuten-Pfanne.html", "autor": "loewe_bs"}, "erstellt": "2025-02-16"}, {"id": "baked-feta-pasta", "titel": "Baked Feta Pasta", "beschreibung": "Cremige Ofenpasta mit gerösteten Kirschtomaten, Knoblauch und Feta - der TikTok-Klassiker. In unter 30 Minuten fertig.", "bild": "https://www.eat-this.org/wp-content/uploads/2021/02/eat_this_vegane_baked_feta_pasta-005.jpg", "kategorie": "Hauptspeise", "tags": ["pasta", "ofen", "schnell", "vegetarisch"], "schwierigkeit": "einfach", "zubereitungszeit_min": 30, "portionen": 2, "zutaten": [{"menge": "250 g", "zutat": "Cherrytomaten"}, {"menge": "4 Zehen", "zutat": "Knoblauch"}, {"menge": "200 g", "zutat": "Feta"}, {"menge": "1 TL", "zutat": "Oregano (gerebelt)"}, {"menge": "0.5 TL", "zutat": "Chiliflocken"}, {"menge": "0.5 TL", "zutat": "Salz"}, {"menge": "1-2 EL", "zutat": "Olivenöl"}, {"menge": "250 g", "zutat": "Pasta (z.B. Penne, Cellentani)"}, {"menge": "ein paar Blätter", "zutat": "Basilikum"}], "zubereitung": ["Backofen auf 220 °C Ober-/Unterhitze vorheizen.", "Tomaten, geschälte Knoblauchzehen, Feta, Gewürze, Salz, ein paar Blätter Basilikum und Olivenöl in eine Auflaufform geben und 25 Minuten backen.", "Währenddessen Pasta in reichlich Salzwasser al dente kochen und abgießen.", "Tomaten-Feta-Mischung aus dem Ofen nehmen, Tomatenstile entfernen, alles mit einer Gabel zerdrücken und zu einer cremigen Sauce verrühren.", "Heiße Pasta untermischen und mit frischen Basilikumblättern servieren."], "notizen": "Statt veganem Feta einfach normalen Feta nehmen. Cherrytomaten müssen evtl. besorgt werden.", "quelle": {"name": "eat-this.org", "url": "https://www.eat-this.org/vegane-baked-feta-pasta/", "autor": "Nadine"}, "erstellt": "2025-02-16"}, {"id": "erdnussbutter-nudeln-sambal", "titel": "Schnelle Erdnussbutter-Nudeln mit Sambal", "bild": "https://www.eat-this.org/wp-content/uploads/2021/10/eat_this_schnelle_erdnussbutternudeln_mit_sambal-003.jpg", "beschreibung": "Ultracremige Erdnussbutter-Nudeln in 15 Minuten aus Vorratszutaten. Sojasauce, Essig und Sambal sorgen für den perfekten Kick.", "kategorie": "Hauptspeise", "tags": ["pasta", "erdnuss", "schnell", "vegan", "unter-15-min"], "schwierigkeit": "einfach", "zubereitungszeit_min": 15, "portionen": 2, "zutaten": [{"menge": "200 g", "zutat": "Nudeln (Spaghetti, Mie-Nudeln o.ä.)"}, {"menge": "80 g", "zutat": "Erdnussbutter"}, {"menge": "3 EL", "zutat": "Sojasauce"}, {"menge": "1 EL", "zutat": "Reisessig (oder heller Essig)"}, {"menge": "1 TL", "zutat": "Sesamöl (optional)"}, {"menge": "2 TL", "zutat": "Sambal Oelek (oder Chili)"}, {"menge": "2 Zehen", "zutat": "Knoblauch"}, {"menge": "80 ml", "zutat": "heißes Wasser"}, {"menge": "100 g", "zutat": "Gurke (in Scheiben)"}, {"menge": "70 g", "zutat": "Radieschen (optional)"}, {"menge": "2 EL", "zutat": "geröstete Erdnüsse"}], "zubereitung": ["Knoblauch reiben. Erdnussbutter, Sojasauce, Essig, Sesamöl, Sambal und heißes Wasser zu einer cremigen Sauce verrühren.", "Gurke (und Radieschen) in dünne Scheiben schneiden.", "Nudeln nach Packungsanweisung kochen, 1-2 Minuten früher abgießen. Dabei 100-200 ml Nudelwasser auffangen.", "Nudeln sofort mit der Erdnusssauce und dem Gemüse vermischen. Nach und nach Nudelwasser unterrühren bis cremige Konsistenz entsteht.", "Mit gerösteten Erdnüssen und extra Sambal servieren."], "notizen": "Erdnussbutter steht auf der Einkaufsliste! Sojasauce und Essig im Vorrat. Gurke auch. Perfektes 'Ich hab nix daheim'-Essen.", "quelle": {"name": "eat-this.org", "url": "https://www.eat-this.org/schnelle-erdnussbutter-nudeln/", "autor": "Nadine"}, "erstellt": "2025-02-16"}, {"id": "gelbes-thai-curry", "titel": "Gelbes Thai-Curry mit Kartoffeln und Karotten", "beschreibung": "Mildes, cremiges Thai-Curry mit Kokosmilch, Kartoffeln und Karotten. Wärmend, sättigend und in 30 Minuten fertig.", "bild": "https://www.eat-this.org/wp-content/uploads/2021/01/eat_this_veganes_gelbes_thai-curry-004.jpg", "kategorie": "Hauptspeise", "tags": ["curry", "kokosmilch", "asiatisch", "kartoffeln"], "schwierigkeit": "mittel", "zubereitungszeit_min": 30, "portionen": 3, "zutaten": [{"menge": "2", "zutat": "Zwiebeln"}, {"menge": "225 g", "zutat": "Karotten"}, {"menge": "300 g", "zutat": "Kartoffeln"}, {"menge": "2 EL", "zutat": "Erdnussöl (oder neutrales Öl)"}, {"menge": "400 ml", "zutat": "Kokosmilch"}, {"menge": "15 g", "zutat": "Koriander (frisch)"}, {"menge": "3 EL", "zutat": "gelbe Currypaste (selbstgemacht oder gekauft)"}], "currypaste_zutaten": ["1 Stange Zitronengras", "1 Stück Kurkuma (frisch) oder 1 TL Kurkumapulver", "2 Schalotten", "3 Zehen Knoblauch", "1-2 Chilis", "1 TL Koriandersamen", "1 TL Kreuzkümmel", "1 EL Currypulver", "1 Stück Ingwer (oder Galgant)", "1 TL Misopaste"], "zubereitung": ["Für die Currypaste: Alle Zutaten außer Misopaste im Mörser oder in der Küchenmaschine zu einer feinen Paste verarbeiten. Misopaste unterrühren.", "Zwiebeln, Karotten und Kartoffeln schälen und grob würfeln.", "Öl in einem großen Topf erhitzen. Currypaste darin 1-2 Minuten anbraten.", "Gemüse dazugeben und kurz mitrösten. Kokosmilch angießen.", "Bei mittlerer Hitze 15-20 Minuten köcheln lassen bis Kartoffeln und Karotten gar sind.", "Mit Salz abschmecken, mit frischem Koriander servieren. Dazu Reis."], "notizen": "Currypaste kann durch 2-3 EL gekaufte gelbe Currypaste ersetzt werden (dann viel einfacher). Zitronengras, Koriander und evtl. Currypaste müssen besorgt werden. Ingwer steht auf der Einkaufsliste.", "quelle": {"name": "eat-this.org", "url": "https://www.eat-this.org/veganes-gelbes-thai-curry/", "autor": "eat this!"}, "erstellt": "2025-02-16"}, {"id": "kartoffel-lachs-gratin", "titel": "Kartoffel-Lachs-Gratin mit Spinat", "beschreibung": "Herzhaftes Gratin mit geschichtetem Lachs, Kartoffeln und Spinat in cremiger Käsesauce. Ein Festessen für den Alltag.", "bild": "https://ais.kochbar.de/kbrezept/276552_190856/1200x1200/kartoffel-lachs-gratin-rezept.jpg", "kategorie": "Hauptspeise", "tags": ["gratin", "lachs", "fisch", "ofen", "kartoffeln", "spinat"], "schwierigkeit": "einfach", "zubereitungszeit_min": 60, "portionen": 4, "frisch_besorgen": ["Lachsfilet"], "zutaten": [{"menge": "450 g", "zutat": "TK-Blattspinat"}, {"menge": "800 g", "zutat": "festkochende Kartoffeln"}, {"menge": "2", "zutat": "Knoblauchzehen"}, {"menge": "2", "zutat": "Zwiebeln"}, {"menge": "2 EL", "zutat": "Butter"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}, {"menge": "500 g", "zutat": "Lachsfilet"}, {"menge": "2 EL", "zutat": "Zitronensaft"}, {"menge": "etwas", "zutat": "Chilipulver"}, {"menge": "1 EL", "zutat": "Mehl"}, {"menge": "250 ml", "zutat": "Sahne"}, {"menge": "250 ml", "zutat": "Milch"}, {"menge": "175 g", "zutat": "geriebener Gouda (oder anderer Käse)"}, {"menge": "etwas", "zutat": "Muskat"}, {"menge": "2", "zutat": "Eier"}, {"menge": "etwas", "zutat": "Dill zum Garnieren"}], "zubereitung": ["Spinat antauen lassen. Kartoffeln waschen und in Salzwasser weich kochen.", "Knoblauch fein zerdrücken, Zwiebeln fein hacken. Die Hälfte der Zwiebeln mit Knoblauch in 1 EL Butter glasig dünsten.", "Spinat dazugeben, 100 ml Wasser angießen, zugedeckt ca. 15 Minuten dünsten. Mit Salz und Pfeffer würzen. Kartoffeln pellen und in Scheiben schneiden.", "Lachs in Würfel schneiden, mit Zitronensaft beträufeln, mit Salz, Pfeffer und Chilipulver würzen. Backofen auf 200 °C vorheizen.", "Restliche Zwiebeln in 1 EL Butter glasig dünsten. Mehl kurz mitschwitzen. Sahne und 200 ml Milch einrühren. 75 g Käse einrühren. Mit Salz, Pfeffer und Muskat würzen.", "Spinat, Kartoffeln und Lachs in eine geölte Auflaufform schichten.", "Eier mit 50 ml Milch verquirlen, unter die Sauce ziehen. Über den Auflauf gießen, restlichen Käse aufstreuen.", "35 Minuten backen. Mit Dill garniert servieren."], "notizen": "Lachs frisch besorgen. Spinat steht auf der Einkaufsliste (TK). Sahne ebenfalls. Gouda durch anderen Käse aus dem Vorrat ersetzbar.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/276552/Kartoffel-Lachs-Gratin.html", "autor": "tigerlilly63"}, "erstellt": "2025-02-16"}, {"id": "kartoffel-lauch-auflauf-mit-schinken", "titel": "Kartoffel-Lauch-Auflauf mit Schinken", "beschreibung": "Deftiger Auflauf mit Kartoffeln, Lauch und Schinken in cremiger Ei-Milch-Sauce. Klassiker der Hausmannskost.", "bild": "https://ais.kochbar.de/kbrezept/493115_791935/1200x1200/kartoffel-lauch-auflauf-mit-schinken-rezept.jpg", "kategorie": "Hauptspeise", "tags": ["auflauf", "ofen", "deftig", "kartoffeln"], "schwierigkeit": "einfach", "zubereitungszeit_min": 75, "portionen": 5, "zutaten": [{"menge": "1 kg", "zutat": "Kartoffeln"}, {"menge": "500 g", "zutat": "Lauch"}, {"menge": "3", "zutat": "Zwiebeln"}, {"menge": "150 g", "zutat": "Schinken (roh)"}, {"menge": "200 g", "zutat": "Crème fraîche"}, {"menge": "300 ml", "zutat": "Milch"}, {"menge": "2", "zutat": "Eier"}, {"menge": "50 g", "zutat": "Schnittlauch"}, {"menge": "nach Geschmack", "zutat": "Gemüsebrühe"}, {"menge": "nach Belieben", "zutat": "Käse zum Überbacken"}], "zubereitung": ["Zwiebeln würfeln, Lauch in halbe Ringe schneiden.", "Schinken knusprig braten. Zwiebeln und Lauch dazugeben und kurz mitbraten. Mit etwas Wasser ablöschen und ca. 3-5 Minuten weich dünsten.", "Eier, Crème fraîche und Milch verrühren und in die Pfanne geben. Brühe unterrühren.", "Kartoffeln schälen, würfeln und mit dem Schnittlauch in die Pfanne geben. Ca. 5 Minuten köcheln lassen.", "In eine Auflaufform füllen, nach Belieben Käse darüber streuen.", "Im auf 190 °C vorgeheizten Ofen ca. 50-60 Minuten backen."], "notizen": "Crème fraîche evtl. durch Schmand oder Sauerrahm ersetzen. Schnittlauch optional.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/493115/Kartoffel-Lauch-Auflauf-mit-Schinken.html", "autor": "17124"}, "erstellt": "2025-02-16"}, {"id": "kokos-curry-ramen", "titel": "15 Minuten Kokos-Curry-Ramen", "bild": "https://www.eat-this.org/wp-content/uploads/2023/06/eat_this_kokos-curry-ramen_005.jpg", "beschreibung": "Schnelle cremige Ramen mit Kokosmilch, gelber Currypaste, Champignons und Pak Choi. One-Pot-Gericht in 15 Minuten.", "kategorie": "Hauptspeise", "tags": ["ramen", "kokosmilch", "asiatisch", "schnell", "suppe", "unter-15-min"], "schwierigkeit": "einfach", "zubereitungszeit_min": 15, "portionen": 2, "zutaten": [{"menge": "2", "zutat": "Frühlingszwiebeln"}, {"menge": "150 g", "zutat": "Champignons"}, {"menge": "150 g", "zutat": "Pak Choi (oder anderes Blattgemüse)"}, {"menge": "1 Zehe", "zutat": "Knoblauch"}, {"menge": "2 TL", "zutat": "Sesamöl (optional)"}, {"menge": "1.5 EL", "zutat": "gelbe Currypaste"}, {"menge": "250 ml", "zutat": "Kokosmilch"}, {"menge": "800 ml", "zutat": "Wasser"}, {"menge": "200 g", "zutat": "Tofu (optional)"}, {"menge": "250 g", "zutat": "Mie-Nudeln (oder Spaghetti)"}], "topping": ["Edamame", "Sesam", "Chiliöl (optional)"], "zubereitung": ["Frühlingszwiebelgrün längs in feine Streifen schneiden, in Eiswasser legen. Weißen Teil in Ringe schneiden, Champignons vierteln, Knoblauch fein hacken.", "Sesamöl in einem Topf erhitzen, Zwiebel und Knoblauch 30 Sekunden anschwitzen. Champignons und Currypaste dazugeben, kurz anrösten.", "Mit Kokosmilch und Wasser aufgießen, aufkochen und 7 Minuten mit Deckel köcheln.", "Optional: Tofu in Würfel schneiden und in Pfanne oder Airfryer goldbraun braten.", "Pak Choi und Nudeln in die Brühe geben, 3 Minuten ziehen lassen.", "Auf Schüsseln verteilen, mit Tofu, Frühlingszwiebelgrün und Toppings servieren."], "notizen": "Kokosmilch im Vorrat. Currypaste, Champignons und Pak Choi besorgen. Mie-Nudeln durch Spaghetti ersetzbar. Tofu optional.", "quelle": {"name": "eat-this.org", "url": "https://www.eat-this.org/kokos-curry-ramen/", "autor": "Jörg"}, "erstellt": "2025-02-16"}, {"id": "nudeln-paprika-schinken-kaesesosse", "titel": "Nudeln mit Paprika-Schinken-Käsesauce", "beschreibung": "Schnelle Pasta mit cremiger Käsesauce, Paprika und Schinken. Comfort Food in 30 Minuten.", "bild": "https://ais.kochbar.de/kbrezept/411068_471148/1200x1200/nudeln-mit-einer-paprika-schinken-kaesesosse-rezept.jpg", "kategorie": "Hauptspeise", "tags": ["pasta", "schnell", "käse", "pfanne"], "schwierigkeit": "einfach", "zubereitungszeit_min": 30, "portionen": 4, "zutaten": [{"menge": "1", "zutat": "Zwiebel"}, {"menge": "1", "zutat": "Paprika (rot)"}, {"menge": "150 g", "zutat": "Kochschinken"}, {"menge": "200 g", "zutat": "Schmelzkäse (Sahne)"}, {"menge": "250 ml", "zutat": "Gemüsebrühe"}, {"menge": "1 TL", "zutat": "Rosa Beeren"}, {"menge": "1-2 Stück", "zutat": "getrocknete Chili"}, {"menge": "etwas", "zutat": "Salz"}, {"menge": "etwas", "zutat": "Pfeffer"}, {"menge": "1 EL", "zutat": "Olivenöl"}, {"menge": "nach Bedarf", "zutat": "Nudeln (Sorte nach Wahl)"}, {"menge": "1 EL", "zutat": "Petersilie (gehackt)"}], "zubereitung": ["Paprika in Streifen, Zwiebel vierteln und in Scheiben schneiden. Schinken in Streifen schneiden.", "Rosa Beeren und Chili im Mörser zerstoßen.", "Nudeln nach Packungsanweisung in Salzwasser al dente kochen und abgießen.", "Zwiebel in Olivenöl glasig dünsten.", "Paprika zugeben, kurz mitdünsten. Mit der Brühe auffüllen und ca. 10 Minuten köcheln lassen.", "Schmelzkäse in der Sauce schmelzen. Chili und rosa Beeren zugeben.", "Schinken in der Sauce erwärmen. Mit Salz und Pfeffer abschmecken.", "Sauce zu den Nudeln servieren und mit Petersilie bestreuen."], "notizen": "Schmelzkäse kann durch normalen Reibekäse + Sahne ersetzt werden. Rosa Beeren optional.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/411068/Nudeln-mit-einer-Paprika-Schinken-Kaesesosse.html", "autor": "i****0"}, "erstellt": "2025-02-16"}, {"id": "paprika-gemuese-putenpfanne", "titel": "Paprika-Gemüsepfanne mit Putenbrust", "bild": "https://ais.kochbar.de/kbrezept/43896_34711/1200x1200/paprika-gemuesepfanne-mit-putenbrust-rezept.jpg", "beschreibung": "Leichte, proteinreiche Pfanne mit Putenstreifen, bunter Paprika und Lauch in Currybrühe. Nur 84 kcal/100g.", "kategorie": "Hauptspeise", "tags": ["pfanne", "pute", "low-cal", "protein", "schnell", "unter-15-min"], "schwierigkeit": "einfach", "zubereitungszeit_min": 10, "portionen": 3, "frisch_besorgen": ["Putenbrust (200 g)"], "zutaten": [{"menge": "200 g", "zutat": "Putenbrust"}, {"menge": "1", "zutat": "Zwiebel"}, {"menge": "1 Stange", "zutat": "Lauch"}, {"menge": "4", "zutat": "Paprikaschoten (gelb/rot)"}, {"menge": "4 EL", "zutat": "Öl"}, {"menge": "1 EL", "zutat": "Zitronensaft"}, {"menge": "250 ml", "zutat": "Gemüsebrühe"}, {"menge": "1 TL", "zutat": "Currypulver"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}], "zubereitung": ["Fleisch abbrausen, trocken tupfen und in Streifen schneiden. Zwiebel in Scheiben, Paprika und Lauch in Streifen schneiden.", "Fleisch in Öl 3 Minuten anbraten. Zwiebel dazugeben, weitere 3 Minuten braten.", "Paprika und Lauch zufügen. Curry dazugeben und kurz durchrösten.", "Mit Gemüsebrühe ablöschen und etwas einkochen lassen.", "Mit Zitronensaft, Salz und Pfeffer abschmecken."], "notizen": "Nur Putenbrust frisch besorgen - Paprika, Lauch, Zwiebeln alles im Vorrat! Sehr kalorienarm (84 kcal/100g) und proteinreich.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/43896/Paprika-Gemuesepfanne-mit-Putenbrust.html", "autor": "h****n"}, "erstellt": "2025-02-16"}, {"id": "putengeschnetzeltes-mit-reis", "titel": "Putengeschnetzeltes mit Champignons und Reis", "beschreibung": "Klassisches Rahmgeschnetzeltes mit Pute, Champignons und Lauchzwiebeln in cremiger Weißwein-Sahne-Sauce. Dazu Butterreis.", "bild": "https://ais.kochbar.de/kbrezept/374026_375970/1200x1200/putengeschnetzeltes-mit-reis-rezept.jpg", "kategorie": "Hauptspeise", "tags": ["geschnetzeltes", "pute", "champignons", "sahne", "reis"], "schwierigkeit": "einfach", "zubereitungszeit_min": 30, "portionen": 4, "frisch_besorgen": ["Putenbrust (1 kg)", "Champignons (500 g)", "Lauchzwiebeln (2 Bund)"], "zutaten": [{"menge": "1 kg", "zutat": "Putenbrust"}, {"menge": "3", "zutat": "Zwiebeln"}, {"menge": "500 g", "zutat": "Champignons"}, {"menge": "2 Bund", "zutat": "Lauchzwiebeln"}, {"menge": "300 ml", "zutat": "Weißwein"}, {"menge": "500 ml", "zutat": "Hühnerbrühe"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}, {"menge": "1 Becher", "zutat": "Sahne"}, {"menge": "etwas", "zutat": "Petersilie (frisch gehackt)"}, {"menge": "etwas", "zutat": "Speisestärke zum Andicken"}, {"menge": "nach Bedarf", "zutat": "Reis"}, {"menge": "etwas", "zutat": "Butter (für den Reis)"}], "zubereitung": ["Zwiebeln und gewürztes Fleisch scharf anbraten.", "Champignons zugeben und mitbraten.", "Lauchzwiebeln dazugeben und mit Weißwein ablöschen. 5 Minuten einköcheln lassen.", "Brühe zugeben und weitere 5 Minuten köcheln.", "Sahne zugeben, nochmal abschmecken und mit etwas Speisestärke andicken.", "Mit gehackter Petersilie bestreuen.", "Reis in Gemüsebrühe kochen und in Butter anbraten. Zusammen servieren."], "notizen": "Putenbrust, Champignons und Lauchzwiebeln frisch besorgen. Sahne steht auf der Einkaufsliste. Weißwein optional durch mehr Brühe + Schuss Essig ersetzen.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/374026/Putengeschnetzeltes-mit-Reis.html", "autor": "moniundpeter"}, "erstellt": "2025-02-16"}, {"id": "schinkennudeln-schnell", "titel": "Schinkennudeln - schnell & einfach", "bild": "https://ais.kochbar.de/kbrezept/371526_373245/1200x1200/schinkennudeln-einfach-und-schnell-rezept.jpg", "beschreibung": "Der absolute Klassiker wenn's schnell gehen muss: Nudeln mit Schinken, Zwiebeln und Ei. 10 Minuten, 5 Zutaten.", "kategorie": "Hauptspeise", "tags": ["pasta", "schinken", "schnell", "einfach", "unter-15-min", "ei"], "schwierigkeit": "einfach", "zubereitungszeit_min": 10, "portionen": 2, "zutaten": [{"menge": "300 g", "zutat": "Spiralnudeln (oder andere Nudeln)"}, {"menge": "1", "zutat": "Zwiebel (fein gehackt)"}, {"menge": "200 g", "zutat": "Schinken"}, {"menge": "3", "zutat": "Eier"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}, {"menge": "etwas", "zutat": "Butter (zum Braten)"}], "zubereitung": ["Nudeln nach Packungsanleitung kochen.", "Zwiebel fein hacken und in Butter glasig dünsten.", "Schinken fein würfeln und dazugeben.", "Nudeln abgießen und in die Pfanne geben, alles gut anbraten.", "Zum Schluss die verquirlten Eier über die Nudeln geben und mitbraten bis sie stocken.", "Mit Salz und Pfeffer abschmecken. Dazu passt Tomatensauce."], "notizen": "Komplett aus dem Vorrat machbar! Nudeln, Schinken, Eier, Zwiebeln, Butter - alles da.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/371526/Schinkennudeln-einfach-und-schnell.html", "autor": "moniundpeter"}, "erstellt": "2025-02-16"}, {"id": "thai-haehnchen-gruen-curry", "titel": "Thai-Hähnchenbrust in grüner Currysauce", "beschreibung": "Schnelles asiatisches Curry mit Hähnchenbrust, Kokosmilch und grüner Currypaste. In 20 Minuten auf dem Tisch.", "bild": "https://ais.kochbar.de/kbrezept/344934_309796/1200x1200/thai-haehnchenbrust-in-gruener-currysosse-rezept.jpg", "kategorie": "Hauptspeise", "tags": ["curry", "hähnchen", "asiatisch", "kokosmilch", "schnell"], "schwierigkeit": "einfach", "zubereitungszeit_min": 20, "portionen": 3, "frisch_besorgen": ["Hähnchenbrust"], "zutaten": [{"menge": "2 Stück", "zutat": "Hähnchenbrust (ohne Knochen)"}, {"menge": "350 ml", "zutat": "Kokosmilch"}, {"menge": "1.5 EL", "zutat": "grüne Currypaste"}, {"menge": "1.5 EL", "zutat": "Fischsauce"}, {"menge": "1 EL", "zutat": "brauner Zucker"}, {"menge": "0.5 Tasse", "zutat": "Bambus (optional)"}, {"menge": "1 Tasse", "zutat": "Gemüse (z.B. Paprika, Zucchini)"}, {"menge": "50 ml", "zutat": "Hühnerbrühe"}, {"menge": "etwas", "zutat": "Korianderblätter"}, {"menge": "nach Bedarf", "zutat": "Reis"}], "zubereitung": ["In einem Wok oder Pfanne die Kokosmilch mit der Currypaste bei mittlerer Hitze 7 Minuten einreduzieren.", "Hähnchenbrust in schmale Streifen schneiden (ca. 3 cm). Hühnerbrühe mit Fischsauce und Zucker mischen.", "Fleisch, Brühe-Mix, Bambus und Gemüse in die Kokosmilch geben. 7 Minuten köcheln und gelegentlich umrühren.", "Auf einem Teller im Reisrand anrichten und mit Korianderblättern garnieren."], "notizen": "Kein Salz nötig - Fischsauce bringt genug. Grüne Currypaste und Fischsauce besorgen. Gemüse aus dem Vorrat (Paprika, Zucchini, Karotten).", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/344934/Thai-Haehnchenbrust-in-gruener-Currysosse.html", "autor": "L****s"}, "erstellt": "2025-02-16"}, {"id": "tomaten-zucchini-auflauf-pute", "titel": "Tomaten-Zucchini-Auflauf mit Putenbrust", "bild": "https://ais.kochbar.de/kbrezept/417436_491246/1200x1200/tomaten-zucchini-auflauf-mit-putenbrust-rezept.jpg", "beschreibung": "Leichter Auflauf mit geschichteten Tomaten, Zucchini und Putenbrust, überbacken mit fettarmem Käse. Nur 65 kcal/100g.", "kategorie": "Hauptspeise", "tags": ["auflauf", "ofen", "pute", "low-cal", "protein", "zucchini"], "schwierigkeit": "einfach", "zubereitungszeit_min": 45, "portionen": 3, "frisch_besorgen": ["Putenbrust (80 g)", "Tomaten (400 g)"], "zutaten": [{"menge": "400 g", "zutat": "Tomaten (frisch)"}, {"menge": "300 g", "zutat": "Zucchini"}, {"menge": "2 Stück", "zutat": "Knoblauchzehen"}, {"menge": "80 g", "zutat": "Putenbrust"}, {"menge": "160 g", "zutat": "geriebener fettarmer Käse"}, {"menge": "4 TL", "zutat": "Olivenöl"}, {"menge": "etwas", "zutat": "Kräuter (Basilikum, Thymian)"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}], "zubereitung": ["Backofen auf 180 °C vorheizen.", "Tomaten und Zucchini waschen und in Scheiben schneiden. Knoblauch schälen und fein hacken.", "Tomaten und Zucchini mit der Putenbrust abwechselnd in eine feuerfeste Form schichten.", "Knoblauch und Kräuter darüber streuen. Mit Olivenöl beträufeln. Mit Salz und Pfeffer würzen.", "Käse auf dem Gemüse verteilen.", "Im Backofen 25 Minuten backen."], "notizen": "Sehr kalorienarm (65 kcal/100g)! Zucchini und Knoblauch im Vorrat. Tomaten und Putenbrust frisch besorgen. Käse im Vorrat.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/417436/Tomaten-Zucchini-Auflauf-mit-Putenbrust.html", "autor": "z****n"}, "erstellt": "2025-02-16"}, {"id": "zucchini-bohnenpfanne-erdnussbutter", "titel": "Cremige Zucchini-Bohnenpfanne mit Erdnussbutter", "beschreibung": "Schnelle Resteverwertung: Gebratene Zucchini und Bohnen in cremiger Kokosmilch-Tomaten-Erdnuss-Sauce. In 15 Minuten fertig.", "bild": "https://www.eat-this.org/wp-content/uploads/2023/08/eat_this_cremige_zucchini-bohnenpfanne_mit_erdnussbutter_004.jpg", "kategorie": "Hauptspeise", "tags": ["pfanne", "schnell", "vegan", "bohnen", "kokosmilch"], "schwierigkeit": "einfach", "zubereitungszeit_min": 15, "portionen": 2, "zutaten": [{"menge": "400 g", "zutat": "Zucchini"}, {"menge": "2 EL", "zutat": "Kokosöl"}, {"menge": "1 TL", "zutat": "Salz"}, {"menge": "1", "zutat": "rote Zwiebel"}, {"menge": "3 Zehen", "zutat": "Knoblauch"}, {"menge": "200 g", "zutat": "stückige Tomaten"}, {"menge": "250 ml", "zutat": "Kokosmilch"}, {"menge": "1 EL", "zutat": "Erdnussbutter"}, {"menge": "1 Dose (240 g)", "zutat": "gemischte Bohnen"}, {"menge": "1 TL", "zutat": "Sambal Oelek"}, {"menge": "0.5 TL", "zutat": "schwarzer Pfeffer"}, {"menge": "0.5", "zutat": "Zitrone (Saft)"}, {"menge": "15 g", "zutat": "Petersilie"}], "zubereitung": ["Zucchini in ca. 3 cm große Stücke schneiden. Öl in einer heißen Pfanne schmelzen, Zucchini hineingeben, mit 0.5 TL Salz würzen und 10-12 Minuten braten bis rundherum gebräunt. Aus der Pfanne nehmen.", "Zwiebel würfeln, Knoblauch fein hacken. In die Pfanne geben und 1 Minute anschwitzen.", "Tomaten und Kokosmilch dazugeben, Erdnussbutter unterrühren und kurz aufkochen.", "Bohnen und gebratene Zucchini unterrühren. Mit Sambal Oelek, Pfeffer und restlichem Salz abschmecken.", "Mit Zitronensaft und gehackter Petersilie servieren. Dazu passt Reis oder getoastetes Brot."], "notizen": "Erdnussbutter und Bohnen stehen auf der Einkaufsliste. Sambal Oelek durch Chili ersetzen wenn nicht vorhanden.", "quelle": {"name": "eat-this.org", "url": "https://www.eat-this.org/cremige-zucchini-bohnenpfanne-mit-erdnussbutter/", "autor": "Nadine"}, "erstellt": "2025-02-16"}, {"id": "zucchini-hackfleisch-pfanne", "titel": "Zucchini-Hackfleisch-Pfanne mit Kartoffeln", "beschreibung": "Deftige Pfanne mit Hackfleisch, Zucchini und Frühkartoffeln. Unkompliziert und sättigend.", "bild": "https://ais.kochbar.de/kbrezept/473229_703320/1200x1200/zucchini-hackfleisch-pfanne-rezept.jpg", "kategorie": "Hauptspeise", "tags": ["pfanne", "hackfleisch", "zucchini", "kartoffeln", "deftig"], "schwierigkeit": "einfach", "zubereitungszeit_min": 40, "portionen": 4, "frisch_besorgen": ["Hackfleisch (600 g)"], "zutaten": [{"menge": "600 g", "zutat": "Hackfleisch (gemischt oder Rind)"}, {"menge": "3 Stück", "zutat": "Zucchini"}, {"menge": "2 Stück", "zutat": "Zwiebeln"}, {"menge": "12 Stück", "zutat": "kleine Kartoffeln"}, {"menge": "3 Zehen", "zutat": "Knoblauch"}, {"menge": "etwas", "zutat": "Bratensauce oder Brühe"}, {"menge": "etwas", "zutat": "Salz"}, {"menge": "etwas", "zutat": "Pfeffer / Fleischgewürz"}, {"menge": "etwas", "zutat": "Rosmarin (frisch)"}], "zubereitung": ["Kartoffeln in Salzwasser vorgaren.", "Zucchini entkernen und in Würfel schneiden. Zwiebeln in Ringe oder Würfel, Knoblauch fein hacken.", "Hackfleisch kurz scharf anbraten und würzen.", "Zucchini, Zwiebeln und Knoblauch dazugeben und mitbraten.", "Mit Bratensauce oder Brühe ablöschen. Kartoffeln dazugeben und fertig köcheln lassen.", "Dazu passt ein frischer Salat."], "notizen": "Hackfleisch frisch besorgen. Rest kommt komplett aus dem Vorrat! Rosmarin optional durch andere Kräuter ersetzen.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/473229/Zucchini-Hackfleisch-Pfanne.html", "autor": "strammermax"}, "erstellt": "2025-02-16"}, {"id": "zucchini-spaghetti-feta", "titel": "Zucchini-Spaghetti mit Feta und Zitrone", "bild": "https://ais.kochbar.de/kbrezept/473126_702959/1200x1200/zucchini-spaghetti-mit-feta-rezept.jpg", "beschreibung": "Leichte Pasta mit Zucchini-Spiralen, Feta und frischem Zitronenaroma. Proteinreich durch Feta, frisch durch Zitrone und Basilikum.", "kategorie": "Hauptspeise", "tags": ["pasta", "vegetarisch", "low-cal", "protein", "zucchini", "feta", "schnell"], "schwierigkeit": "einfach", "zubereitungszeit_min": 20, "portionen": 4, "zutaten": [{"menge": "450 g", "zutat": "Spaghetti"}, {"menge": "300 g", "zutat": "Zucchini"}, {"menge": "1", "zutat": "Zwiebel"}, {"menge": "200 g", "zutat": "Feta"}, {"menge": "0.5 Bund", "zutat": "Basilikum"}, {"menge": "2", "zutat": "Zitronen (Bio)"}, {"menge": "1 Zehe", "zutat": "Knoblauch"}, {"menge": "3 EL", "zutat": "Olivenöl"}, {"menge": "etwas", "zutat": "Salz, Pfeffer"}], "zubereitung": ["Spaghetti in Salzwasser bissfest garen. Dabei ca. 5 EL Nudelwasser auffangen.", "Zwiebel fein würfeln und in Olivenöl anschwitzen. Zucchini mit Spiralschneider in Spiralen schneiden (oder grob raspeln). Knoblauch fein hacken.", "Zucchini und Knoblauch zu den Zwiebeln geben, ca. 3 Minuten andünsten.", "Spaghetti abgießen und zu den Zucchini geben. Feta fein darüberbröseln.", "Von einer Zitrone Schale abreiben und Saft auspressen. Zitronenabrieb, -saft und Nudelwasser dazugeben. Mit Salz und Pfeffer würzen.", "Basilikum hacken und drüberstreuen. Zweite Zitrone geviertelt dazu reichen."], "notizen": "Komplett aus dem Vorrat machbar (nur Basilikum + Zitronen frisch)! Feta = gute Proteinquelle. Tipp: Für mehr Sauce etwas Frischkäse ins Nudelwasser rühren.", "quelle": {"name": "kochbar.de", "url": "https://www.kochbar.de/rezept/473126/Zucchini-Spaghetti-mit-Feta.html", "autor": "Sri_Devi"}, "erstellt": "2025-02-16"}];
|
|
|
|
const hasFleisch = r => (r.frisch_besorgen||[]).some(z => /hack|huhn|hähn|pute|schwein|rind|schinken/i.test(z)) || r.tags.some(t => /hackfleisch|hähnchen|pute|geschnetzeltes/i.test(t));
|
|
const hasFisch = r => r.tags.some(t => /lachs|fisch|garnelen/i.test(t)) || (r.frisch_besorgen||[]).some(z => /lachs|fisch|garnelen/i.test(z));
|
|
|
|
function matches(r, filter) {
|
|
if (filter === 'alle') return true;
|
|
if (filter === 'unter-15-min') return r.zubereitungszeit_min <= 15;
|
|
if (filter === 'vegan') return r.tags.includes('vegan');
|
|
if (filter === 'vegetarisch') return r.tags.includes('vegetarisch') || r.tags.includes('vegan');
|
|
if (filter === 'fleisch') return hasFleisch(r);
|
|
if (filter === 'fisch') return hasFisch(r);
|
|
if (filter === 'ofen') return r.tags.includes('ofen') || r.tags.includes('auflauf') || r.tags.includes('gratin');
|
|
if (filter === 'low-cal') return r.tags.includes('low-cal') || r.tags.includes('protein');
|
|
return true;
|
|
}
|
|
|
|
let activeFilter = 'alle';
|
|
|
|
function render() {
|
|
const q = document.getElementById('search').value.toLowerCase();
|
|
const grid = document.getElementById('grid');
|
|
const filtered = rezepte.filter(r => {
|
|
if (!matches(r, activeFilter)) return false;
|
|
if (q) {
|
|
const hay = [r.titel, r.beschreibung, ...r.tags, ...(r.zutaten||[]).map(z=>z.zutat)].join(' ').toLowerCase();
|
|
return hay.includes(q);
|
|
}
|
|
return true;
|
|
});
|
|
|
|
if (!filtered.length) {
|
|
grid.innerHTML = '<div class="no-results">Keine Rezepte gefunden 🤷</div>';
|
|
return;
|
|
}
|
|
|
|
grid.innerHTML = filtered.map(r => `
|
|
<div class="card" onclick="openDetail('${r.id}')">
|
|
${r.zubereitungszeit_min <= 15 ? '<div class="badge-quick">⚡ ' + r.zubereitungszeit_min + ' Min</div>' : ''}
|
|
<img src="${r.bild}" alt="${r.titel}" loading="lazy" onerror="this.style.background='#f0e6d6';this.style.height='120px'">
|
|
<div class="card-body">
|
|
<h3>${r.titel}</h3>
|
|
<div class="desc">${r.beschreibung}</div>
|
|
<div class="card-meta">
|
|
<span>⏱ ${r.zubereitungszeit_min} Min</span>
|
|
<span>👥 ${r.portionen} Port.</span>
|
|
<span>📊 ${r.schwierigkeit}</span>
|
|
</div>
|
|
<div class="tags">${r.tags.map(t => `<span>${t}</span>`).join('')}</div>
|
|
</div>
|
|
</div>
|
|
`).join('');
|
|
}
|
|
|
|
function openDetail(id) {
|
|
const r = rezepte.find(x => x.id === id);
|
|
if (!r) return;
|
|
const freshHtml = (r.frisch_besorgen && r.frisch_besorgen.length)
|
|
? `<div class="fresh-list"><strong>🛒 Frisch besorgen:</strong> ${r.frisch_besorgen.join(', ')}</div>` : '';
|
|
|
|
document.getElementById('detail').innerHTML = `
|
|
<button class="close-btn" onclick="closeDetail()">✕</button>
|
|
<img src="${r.bild}" alt="${r.titel}">
|
|
<div class="detail-body">
|
|
<h2>${r.titel}</h2>
|
|
<div class="desc-full">${r.beschreibung}</div>
|
|
<div class="meta-row">
|
|
<span class="chip">⏱ ${r.zubereitungszeit_min} Min</span>
|
|
<span class="chip">👥 ${r.portionen} Portionen</span>
|
|
<span class="chip">📊 ${r.schwierigkeit}</span>
|
|
</div>
|
|
${freshHtml}
|
|
<h4>Zutaten</h4>
|
|
<ul>${r.zutaten.map(z => `<li><strong>${z.menge}</strong> ${z.zutat}</li>`).join('')}</ul>
|
|
${r.currypaste_zutaten ? `<h4>Currypaste</h4><ul>${r.currypaste_zutaten.map(z => `<li>${z}</li>`).join('')}</ul>` : ''}
|
|
${r.topping ? `<h4>Topping</h4><ul>${r.topping.map(t => `<li>${t}</li>`).join('')}</ul>` : ''}
|
|
<h4>Zubereitung</h4>
|
|
<ol>${r.zubereitung.map(s => `<li>${s}</li>`).join('')}</ol>
|
|
${r.notizen ? `<h4>Notizen</h4><p style="color:var(--muted);font-size:.9rem;line-height:1.5">${r.notizen}</p>` : ''}
|
|
<a class="source-link" href="${r.quelle.url}" target="_blank" rel="noopener">📎 Quelle: ${r.quelle.name} (${r.quelle.autor || ''})</a>
|
|
</div>
|
|
`;
|
|
document.getElementById('overlay').classList.add('open');
|
|
document.body.style.overflow = 'hidden';
|
|
}
|
|
|
|
function closeDetail() {
|
|
document.getElementById('overlay').classList.remove('open');
|
|
document.body.style.overflow = '';
|
|
}
|
|
|
|
document.getElementById('overlay').addEventListener('click', e => {
|
|
if (e.target === e.currentTarget) closeDetail();
|
|
});
|
|
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeDetail(); });
|
|
|
|
document.querySelectorAll('.filters button').forEach(btn => {
|
|
btn.addEventListener('click', () => {
|
|
document.querySelectorAll('.filters button').forEach(b => b.classList.remove('active'));
|
|
btn.classList.add('active');
|
|
activeFilter = btn.dataset.filter;
|
|
render();
|
|
});
|
|
});
|
|
|
|
document.getElementById('search').addEventListener('input', render);
|
|
|
|
render();
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|