@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,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Icon } from "astro-icon/components";
|
|
3
|
+
import type { ToolLocaleContent } from "../../types";
|
|
4
|
+
import "./Pizza.css";
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
ui: ToolLocaleContent["ui"];
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { ui } = Astro.props;
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<div class="pizza-container">
|
|
14
|
+
<div class="pizza-grid">
|
|
15
|
+
<div class="pizza-controls">
|
|
16
|
+
<div class="pizza-card">
|
|
17
|
+
<h2 class="pizza-title">
|
|
18
|
+
<Icon name="mdi:tune" class="pizza-icon" />
|
|
19
|
+
{ui.parameters}
|
|
20
|
+
</h2>
|
|
21
|
+
|
|
22
|
+
<div class="pizza-controls-space">
|
|
23
|
+
<div class="pizza-control-group">
|
|
24
|
+
<div class="pizza-label-row">
|
|
25
|
+
<label class="pizza-label">{ui.quantity}</label>
|
|
26
|
+
<span class="pizza-value">
|
|
27
|
+
<span id="display-pizzas">4</span>
|
|
28
|
+
<span class="pizza-unit">{ui.pizzas}</span>
|
|
29
|
+
</span>
|
|
30
|
+
</div>
|
|
31
|
+
<input
|
|
32
|
+
type="range"
|
|
33
|
+
id="input-pizzas"
|
|
34
|
+
min="1"
|
|
35
|
+
max="20"
|
|
36
|
+
value="4"
|
|
37
|
+
step="1"
|
|
38
|
+
class="pizza-slider"
|
|
39
|
+
/>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div class="pizza-control-group">
|
|
43
|
+
<div class="pizza-label-row">
|
|
44
|
+
<label class="pizza-label">{ui.weight}</label>
|
|
45
|
+
<span class="pizza-value">
|
|
46
|
+
<span id="display-weight">260</span>
|
|
47
|
+
<span class="pizza-unit">g</span>
|
|
48
|
+
</span>
|
|
49
|
+
</div>
|
|
50
|
+
<input
|
|
51
|
+
type="range"
|
|
52
|
+
id="input-weight"
|
|
53
|
+
min="180"
|
|
54
|
+
max="350"
|
|
55
|
+
value="260"
|
|
56
|
+
step="5"
|
|
57
|
+
class="pizza-slider"
|
|
58
|
+
/>
|
|
59
|
+
<div class="pizza-range-labels">
|
|
60
|
+
<span>{ui.small}</span>
|
|
61
|
+
<span>{ui.standard}</span>
|
|
62
|
+
<span>{ui.large}</span>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div class="pizza-control-group">
|
|
67
|
+
<div class="pizza-label-row">
|
|
68
|
+
<label class="pizza-label">{ui.hydration}</label>
|
|
69
|
+
<span class="pizza-value pizza-value-blue">
|
|
70
|
+
<span id="display-hydration">65</span>%
|
|
71
|
+
</span>
|
|
72
|
+
</div>
|
|
73
|
+
<input
|
|
74
|
+
type="range"
|
|
75
|
+
id="input-hydration"
|
|
76
|
+
min="55"
|
|
77
|
+
max="85"
|
|
78
|
+
value="65"
|
|
79
|
+
step="1"
|
|
80
|
+
class="pizza-slider pizza-slider-blue"
|
|
81
|
+
/>
|
|
82
|
+
<div class="pizza-range-labels">
|
|
83
|
+
<span>{ui.classic}</span>
|
|
84
|
+
<span>{ui.modern}</span>
|
|
85
|
+
<span>{ui.high}</span>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div class="pizza-control-group">
|
|
90
|
+
<div class="pizza-label-row">
|
|
91
|
+
<label class="pizza-label">{ui.salt}</label>
|
|
92
|
+
<span class="pizza-value">
|
|
93
|
+
<span id="display-salt">3.0</span>%
|
|
94
|
+
</span>
|
|
95
|
+
</div>
|
|
96
|
+
<input
|
|
97
|
+
type="range"
|
|
98
|
+
id="input-salt"
|
|
99
|
+
min="1.5"
|
|
100
|
+
max="4.0"
|
|
101
|
+
value="3.0"
|
|
102
|
+
step="0.1"
|
|
103
|
+
class="pizza-slider"
|
|
104
|
+
/>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<div class="pizza-tip">
|
|
110
|
+
<div class="pizza-tip-icon-wrapper">
|
|
111
|
+
<Icon name="mdi:lightbulb-on" class="pizza-tip-icon" />
|
|
112
|
+
</div>
|
|
113
|
+
<div>
|
|
114
|
+
<h3 class="pizza-tip-title">{ui.fermentation_tip_title}</h3>
|
|
115
|
+
<p class="pizza-tip-text" set:html={ui.fermentation_tip}></p>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<div class="pizza-recipe">
|
|
121
|
+
<div class="pizza-recipe-card">
|
|
122
|
+
<div class="pizza-recipe-header">
|
|
123
|
+
<h2 class="pizza-recipe-title">{ui.your_recipe}</h2>
|
|
124
|
+
<div class="pizza-yeast-buttons">
|
|
125
|
+
<button
|
|
126
|
+
id="btn-yeast-fresh"
|
|
127
|
+
class="pizza-yeast-btn pizza-yeast-btn-active"
|
|
128
|
+
>
|
|
129
|
+
{ui.fresh_yeast}
|
|
130
|
+
</button>
|
|
131
|
+
<button id="btn-yeast-dry" class="pizza-yeast-btn">
|
|
132
|
+
{ui.dry_yeast}
|
|
133
|
+
</button>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div class="pizza-recipe-grid">
|
|
138
|
+
<div class="pizza-recipe-group">
|
|
139
|
+
<div class="pizza-recipe-label pizza-recipe-label-white">
|
|
140
|
+
<Icon name="mdi:barley" class="pizza-recipe-icon" />
|
|
141
|
+
<span>{ui.flour}</span>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="pizza-recipe-value">
|
|
144
|
+
<span id="result-flour">0</span>
|
|
145
|
+
<span class="pizza-recipe-unit">g</span>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="pizza-recipe-bar">
|
|
148
|
+
<div class="pizza-recipe-bar-fill"></div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
<div class="pizza-recipe-group">
|
|
153
|
+
<div class="pizza-recipe-label pizza-recipe-label-blue">
|
|
154
|
+
<Icon name="mdi:water" class="pizza-recipe-icon" />
|
|
155
|
+
<span>{ui.water}</span>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="pizza-recipe-value pizza-recipe-value-blue">
|
|
158
|
+
<span id="result-water">0</span>
|
|
159
|
+
<span class="pizza-recipe-unit">ml</span>
|
|
160
|
+
</div>
|
|
161
|
+
<div class="pizza-recipe-bar">
|
|
162
|
+
<div
|
|
163
|
+
id="bar-water"
|
|
164
|
+
class="pizza-recipe-bar-fill pizza-recipe-bar-fill-blue"
|
|
165
|
+
style="width: 65%;"
|
|
166
|
+
>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
|
|
171
|
+
<div class="pizza-recipe-group">
|
|
172
|
+
<div class="pizza-recipe-label pizza-recipe-label-gray">
|
|
173
|
+
<Icon name="mdi:grain" class="pizza-recipe-icon" />
|
|
174
|
+
<span>{ui.salt_label}</span>
|
|
175
|
+
</div>
|
|
176
|
+
<div class="pizza-recipe-value">
|
|
177
|
+
<span id="result-salt">0</span>
|
|
178
|
+
<span class="pizza-recipe-unit">g</span>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
|
|
182
|
+
<div class="pizza-recipe-group">
|
|
183
|
+
<div class="pizza-recipe-label pizza-recipe-label-orange">
|
|
184
|
+
<Icon name="mdi:bacteria" class="pizza-recipe-icon" />
|
|
185
|
+
<span>{ui.yeast}</span>
|
|
186
|
+
</div>
|
|
187
|
+
<div class="pizza-recipe-value pizza-recipe-value-orange">
|
|
188
|
+
<span id="result-yeast">0</span>
|
|
189
|
+
<span class="pizza-recipe-unit">g</span>
|
|
190
|
+
</div>
|
|
191
|
+
<p class="pizza-recipe-note">{ui.yeast_note}</p>
|
|
192
|
+
</div>
|
|
193
|
+
</div>
|
|
194
|
+
|
|
195
|
+
<div class="pizza-recipe-total">
|
|
196
|
+
<div class="pizza-recipe-total-label">{ui.total_weight}</div>
|
|
197
|
+
<div class="pizza-recipe-total-value">
|
|
198
|
+
<span id="result-total">0</span>
|
|
199
|
+
<span class="pizza-recipe-unit">g</span>
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
|
|
205
|
+
<div class="pizza-visual">
|
|
206
|
+
<div class="pizza-visual-card">
|
|
207
|
+
<div class="pizza-visual-container">
|
|
208
|
+
<div class="pizza-visual-dough" id="dough-visual"></div>
|
|
209
|
+
|
|
210
|
+
<div class="pizza-visual-reference">
|
|
211
|
+
<Icon
|
|
212
|
+
name="mdi:hand-back-right"
|
|
213
|
+
class="pizza-visual-reference-icon"
|
|
214
|
+
/>
|
|
215
|
+
<span class="pizza-visual-reference-label">Ref.</span>
|
|
216
|
+
</div>
|
|
217
|
+
|
|
218
|
+
<div class="pizza-visual-diameter">
|
|
219
|
+
Ø <span id="visual-diameter">30</span>cm {ui.approx}
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
<p class="pizza-visual-text">{ui.visual_note}</p>
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
<script>
|
|
230
|
+
import { initPizzaCalculator } from "./calculator.ts";
|
|
231
|
+
|
|
232
|
+
if (document.readyState === "loading") {
|
|
233
|
+
document.addEventListener("DOMContentLoaded", initPizzaCalculator);
|
|
234
|
+
} else {
|
|
235
|
+
initPizzaCalculator();
|
|
236
|
+
}
|
|
237
|
+
</script>
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
|
|
3
|
+
export const content: ToolLocaleContent = {
|
|
4
|
+
slug: "neapolitan-pizza-dough-calculator-authentic-recipe",
|
|
5
|
+
title: "Neapolitan Pizza Dough Calculator",
|
|
6
|
+
description:
|
|
7
|
+
"Calculate the exact proportions of flour, water, salt and yeast to prepare authentic Neapolitan pizza at home with professional results.",
|
|
8
|
+
faqTitle: "Frequently Asked Questions",
|
|
9
|
+
bibliographyTitle: "Scientific References",
|
|
10
|
+
ui: {
|
|
11
|
+
parameters: "Parameters",
|
|
12
|
+
quantity: "Quantity",
|
|
13
|
+
pizzas: "pizzas",
|
|
14
|
+
weight: "Weight per ball",
|
|
15
|
+
small: "Small (180g)",
|
|
16
|
+
standard: "Standard (260g)",
|
|
17
|
+
large: "Large (350g)",
|
|
18
|
+
hydration: "Hydration",
|
|
19
|
+
classic: "Classic (55-60%)",
|
|
20
|
+
modern: "Modern (65-70%)",
|
|
21
|
+
high: "High (75%+)",
|
|
22
|
+
salt: "Salt",
|
|
23
|
+
fermentation_tip_title: "Fermentation Tip",
|
|
24
|
+
fermentation_tip:
|
|
25
|
+
"For a more digestible and flavorful dough, ferment the bulk dough for 24h in the fridge (4°C) using <strong>0.3g</strong> fresh yeast per 100g flour.",
|
|
26
|
+
your_recipe: "Your Recipe",
|
|
27
|
+
fresh_yeast: "Fresh Yeast",
|
|
28
|
+
dry_yeast: "Dry",
|
|
29
|
+
flour: "Flour (W260-300)",
|
|
30
|
+
water: "Water",
|
|
31
|
+
salt_label: "Sea Salt",
|
|
32
|
+
yeast: "Yeast",
|
|
33
|
+
yeast_note: "For 8h at room temp (20°C)",
|
|
34
|
+
total_weight: "Total Dough Weight",
|
|
35
|
+
approx: "approx.",
|
|
36
|
+
visual_note:
|
|
37
|
+
"The visual size represents the approximate diameter of the stretched pizza based on the ball weight.",
|
|
38
|
+
},
|
|
39
|
+
faq: [
|
|
40
|
+
{
|
|
41
|
+
question: "What is the ideal hydration for Neapolitan pizza?",
|
|
42
|
+
answer:
|
|
43
|
+
"According to AVPN protocol, standard hydration is 63-67%. For beginners, 60-62% is more manageable. For advanced pizzaiolos with strong flour (W300+), 70-75% produces extraordinary doughs but requires technique.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: "How long should the dough ferment?",
|
|
47
|
+
answer:
|
|
48
|
+
"Minimum 24 hours in fridge (4°C) to activate enzymes. Optimal is 48-72 hours. Beyond 72 hours, you need very strong flour (W300+) or the dough becomes too acidic.",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: "Can I use dry yeast?",
|
|
52
|
+
answer:
|
|
53
|
+
"Yes. Dry yeast equals 0.4x fresh (1g dry = 2.5g fresh). Quality is similar, but fresh yeast provides more complex flavor.",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
question: "Can I make Neapolitan pizza in a home oven?",
|
|
57
|
+
answer:
|
|
58
|
+
"Yes, but with adaptations. Preheat to maximum (250-280°C) with pizza stone for 45-60 minutes. Cooking will take 5-7 minutes instead of 60-90 seconds, but results are acceptable.",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
question: "What flour should I use?",
|
|
62
|
+
answer:
|
|
63
|
+
"Ideal: Caputo Pizzeria (W260-280) or Manitoba (W350-400). Alternative: any flour with 11-13g protein per 100g. Avoid weak flours (W130-160) for long fermentations.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
question: "Why does the dough tear when stretching?",
|
|
67
|
+
answer:
|
|
68
|
+
"The gluten isn't relaxed. Let the ball rest 2-3 hours at room temperature. If it repeats, kneading was insufficient or flour is too weak.",
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
howTo: [
|
|
72
|
+
{
|
|
73
|
+
name: "Calculate proportions",
|
|
74
|
+
text: "Use this calculator to get exact grams of each ingredient based on pizza quantity and ball weight.",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "Mix the dough",
|
|
78
|
+
text: "Combine flour with warm water (22-25°C), salt (dissolved first) and yeast. Knead 8-10 minutes with mixer or 15-20 minutes by hand.",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "Bulk ferment",
|
|
82
|
+
text: "Let entire dough ferment 1-2 hours at room temperature (20-25°C) until doubled in volume.",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
name: "Divide into balls",
|
|
86
|
+
text: "Divide dough into portions of indicated weight. Rest 15-20 minutes before shaping balls.",
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
name: "Long fermentation",
|
|
90
|
+
text: "Place balls in sealed container in fridge (4°C) for 24-72 hours. This critical step generates flavor and digestibility.",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "Stretch and bake",
|
|
94
|
+
text: "Remove from cold 30 minutes before. Stretch from center outward. Bake at maximum temperature 60-90 seconds (wood) or 5-7 minutes (home).",
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
bibliography: [
|
|
98
|
+
{
|
|
99
|
+
name: "Associazione Verace Pizza Napoletana",
|
|
100
|
+
url: "https://www.pizzanapoletana.org/",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "The Pizza Bible - Tony Gemignani",
|
|
104
|
+
url: "https://www.amazon.com/Pizza-Bible-Everything-Need-Perfect/dp/0393634039/",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: "Franco Pepe - Pepe in Grani",
|
|
108
|
+
url: "https://www.pepeingranitalia.com/",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "Caputo Flour",
|
|
112
|
+
url: "https://www.caputoprepara.com/",
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
seo: [
|
|
116
|
+
{
|
|
117
|
+
type: "title",
|
|
118
|
+
text: "Master Guide for Authentic Neapolitan Pizza Dough",
|
|
119
|
+
level: 2,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: "paragraph",
|
|
123
|
+
html: "<strong>Neapolitan pizza</strong> is much more than a recipe: it's a protected cultural legacy that requires scientific precision. Success depends on understanding how time, temperature, and hydration interact.",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: "stats",
|
|
127
|
+
columns: 4,
|
|
128
|
+
items: [
|
|
129
|
+
{
|
|
130
|
+
value: "480°C",
|
|
131
|
+
label: "Ideal Baking Temp",
|
|
132
|
+
icon: "mdi:fire",
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
value: "60-90s",
|
|
136
|
+
label: "Baking Time",
|
|
137
|
+
icon: "mdi:clock-fast",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
value: "65%",
|
|
141
|
+
label: "Std Hydration",
|
|
142
|
+
icon: "mdi:water-percent",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
value: "W280",
|
|
146
|
+
label: "Flour Strength",
|
|
147
|
+
icon: "mdi:grain",
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: "title",
|
|
153
|
+
text: "The Crucial Importance of Hydration",
|
|
154
|
+
level: 3,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: "paragraph",
|
|
158
|
+
html: "Hydration (percentage of water relative to flour weight) determines the <strong>cornicione</strong> texture. Mastering this parameter separates an amateur from a pizza master.",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: "comparative",
|
|
162
|
+
columns: 3,
|
|
163
|
+
items: [
|
|
164
|
+
{
|
|
165
|
+
title: "Hydration 55-60%",
|
|
166
|
+
icon: "mdi:water-percent",
|
|
167
|
+
description: "Very manageable dough, ideal for beginners and lower-temperature home ovens.",
|
|
168
|
+
points: [
|
|
169
|
+
"Easy gluten mesh formation",
|
|
170
|
+
"Less sticky dough",
|
|
171
|
+
"Firm and crispy crust",
|
|
172
|
+
],
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
title: "Hydration 63-67%",
|
|
176
|
+
icon: "mdi:water",
|
|
177
|
+
description: "The AVPN standard. Perfect balance for a light dough with visible crumb development.",
|
|
178
|
+
highlight: true,
|
|
179
|
+
points: [
|
|
180
|
+
"Traditional elastic texture",
|
|
181
|
+
"Ideal for wood-fired ovens",
|
|
182
|
+
"Requires medium kneading skill",
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
title: "Hydration 70%+",
|
|
187
|
+
icon: "mdi:water-plus",
|
|
188
|
+
description: "Contemporary pizzas with giant rims. Very difficult to handle without advanced technique.",
|
|
189
|
+
points: [
|
|
190
|
+
"Extremely large alveoli",
|
|
191
|
+
"Very light and digestible",
|
|
192
|
+
"Requires high-strength flours",
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
type: "title",
|
|
199
|
+
text: "Yeast Types and Choosing Which One to Use",
|
|
200
|
+
level: 3,
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
type: "comparative",
|
|
204
|
+
columns: 2,
|
|
205
|
+
items: [
|
|
206
|
+
{
|
|
207
|
+
title: "Pressed Fresh Yeast",
|
|
208
|
+
icon: "mdi:bread-slice-outline",
|
|
209
|
+
description: "The traditional choice preferred by pizza masters. Provides a more complex flavor profile.",
|
|
210
|
+
points: [
|
|
211
|
+
"Deeper and cleaner flavor",
|
|
212
|
+
"Balanced enzymatic action",
|
|
213
|
+
"Dissolves easily in warm water",
|
|
214
|
+
"Short shelf life (requires freshness)",
|
|
215
|
+
],
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
title: "Instant Dry Yeast",
|
|
219
|
+
icon: "mdi:shaker-outline",
|
|
220
|
+
description: "Much more stable and easy to store. Ideal for always having available in the pantry.",
|
|
221
|
+
points: [
|
|
222
|
+
"Long shelf life (up to 2 years)",
|
|
223
|
+
"No prior rehydration needed",
|
|
224
|
+
"Three times more powerful than fresh",
|
|
225
|
+
"Slightly more neutral flavor",
|
|
226
|
+
],
|
|
227
|
+
},
|
|
228
|
+
],
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
type: "title",
|
|
232
|
+
text: "Flour Selection Guide by W Strength Index",
|
|
233
|
+
level: 3,
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
type: "table",
|
|
237
|
+
headers: ["Flour Type", "Strength (W)", "Fermentation Time", "Recommended Use"],
|
|
238
|
+
rows: [
|
|
239
|
+
["Weak Flour", "W130-180", "4-8 hours", "Short-term baking"],
|
|
240
|
+
["Medium Strength", "W200-240", "8-24 hours", "Quick pizza or basic bread"],
|
|
241
|
+
["Strong Flour", "W260-320", "24-72 hours", "Authentic Neapolitan Pizza"],
|
|
242
|
+
["Extra Strong", "W350+", "72+ hours", "Panettones or high-hydration doughs"],
|
|
243
|
+
],
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
type: "diagnostic",
|
|
247
|
+
variant: "warning",
|
|
248
|
+
title: "Kneading Temperature Control",
|
|
249
|
+
html: "The dough should not exceed 24°C by the end of kneading. Excessive friction heat degrades gluten and causes erratic fermentation.",
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
type: "title",
|
|
253
|
+
text: "Glossary for the Future Pizza Master",
|
|
254
|
+
level: 3,
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
type: "glossary",
|
|
258
|
+
items: [
|
|
259
|
+
{
|
|
260
|
+
term: "Cornicione",
|
|
261
|
+
definition: "The raised and airy edge of the pizza. It should be full of alveoli and not have compact crumb.",
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
term: "Maturation",
|
|
265
|
+
definition: "An enzymatic process distinct from fermentation where proteins and sugars break down for better flavor and digestibility.",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
term: "Dough Development",
|
|
269
|
+
definition: "The point where the dough reaches its optimal elasticity and resistance without being sticky.",
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
term: "Autolysis",
|
|
273
|
+
definition: "A rest period after mixing only flour and water that facilitates gluten development without mechanical effort.",
|
|
274
|
+
},
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
type: "tip",
|
|
279
|
+
title: "The Fridge Hack",
|
|
280
|
+
html: "Bulk fermentation for 24 hours at 4°C doesn't just make the dough easier to handle; it creates complex organic compounds impossible to obtain at room temperature.",
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
type: "paragraph",
|
|
284
|
+
html: "Our calculator automates specific proportions so you can focus on what matters most: technique and passion for the final product.",
|
|
285
|
+
},
|
|
286
|
+
],
|
|
287
|
+
schemas: [],
|
|
288
|
+
};
|