{"id":6380,"date":"2026-06-04T12:27:51","date_gmt":"2026-06-04T12:27:51","guid":{"rendered":"https:\/\/inasrecipes.com\/?p=6380"},"modified":"2026-06-04T12:27:53","modified_gmt":"2026-06-04T12:27:53","slug":"hawaiian-carrot-pineapple-cake-recipe","status":"publish","type":"post","link":"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/","title":{"rendered":"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When you want to elevate a traditional spiced dessert into something truly spectacular, adding a tropical twist is the ultimate baker&#8217;s secret. This <strong>Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe<\/strong> takes the cozy warmth of a traditional carrot cake and infuses it with the sunny, vibrant essence of the islands. The result is an incredibly plush, melt-in-your-mouth dessert loaded with shredded carrots, sweet crushed pineapple, and toasted coconut flakes, all blanketed under a thick layer of silky cream cheese frosting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At <strong><a href=\"http:\/\/inasrecipes.com\" data-type=\"link\" data-id=\"inasrecipes.com\">inasrecipes.com<\/a><\/strong>, we specialize in making bakery-quality desserts approachable for home kitchens. Baking with high-moisture fruits like pineapple can feel like a balancing act, but by understanding a few foundational pastry principles, you can easily avoid a soggy bake. This foolproof family heirloom recipe guarantees a tall, structurally sound cake with a velvety crumb that stays perfectly fresh and tender for days.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/inasrecipes.com\/best-recipe-for-easy-pineapple-cake\/\">Best Recipe For Pineapple Cake<\/a><\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#ingredients\">Ingredients<\/a><\/li><li><a href=\"#instructions\">Instructions<\/a><\/li><li><a href=\"#what-is-the-purpose-of-pineapple-in-carrot-cake\">What is the purpose of pineapple in carrot cake?<\/a><\/li><li><a href=\"#what-are-some-common-carrot-cake-mistakes\">What are some common carrot cake mistakes?<\/a><\/li><li><a href=\"#do-pineapple-cakes-need-to-be-refrigerated\">Do pineapple cakes need to be refrigerated?<\/a><\/li><li><a href=\"#when-making-carrot-cake-do-you-drain-the-crushed-pineapple\">When making carrot cake, do you drain the crushed pineapple?<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">The Moisture Matrix: Why Pineapple Transforms Carrot Cake<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Integrating crushed pineapple into a dense carrot cake batter involves a beautiful bit of food science that completely alters the texture of the finished crumb:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Enzyme Softening Effect:<\/strong> Raw pineapples contain an active enzyme called bromelain, which breaks down rigid protein structures. When baked, canned or cooked pineapple helps relax the gluten networks in your all-purpose flour, working in tandem with the shredded carrots to guarantee a velvety, tender bite.<\/li>\n\n\n\n<li><strong>The Osmotic Moisture Lock:<\/strong> Pineapples and carrots are packed with natural sugars that act as hygroscopic agents. This means they actively attract and bind to water molecules within the batter, locking in ambient moisture during the baking process so your cake never dries out, even days after slicing.<\/li>\n\n\n\n<li><strong>The Mandatory Drainage Rule:<\/strong> While the fruit juice adds incredible flavor, dumping an undrained can of crushed pineapple into your bowl will completely drown the flour starches, leading to a heavy, sunken, or gummy layer. Always press the fruit through a fine-mesh sieve first to maintain a flawless moisture balance.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"683\" data-pin-url=\"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/?tp_image_id=6381\" data-pin-title=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" data-pin-description=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" src=\"https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575546858-1024x683.webp\" alt=\"\" class=\"wp-image-6381\" title=\"\" srcset=\"https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575546858-1024x683.webp 1024w, https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575546858-300x200.webp 300w, https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575546858-768x512.webp 768w, https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575546858.webp 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Recipe: Sun-Drenched Hawaiian Carrot Pineapple Cake<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ingredients\"><strong>Ingredients<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The Tropical Spiced Batter:<\/strong> 2 cups all-purpose flour, 2 tsp baking powder, 1 tsp baking soda, 1 tsp ground cinnamon, \u00bd tsp ground ginger, \u00bd tsp salt, 1 cup granulated sugar, 1 cup packed light brown sugar, 1 cup vegetable oil, 4 large eggs (room temperature), 1 tsp pure vanilla extract, 2 cups grated fresh carrots, 1 can (<strong>20 oz<\/strong>) crushed pineapple (thoroughly drained, juice reserved for other uses), and \u00bd cup sweetened shredded coconut.<\/li>\n\n\n\n<li><strong>The Velvet Cream Shield:<\/strong> 8 oz (<strong>225 g<\/strong>) brick cream cheese (completely softened), \u00bd cup unsalted butter (softened), 4 cups powdered sugar, 1 tsp vanilla extract, and \u00bd cup toasted chopped pecans (for garnish).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"instructions\"><strong>Instructions<\/strong><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 1\ufe0f\u20e3 &#8211; Whisk the Base and Fold the Produce<\/strong><\/h4>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Oven Prep:<\/strong> Preheat your oven to <strong>175\u00b0C (350\u00b0F)<\/strong>. Generously grease and flour a 9&#215;13-inch metal baking pan or two 9-inch round cake pans.<\/li>\n\n\n\n<li><strong>Emulsify the Wet Matrix:<\/strong> In a large bowl, vigorously whisk together the vegetable oil, granulated sugar, brown sugar, eggs, and vanilla extract for <strong>2 minutes<\/strong> until the mixture turns pale, thick, and fully emulsified.<\/li>\n\n\n\n<li><strong>Combine and Fold:<\/strong> In a separate bowl, sift the flour, baking powder, baking soda, cinnamon, ginger, and salt. Stir the dry ingredients into the wet mixture <em>just<\/em> until combined. Using a rubber spatula, gently fold in the shredded carrots, thoroughly drained crushed pineapple, and shredded coconut until evenly distributed.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Step 2\ufe0f\u20e3 &#8211; Bake and Frost<\/strong><\/h4>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Bake to a Bounce:<\/strong> Pour the batter into your prepared pan. Bake for <strong>35 to 40 minutes<\/strong> (28 to 32 minutes if using round pans) until the top is a deep golden-brown and a toothpick inserted into the center pulls out clean. Place the pan on a wire rack to cool down completely to room temperature.<\/li>\n\n\n\n<li><strong>Whip the Frosting:<\/strong> In a medium bowl, beat the softened cream cheese and butter together for 2 minutes until smooth and lump-free. Gradually add the powdered sugar and vanilla extract, whipping until it transforms into a thick, spreadable cloud.<\/li>\n\n\n\n<li><strong>Finish and Garnish:<\/strong> Spread the cream cheese frosting generously over the completely cooled cake. Shower the surface with your toasted chopped pecans, slice into thick squares, and enjoy a taste of the tropics!<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"683\" data-pin-url=\"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/?tp_image_id=6382\" data-pin-title=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" data-pin-description=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" src=\"https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575582701-1024x683.webp\" alt=\"\" class=\"wp-image-6382\" title=\"\" srcset=\"https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575582701-1024x683.webp 1024w, https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575582701-300x200.webp 300w, https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575582701-768x512.webp 768w, https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575582701.webp 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions (FAQ)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-the-purpose-of-pineapple-in-carrot-cake\"><strong>What is the purpose of pineapple in carrot cake?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The primary purpose of incorporating pineapple into a carrot cake is to <strong>introduce natural acidity and long-lasting moisture, which creates an exceptionally tender, melting crumb texture<\/strong>. The natural fruit acids react with the baking soda to give the dense batter a clean, uniform lift, while the tropical sweetness rounds out the earthy notes of the shredded carrots and cuts through the richness of the oil.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-are-some-common-carrot-cake-mistakes\"><strong>What are some common carrot cake mistakes?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The most frequent errors when baking a carrot cake include <strong>using pre-shredded bagged grocery carrots<\/strong> (which are dry, stiff, and lack the necessary natural sweetness and moisture of freshly grated carrots) and <strong>over-mixing the batter<\/strong>. Over-agitating the wet flour activates the gluten proteins, which transforms what should be a delicate, tight-crumb cake into a dense, unpleasantly rubbery, or bread-like structure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"do-pineapple-cakes-need-to-be-refrigerated\"><strong>Do pineapple cakes need to be refrigerated?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, any pineapple cake\u2014especially a carrot pineapple cake\u2014that features a <strong>frosting made from real dairy cream cheese or butter must be stored in the refrigerator after cooling<\/strong>. Left at room temperature, the dairy components can spoil. Keep the cake in an airtight container or cover the pan tightly with plastic wrap; it will remain incredibly moist and delicious in the fridge for up to <strong>4 to 5 days<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"when-making-carrot-cake-do-you-drain-the-crushed-pineapple\"><strong>When making carrot cake, do you drain the crushed pineapple?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, you <strong>must absolutely drain the crushed pineapple thoroughly before folding it into your cake batter<\/strong>. If you skip this step and include all the canned syrup, the excessive ambient liquid will overwhelm your flour starches and disrupt your leavening balance. This results in a heavy, soggy bottom layer, or causes the middle of your cake to permanently collapse into a gummy puddle while baking.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Our <strong>Hawaiian Carrot Pineapple Cake Recipe<\/strong> is the definitive proof that minor adjustments to classic formulas can yield a spectacular upgrade. By freshly grating your vegetables, draining your tropical fruit completely, and letting the natural acids tenderize the flour network, you unlock an effortless, single-pan masterpiece that stays incredibly soft for your family gatherings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For more fruit-forward island baking tutorials, time-saving weekday <a href=\"https:\/\/www.allrecipes.com\/recipe\/214024\/southern-pineapple-casserole\/\" target=\"_blank\" rel=\"noopener\">recipes<\/a>, and printable holiday dessert menus, visit us at <strong><a href=\"http:\/\/inasrecipes.com\" data-type=\"link\" data-id=\"inasrecipes.com\">inasrecipes.com<\/a><\/strong>!<\/p>\n\n\n<svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card\" href=\"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/print\/6384\/\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-6384-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><div id=\"tasty-recipes-6384\" data-tr-id=\"6384\" class=\"tasty-recipes tasty-recipes-6384 tasty-recipes-display tasty-recipes-has-image\" style=\"border-color: #EEF1E6 !important;\" data-tasty-recipes-customization=\"primary-color.border-color\">\n\n<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"display: none;\"><defs><symbol id=\"tasty-recipes-icon-clock\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><title>clock<\/title> <desc>clock icon<\/desc><path d=\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\" fill=\"currentColor\" \/><\/symbol><symbol id=\"tasty-recipes-icon-cutlery\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><title>cutlery<\/title> <desc>cutlery icon<\/desc><path d=\"M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z\" fill=\"currentColor\" \/><\/symbol><symbol id=\"tasty-recipes-icon-flag\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><title>flag<\/title> <desc>flag icon<\/desc><path d=\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\" fill=\"currentColor\"\/><\/symbol><symbol id=\"tasty-recipes-icon-folder\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><title>folder<\/title> <desc>folder icon<\/desc><path d=\"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z\" fill=\"currentColor\" \/><\/symbol><symbol id=\"tasty-recipes-icon-instagram\" viewBox=\"0 0 448 512\"><title>instagram<\/title> <desc>instagram icon<\/desc><path fill=\"currentColor\" d=\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"><\/path><\/symbol><symbol id=\"tasty-recipes-icon-pinterest\" viewBox=\"0 0 384 512\"><title>pinterest<\/title> <desc>pinterest icon<\/desc><path fill=\"currentColor\" d=\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\" \/><\/symbol><symbol id=\"tasty-recipes-icon-facebook\" viewBox=\"0 0 448 512\"><title>facebook<\/title> <desc>facebook icon<\/desc><path fill=\"currentColor\" d=\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\" \/><\/symbol><symbol id=\"tasty-recipes-icon-print\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><title>print<\/title> <desc>print icon<\/desc><path d=\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\" fill=\"currentColor\" \/><\/symbol><symbol id=\"tasty-recipes-icon-squares\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><title>squares<\/title> <desc>squares icon<\/desc><path d=\"M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6zm6-6h4v3h-4zM6 7h5v5H6zm6 4h4v6h-4z\" fill=\"currentColor\" \/><\/symbol><symbol id=\"tasty-recipes-icon-heart-regular\" viewBox=\"0 0 512 512\"><title>heart<\/title> <desc>heart icon<\/desc><path fill=\"currentColor\" d=\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"><\/path><\/symbol><symbol id=\"tasty-recipes-icon-heart-solid\" viewBox=\"0 0 512 512\"><title>heart solid<\/title> <desc>heart solid icon<\/desc><path fill=\"currentColor\" d=\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"><\/path><\/symbol><\/defs><\/svg>\n<header class=\"tasty-recipes-entry-header\" style=\"background: #EEF1E6 !important;\" data-tasty-recipes-customization=\"primary-color.background\">\n\t\t\t<div class=\"tasty-recipes-image\">\n\t\t\t<img decoding=\"async\" style=\"border-color: #EEF1E6 !important;\" data-tasty-recipes-customization=\"primary-color.border-color\" width=\"150\" height=\"150\" src=\"https:\/\/inasrecipes.com\/wp-content\/uploads\/2026\/06\/image_1200x800_1780575688832-150x150.webp\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" data-pin-nopin=\"true\" data-pin-description=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" data-pin-title=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" data-pin-url=\"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/?tp_image_id=6383\" title=\"\">\t\t<\/div>\n\t\t<h2 class=\"tasty-recipes-title\" style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"h2-color.color h2-transform.text-transform\">Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe<\/h2>\n\t<hr style=\"border-color: #F4F1E8 !important; background-color: #F4F1E8 !important;\" data-tasty-recipes-customization=\"secondary-color.border-color secondary-color.background-color\">\n\t\t\t<div class=\"tasty-recipes-rating\">\n\t\t\t\t\t\t\t<p><svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<span class=\"tasty-recipes-ratings-buttons tasty-recipes-no-ratings-buttons\"\tdata-tr-default-rating=\"0\"\t>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"5\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t5 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"4\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t4 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"3\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t3 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"2\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t2 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"1\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\" width=\"18\" height=\"17\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t1 Star\t\t\t<\/span>\t\t<\/i>\t<\/span><\/span><\/p>\n\t\t\t\t\t\t\t\t\t\t<p><span style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\" class=\"rating-label\">No reviews<\/span><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"tasty-recipes-details\">\n\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"author\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAuthor:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-author-name\">Inas Recipes<\/span>\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"total-time\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-clock\" style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"icon-color.color\"><\/use><\/svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTotal Time:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-total-time\">1 hour<\/span>\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"yield\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-cutlery\" style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"icon-color.color\"><\/use><\/svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tYield:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-yield\"><span data-amount=\"16\">16<\/span> servings <span class=\"tasty-recipes-yield-scale\"><span data-amount=\"1\">1<\/span>x<\/span><\/span>\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"diet\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-heart-regular\" style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"icon-color.color\"><\/use><\/svg>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDiet:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-diet\">Vegetarian<\/span>\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t<\/div>\n\t<\/header>\n\n<div class=\"tasty-recipes-entry-content\">\n\n\t\t<div class=\"tasty-recipes-buttons\">\n\t\t\t\t<div class=\"tasty-recipes-button-wrap\">\n\t\t\t\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print\" href=\"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/print\/6384\/\" target=\"_blank\" data-tasty-recipes-customization=\"\">\n\t\t\t<svg viewBox=\"0 0 24 24\" class=\"svg-print\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-print\"><\/use><\/svg>\n\t\tPrint Recipe<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<div class=\"tasty-recipes-button-wrap\">\n\t\t\t\n<a class=\"share-pin button\" data-pin-custom=\"true\" data-href=\"https:\/\/www.pinterest.com\/pin\/create\/bookmarklet\/?url=https%3A%2F%2Finasrecipes.com%2Ffr%2Fhawaiian-carrot-pineapple-cake-recipe%2F\" href=\"https:\/\/www.pinterest.com\/pin\/create\/bookmarklet\/?url=https%3A%2F%2Finasrecipes.com%2Ffr%2Fhawaiian-carrot-pineapple-cake-recipe%2F\" data-tasty-recipes-customization=\"\">\n\t\t\t<svg viewBox=\"0 0 24 24\" class=\"svg-print\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-pinterest\"><\/use><\/svg>\n\t\tPin Recipe<\/a>\n<script>\n\tconst share_pin_buttons = document.getElementsByClassName( 'share-pin button' );\n\tif ( share_pin_buttons ) {\n\t\tfor ( let share_key = 0; share_key < share_pin_buttons.length; share_key++ ) {\n\t\t\tshare_pin_buttons[share_key].addEventListener( 'click', (e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\twindow.open(e.target.dataset.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=500,height=500');\n\t\t\t\treturn false;\n\t\t\t} );\n\t\t}\n\t}\n<\/script>\n\t\t<\/div>\n\t\t\t<\/div>\n\t\n\t\t\t<div class=\"tasty-recipes-description\">\n\t\t\t<h3 style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Description<\/h3>\n\t\t\t<div class=\"tasty-recipes-description-body\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t\t<p>A moist tropical carrot cake loaded with sweet pineapple, shredded coconut, warm spices, and finished with a rich cream cheese frosting topped with toasted pecans.<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\n\t\t\t<hr style=\"border-color: #F4F1E8 !important; background-color: #F4F1E8 !important;\" data-tasty-recipes-customization=\"secondary-color.border-color secondary-color.background-color\">\n\t\n\t\t\t<div class=\"tasty-recipes-ingredients\">\n\t\t\t<div class=\"tasty-recipes-ingredients-header\">\n\t\t\t\t<div class=\"tasty-recipes-ingredients-clipboard-container\">\n\t\t\t\t\t<h3 style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Ingredients<\/h3>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"tasty-recipes-units-scale-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tasty-recipes-scale-container\">\n\t\t\t\t\t\t\t<span class=\"tasty-recipes-scale-label\">Scale<\/span>\n\t\t\t\t\t\t\t<button class=\"tasty-recipes-scale-button tasty-recipes-scale-button-active\" data-amount=\"1\" type=\"button\">1x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"2\" type=\"button\">2x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"3\" type=\"button\">3x<\/button>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<div style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t\t<ul>\n<li><span data-amount=\"2\" data-unit=\"cup\">2 cups<\/span> all-purpose flour<\/li>\n<li><span data-amount=\"2\" data-unit=\"tsp\">2 tsp<\/span> baking powder<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> baking soda<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> ground cinnamon<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"tsp\">\u00bd tsp<\/span> ground ginger<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"tsp\">\u00bd tsp<\/span> salt<\/li>\n<li><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> granulated sugar<\/li>\n<li><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> packed light brown sugar<\/li>\n<li><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> vegetable oil<\/li>\n<li><span data-amount=\"4\">4<\/span> large eggs, room temperature<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> pure vanilla extract<\/li>\n<li><span data-amount=\"2\" data-unit=\"cup\">2 cups<\/span> grated fresh carrots<\/li>\n<li><span data-amount=\"1\">1<\/span> can (20 oz) crushed pineapple, thoroughly drained<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"cup\">\u00bd cup<\/span> sweetened shredded coconut<\/li>\n<li><span data-amount=\"8\" data-unit=\"oz\">8 oz<\/span> (<span data-amount=\"225\" data-unit=\"g\">225 g<\/span>) cream cheese, softened<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"cup\">\u00bd cup<\/span> unsalted butter, softened<\/li>\n<li><span data-amount=\"4\" data-unit=\"cup\">4 cups<\/span> powdered sugar<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> vanilla extract<\/li>\n<li><span data-amount=\"0.5\" data-unit=\"cup\">\u00bd cup<\/span> toasted chopped pecans<\/li>\n<\/ul>\n<!--INSIDE_INGREDIENTS-->\t\t\t<\/div>\n\t\t\t<div class=\"tasty-recipes-cook-mode\">\n\t<div class=\"tasty-recipes-cook-mode__container\">\n\t\t<label class=\"tasty-recipes-cook-mode__switch\">\n\t\t\t<input type=\"checkbox\" id=\"tasty_recipes_6ae6917bf177c_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__switch-slider tasty-recipes-cook-mode__switch-round\"\n\t\t\t\tdata-tasty-recipes-customization=\"button-color.background button-text-color.color\"><\/span>\n\t\t<\/label>\n\t\t<label for=\"tasty_recipes_6ae6917bf177c_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__label\">Cook Mode<\/span>\n\t\t\t<span class=\"tasty-recipes-cook-mode__helper\">\n\t\t\t\tPrevent your screen from going dark\t\t\t<\/span>\n\t\t<\/label>\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t\n\t\t\t<hr style=\"border-color: #F4F1E8 !important; background-color: #F4F1E8 !important;\" data-tasty-recipes-customization=\"secondary-color.border-color secondary-color.background-color\">\n\t\n\t\t<div class=\"tasty-recipes-instructions\">\n\t\t<div class=\"tasty-recipes-instructions-header\">\n\t\t\t<h3 style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Instructions<\/h3>\n\t\t\t\t\t<\/div>\n\t\t<div style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<ol>\n<li id=\"instruction-step-1\">Preheat oven to 175\u00b0C (350\u00b0F) and grease and flour a 9&#215;13-inch baking pan or two 9-inch round cake pans.<\/li>\n<li id=\"instruction-step-2\">In a large bowl, whisk together vegetable oil, granulated sugar, brown sugar, eggs, and vanilla extract until smooth and fully combined.<\/li>\n<li id=\"instruction-step-3\">In a separate bowl, sift together flour, baking powder, baking soda, cinnamon, ginger, and salt.<\/li>\n<li id=\"instruction-step-4\">Add the dry ingredients to the wet ingredients and mix just until combined.<\/li>\n<li id=\"instruction-step-5\">Fold in the grated carrots, drained crushed pineapple, and shredded coconut.<\/li>\n<li id=\"instruction-step-6\">Pour the batter into the prepared pan and spread evenly.<\/li>\n<li id=\"instruction-step-7\">Bake for 35 to 40 minutes, or 28 to 32 minutes for round pans, until a toothpick inserted into the center comes out clean.<\/li>\n<li id=\"instruction-step-8\">Cool the cake completely on a wire rack.<\/li>\n<li id=\"instruction-step-9\">Beat the cream cheese and butter together until smooth and creamy.<\/li>\n<li id=\"instruction-step-10\">Gradually add powdered sugar and vanilla extract, beating until light and fluffy.<\/li>\n<li id=\"instruction-step-11\">Spread the frosting evenly over the cooled cake.<\/li>\n<li id=\"instruction-step-12\">Sprinkle with toasted chopped pecans before slicing and serving.<\/li>\n<\/ol>\n\t\t<\/div>\n\t<\/div>\n\t\n\t\n\t\t\n\t\n\t\t\t<div class=\"tasty-recipes-notes\" style=\"background-color: #F4F1E8 !important;\" data-tasty-recipes-customization=\"secondary-color.background-color\">\n\t\t\t<h3 style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Notes<\/h3>\n\t\t\t<div class=\"tasty-recipes-notes-body\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t\t<p>Drain the pineapple thoroughly to prevent excess moisture in the batter. For the best texture, allow the cake to cool completely before frosting.<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\n\t\t\t<div class=\"tasty-recipes-other-details\" style=\"background-color: #F4F1E8 !important;\" data-tasty-recipes-customization=\"secondary-color.background-color\">\n\t\t\t<ul>\n\t\t\t\t<li class=\"prep-time\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\"><svg viewbox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-clock\"><\/use><\/svg>Prep Time:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-prep-time\">20 minutes<\/span><\/li><li class=\"cook-time\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\"><svg viewbox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-clock\"><\/use><\/svg>Cook Time:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-cook-time\">40 minutes<\/span><\/li><li class=\"category\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\"><svg viewbox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-folder\"><\/use><\/svg>Category:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-category\">Dessert<\/span><\/li><li class=\"method\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\"><svg viewbox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-squares\"><\/use><\/svg>Method:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-method\">Baked<\/span><\/li><li class=\"cuisine\"><span class=\"tasty-recipes-label\" style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"detail-label-color.color\"><svg viewbox=\"0 0 24 24\" class=\"detail-icon\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-flag\"><\/use><\/svg>Cuisine:<\/span> <span style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-cuisine\">American<\/span><\/li>\t\t\t<\/ul>\n\t\t<\/div>\n\t\n\t\n\t\n\t\t\t\t<div class=\"tasty-recipes-nutrition\">\n\t\t\t<h3 style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Nutrition<\/h3>\n\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Serving Size:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-serving-size\">1 slice<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Calories:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-calories\">520<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Sugar:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-sugar\">48g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Sodium:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-sodium\">280mg<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Fat:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-fat\">28g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Saturated Fat:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-saturated-fat\">9g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Unsaturated Fat:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-unsaturated-fat\">17g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Trans Fat:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-trans-fat\">0g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Carbohydrates:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-carbohydrates\">64g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Fiber:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-fiber\">2g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Protein:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-protein\">5g<\/span><\/li>\n\t\t\t\t\t\t\t\t\t<li><strong class=\"tasty-recipes-label\" style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\">Cholesterol:<\/strong> <span style=\"color: #292A25 !important;\" data-tasty-recipes-customization=\"body-color.color\" class=\"tasty-recipes-cholesterol\">65mg<\/span><\/li>\n\t\t\t\t\t\t\t<\/ul>\n\t\t\t<\/div>\n\t\n\t\n\t<footer class=\"tasty-recipes-entry-footer\" style=\"background: #EEF1E6 !important;\" data-tasty-recipes-customization=\"primary-color.background\">\n\t\t<div class=\"tasty-recipes-footer-content\">\n\t\t\t\t\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" class=\"svg-instagram\" aria-hidden=\"true\" style=\"color: #314C3C !important;\" data-tasty-recipes-customization=\"footer-icon-color.color\"><use xlink:href=\"#tasty-recipes-icon-instagram\"><\/use><\/svg>\n\t\t\t\t\t\t\t\t\t\t<div class=\"tasty-recipes-footer-copy\">\n\t\t\t\t<h3 style=\"color: #283C30 !important;\" data-tasty-recipes-customization=\"footer-heading-color.color h3-transform.text-transform footer-heading.innerText\">Did you make this recipe?<\/h3>\n\t\t\t\t<div style=\"color: #374B3E !important;\" data-tasty-recipes-customization=\"footer-description-color.color footer-description.innerHTML\"><p>Share a photo and tag us \u2014 we can&#8217;t wait to see what you&#8217;ve made!<\/p>\n<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/footer>\n<\/div>\n\n\n\n<script>\nwindow.trCommon={\"minRating\":6,\"ajaxurl\":\"https:\\\/\\\/inasrecipes.com\\\/wp-admin\\\/admin-ajax.php\",\"ratingNonce\":\"\",\"postId\":6380};\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.smoothScroll = {\ninit() {\ndocument.addEventListener( 'click', ( e ) => {\nlet anchor = e.target;\nif ( anchor.tagName !== 'A' ) {\nanchor = anchor.closest( 'a.tasty-recipes-scrollto' );\n}\n\nif ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {\nreturn;\n}\n\nconst elementHref = anchor.getAttribute( 'href' );\nif ( ! elementHref ) {\nreturn;\n}\n\ne.preventDefault();\nthis.goToSelector( elementHref );\n});\n},\ngoToSelector( selector ) {\nconst element = document.querySelector( selector );\nif ( ! element ) {\nreturn;\n}\nelement.scrollIntoView( { behavior: 'smooth' } );\n}\n};\n\ndocument.addEventListener(\n'DOMContentLoaded',\n() => window.TastyRecipes.smoothScroll.init()\n);\n\n(function(){\n\n\nvar bothEquals = function( d1, d2, D ) {\nvar ret = 0;\nif (d1<=D) {\nret++;\n}\nif (d2<=D) {\nret++;\n}\nreturn ret === 2;\n};\n\nvar frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)\/(d1+d2);if(x===m){if(d1+d2<=D){d1+=d2;n1+=n2;d2=D+1}else if(d1>d2){d2=D+1;}else {d1=D+1;}break}else if(x<m){n2=n1+n2;d2=d1+d2}else{n1=n1+n2;d1=d1+d2}}}if(d1>D){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1\/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-A<5e-8){break;}B=1\/(B-A);P_2=P_1;P_1=P;Q_2=Q_1;Q_1=Q}if(Q>D){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P\/Q);return[q,sgn*P-q*Q,Q]};\n\n\nwindow.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(\"%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D\"));\n\nwindow.tastyRecipesFormatAmount = function(amount, el) {\nif ( parseFloat( amount ) === parseInt( amount ) ) {\nreturn amount;\n}\nvar roundType = 'frac';\nif (typeof el.dataset.amountShouldRound !== 'undefined') {\nif ('false' !== el.dataset.amountShouldRound) {\nif ( 'number' === el.dataset.amountShouldRound ) {\nroundType = 'number';\n} else if ('frac' === el.dataset.amountShouldRound) {\nroundType = 'frac';\n} else if ('vulgar' === el.dataset.amountShouldRound) {\nroundType = 'vulgar';\n} else {\nroundType = 'integer';\n}\n}\n}\nif ('number' === roundType) {\namount = Number.parseFloat(amount).toPrecision(2);\n} else if ('integer' === roundType) {\namount = Math.round(amount);\n} else if ('frac' === roundType || 'vulgar' === roundType) {\nvar denom = 8;\nif (typeof el.dataset.unit !== 'undefined') {\nvar unit = el.dataset.unit;\nif (['cups','cup','c'].includes(unit)) {\ndenom = 4;\nif (0.125 === amount) {\ndenom = 8;\n}\nif (\"0.1667\" === Number.parseFloat( amount ).toPrecision(4)) {\ndenom = 6;\n}\n}\nif (['tablespoons','tablespoon','tbsp'].includes(unit)) {\ndenom = 2;\n}\nif (['teaspoons','teaspoon','tsp'].includes(unit)) {\ndenom = 8;\n}\n}\nvar amountArray = frac.cont( amount, denom, true );\nvar newAmount = '';\nif ( amountArray[1] !== 0 ) {\nnewAmount = amountArray[1] + '\/' + amountArray[2];\nif ('vulgar' === roundType) {\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {\nnewAmount = vulgar;\n}\n});\n}\n}\nif ( newAmount ) {\nnewAmount = ' ' + newAmount;\n}\nif ( amountArray[0] ) {\nnewAmount = amountArray[0] + newAmount;\n}\namount = newAmount;\n}\nreturn amount;\n};\n\n\nwindow.tastyRecipesUpdatePrintLink = () => {\n\nconst printButton = document.querySelector( '.tasty-recipes-print-button' );\n\n\nif ( ! printButton ) {\nreturn;\n}\n\nconst printURL = new URL( printButton.href );\nconst searchParams = new URLSearchParams( printURL.search );\n\nconst unitButton = document.querySelector( '.tasty-recipes-convert-button-active' );\nconst scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );\n\nlet unit = '';\nlet scale = '';\n\nif ( unitButton ) {\nunit = unitButton.dataset.unitType;\nsearchParams.delete('unit');\nsearchParams.set( 'unit', unit );\n}\n\nif ( scaleButton ) {\nscale = scaleButton.dataset.amount;\nsearchParams.set( 'scale', scale );\n}\n\nconst paramString = searchParams.toString();\nconst newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString;\nconst printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );\n\nprintLinks.forEach( ( el ) => {\nel.href = newURL;\n});\n\nconst printButtons = document.querySelectorAll( '.tasty-recipes-print-button' );\nprintButtons.forEach( ( el ) => {\nel.href = newURL;\n});\n};\n\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\n\nif ( ! window.location.href.includes( '\/print\/' ) ) {\nreturn;\n}\n\nconst searchParams = new URLSearchParams( window.location.search );\n\nconst unit = searchParams.get( 'unit' );\nconst scale = searchParams.get( 'scale' );\n\nif ( unit && ( 'metric' === unit || 'usc' === unit ) ) {\ndocument.querySelector( '.tasty-recipes-convert-button[data-unit-type=\"' + unit + '\"]' ).click();\n}\n\nif ( scale && Number(scale) > 0 ) {\ndocument.querySelector( '.tasty-recipes-scale-button[data-amount=\"' + Number(scale) + '\"]' ).click();\n}\n});\n}());\n\n(function(){\nvar buttonClass = 'tasty-recipes-scale-button',\nbuttonActiveClass = 'tasty-recipes-scale-button-active',\nbuttons = document.querySelectorAll('.tasty-recipes-scale-button');\nif ( ! buttons ) {\nreturn;\n}\n\nbuttons.forEach(function(button){\nbutton.addEventListener('click', function(event){\nevent.preventDefault();\nvar recipe = event.target.closest('.tasty-recipes');\nif ( ! recipe ) {\nreturn;\n}\nvar otherButtons = recipe.querySelectorAll('.' + buttonClass);\notherButtons.forEach(function(bt){\nbt.classList.remove(buttonActiveClass);\n});\nbutton.classList.add(buttonActiveClass);\n\n\nvar scalables = recipe.querySelectorAll('span[data-amount]');\nvar buttonAmount = parseFloat( button.dataset.amount );\nscalables.forEach(function(scalable){\nif (typeof scalable.dataset.amountOriginalType === 'undefined'\n&& typeof scalable.dataset.nfOriginal === 'undefined') {\nif (-1 !== scalable.innerText.indexOf('\/')) {\nscalable.dataset.amountOriginalType = 'frac';\n}\nif (-1 !== scalable.innerText.indexOf('.')) {\nscalable.dataset.amountOriginalType = 'number';\n}\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (-1 !== scalable.innerText.indexOf(vulgar)) {\nscalable.dataset.amountOriginalType = 'vulgar';\n}\n});\nif (typeof scalable.dataset.amountOriginalType !== 'undefined') {\nscalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;\n}\n}\nvar amount = parseFloat( scalable.dataset.amount ) * buttonAmount;\namount = window.tastyRecipesFormatAmount(amount, scalable);\nif ( typeof scalable.dataset.unit !== 'undefined' ) {\nif ( ! scalable.classList.contains('nutrifox-quantity') ) {\nif ( ! scalable.classList.contains('nutrifox-second-quantity') ) {\namount += ' ' + scalable.dataset.unit;\n}\n}\n}\nscalable.innerText = amount;\n});\n\nvar nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]');\nnonNumerics.forEach(function(nonNumeric){\nvar indicator = nonNumeric.querySelector('span[data-non-numeric-label]');\nif ( indicator ) {\nnonNumeric.removeChild(indicator);\n}\nif ( 1 !== buttonAmount ) {\nindicator = document.createElement('span');\nindicator.setAttribute('data-non-numeric-label', true);\nvar text = document.createTextNode(' (x' + buttonAmount + ')');\nindicator.appendChild(text);\nnonNumeric.appendChild(indicator);\n}\n});\n\nwindow.tastyRecipesUpdatePrintLink();\n});\n});\n}());\n\nwindow.TastyRecipes = window.TastyRecipes || {};\nwindow.TastyRecipes.cookMode = {\nwakeLockApi: false,\nwakeLock: false,\ncookModeSelector: '.tasty-recipes-cook-mode',\ninit() {\nif (\"wakeLock\" in navigator && \"request\" in navigator.wakeLock) {\nthis.wakeLockApi = navigator.wakeLock;\n}\n\nconst cookModes = document.querySelectorAll(this.cookModeSelector);\n\nif (cookModes.length > 0) {\nfor (const cookMode of cookModes) {\nif (this.wakeLockApi) {\ncookMode.querySelector('input[type=\"checkbox\"]').addEventListener(\"change\", event => {\nthis.checkboxChange(event.target);\n}, false);\n} else {\ncookMode.style.display = \"none\";\n}\n}\n}\n},\ncheckboxChange(checkbox) {\nif (checkbox.checked) {\nthis.lock();\n} else {\nthis.unlock();\n}\n},\nsetCheckboxesState(state) {\nconst checkboxes = document.querySelectorAll(this.cookModeSelector + ' input[type=\"checkbox\"]');\nfor (const checkbox of checkboxes) {\ncheckbox.checked = state;\n}\n},\nasync lock() {\ntry {\nthis.wakeLock = await this.wakeLockApi.request(\"screen\");\nthis.wakeLock.addEventListener(\"release\", () => {\nthis.wakeLock = false;\nthis.setCheckboxesState(false);\n});\nthis.setCheckboxesState(true);\n} catch (error) {\nthis.setCheckboxesState(false);\n}\n},\nunlock() {\nif (this.wakeLock) {\nthis.wakeLock.release();\nthis.wakeLock = false;\n}\nthis.setCheckboxesState(false);\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\ndocument.addEventListener(\"DOMContentLoaded\", callback);\n}\n})(() => {\nwindow.TastyRecipes.cookMode.init();\n});\n\n\n\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.staticTooltip = {\nelement: null,\ntooltipElement: null,\ndeleting: false,\ninit( element ) {\nif ( this.deleting ) {\nreturn;\n}\nthis.element = element;\nthis.buildElements();\n},\ndestroy() {\nif ( ! this.tooltipElement || this.deleting ) {\nreturn;\n}\n\nthis.deleting = true;\nthis.tooltipElement.classList.remove( 'opened' );\n\nsetTimeout( () => {\nthis.tooltipElement.remove();\nthis.deleting = false;\n}, 500 );\n},\nbuildElements() {\nconst tooltipElement = document.createElement( 'div' );\ntooltipElement.classList.add( 'tasty-recipes-static-tooltip');\ntooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );\n\nconst currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\nif ( currentTooltipElement ) {\ndocument.body.replaceChild( tooltipElement, currentTooltipElement );\n} else {\ndocument.body.appendChild( tooltipElement );\n}\n\nthis.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\n},\nshow() {\nif ( ! this.tooltipElement ) {\nreturn;\n}\n\nconst tooltipTop = this.element.getBoundingClientRect().top\n+ window.scrollY\n- 10 \/\/ 10px offset.\n- this.tooltipElement.getBoundingClientRect().height;\nconst tooltipLeft = this.element.getBoundingClientRect().left\n- ( this.tooltipElement.getBoundingClientRect().width \/ 2 )\n+ ( this.element.getBoundingClientRect().width \/ 2 ) - 1;\nconst posLeft = Math.max( 10, tooltipLeft );\nthis.maybeRemoveTail( posLeft !== tooltipLeft );\n\nthis.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' );\nthis.tooltipElement.classList.add( 'opened' );\n\n},\nmaybeRemoveTail( removeTail ) {\nif ( removeTail ) {\nthis.tooltipElement.classList.add( 'tr-hide-tail' );\n} else {\nthis.tooltipElement.classList.remove( 'tr-hide-tail' );\n}\n},\nchangeMessage( message ) {\nif ( ! this.tooltipElement ) {\nreturn;\n}\nthis.tooltipElement.innerHTML = message;\n}\n};\n\nwindow.TastyRecipes.ajax = {\nsendPostRequest( url, data, success, failure ) {\nconst xhr = new XMLHttpRequest();\nxhr.open( 'POST', url, true );\nxhr.send( this.preparePostData( data ) );\n\nxhr.onreadystatechange = () => {\nif ( 4 !== xhr.readyState ) {\nreturn;\n}\nif ( xhr.status === 200 ) {\nsuccess( JSON.parse( xhr.responseText ) );\nreturn;\n}\n\nfailure( xhr );\n};\n\nxhr.onerror = () => {\nfailure( xhr );\n};\n},\npreparePostData( data ) {\nconst formData = new FormData();\n\nfor ( const key in data ) {\nformData.append( key, data[key] );\n}\nreturn formData;\n},\n};\n\nwindow.TastyRecipes.ratings = {\ndefaultRating: 0,\ncurrentRatingPercentage: 100,\nsavingRating: false,\ninit( minRating ) {\nthis.minRating = minRating;\n\nthis.formWatchRating();\nthis.closeTooltipWhenClickOutside();\nthis.addBodyClassBasedOnSelectedRating();\nthis.backwardCompFormRatingPosition();\n},\nformWatchRating() {\nconst ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');\nif ( ratings.length <= 0 ) {\nreturn;\n}\nfor ( const rating of ratings ) {\nrating.addEventListener( 'click', event => {\nevent.preventDefault();\nthis.defaultRating = event.target.closest( '.checked' ).dataset.rating;\nthis.setCheckedStar( event.target );\nthis.maybeSendRating( this.defaultRating, event.target );\nthis.setRatingInForm( this.defaultRating );\n} );\n}\n},\ncloseTooltipWhenClickOutside() {\nwindow.addEventListener( 'click', e => {\n\/\/ Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.\nif ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {\nreturn;\n}\n\nwindow.TastyRecipes.staticTooltip.destroy();\n} );\n},\n setRatingInForm( rating ) {\nconst ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value=\"' + rating + '\"]' );\nif ( ! ratingInput ) {\nreturn;\n}\nratingInput.click();\n},\naddBodyClassBasedOnSelectedRating() {\nconst ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );\nif ( ! ratingInputs ) {\nreturn;\n}\nfor ( const ratingInput of ratingInputs ) {\nratingInput.addEventListener( 'click', currentEvent => {\nconst selectedRating = currentEvent.target.getAttribute( 'value' );\nthis.handleBodyClassByRating( selectedRating );\nthis.toggleCommentTextareaRequired( selectedRating );\n} );\n}\n},\nhandleBodyClassByRating( rating ) {\nif ( rating < this.minRating ) {\ndocument.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );\nreturn;\n}\ndocument.body.classList.add( 'tasty-recipes-selected-minimum-rating' );\n},\ntoggleCommentTextareaRequired( rating ) {\nconst commentTextarea = document.getElementById( 'comment' );\nif ( ! commentTextarea ) {\nreturn;\n}\n\nif ( rating < this.minRating ) {\ncommentTextarea.setAttribute( 'required', '' );\nreturn;\n}\n\ncommentTextarea.removeAttribute( 'required' );\n},\nmaybeSendRating( rating, element ) {\nif ( this.savingRating === rating ) {\nreturn;\n}\n\nthis.savingRating = rating;\nwindow.TastyRecipes.staticTooltip.init( element );\n\nconst recipeCardElement = element.closest( '.tasty-recipes' );\nif ( ! recipeCardElement ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nreturn;\n}\n\nwindow.TastyRecipes.ajax.sendPostRequest(\nwindow.trCommon.ajaxurl,\n{\naction: 'tasty_recipes_save_rating',\nrating,\nnonce: window.trCommon.ratingNonce,\npost_id: window.trCommon.postId,\nrecipe_id: recipeCardElement.dataset.trId,\n},\n( response ) => {\nwindow.TastyRecipes.staticTooltip.changeMessage( response.data.message );\nwindow.TastyRecipes.staticTooltip.show();\nthis.updateAverageText( response.data, recipeCardElement );\nthis.maybeFillCommentForm( response.data );\n\n\/\/ Hide the tooltip after 5 seconds.\nsetTimeout( () => {\nthis.maybeResetTooltip( recipeCardElement, response.data, rating );\n}, 5000 );\n},\n() => {\nthis.resetTooltip( recipeCardElement );\n}\n);\n},\nupdateAverageText( data, recipeCardElement ) {\nif ( ! data.average ) {\nreturn;\n}\nthis.setRatingPercent( data );\n\nif ( ! data.count ) {\nreturn;\n}\n\nconst quickLink = document.querySelector( '.tasty-recipes-rating-link' );\nif ( quickLink ) {\nthis.setTextInContainer( quickLink, data );\nthis.setPartialStar( quickLink );\n}\n\nconst cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\ncardStars.dataset.trDefaultRating = data.average;\nthis.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );\n},\nsetTextInContainer( container, data ) {\nif ( ! container ) {\nreturn;\n}\n\nif ( data.label ) {\nconst ratingLabelElement = container.querySelector( '.rating-label' );\nif ( ratingLabelElement ) {\nratingLabelElement.innerHTML = data.label;\n}\nreturn;\n}\n\nconst averageElement = container.querySelector( '.average' );\nif ( averageElement ) {\naverageElement.textContent = data.average;\n}\n\nconst countElement = container.querySelector( '.count' );\nif ( countElement ) {\ncountElement.textContent = data.count;\n}\n},\nsetPartialStar( container ) {\nconst highestStar = container.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( highestStar ) {\nhighestStar.dataset.trClip = this.currentRatingPercentage;\n}\n},\nsetRatingPercent( data ) {\nthis.defaultRating = data.average.toFixed( 1 );\nconst parts = data.average.toFixed( 2 ).toString().split( '.' );\nthis.currentRatingPercentage = parts[1] ? parts[1] : 100;\nif ( this.currentRatingPercentage === '00' ) {\nthis.currentRatingPercentage = 100;\n}\n},\nsetCheckedStar( target ) {\nconst cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( selectedRatingElement ) {\ndelete selectedRatingElement.dataset.trChecked;\n}\n\nconst thisStar = target.closest( '.tasty-recipes-rating' );\nthisStar.dataset.trChecked = 1;\nthisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;\n},\nmaybeFillCommentForm( data ) {\nif ( ! data.comment || ! data.comment.content ) {\nreturn;\n}\n\nconst commentForm = document.querySelector( '#commentform' );\nif ( ! commentForm ) {\nreturn;\n}\n\nconst commentBox = commentForm.querySelector( '[name=comment]' );\nif ( ! commentBox || commentBox.value ) {\nreturn;\n}\n\n\/\/ Add comment details for editing.\ncommentBox.innerHTML = data.comment.content;\nif ( data.comment.name ) {\ncommentForm.querySelector( '[name=author]' ).value = data.comment.name;\ncommentForm.querySelector( '[name=email]' ).value = data.comment.email;\n}\n},\nmaybeResetTooltip( recipeCardElement, data, rating ) {\nif ( this.savingRating === rating ) {\nthis.resetTooltip( recipeCardElement, data );\n}\n},\nresetTooltip( recipeCardElement, data ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nthis.savingRating = false;\n\n\/\/ Reset the default rating.\nconst cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\nif ( cardRatingContainer ) {\nthis.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;\ncardRatingContainer.dataset.trDefaultRating = this.defaultRating;\n\nthis.resetSelectedStar( cardRatingContainer, data );\n}\n},\nresetSelectedStar( cardRatingContainer ) {\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( selectedRatingElement ) {\nselectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage;\nselectedRatingElement.parentNode.dataset.trChecked = 1;\n}\n\nconst previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( previousSelectedElement ) {\nconst currentSelectedRating = previousSelectedElement.querySelector('[data-rating]');\nif ( currentSelectedRating !== selectedRatingElement ) {\ndelete previousSelectedElement.dataset.trChecked;\n}\n}\n},\nbackwardCompFormRatingPosition() {\nconst ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );\nif ( ! ratingsButtons ) {\nreturn;\n}\nconst ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);\nif ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {\nratingsButtons.style.direction = 'rtl';\n}\n\nif ( typeof tastyRecipesRating !== 'undefined' ) {\n\/\/ Select the rating that was previously selected in admin.\nratingsButtons.querySelector( '.tasty-recipes-rating[value=\"' + tastyRecipesRating + '\"]' ).checked = true;\n}\n\nconst ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' );\nfor (const ratingSpan of ratingSpans) {\nratingSpan.addEventListener( 'click', event => {\nif ( ratingSpan === event.target ) {\nreturn;\n}\nratingSpan.previousElementSibling.click();\n} );\n}\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\nwindow.addEventListener( 'load', callback );\n}\n})(() => {\nwindow.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );\n});\n<\/script><\/div>\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>When you want to elevate a traditional spiced dessert into something truly spectacular, adding a tropical twist is the ultimate baker&#8217;s secret. &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\" class=\"read-more button\" href=\"https:\/\/inasrecipes.com\/fr\/hawaiian-carrot-pineapple-cake-recipe\/#more-6380\" aria-label=\"En savoir plus sur Hawaiian Carrot Pineapple Cake Recipe: Easy Family Recipe\">Voir la recette<\/a><\/p>","protected":false},"author":2,"featured_media":6383,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"googlesitekit_rrm_CAownpvBDA:productID":"","footnotes":""},"categories":[32],"tags":[],"class_list":["post-6380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desserts","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","no-featured-image-padding"],"_links":{"self":[{"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/posts\/6380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/comments?post=6380"}],"version-history":[{"count":1,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/posts\/6380\/revisions"}],"predecessor-version":[{"id":6385,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/posts\/6380\/revisions\/6385"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/media\/6383"}],"wp:attachment":[{"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/media?parent=6380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/categories?post=6380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inasrecipes.com\/fr\/wp-json\/wp\/v2\/tags?post=6380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}