@jjlmoya/utils-cooking 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +60 -0
- package/src/category/i18n/en.ts +24 -0
- package/src/category/i18n/es.ts +208 -0
- package/src/category/i18n/fr.ts +24 -0
- package/src/category/index.ts +37 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +11 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +32 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +251 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/i18n-titles.test.ts +66 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/american-kitchen-converter/AmericanKitchenEngine.ts +259 -0
- package/src/tool/american-kitchen-converter/bibliography.astro +6 -0
- package/src/tool/american-kitchen-converter/component.astro +838 -0
- package/src/tool/american-kitchen-converter/i18n/en.ts +282 -0
- package/src/tool/american-kitchen-converter/i18n/es.ts +281 -0
- package/src/tool/american-kitchen-converter/i18n/fr.ts +292 -0
- package/src/tool/american-kitchen-converter/index.ts +24 -0
- package/src/tool/american-kitchen-converter/seo.astro +8 -0
- package/src/tool/banana-ripeness/BananaCare.css +587 -0
- package/src/tool/banana-ripeness/BananaEngine.ts +79 -0
- package/src/tool/banana-ripeness/bibliography.astro +6 -0
- package/src/tool/banana-ripeness/component.astro +285 -0
- package/src/tool/banana-ripeness/i18n/en.ts +177 -0
- package/src/tool/banana-ripeness/i18n/es.ts +177 -0
- package/src/tool/banana-ripeness/i18n/fr.ts +177 -0
- package/src/tool/banana-ripeness/index.ts +24 -0
- package/src/tool/banana-ripeness/seo.astro +8 -0
- package/src/tool/brine/bibliography.astro +6 -0
- package/src/tool/brine/component.astro +884 -0
- package/src/tool/brine/i18n/en.ts +221 -0
- package/src/tool/brine/i18n/es.ts +222 -0
- package/src/tool/brine/i18n/fr.ts +221 -0
- package/src/tool/brine/index.ts +26 -0
- package/src/tool/brine/seo.astro +8 -0
- package/src/tool/cookware-guide/CookwareGuide.css +487 -0
- package/src/tool/cookware-guide/bibliography.astro +6 -0
- package/src/tool/cookware-guide/component.astro +164 -0
- package/src/tool/cookware-guide/i18n/en.ts +163 -0
- package/src/tool/cookware-guide/i18n/es.ts +163 -0
- package/src/tool/cookware-guide/i18n/fr.ts +164 -0
- package/src/tool/cookware-guide/index.ts +24 -0
- package/src/tool/cookware-guide/init.ts +174 -0
- package/src/tool/cookware-guide/seo.astro +8 -0
- package/src/tool/egg-timer/EggTimer.css +503 -0
- package/src/tool/egg-timer/bibliography.astro +14 -0
- package/src/tool/egg-timer/component.astro +281 -0
- package/src/tool/egg-timer/i18n/en.ts +230 -0
- package/src/tool/egg-timer/i18n/es.ts +222 -0
- package/src/tool/egg-timer/i18n/fr.ts +121 -0
- package/src/tool/egg-timer/index.ts +27 -0
- package/src/tool/egg-timer/seo.astro +39 -0
- package/src/tool/ingredient-rescaler/IngredientRescaler.css +308 -0
- package/src/tool/ingredient-rescaler/bibliography.astro +6 -0
- package/src/tool/ingredient-rescaler/component.astro +107 -0
- package/src/tool/ingredient-rescaler/i18n/en.ts +265 -0
- package/src/tool/ingredient-rescaler/i18n/es.ts +268 -0
- package/src/tool/ingredient-rescaler/i18n/fr.ts +207 -0
- package/src/tool/ingredient-rescaler/index.ts +24 -0
- package/src/tool/ingredient-rescaler/init.ts +200 -0
- package/src/tool/ingredient-rescaler/seo.astro +8 -0
- package/src/tool/kitchen-timer/KitchenTimer.css +325 -0
- package/src/tool/kitchen-timer/bibliography.astro +6 -0
- package/src/tool/kitchen-timer/component.astro +341 -0
- package/src/tool/kitchen-timer/i18n/en.ts +154 -0
- package/src/tool/kitchen-timer/i18n/es.ts +154 -0
- package/src/tool/kitchen-timer/i18n/fr.ts +154 -0
- package/src/tool/kitchen-timer/index.ts +26 -0
- package/src/tool/kitchen-timer/init.ts +55 -0
- package/src/tool/kitchen-timer/lib/AudioHelper.ts +27 -0
- package/src/tool/kitchen-timer/lib/DockManager.ts +97 -0
- package/src/tool/kitchen-timer/lib/KitchenTimer.ts +264 -0
- package/src/tool/kitchen-timer/seo.astro +8 -0
- package/src/tool/meringue-peak/MeringueCalculator.css +298 -0
- package/src/tool/meringue-peak/bibliography.astro +6 -0
- package/src/tool/meringue-peak/component.astro +169 -0
- package/src/tool/meringue-peak/i18n/en.ts +257 -0
- package/src/tool/meringue-peak/i18n/es.ts +234 -0
- package/src/tool/meringue-peak/i18n/fr.ts +234 -0
- package/src/tool/meringue-peak/index.ts +24 -0
- package/src/tool/meringue-peak/seo.astro +8 -0
- package/src/tool/mold-scaler/MoldScaler.css +406 -0
- package/src/tool/mold-scaler/bibliography.astro +6 -0
- package/src/tool/mold-scaler/component.astro +126 -0
- package/src/tool/mold-scaler/i18n/en.ts +268 -0
- package/src/tool/mold-scaler/i18n/es.ts +269 -0
- package/src/tool/mold-scaler/i18n/fr.ts +276 -0
- package/src/tool/mold-scaler/index.ts +26 -0
- package/src/tool/mold-scaler/init.ts +264 -0
- package/src/tool/mold-scaler/seo.astro +8 -0
- package/src/tool/pizza/Pizza.css +569 -0
- package/src/tool/pizza/bibliography.astro +6 -0
- package/src/tool/pizza/calculator.ts +143 -0
- package/src/tool/pizza/component.astro +237 -0
- package/src/tool/pizza/i18n/en.ts +288 -0
- package/src/tool/pizza/i18n/es.ts +289 -0
- package/src/tool/pizza/i18n/fr.ts +288 -0
- package/src/tool/pizza/index.ts +27 -0
- package/src/tool/pizza/seo.astro +8 -0
- package/src/tool/roux-guide/RouxGuide.css +483 -0
- package/src/tool/roux-guide/bibliography.astro +6 -0
- package/src/tool/roux-guide/component.astro +194 -0
- package/src/tool/roux-guide/i18n/en.ts +233 -0
- package/src/tool/roux-guide/i18n/es.ts +225 -0
- package/src/tool/roux-guide/i18n/fr.ts +225 -0
- package/src/tool/roux-guide/index.ts +24 -0
- package/src/tool/roux-guide/init.ts +187 -0
- package/src/tool/roux-guide/seo.astro +8 -0
- package/src/tool/sourdough-calculator/SourdoughCalculator.css +369 -0
- package/src/tool/sourdough-calculator/bibliography.astro +6 -0
- package/src/tool/sourdough-calculator/component.astro +198 -0
- package/src/tool/sourdough-calculator/i18n/en.ts +242 -0
- package/src/tool/sourdough-calculator/i18n/es.ts +243 -0
- package/src/tool/sourdough-calculator/i18n/fr.ts +248 -0
- package/src/tool/sourdough-calculator/index.ts +24 -0
- package/src/tool/sourdough-calculator/init.ts +131 -0
- package/src/tool/sourdough-calculator/seo.astro +8 -0
- package/src/tools.ts +29 -0
- package/src/types.ts +73 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
|
|
3
|
+
export const content: ToolLocaleContent = {
|
|
4
|
+
slug: 'banana-ripeness',
|
|
5
|
+
title: 'Banana Diagnostics and Conservation: Scientific Guide',
|
|
6
|
+
description: 'Analyze your banana ripening stage with scientific precision. Learn conservation techniques, ethylene biochemistry, and nutritional optimization.',
|
|
7
|
+
faqTitle: 'Questions Fréquemment Posées',
|
|
8
|
+
bibliographyTitle: 'Sources et Références',
|
|
9
|
+
ui: {
|
|
10
|
+
ripesnessLabel: 'Ripeness State',
|
|
11
|
+
nextStageLabel: 'Next Stage in',
|
|
12
|
+
daysUnit: 'Days',
|
|
13
|
+
tempLabel: 'Temperature',
|
|
14
|
+
humidityLabel: 'Humidity',
|
|
15
|
+
partnerToggleTitle: 'Climacteric Companion',
|
|
16
|
+
partnerToggleSubtitle: 'External ethylene effect',
|
|
17
|
+
conservationTitle: 'Conservation',
|
|
18
|
+
accelerationTitle: 'Acceleration',
|
|
19
|
+
stage1Name: 'Emerald Green',
|
|
20
|
+
stage1Desc: 'Maximum resistant starch content. Full firmness.',
|
|
21
|
+
stage1Conservation: 'Room temperature (18-20°C). Avoid cold (<12°C).',
|
|
22
|
+
stage1Acceleration: 'Paper bag with a ripe apple or tomato.',
|
|
23
|
+
stage2Name: 'Radiant Yellow',
|
|
24
|
+
stage2Desc: 'Perfect balance between firmness and initial sweetness.',
|
|
25
|
+
stage2Conservation: 'Cool place, separate from bunch to slow ethylene.',
|
|
26
|
+
stage2Acceleration: 'Keep in bunch and wrap in plastic.',
|
|
27
|
+
stage3Name: 'Sweet Spotted',
|
|
28
|
+
stage3Desc: 'Antioxidant peak. Intense sweetness and creamy texture.',
|
|
29
|
+
stage3Conservation: 'Refrigerate to preserve pulp (though skin darkens).',
|
|
30
|
+
stage3Acceleration: 'Gentle heat (near heat source, not direct).',
|
|
31
|
+
stage4Name: 'Ripe Cinnamon',
|
|
32
|
+
stage4Desc: 'Very soft texture. Ideal for sugar-free baking.',
|
|
33
|
+
stage4Conservation: 'Peel and freeze immediately.',
|
|
34
|
+
stage4Acceleration: 'Already reached its peak.',
|
|
35
|
+
stage5Name: 'Overripe / Fermented',
|
|
36
|
+
stage5Desc: 'Advanced degradation process.',
|
|
37
|
+
stage5Conservation: 'Not recommended for direct consumption.',
|
|
38
|
+
stage5Acceleration: 'N/A',
|
|
39
|
+
},
|
|
40
|
+
faq: [
|
|
41
|
+
{
|
|
42
|
+
question: 'Why do bananas turn black in the fridge?',
|
|
43
|
+
answer: 'Cold breaks down cell walls in the peel, releasing enzymes that oxidize phenols and create black polyphenols. However, the inside usually stays firm and sweet longer than outside.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'How can I ripen a banana quickly?',
|
|
47
|
+
answer: 'Put them in a closed paper bag with an apple or tomato. These emit ethylene gas, which accelerates ripening. If in a hurry, you can put them in the oven at low temperature for a few minutes.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: 'Is it safe to eat spotted bananas?',
|
|
51
|
+
answer: 'Yes, totally. Spots indicate starch has converted to sugar, making them sweeter and more digestible. Only discard if they have mold, smell bad, or are excessively soft.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
question: 'What is ethylene?',
|
|
55
|
+
answer: 'It\'s a plant hormone in gas form that regulates growth and ripening. Banana is a climacteric fruit, meaning it continues producing ethylene and ripening after harvest.',
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
howTo: [
|
|
59
|
+
{
|
|
60
|
+
name: 'Observe the color',
|
|
61
|
+
text: 'Carefully examine peel color, from green to dark brown, to determine current ripening stage.',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Use the simulator',
|
|
65
|
+
text: 'Slide the ripeness indicator to see accurate predictions about when it reaches the next stage.',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'Adjust conditions',
|
|
69
|
+
text: 'Modify temperature and humidity to see how they affect ripening speed.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'Apply conservation',
|
|
73
|
+
text: 'Follow specific conservation and acceleration recommendations based on current stage.',
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
bibliography: [
|
|
77
|
+
{
|
|
78
|
+
name: 'Ethylene and Fruit Ripening: A Biological Review (Nature Research)',
|
|
79
|
+
url: 'https://www.researchgate.net/profile/Jean-Claude-Pech/publication/284632414_Ethylene_and_Fruit_Ripening/links/5aef0bcbaca2727bc006482c/Ethylene-and-Fruit-Ripening.pdf',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'Biochemical Changes in Musa acuminata during Ripening (Journal of Food Science)',
|
|
83
|
+
url: 'https://www.foodsciencejournal.com/assets/archives/2017/vol2issue5/2-5-31-566.pdf',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'The Role of Respiration in Climacteric Fruits (Scientific American)',
|
|
87
|
+
url: 'https://www.nature.com/articles/226976b0',
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
seo: [
|
|
91
|
+
{
|
|
92
|
+
type: 'title',
|
|
93
|
+
text: 'Science of Ripening in Musa × paradisiaca',
|
|
94
|
+
level: 2,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'paragraph',
|
|
98
|
+
html: 'Banana is one of the most consumed fruits in the world, yet also one of the most biologically misunderstood. Unlike non-climacteric fruits like citrus or grapes, banana is a <strong>climacteric fruit</strong>. This means it continues ripening after harvest, drastically increasing cellular respiration and production of a critical gaseous phytohormone: <strong>ethylene</strong>.',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'From a biochemical perspective, ripening is a cascade of enzymatic events. During this process, enzymes like amylase break down complex carbohydrates (starches) into simple sugars (fructose, glucose, and sucrose). This change not only alters flavor, making it sweeter, but also modifies texture by degrading pectin in cell walls, resulting in that soft, creamy consistency characterizing ripe banana.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'title',
|
|
106
|
+
text: 'The Ethylene Cycle',
|
|
107
|
+
level: 3,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: 'Ethylene functions as a biological switch. Once fruit detects small ethylene concentration, it activates genes responsible for producing more ethylene, creating a positive feedback loop. This is why a very ripe banana accelerates ripening of all neighbors in the fruit bowl. To slow this process, it\'s vital to isolate specimens already showing brown spots from those still green.',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'The Refrigerator Myth',
|
|
116
|
+
level: 3,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'There\'s a popular belief that bananas shouldn\'t go in the fridge. Reality is more complex: cold (below 12°C) causes chilling injury in peel cells, releasing enzymes that oxidize phenols and turn skin black. However, this only affects appearance. If the inside has already reached desired ripeness, cold will almost completely halt pulp softening, preserving flavor and texture for several additional days.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Advanced Conservation Strategies',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: '<strong>Crown Wrapping:</strong> Wrapping the stem of a banana bunch with plastic wrap dramatically reduces ethylene release, extending commercial shelf life by up to 72 additional hours.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'paragraph',
|
|
133
|
+
html: '<strong>Dynamic Suspension:</strong> Hanging bananas prevents pressure bruising. Damaged tissues release ethylene faster, creating hotspots of accelerated ripening that spread through the fruit.',
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
type: 'paragraph',
|
|
137
|
+
html: '<strong>Cryotherapy (Freezing):</strong> For bananas in stage 4 (brown), freezing is best option. Peeling fruit before freezing prevents trapped moisture, maintaining fiber quality.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
type: 'title',
|
|
141
|
+
text: 'Nutritional Changes by Stage',
|
|
142
|
+
level: 2,
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
type: 'paragraph',
|
|
146
|
+
html: 'As banana ripens, its nutritional profile transforms dramatically, allowing it to be used as a specific dietary tool according to consumer objectives.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'table',
|
|
150
|
+
headers: ['Stage', 'Resistant Starch', 'Characteristics', 'Main Benefit'],
|
|
151
|
+
rows: [
|
|
152
|
+
['Green (1-2)', '~80%', 'Very firm, maximum starch content', 'Gut health and glycemic control'],
|
|
153
|
+
['Yellow (3)', '~5%', 'Balance of firmness and sweetness', 'Quick energy and B vitamins'],
|
|
154
|
+
['Spotted (4)', 'Minimal', 'Very soft, high sugar content', 'Maximum antioxidant potential'],
|
|
155
|
+
['Brown/Overripe (5)', 'Practically none', 'Very soft texture, advanced fermentation', 'Not recommended for consumption'],
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Conclusion and Practical Application',
|
|
161
|
+
level: 2,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'list',
|
|
165
|
+
items: [
|
|
166
|
+
'<strong>Reduce food waste:</strong> Precise banana stage diagnosis enables identifying optimal consumption moment, preventing valuable fruit loss.',
|
|
167
|
+
'<strong>Optimize nutritional benefits:</strong> From resistant starch in green for gut health to antioxidants in spotted for maximum antioxidant potential.',
|
|
168
|
+
'<strong>Plan strategic consumption:</strong> Adapt banana use according to your health objectives: glycemic control, quick energy, digestion, or antioxidants.',
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'tip',
|
|
173
|
+
html: '<strong>Degradation Alert:</strong> External factors like relative humidity over 85% or temperatures above 25°C can drastically accelerate degradation, taking banana from optimal to inedible in hours. This simulator helps you anticipate these changes and plan strategically.',
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
schemas: [],
|
|
177
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CookingToolEntry, ToolDefinition } from '../../types';
|
|
2
|
+
import BananaComponent from './component.astro';
|
|
3
|
+
import BananaComponentSEO from './seo.astro';
|
|
4
|
+
import BananaComponentBibliography from './bibliography.astro';
|
|
5
|
+
|
|
6
|
+
export const bananaCare: CookingToolEntry = {
|
|
7
|
+
id: 'banana-ripeness',
|
|
8
|
+
icons: {
|
|
9
|
+
bg: 'mdi:fruit-watermelon',
|
|
10
|
+
fg: 'mdi:leaf',
|
|
11
|
+
},
|
|
12
|
+
i18n: {
|
|
13
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
14
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
15
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const BANANA_CARE_TOOL: ToolDefinition = {
|
|
20
|
+
entry: bananaCare,
|
|
21
|
+
Component: BananaComponent,
|
|
22
|
+
SEOComponent: BananaComponentSEO,
|
|
23
|
+
BibliographyComponent: BananaComponentBibliography,
|
|
24
|
+
};
|