Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
testingyourat
Just a test
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
1
107113840.0 Ops/sec
2
101524816.0 Ops/sec
HTML Preparation code:
<!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="assets/css/styles.css"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Anton&family=Manrope:wght@200..800&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==" crossorigin="anonymous" referrerpolicy="no-referrer"> <title>Les petits plats</title> </head> <body> <header> <div class="logo"> <h1 class="anton">LES PETITS PLATS</h1> <svg width="23" height="23" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M23 11.4096C23 17.2779 18.0632 22.0351 11.9735 22.0351C5.88374 22.0351 0.947021 17.2779 0.947021 11.4096C0.947021 5.54129 5.88374 0.784088 11.9735 0.784088C18.0632 0.784088 23 5.54129 23 11.4096Z" fill="white" /> <path fill-rule="evenodd" clip-rule="evenodd" d="M11.9735 20.4312C17.234 20.4312 21.3961 16.3366 21.3961 11.4096C21.3961 6.48255 17.234 2.38794 11.9735 2.38794C6.71301 2.38794 2.55087 6.48255 2.55087 11.4096C2.55087 16.3366 6.71301 20.4312 11.9735 20.4312ZM11.9735 22.0351C18.0632 22.0351 23 17.2779 23 11.4096C23 5.54129 18.0632 0.784088 11.9735 0.784088C5.88374 0.784088 0.947021 5.54129 0.947021 11.4096C0.947021 17.2779 5.88374 22.0351 11.9735 22.0351Z" fill="black" /> <path d="M19.3913 11.4096C19.3913 15.5063 16.0702 18.8274 11.9735 18.8274C7.87673 18.8274 4.55566 15.5063 4.55566 11.4096C4.55566 7.31286 7.87673 3.99179 11.9735 3.99179C16.0702 3.99179 19.3913 7.31286 19.3913 11.4096Z" fill="white" /> <path fill-rule="evenodd" clip-rule="evenodd" d="M11.9735 17.2236C15.1844 17.2236 17.7874 14.6206 17.7874 11.4096C17.7874 8.19864 15.1844 5.59564 11.9735 5.59564C8.76251 5.59564 6.15951 8.19864 6.15951 11.4096C6.15951 14.6206 8.76251 17.2236 11.9735 17.2236ZM11.9735 18.8274C16.0702 18.8274 19.3913 15.5063 19.3913 11.4096C19.3913 7.31286 16.0702 3.99179 11.9735 3.99179C7.87673 3.99179 4.55566 7.31286 4.55566 11.4096C4.55566 15.5063 7.87673 18.8274 11.9735 18.8274Z" fill="black" /> </svg> </div> </header> <main> <section class="section sectionTop"> <div class="sectionTop__content"> <h2 class="sectionTop__hero anton"> CHERCHEZ PARMI PLUS DE 1500 RECETTES DU QUOTIDIEN,SIMPLES ET DÉLICIEUSES </h2> <form class="sectionTop__form" method="get"> <div class="sectionTop__form-field form-field"> <label for="field"></label> <input class="main-input-field" type="text" name="field" id="field" placeholder="Rechercher une recette, un ingrédient, ..."> <div class="sectionTop__svg-group svg-group"> <svg class="sectionTop__svg-clear svg-clear" width="17" height="17" viewBox="0 0 17 17" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M15 15L8.5 8.5M8.5 8.5L2 2M8.5 8.5L15 2M8.5 8.5L2 15" stroke="#7A7A7A" stroke-width="2.16667" stroke-linecap="round" stroke-linejoin="round" /> </svg> <svg class="sectionTop__svg-search svg-search" width="51" height="52" viewBox="0 0 51 52" fill="none" xmlns="http://www.w3.org/2000/svg" > <rect width="51" height="52" rx="10" fill="#1B1B1B" /> <circle class="m-glass" cx="22" cy="22" r="9.5" stroke="white" /> <line class="m-glass" x1="30.3536" y1="30.6464" x2="39.3536" y2="39.6464" stroke="white" /> </svg> </div> </div> </form> </div> </section> <div class="section sectionRecipes"> <div class="sectionRecipes__header"> <div class="sortingGroup"> <div class="sortingGroup__customDropdown ingredients-dropdown" > <button class="dropdownBtn"> <span class="dropdownBtn__title" >Ingredients</span > <i class="fa-solid fa-angle-down" title="Derouler le menu" ></i> </button> <ul class="sortingList"> <li class="sortingList__input-field" tabindex="0" > <form class="sortingList__form" method="get" > <div class="sortingList__form-field form-field" > <label for="field"></label> <input class="filter-input" type="text" name="IngredientField" id="IngredientField"> <div class="sortingList__svg-group"> <svg class="sortingList__svg-clear svg-clear" width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M7 7L4 4M4 4L1 1M4 4L7 1M4 4L1 7" stroke="#7A7A7A" stroke-linecap="round" stroke-linejoin="round" /> </svg> <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg" > <circle cx="5" cy="5" r="4.75" stroke="#7A7A7A" stroke-width="0.5" /> <line x1="9.17678" y1="9.32322" x2="13.6768" y2="13.8232" stroke="#7A7A7A" stroke-width="0.5" /> </svg> </div> </div> </form> </li> </ul> </div> <div class="sortingGroup__customDropdown appareils-dropdown" > <button class="dropdownBtn"> <span class="dropdownBtn__title" >Appareils</span > <i class="fa-solid fa-angle-down" title="Derouler le menu" ></i> </button> <ul class="sortingList"> <li class="sortingList__input-field" tabindex="0" > <form class="sortingList__form" method="get" > <div class="sortingList__form-field form-field" > <label for="field"></label> <input class="filter-input" type="text" name="ApparelField" id="ApparelField"> <div class="sortingList__svg-group"> <svg class="sortingList__svg-clear svg-clear" width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M7 7L4 4M4 4L1 1M4 4L7 1M4 4L1 7" stroke="#7A7A7A" stroke-linecap="round" stroke-linejoin="round" /> </svg> <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg" > <circle cx="5" cy="5" r="4.75" stroke="#7A7A7A" stroke-width="0.5" /> <line x1="9.17678" y1="9.32322" x2="13.6768" y2="13.8232" stroke="#7A7A7A" stroke-width="0.5" /> </svg> </div> </div> </form> </li> </ul> </div> <div class="sortingGroup__customDropdown ustensiles-dropdown" > <button class="dropdownBtn"> <span class="dropdownBtn__title" >Ustensiles</span > <i class="fa-solid fa-angle-down" title="Derouler le menu" ></i> </button> <ul class="sortingList"> <li class="sortingList__input-field" tabindex="0" > <form class="sortingList__form" method="get" > <div class="sortingList__form-field form-field" > <label for="field"></label> <input class="filter-input" type="text" name="UstensilField" id="UstensilField"> <div class="sortingList__svg-group"> <svg class="sortingList__svg-clear svg-clear" width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg" > <path d="M7 7L4 4M4 4L1 1M4 4L7 1M4 4L1 7" stroke="#7A7A7A" stroke-linecap="round" stroke-linejoin="round" /> </svg> <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg" > <circle cx="5" cy="5" r="4.75" stroke="#7A7A7A" stroke-width="0.5" /> <line x1="9.17678" y1="9.32322" x2="13.6768" y2="13.8232" stroke="#7A7A7A" stroke-width="0.5" /> </svg> </div> </div> </form> </li> </ul> </div> </div> <p class="sectionRecipes__recipe-total anton"> 1500 recettes </p> <div class="sectionRecipes__tags-section smooth-transition" ></div> </div> <div class="sectionRecipes__cardArea"></div> </div> </main> </body> </html>
Script Preparation code:
const mainInput = "tarte citron meringue"; const displayedCardsIds = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]; const allCardsCount = 50; const recipes = [ { id: 1, image: "Recette01.jpg", name: "Limonade de Coco", servings: 1, ingredients: [ { ingredient: "Lait de coco", quantity: 400, unit: "ml", }, { ingredient: "Jus de citron", quantity: 2, }, { ingredient: "Crème de coco", quantity: 2, unit: "cuillères à soupe", }, { ingredient: "Sucre", quantity: 30, unit: "grammes", }, { ingredient: "Glaçons", }, ], time: 10, description: "Mettre les glaçons à votre goût dans le blender, ajouter le lait, la crème de coco, le jus de 2 citrons et le sucre. Mixer jusqu'à avoir la consistence désirée", appliance: "Blender", ustensils: ["cuillère à Soupe", "verres", "presse citron"], }, { id: 2, image: "Recette02.jpg", name: "Poisson Cru à la tahitienne", servings: 2, ingredients: [ { ingredient: "Thon Rouge (ou blanc)", quantity: 200, unit: "grammes", }, { ingredient: "Concombre", quantity: 1, }, { ingredient: "Tomate", quantity: 2, }, { ingredient: "Carotte", quantity: 1, }, { ingredient: "Citron Vert", quantity: 5, }, { ingredient: "Lait de Coco", quantity: 100, unit: "ml", }, ], time: 60, description: "Découper le thon en dés, mettre dans un plat et recouvrir de jus de citron vert (mieux vaut prendre un plat large et peu profond). Laisser reposer au réfrigérateur au moins 2 heures. (Si possible faites-le le soir pour le lendemain. Après avoir laissé mariner le poisson, coupez le concombre en fines rondelles sans la peau et les tomates en prenant soin de retirer les pépins. Rayer la carotte. Ajouter les légumes au poissons avec le citron cette fois ci dans un Saladier. Ajouter le lait de coco. Pour ajouter un peu plus de saveur vous pouvez ajouter 1 à 2 cuillères à soupe de Crème de coco", appliance: "Saladier", ustensils: ["presse citron"], }, { id: 3, image: "Recette03.jpg", name: "Poulet coco réunionnais", servings: 4, ingredients: [ { ingredient: "Poulet", quantity: 1, }, { ingredient: "Lait de coco", quantity: 400, unit: "ml", }, { ingredient: "Coulis de tomate", quantity: 25, unit: "cl", }, { ingredient: "Oignon", quantity: 1, }, { ingredient: "Poivron rouge", quantity: 1, }, { ingredient: "Huile d'olive", quantity: 1, unit: "cuillères à soupe", }, ], time: 80, description: "Découper le poulet en morceaux, les faire dorer dans une cocotte avec de l'huile d'olive. Salez et poivrez. Une fois doré, laisser cuire en ajoutant de l'eau. Au bout de 30 minutes, ajouter le coulis de tomate, le lait de coco ainsi que le poivron et l'oignon découpés en morceaux. Laisser cuisiner 30 minutes de plus. Servir avec du riz", appliance: "Cocotte", ustensils: ["couteau"], }, { id: 4, image: "Recette04.jpg", name: "Salade de riz", servings: 4, ingredients: [ { ingredient: "Riz blanc", quantity: 500, unit: "grammes", }, { ingredient: "Thon en miettes", quantity: 200, unit: "grammes", }, { ingredient: "Tomate", quantity: 2, }, { ingredient: "Oeuf dur", quantity: 2, }, { ingredient: "Maïs", quantity: 300, unit: "grammes", }, { ingredient: "Vinaigrette", quantity: 5, unit: "cl", }, ], time: 50, description: "Faire cuire le riz. Une fois le riz cuit, le laisser refroidir. Couper les oeufs dur en quarts ou en lamelle au choix, coupez le tomates en dés, ajouter au riz les oeufs, les tomates, le poisson, le maïs et la vinaigrette. Ajouter au gout de chacun des corniches, olives etc..", appliance: "Cuiseur de riz", ustensils: ["saladier", "passoire"], }, { id: 5, image: "Recette05.jpg", name: "Tarte au thon", servings: 4, ingredients: [ { ingredient: "Pâte feuilletée", quantity: 1, }, { ingredient: "Thon en miettes", quantity: 130, unit: "grammes", }, { ingredient: "Tomate", quantity: 2, }, { ingredient: "Crème fraîche", quantity: 2, unit: "cuillères à soupe", }, { ingredient: "gruyère râpé", quantity: 100, unit: "grammes", }, { ingredient: "Moutarde de Dijon", quantity: 1, unite: "cuillères à soupe", }, ], time: 45, description: "Étaler la pâte feuilleté aux dimensions du moule, étaler la moutarde sur la pâte feuilleté, ajouter le thon. Découper les tomates en rondelles et les poser sur le poisson, ajouter un peu de crème fraîche sur toute la tarte et recouvrez de gruyère râpé. Cuire au four 30 minutes", appliance: "Four", ustensils: ["moule à tarte", "râpe à fromage", "couteau"], }, { id: 6, image: "Recette06.jpg", name: "Tarte aux pommes", servings: 6, ingredients: [ { ingredient: "Pâte brisée", quantity: 1, }, { ingredient: "Pomme", quantity: 3, }, { ingredient: "Oeuf", quantity: "2", }, { ingredient: "Crème fraîche", quantity: 25, unit: "cl", }, { ingredient: "Sucre en Poudre", quantity: 100, unit: "grammes", }, { ingredient: "Sucre vanillé", quantity: 1, unit: "sachets", }, ], time: 50, description: "Commencez par mélanger les oeufs le sucre et le sucre vanillé dans un saladier, découper les pommes en tranches, ajouter la crème fraîche aux oeufs. Une fois que tout est pret, étalez la tarte dans le moule. N'oubliez pas de piquer le fond avec une fourchette avant de positionner les pommes sur la tarte. Finalement verser la préparation à base d'oeufs et de crème fraîche. Laisser cuire au four pendant 30 minutes", appliance: "Four", ustensils: ["moule à tarte", "saladier", "fourchette"], }, { id: 7, image: "Recette07.jpg", name: "Tartelettes au chocolat et aux fraises", servings: 6, ingredients: [ { ingredient: "Pâte sablée", quantity: 1, }, { ingredient: "Chocolat au lait", quantity: 300, unit: "grammes", }, { ingredient: "Crème liquide", quantity: 80, unit: "cl", }, { ingredient: "Beurre", quantity: "30", unit: "grammes", }, { ingredient: "Fraise", quantity: 6, }, ], time: 50, description: "Étaler la pate dans les moules à tartelette. Faire cuire la pate 30 minutes. Découper le chocolat en morceau et le faire chauffer, y ajouter la crème liquide, ajouter le beurre et remuer jusqu'à avoir une pâte homogène. Verser la pate sur les tartelettes. Couper les fraises en 2 et les positionner sur ", appliance: "Four", ustensils: ["moule à tartelettes (6)", "casserole"], }, { id: 8, image: "Recette08.jpg", name: "Brownie", servings: 10, ingredients: [ { ingredient: "Noix", quantity: "180", unit: "grammes", }, { ingredient: "Chocolat noir", quantity: 150, unit: "grammes", }, { ingredient: "Beurre", quantity: 120, unit: "grammes", }, { ingredient: "Oeuf", quantity: 2, }, { ingredient: "Sucre en Poudre", quantity: "110", unit: "grammes", }, { ingredient: "farine", quantity: 90, unit: "grammes", }, ], time: 60, description: "Hachez les noix grossièrement. Faire fondre le chocolat avec le beurre. Mélanger les oeufs et le sucre et mélanger au chocolat. Ajouter la farine. Mélanger afin d'avoir quelque chose d'homogène puis incorporer les noix. Verser la préparation dans un moule de préférence rectangulaire. Cuire 2O à 25 minutes à 180°. Sortez du four et attendez quelques minutes pour démouler. Servir avec une boule de glace pour plus de gourmandise.", appliance: "Four", ustensils: ["moule à gateaux", "casserole"], }, { id: 9, image: "Recette09.jpg", name: "Salade Méditerannéene fraîche au chèvre", servings: 4, ingredients: [ { ingredient: "Concombre", quantity: 1, }, { ingredient: "Olives", }, { ingredient: "Fromage de chèvre", quantity: 150, unit: "grammes", }, { ingredient: "Vinaigre Balsamic", }, { ingredient: "Huile d'olive", }, { ingredient: "Basilic", }, ], time: 15, description: "Peler le concombre le couper 2, retirer les pépins. Couper les olives en morceaux, ainsi que le fromage de chèvre. Ajouter le basilic ainsi que le vinaigre balsamic et l'huile d'olives à votre gout.", appliance: "Saladier", ustensils: ["cuillère en bois", "couteau"], }, { id: 10, image: "Recette10.jpg", name: "Tartiflette", servings: 4, ingredients: [ { ingredient: "Reblochon", quantity: "1", }, { ingredient: "Pommes de terre", quantity: 4.5, unit: "kg", }, { ingredient: "Jambon fumé", quantity: 2, unit: "tranches", }, { ingredient: "Oignon", quantity: 300, unit: "grammes", }, { ingredient: "Vin blanc sec", quantity: 30, unit: "cl", }, ], time: 60, description: "Commencer par cuire les pommes de terre dans l'eau bouillante. Puis épluchez les et coupez les en rondelles. Émincer les oignons puis les faire dorer dans du beurre. Ajouter le jambon fumé coupé en en morceaux ainsi que les pommes de terres. Salez, poivrez à votre gout ( et celui de vos convives ) Laissez cuisiner durant environ 10 minutes puis ajouter le vin blanc. Après 5 minutes, mettre le tout dans un plat à gratin. Coupez le reblochon, soit en tranches, soit le couper en 2 dans le sens de l'épaisseur et recouvrir les pommes de terre. Cuire au four (environ 220°) durant 25 minutes. C'est prêt !", appliance: "Four", ustensils: ["plat à gratin", "couteau", "Économe"], }, { id: 11, image: "Recette11.jpg", name: "Salade tomate, mozzarella et pommes", servings: 4, ingredients: [ { ingredient: "Tomates cerises", quantity: 250, unit: "grammes", }, { ingredient: "Mozzarella", quantity: 150, unit: "grammes", }, { ingredient: "Jambon de parme", quantity: 4, unit: "tranches", }, { ingredient: "Pommes", quantity: 1, }, { ingredient: "Salade Verte", quantity: 1, }, { ingredient: "Vinaigrette", quantity: 5, unit: "cl", }, ], time: 10, description: "Commencer par couper les feuilles de salade, ajouter les tomates cerises et le fromage découpé en cubes ou en boules avec la cuillère à melon. Découper le jambon de parme en fines lamelles. Ajouter la pomme elle aussi découpée en petit morceaux. Assaisonnez à votre gout. ", appliance: "Saladier", ustensils: ["couteau", "cuillère à melon"], }, { id: 12, image: "Recette12.jpg", name: "Compote pomme rhubarbe", servings: 4, ingredients: [ { ingredient: "Rhubarbe", quantity: 160, unit: "grammes", }, { ingredient: "Pommes", quantity: 8, }, { ingredient: "Sucre vanillé", quantity: 6, unit: "sachets", }, { ingredient: "Eau", quantity: "0.5", unit: "tasses", }, ], time: 40, description: "Éplucher les fruits et les couper en morceaux, les mettre dans une casserole en ajoutant l'eau et le sucre vanillé. Laisser cuire 15 minutes en remuant régulièrement.", appliance: "Casserole", ustensils: ["couteau", "économe"], }, { id: 13, image: "Recette13.jpg", name: "Salade mâchée de patates", servings: 2, ingredients: [ { ingredient: "Mâche", quantity: 60, unit: "grammes", }, { ingredient: "Pommes de terre", quantity: 200, unit: "grammes", }, { ingredient: "Échalote", quantity: 2, }, { ingredient: "Vinaigre de cidre", quantity: 1, unit: "cuillère à soupe", }, { ingredient: "huile d'olive", quantity: 2, unit: "cuillère à soupe", }, ], time: 40, description: "Cuire les pommes de terre environ 30 minutes. Découper les échalotes finement. Durant la cuisson des pommes de terre. Préparez la vinaigrette avec l'huile d'olive et le vinaigre de cidre. Salez poivrez à discrétion. Dans un saladier, mettre le mâche. Ajouter", appliance: "Casserole", ustensils: ["couteau", "saladier", "cuillère en bois"], }, { id: 14, image: "Recette14.jpg", name: "Galette Bretonne Saucisse et Fromage à raclette", servings: 2, ingredients: [ { ingredient: "Saucisse bretonne ou de Toulouse", quantity: 2, }, { ingredient: "Farine de blé noir", quantity: 130, unit: "grammes", }, { ingredient: "Oeuf", quantity: 1, }, { ingredient: "Fromage à raclette", quantity: 300, unit: "grammes", }, { ingredient: "Oignon", quantity: 1, }, { ingredient: "Beurre", quantity: 75, unit: "grammes", }, ], time: 100, description: "Mélanger la farine et les oeufs, faire fondre 25 grammes de beurre et ajouter à la pâte. Ajouter du sel. Laisser reposer 1 heure. Faire les galettes et laisser refroidir. Faire chauffer les saucisses avec du beurre et l'oignon. Enrouler les saucisses dans les crêpes avec une partie du fromage. Mettre le reste du fromage à raclette par dessus les crêpes. Passer four pendant 20 minutes", appliance: "Four", ustensils: ["poêle à frire", "couteau"], }, { id: 15, image: "Recette15.jpg", name: "Crêpes Chocolat Banane", servings: 10, ingredients: [ { ingredient: "Oeuf", quantity: 3, }, { ingredient: "Farine", quantity: 250, unit: "grammes", }, { ingredient: "Lait", quantity: 600, unit: "ml", }, { ingredient: "Beurre salé", quantity: 30, unit: "grammes", }, { ingredient: "Chocolat au lait", quantity: 100, unit: "grammes", }, { ingredient: "Banane", quantity: 4, }, ], time: 60, description: "Mélangez dans un saladier, la farine, les oeufs, et le lait. Battez jusqu'à avoir une masse homogène. Pendant ce temps faites fondre le beurre et ajoutez en une partie à la pâte à crêpes. Faire fondre le chocolat ( avec le reste du beurre salé ). Lorsque vous chauffez les crêpes. Ajouter le chocolat fondu et les bananes coupées en rondelles. Ajoutez une touche de chantilly pour les gourmands", appliance: "Poêle à crêpe", ustensils: ["saladier", "louche", "cuillère en bois"], }, { id: 16, image: "Recette16.jpg", name: "Gratin de pâtes à la tomate", servings: 2, ingredients: [ { ingredient: "Tomate", quantity: 500, unit: "grammes", }, { ingredient: "Mozzarella", quantity: 250, unit: "grammes", }, { ingredient: "Pennes", quantity: 500, unit: "grammes", }, { ingredient: "Basilic", quantity: 1, unit: "tiges", }, { ingredient: "huile d'olives", quantity: 2, unit: "cuillère à soupe", }, ], time: 45, description: "Faire cuire les pâtes si vous n'avez pas de pennes des coquillettes peuvent faire l'affaire. Découper les tomates en petits morceaux, soit en tranches soit en dés. Coupez le basilic en petites morceaux et mélangez le aux tomates. Coupez la mozzarella en tranche. Préchauffez le four à 200°. Alternez entre couches de pattes et couches de tomates, terminez par une couche de pates et recouvrir du fromage. Laisser au four 30 minutes et régalez vous ! Une recette simple qui fera plaisir au petits comme aux grands.", appliance: "Four", ustensils: ["plat à gratin", "couteau", "râpe à fromage"], }, { id: 17, image: "Recette17.jpg", name: "Smoothie à la fraise", servings: 6, ingredients: [ { ingredient: "Fraise", quantity: 500, unit: "grammes", }, { ingredient: "Pastèque", quantity: 0.5, }, { ingredient: "Jus de citron", quantity: 1, unit: "cuillères à soupe", }, { ingredient: "Glaçons", quantity: 8, }, { ingredient: "Menthe", }, ], time: 15, description: "Coupez les fraises en morceaux, découpez la chaire de la pastèque en retirant les pépins. Mettre le tout dans le blender. Ajouter un cuillère à soupe de juste de citron ainsi que les glaçons. Ajoutez quelques feuilles de menthe pour plus de fraîcheur. Mixez le tout. Servir et déguster.", appliance: "Blender", ustensils: ["verres", "couteau", "presse citron"], }, { id: 18, image: "Recette18.jpg", name: "Smoothie ananas et vanille", servings: 5, ingredients: [ { ingredient: "Ananas", quantity: 1, }, { ingredient: "Glace à la vanille", quantity: 500, unit: "ml", }, { ingredient: "Lait", quantity: 50, unit: "cl", }, ], time: 10, description: "Séparez 1/5ème d'Ananas ( une belle tranche qui servira pour la décoration des verres ), mettre le reste coupé en cubes au blender, ajouter la glace à la vanille et le lait. Mixez. Servir et décorer avec l'ananas restant. C'est prêt", appliance: "Blender", ustensils: ["verres", "couteau"], }, { id: 19, image: "Recette19.jpg", name: "Shake Banane Kiwi", servings: 4, ingredients: [ { ingredient: "Kiwi", quantity: 4, }, { ingredient: "Citron", quantity: 1, }, { ingredient: "Lait", quantity: 1, unit: "litres", }, { ingredient: "Sucre glace", quantity: 30, unit: "grammes", }, { ingredient: "Banane", quantity: 1, }, ], time: 0, description: "Coupez les fruits en morceaux, ajouter le jus de citron et le lait ainsi que le sucre glace. Mixez. Ajoutez des glaçons si le lait n'a pas été mis au frais.", appliance: "Blender", ustensils: ["couteau", "verres", "presse citron"], }, { id: 20, image: "Recette20.jpg", name: "Pates Carbonara", servings: 5, ingredients: [ { ingredient: "Tagliatelles", quantity: 500, unit: "grammes", }, { ingredient: "Lardons", quantity: 150, unit: "grammes", }, { ingredient: "Crème fraîche", quantity: 200, unit: "grammes", }, { ingredient: "Parmesan", quantity: 100, unit: "grammes", }, { ingredient: "huile d'olive", quantity: 1, unit: "cuillères à soupe", }, ], time: 30, description: "Faire cuire les pates comme indiqué sur le paquet. Dorer les lardons dans une sauteuse avec l'huile d'olive. Ajouter la crème fraîche et baisser le feu au minimum. Quand les Tagliatelles sont prêtes les mettre dans la sauteuse et bien mélanger le tout en ajoutant le jaune d'oeuf. Servir et ajouter le parmesan râpé.", appliance: "Sauteuse", ustensils: ["râpe à fromage", "cuillère en bois"], }, { id: 21, image: "Recette21.jpg", name: "Spaghettis à la bolognaise", servings: 4, ingredients: [ { ingredient: "Spaghettis", quantity: 400, unit: "grammes", }, { ingredient: "Oignon", quantity: 2, }, { ingredient: "Coulis de tomate", quantity: 300, unit: "grammes", }, { ingredient: "Viande hachée 1% de matière grasse", quantity: 400, unit: "grammes", }, { ingredient: "Vin rouge", quantity: 20, unit: "cl", }, { ingredient: "Crème fraîche", quantity: 1, unit: "cuillères à soupe", }, ], time: 30, description: "Cuisiner la viande hachée dans une poêle à frire. Dans une autre faire cuire les oignons découpés en fins dés avec un peu de beurre. Ajouter du vin rouge. Mélanger les oignons avec la viande hachée. Faire cuire les pates le temps indiqué sur le paquet. Ajouter le coulis de tomates à la viande hachée. Une fois que les pates sont cuites, ajouter la crème fraîche à la viande hachée. Servir.", appliance: "Casserole", ustensils: ["Cuillère en bois", "louche", "couteau"], }, { id: 22, image: "Recette22.jpg", name: "Fondant au chocolat", servings: 4, ingredients: [ { ingredient: "Beurre", quantity: 160, unit: "grammes", }, { ingredient: "Chocolat noir", quantity: 200, unit: "grammes", }, { ingredient: "Farine", quantity: 50, unit: "grammes", }, { ingredient: "Oeuf", quantity: 4, }, { ingredient: "Sucre", quantity: 150, unit: "grammes", }, ], time: 30, description: "Faire fondre le chocolat et le beurre au bain marie. Dans un saladier battre les oeufs avec le sucre jusqu'à obtenir une texture de type mousse. Ajouter la farine ainsi que le mélange de beurre et chocolat fondu. Beurrez le moule à gateaux. Mettre au four préchauffé à 200° puis faites chauffer pendant 15 minutes. C'est prêt. Servir avec une boule de glace ou une crème dessert.", appliance: "Four", ustensils: ["moule à gateaux", "fouet", "casserole"], }, { id: 23, image: "Recette23.jpg", name: "Quiche lorraine", servings: 4, ingredients: [ { ingredient: "Pâte brisée", quantity: 200, unit: "grammes", }, { ingredient: "Lardons", quantity: 200, unit: "grammes", }, { ingredient: "Beurre", quantity: 30, unit: "grammes", }, { ingredient: "Oeuf", quantity: 3, }, { ingredient: "Crème Fraîche", quantity: 20, unit: "cl", }, { ingredient: "Lait", quantity: 20, unit: "cl", }, ], time: 60, description: "Étaler la pate dans un moule et la piquer.Parsemer de beurre. Faire chauffer les lardon dans une poêle. Battre les oeufs en ajoutant la crème fraîche et le lait. Finalement ajouter les lardons, salez poivrez à votre gout. Verser l'ensemble sur la pâte. Cuire environ 50 minutes.", appliance: "Four", ustensils: ["moule à gateaux", "rouleau à patisserie", "fouet"], }, { id: 24, image: "Recette24.jpg", name: "Salade de pâtes", servings: 4, ingredients: [ { ingredient: "Thon en miettes", quantity: 160, unit: "grammes", }, { ingredient: "Maïs", quantity: 60, unit: "grammes", }, { ingredient: "Tomate", quantity: 1, }, { ingredient: "Concombre", quantity: 0.5, }, { ingredient: "Macaronis", quantity: 300, unit: "grammes", }, { ingredient: "Mayonnaise", quantity: 2, unit: "cuillères à soupe", }, ], time: 40, description: "Découper le concombre et les tomates en dés, les mettre dans un saladier avec le mais et les miettes de poisson, ajouter les pates. Ajouter la mayonnaise. Mélanger le tout et servir frais.", appliance: "Saladier", ustensils: ["couteau", "cuillère en bois"], }, { id: 25, image: "Recette25.jpg", name: "Cookies", servings: 4, ingredients: [ { ingredient: "Sucre", quantity: 100, unit: "grammes", }, { ingredient: "Beurre", quantity: 100, unit: "grammes", }, { ingredient: "Farine", quantity: 100, unit: "grammes", }, { ingredient: "Chocolat noir en pépites", quantity: 100, unit: "grammes", }, { ingredient: "Oeuf", quantity: 1, }, ], time: 30, description: "Faire fondre le beurre et le mélanger avec le sucre. Finalement ajouter l'oeuf. Ajouter la farine tout en mélangeant peu pa peu pour avoir une masse sans grumeaux. Ajouter les pépites de chocolat. Faire, une plaque de cuisson de petites boules pour les cookies. Mettre au four à 180° pour 10 minutes.", appliance: "Four", ustensils: ["fouet", "saladier", "plaque de cuisson"], }, { id: 26, image: "Recette26.jpg", name: "Soupe de tomates", servings: 2, ingredients: [ { ingredient: "Tomate", quantity: 6, }, { ingredient: "Pommes de terre", quantity: 1, }, { ingredient: "Huile d'olives", }, { ingredient: "Oignon", quantity: 1, }, { ingredient: "Ail", quantity: 1, unit: "gousses", }, ], time: 25, description: "Verser de l'huile dans une cocotte minute couper les légumes et les verser dans l'huile chaude. Laisser cuire et remuer pendant 10 minutes. Passer aux mixer. Servir.", appliance: "Mixer", ustensils: ["cocotte minute", "couteau"], }, { id: 27, image: "Recette27.jpg", name: "Soupe à l'oseille", servings: 4, ingredients: [ { ingredient: "Oseille", quantity: 2, }, { ingredient: "Oeuf", quantity: 1, }, { ingredient: "Crème fraîche", quantity: 4, unit: "cuillère à soupe", }, { ingredient: "Vermicelles", quantity: 1, unit: "verres", }, { ingredient: "Beurre salé", quantity: 50, unit: "grammes", }, ], time: 15, description: "Faire fondre l'oseille avec du beurre demi sel, ajouter un litre d'eau. Ajouter les vermicelles. Laisser cuire. une fois prêt, sortir du feu et après 5 minutes ajouter le jaune d'oeuf et la crème fraîche", appliance: "Casserole", ustensils: ["couteau", "cuillère en bois"], }, { id: 28, image: "Recette28.jpg", name: "Soupe de poireaux", servings: 4, ingredients: [ { ingredient: "Poireau", quantity: 3, }, { ingredient: "Pommes de terre", quantity: 400, unit: "grammes", }, { ingredient: "Oseille", quantity: 75, unit: "grammes", }, { ingredient: "Beurre", quantity: 50, unit: "grammes", }, { ingredient: "Crème fraîche", quantity: 10, unit: "cl", }, ], time: 80, description: "Émincer les blanc de poireaux et les faire chauffer dans 25 grammes de beurre. AJouter les pommes de terres coupées en morceaux. Ajouter l'eau et laisser mijoter pour 45 minutes. Chauffer l'oseille avec le beurre restant puis incorporer le tout. Mixez. Ajoutez la crème. Bon appetit.", appliance: "Mixer", ustensils: ["casserole", "couteau"], }, { id: 29, image: "Recette29.jpg", name: "Houmous Express", servings: 2, ingredients: [ { ingredient: "Pois chiches", quantity: 1, unit: "boites", }, { ingredient: "Ail", quantity: 1, unit: "gousses", }, { ingredient: "Citron", quantity: 2, }, { ingredient: "Huile d'olive", }, { ingredient: "Paprika", }, ], time: 30, description: "Prendre les pois chiches, les mettre dans le mixer avec de l'huile d'olive, ajouter le jus des 2 citrons et du paprika selon le gout.", appliance: "Mixer", ustensils: ["cuillère en bois", "presse citron"], }, { id: 30, image: "Recette30.jpg", name: "Purée de pois cassés", servings: 4, ingredients: [ { ingredient: "Pois Cassé", quantity: 500, unit: "grammes", }, { ingredient: "Oignon", quantity: 1, }, { ingredient: "Ail", quantity: 2, unit: "gousses", }, ], time: 60, description: "Mettre tous les ingrédients dans une cocotte. ajouter de l'eau pour recouvrir l'ensemble et laisser cuire à petit feu pour 1 heure. Passer au mixer. Salez, poivrez. C'est prêt", appliance: "Mixer", ustensils: ["casserole", "cuillère en bois"], }, { id: 31, image: "Recette31.jpg", name: "Jardinière de légumes", servings: 4, ingredients: [ { ingredient: "Carotte", quantity: 2, }, { ingredient: "Pommes de terre", quantity: 2, }, { ingredient: "Haricots verts", quantity: 150, unit: "grammes", }, { ingredient: "Petits poids", quantity: 100, unit: "grammes", }, { ingredient: "Lardons", quantity: 150, unit: "grammes", }, ], time: 60, description: "Découper en cubes les carottes et pommes de terre. Faire revenir dans du beurre. Ajouter les lardons, une fois les lardons dorés, ajouter un grand verre d'eau. Ajouter les petit poids et les haricots verts ( tous deux pré cuits ). Ajouter Sel, poivre, thyms et laurier", appliance: "Poêle", ustensils: ["Couteau", "économe"], }, { id: 32, image: "Recette32.jpg", name: "Croque Monsieur à la dinde", servings: 4, ingredients: [ { ingredient: "Pain de mie", quantity: 8, unit: "tranches", }, { ingredient: "Blanc de dinde", quantity: 4, unit: "tranches", }, { ingredient: "Emmental", quantity: 8, unit: "tranches", }, { ingredient: "Gruyère", quantity: 100, unit: "grammes", }, { ingredient: "Lait", quantity: 5, unit: "cl", }, { ingredient: "Noix de muscade", quantity: 1, unit: "pincées", }, ], time: 20, description: "Beurrer les tranches de pain, ajouter entre 2 tranches de pain de mie 1 tranche d’emmental, une de blanc de dinde, et une autre d'emmental. Dans un récipient, mélanger le gruyère rappé avec le lait et la noix de muscade. Mettre sur les croque monsieur. Placer au four durant 10 minutes.", appliance: "Four", ustensils: ["râpe à fromage", "cuillère à Soupe", "couteau"], }, { id: 33, image: "Recette33.jpg", name: "Sandwich au saumon fumé", servings: 4, ingredients: [ { ingredient: "Pain de mie", quantity: 8, unit: "tranches", }, { ingredient: "Saumon Fumé", quantity: 4, unit: "tranches", }, { ingredient: "Feuilles de laitue", quantity: 4, }, { ingredient: "Fromage blanc", quantity: 4, unit: "cuillères à soupe", }, { ingredient: "Jus de citron", quantity: 1, unit: "cuillères à soupe", }, ], time: 5, description: "Mélanger le fromage blanc avec le citron. Ajouter un peu de sel et poivre à votre gout. Faire dorer le pain de mie. Puis étaler le mélange. Ajouter une feuille de salade puis le saumon fumé. C'est prêt.", appliance: "Four", ustensils: ["couteau", "cuillère en bois"], }, { id: 34, image: "Recette34.jpg", name: "Purée de patate douce", servings: 4, ingredients: [ { ingredient: "Patate douce", quantity: 800, unit: "grammes", }, { ingredient: "Crème fraîche", quantity: 20, unit: "cl", }, { ingredient: "Huile d'olive", }, { ingredient: "Orange", quantity: 1, }, ], time: 25, description: "Éplucher les patates douces et coupez les en morceaux. Les faire cuire durant 20 minute dans une casserole d'eau bouillante. Passer au mixer en ajoutant la crème et l'huile d'olive à son gout. Salez, poivrez. Pressez l'orange et ajouter le jus à l'ensemble. Servir.", appliance: "Mixer", ustensils: ["couteau", "économe", "cuillère en bois"], }, { id: 35, image: "Recette35.jpg", name: "Purée de carottes", servings: 2, ingredients: [ { ingredient: "Carotte", quantity: 6, }, { ingredient: "Pommes de terre", quantity: 1, }, { ingredient: "Beurre", quantity: 20, unit: "grammes", }, { ingredient: "Crème fraîche", quantity: 2, unit: "cuillères à soupe", }, { ingredient: "Cumin", quantity: 1, unit: "cuillères à café", }, { ingredient: "Noix de muscade", quantity: 1, unit: "pincées", }, ], time: 25, description: "Éplucher les légumes, les couper en morceaux et les mettre à cuire dans une cocotte minute environ 15 minutes. Mixer en ajoutant le beurre, la crème. Ajouter le cumin et la noix de muscade.", appliance: "Mixer", ustensils: ["cocotte minute", "couteau", "cuillère en bois"], }, { id: 36, image: "Recette36.jpg", name: "Lasagne Courgettes et Chèvre", servings: 2, ingredients: [ { ingredient: "Courgette", quantity: 2, }, { ingredient: "Fromage de chèvre", quantity: 4, }, { ingredient: "Lait", quantity: 25, unit: "cl", }, { ingredient: "Lasagnes", quantity: 5, unit: "feuilles", }, { ingredient: "Gruyère", quantity: 40, unit: "grammes", }, { ingredient: "Maïzena", quantity: 1, unit: "cuillères à soupe", }, ], time: 35, description: "Raper les courgette et les faire revenir durant 15 minutes. Ajouter les fromages de chèvre frais. Préparer la béchamel avec le lait et la maïzena. Salez poivrez, ajouter de la noix de muscade selon les gouts. Dans un plat, mettre un peu de sauces au fond, puis des lasagnes, puis des courgettes etc... terminer par de la sauces et ajouter le gruyère. Passer au four à 180° durant 20 à 25 minutes.", appliance: "Four", ustensils: ["plat à gratin", "râpe à fromage", "fouet"], }, { id: 37, image: "Recette37.jpg", name: "Courgettes farcies au boeuf", servings: 2, ingredients: [ { ingredient: "Courgette", quantity: 2, }, { ingredient: "Viande hachée", quantity: 600, unit: "grammes", }, { ingredient: "Huile d'olives", quantity: 25, unit: "cl", }, { ingredient: "Oignon", quantity: 1, }, { ingredient: "Coulis de tomates", quantity: 20, unit: "cl", }, { ingredient: "Gruyère", quantity: 50, unit: "grammes", }, ], time: 60, description: "Couper les courgettes dans le sens de la longueur. Vider les courgette dans un saladier. Réserver.Faire revenir la chair des courgettes dans 25cl d'huile d'olive. Ajouter l'oignon puis la viande hachée. Mettre la farce dans les courgettes. Ajouter le coulis de tomates. Mettre au four pendant 30 minutes. Avant la fin de la cuisson ajouter le fromage râpé", appliance: "Four", ustensils: ["couteau", "cuillère en bois", "Poêle à frire"], }, { id: 38, image: "Recette38.jpg", name: "Pain Perdu", servings: 4, ingredients: [ { ingredient: "Pain", quantity: 6, unit: "tranches", }, { ingredient: "Lait", quantity: 25, unit: "cl", }, { ingredient: "Oeuf", quantity: 3, }, { ingredient: "Sucre roux", quantity: 75, unit: "grammes", }, ], time: 20, description: "Fouettez les oeufs, le sucre et le lait. tremper les tranches de pain. Le cuire au four pendant environ 10 minutes à 180°. Servir", appliance: "Four", ustensils: ["fouet", "bol", "Cuillère à Soupe"], }, { id: 39, image: "Recette39.jpg", name: "Crumble aux pommes", servings: 40, ingredients: [ { ingredient: "Pomme", quantity: 2, }, { ingredient: "Farine", quantity: 100, unit: "grammes", }, { ingredient: "Beurre", quantity: 50, unit: "grammes", }, { ingredient: "Sucre roux", quantity: 80, unit: "grammes", }, ], time: 40, description: "Découper les pommes en dé. Mélanger dans un saladier la farine, le sucre et le beurre. Bien mélanger. Beurrer le moule et ajouter les pommes. Par dessus placez la pate que vous avez obtenu. Cuire 20 minutes au four", appliance: "Four", ustensils: ["saladier", "couteau", "fouet"], }, { id: 40, image: "Recette40.jpg", name: "Limonade", servings: 4, ingredients: [ { ingredient: "Eau", quantity: 1, unit: "Litres", }, { ingredient: "Citron Vert", quantity: 3, }, { ingredient: "Sucre en poudre", quantity: 4, unit: "cuillères à café", }, { ingredient: "Bicarbonate", quantity: 1, unit: "cuillères à café", }, ], time: 10, description: "Dans un saladier mettre l'eau, le jus des citrons et le sucre. Bien mélanger. Ajouter le bicarbonate. Servir. Ajouter des glaçon et une feuille de menthe pour la déco.", appliance: "Saladier", ustensils: ["cuillère en bois"], }, { id: 41, image: "Recette41.jpg", name: "Mousse au chocolat", servings: 4, ingredients: [ { ingredient: "Oeuf", quantity: 3, }, { ingredient: "Chocolat noir", quantity: 100, unit: "grammes", }, { ingredient: "Sucre vanillé", quantity: 1, unit: "sachets", }, ], time: 20, description: "Séparer les blancs d'oeufs. Faire fondre le chocolat au bain marie. Ajouter les jaunes et le sucre au chocolat hors du feu. Battre les blancs en neige. Ajouter les blancs au mélange de chocolat. Mélangez délicatement avec une spatule. Servir dans un plat ou dans des verres. Mettre au frais", appliance: "Casserole", ustensils: ["fouet", "spatule", "verres"], }, { id: 42, image: "Recette42.jpg", name: "Charlotte au poires", servings: 3, ingredients: [ { ingredient: "Chocolat", quantity: 200, unit: "grammes", }, { ingredient: "Oeuf", quantity: 3, }, { ingredient: "Poires au jus", quantity: 0.5, unit: "boites", }, { ingredient: "Boudoirs", quantity: 15, }, ], time: 60, description: "Commencez par préparer la mousse au chocolat au moins 2 heures avant. Quand la mousse est prête et a reposée. Alors mouiller les boudoirs dans le jus des poires. Disposer. Alterner : mousse au chocolat, boudoirs et poires. Mettre au frais.", appliance: "Moule à charlotte", ustensils: ["saladier", "couteau", "fouet"], }, { id: 43, image: "Recette43.jpg", name: "Tarte au citron", servings: 6, ingredients: [ { ingredient: "Pâte brisée", quantity: 200, unit: "grammes", }, { ingredient: "Sucre", quantity: 150, unit: "grammes", }, { ingredient: "Beurre fondu", quantity: 100, unit: "grammes", }, { ingredient: "Oeuf", quantity: 3, }, { ingredient: "Citron", }, ], time: 50, description: "Préchauffez le fours à 200°. Étaler la pate. La mettre dans un moule. Battre les oeufs avec le sucre. Ajouter le jus de citron et le beurre. Verser le tout sur la pate. Au four 30 minutes. Bon appetit ", appliance: "Four", ustensils: ["rouleau à patisserie", "moule à tarte", "presse citron"], }, { id: 44, image: "Recette44.jpg", name: "Crème dessert au chocolat", servings: 6, ingredients: [ { ingredient: "Lait", quantity: 1, unit: "litres", }, { ingredient: "Chocolat", quantity: 200, unit: "grammes", }, { ingredient: "Sucre", quantity: 100, unit: "grammes", }, { ingredient: "Beurre", quantity: 50, unit: "grammes", }, { ingredient: "farine", quantity: 40, unit: "grammes", }, ], time: 15, description: "Mélanger la farine et le beurre fondu en ajoutant le lait peu à peu. Ajouter du sucre après la cuisson. Bien mélanger. Ajouter le chocolat en morceaux et laisser chauffer 8 minutes en mélangeant avec une cuillère en bois. Mettre dans des verres", appliance: "Casserole", ustensils: ["cuillère en bois"], }, { id: 45, image: "Recette45.jpg", name: "Crème pâtissière", servings: 8, ingredients: [ { ingredient: "Lait", quantity: 50, unit: "cl", }, { ingredient: "Oeuf", quantity: 2, }, { ingredient: "Farine", quantity: 30, unit: "grammes", }, { ingredient: "Sucre", quantity: 80, unit: "grammes", }, ], time: 30, description: "Faire bouillir le lait ( on peut y ajouter de l'essence de vanille. Battre les oeufs et le sucre, ajouter la farine puis finalement ajouter le lait chaud. Remettre à feu doux pour faire épaissir en remuant pendant 5 à 10 minutes.", appliance: "Casserole", ustensils: ["fouet", "saladier"], }, { id: 46, image: "Recette46.jpg", name: "Far breton", servings: 6, ingredients: [ { ingredient: "Farine", quantity: 250, unit: "grammes", }, { ingredient: "Sucre", quantity: 150, unit: "grammes", }, { ingredient: "Sucre vanillé", quantity: 1, unit: "sachets", }, { ingredient: "Oeuf", quantity: 4, }, { ingredient: "Lait", quantity: 1, unit: "litre", }, { ingredient: "Pruneaux", quantity: 100, unit: "grammes", }, ], time: 60, description: "Mélanger la farine avec le sucre et les oeufs en ajoutant du sucre vanillé. Ajouter le lait petit à petit. Ajouter un petit vers de rhum. Verser la masse dans un plat beurré y placer les pruneaux et faire cuire à 200° pendant 45 minutes", appliance: "Four", ustensils: ["fouet", "moule", "verres"], }, { id: 47, image: "Recette47.jpg", name: "Mousse au citron", servings: 6, ingredients: [ { ingredient: "Jus de citron", quantity: 100, unit: "grammes", }, { ingredient: "Mascarpone", quantity: 250, unit: "grammes", }, { ingredient: "Sucre", quantity: 100, unit: "grammes", }, { ingredient: "Crème Fraîche", quantity: 20, unit: "cl", }, ], time: 5, description: "Mélanger le jus de citron avec le sucre et la mascarpone. Ajouter la crème fraîche. Mélanger le tout et mettre au congélateur pendant 1 heure. Servir", appliance: "Saladier", ustensils: ["fouet", "verres", "cuillère en bois"], }, { id: 48, image: "Recette48.jpg", name: "Pizza", servings: 4, ingredients: [ { ingredient: "Pâte à pizza", quantity: 1, }, { ingredient: "Tomates pelées", quantity: 1, unit: "boites", }, { ingredient: "Lardons", quantity: 1, unit: "barquettes", }, { ingredient: "Champignons de paris", quantity: 1, unit: "boites", }, { ingredient: "Gruyère", quantity: 200, unit: "grammes", }, ], time: 40, description: "Étaler la pate a pizza. Écraser les tomates pelées, les étaler sur la pâte, ajouter les lardons et les champignons. Ajouter le gruyère eet passer au four à 220° durant 20 minutes", appliance: "Four", ustensils: ["rouleau à patisserie", "râpe à fromage", "couteau"], }, { id: 49, image: "Recette49.jpg", name: "Smoothie tropical", servings: 4, ingredients: [ { ingredient: "Bananes", quantity: 2, }, { ingredient: "Kiwis", quantity: 3, }, { ingredient: "Mangue", quantity: 1, }, { ingredient: "Ananas", quantity: 4, unit: "tranches", }, { ingredient: "Miel", quantity: 2, unit: "cuillères à soupe", }, ], time: 0, description: "Découper les fruits. Le passer au blender jusqu'à obtenir une texture liquide. Mettre au frais. Servir", appliance: "Blender", ustensils: ["couteau", "verres"], }, { id: 50, image: "Recette50.jpg", name: "Frangipane", servings: 2, ingredients: [ { ingredient: "Pâte feuilletée", quantity: 400, unit: "grammes", }, { ingredient: "Oeuf", quantity: 6, }, { ingredient: "Poudre d'amendes", quantity: 500, unit: "grammes", }, { ingredient: "Beurre", quantity: 500, unit: "grammes", }, { ingredient: "Sucre glace", quantity: 500, unit: "grammes", }, ], time: 60, description: "Préparer la frangipane : Mélanger le sucre la poudre d'amandes, le beurre et les oeufs. Étaler la moitié de la pate feuilleté et mettre dans un moule à tarte. Garnir de frangipane et recouvrir du reste de pate feuilletée. Mettre au four 30 minutes", appliance: "Four", ustensils: ["rouleau à patisserie", "fouet"], }, ]; function removeAccents(str) { return str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); } function normalizeAndLowerCase(str) { return removeAccents(str).toLowerCase(); }
Tests:
1
async function evalMainInput() { const search = mainInput.toLowerCase(); const splitSearch = customSplit(search); const idList = []; if (mainInput == "" || mainInput.length < 3) { // await refreshCards(); // await refreshFilters(); // updateTotalRecipes(); return; } let i = 0; while (i < allCardsCount) { if (displayedCardsIds.includes(recipes[i].id)) { const normalizedRecipe = normalizeRecipe(recipes[i]); let found = searchWordsInContexts(splitSearch, normalizedRecipe); if (found) { idList.push(+i + 1); } } i++; } refreshCards(idList); updateTotalRecipes(); refreshFilters(idList); } //From user input, makes an array of string with each containing a single word function customSplit(search) { let i = 0; let k = 0; const splitSearch = []; while (search[i]) { let startWord = ""; while (search[i] && search[i] != "" && search[i] != " ") { startWord = startWord + search[i]; i++; } splitSearch[k] = startWord; k++; while (search[i] && search[i] == " ") { i++; } } return splitSearch; } //Transforms ingredients in a single string to facilitate search function makeIngredientContext(ingredientsObj) { let ingredientNames = ""; let i = 0; while (ingredientsObj[i]) { ingredientNames = ingredientNames + " " + ingredientsObj[i].ingredient; i++; } return ingredientNames; } //Will look for each word in each context iteratively, returns true if each words exists in at least one context, else false function searchWordsInContexts(words, contexts) { let found = false; let i = 0; let j = 0; while (words[i]) { found = false; while (!found && contexts[j]) { found = customStrStr(contexts[j], String(words[i])); j++; } if (found != 1) { return false; } i++; } return found; } //Returns a list of unique ids of recipes that all filters allow function getDisplayedCardsIdsLocal() { const displayedCardsIds = []; const filteredRecipes = []; if (!filteredRecipes || filteredRecipes.length == 0) { let total = recipes.length; for (let i = 0; i < +total; i++) { displayedCardsIds[i] = +i + 1; } return displayedCardsIds; } const leastRecipes = customReduce(filteredRecipes); let i = 0; let keepRecipe = 1; let k = 0; while (leastRecipes[i]) { let j = 0; while (filteredRecipes[j]) { if ((!leastRecipes[i]) in filteredRecipes[j]) { keepRecipe = 0; } j++; } if (keepRecipe == 1) { displayedCardsIds[k] = +leastRecipes[i]; k++; } keepRecipe = 1; i++; } return displayedCardsIds; } //The tag with the least recipe is the most discriminant one, uses it to check if other tags allow it. function customReduce(recipes) { if (!recipes) { return []; } let i = 0; let length = recipes[0].length; let smallestIndex = 0; let smallestRecipe = []; while (recipes[i]) { if (recipes[i].length < length) { smallestIndex = i; length = recipes[i].length; } i++; } i = 0; while (recipes[smallestIndex][i]) { smallestRecipe[i] = recipes[smallestIndex][i]; i++; } return smallestRecipe; } //creates normalized contexts to make search easier, one of them allows for user input with accents, another without function normalizeRecipe(recipe) { let normalizedRecipe = []; normalizedRecipe[0] = recipe.name; normalizedRecipe[1] = recipe.description; normalizedRecipe[2] = makeIngredientContext(recipe.ingredients); normalizedRecipe[3] = normalizeAndLowerCase(recipe.name); normalizedRecipe[4] = normalizeAndLowerCase(recipe.description); normalizedRecipe[5] = normalizeAndLowerCase( makeIngredientContext(recipe.ingredients), ); return normalizedRecipe; } //Char by char search for needle (word) inside stack (usually a larger string) function customStrStr(stack, needle) { if (needle === "") { return false; } let iStack = 0; let iNeedle = 0; const needleLen = needle.length; while (stack[iStack]) { while (stack[iStack] == needle[iNeedle]) { if (iNeedle == needleLen - 1) { return true; } iStack++; iNeedle++; } iStack -= iNeedle; iNeedle = 0; iStack++; } return false; }
2
async function evalMainInput() { const search = mainInput.toLowerCase(); const splitSearch = customSplit(search); const idList = []; if (mainInput == "" || mainInput.length < 3) { // await refreshCards(); // await refreshFilters(); // updateTotalRecipes(); return; } recipes.forEach((recipe) => { if (displayedCardsIds.includes(recipe.id)) { const normalizedRecipe = normalizeRecipe(recipe); let found = searchWordsInContexts(splitSearch, normalizedRecipe); if (found) { idList.push(+recipe.id); } } }); function checkNoFilter() { const activeFilters = document.querySelector( ".sectionRecipes__applied-tag", ); if (!activeFilters) { cards.forEach((card) => card.classList.remove("hide")); } updateTotalRecipes(); } refreshCards(idList); updateTotalRecipes(); refreshFilters(idList); } //Transforms ingredients in a single string to facilitate search function makeIngredientContext(ingredientsObj) { const ingredientArray = ingredientsObj.map( (ingredient) => ingredient.ingredient, ); const ingredientNames = ingredientArray.join(" "); return ingredientNames; } //Will look for each word in each context iteratively, returns true if each words exists in at least one context, else false function searchWordsInContexts(words, contexts) { return words.every((word) => { return Object.values(contexts).some((contextValue) => { return contextValue.includes(word); }); }); } //creates normalized contexts to make search easier, one of them allows for user input with accents, another without function normalizeRecipe(recipe) { const normalizedRecipe = { name: recipe.name, description: recipe.description, ingredients: makeIngredientContext(recipe.ingredients), normedName: normalizeAndLowerCase(recipe.name), normedDescription: normalizeAndLowerCase(recipe.description), normedIngredients: normalizeAndLowerCase( makeIngredientContext(recipe.ingredients), ), }; return normalizedRecipe; }