Skip to content

Commit b4384bd

Browse files
committed
Merge remote-tracking branch 'origin/main'
# Conflicts: # src/recipe_data/all_recipes.json # website/index.html # website/pdf_recipes/crêpes.pdf # website/pdf_recipes/quiche_lorraine.pdf
2 parents 9a9dd15 + fb859c7 commit b4384bd

13 files changed

Lines changed: 338 additions & 128 deletions

File tree

src/generate_pages.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -251,14 +251,9 @@ async def main(): # Changed to async main
251251

252252
if "ingredients" in recipe_data and "list" in recipe_data["ingredients"]:
253253
for ingredient_item in recipe_data["ingredients"]["list"]:
254-
original_quantity = ingredient_item.get("quantity")
255-
current_quantity_str = ""
256-
if original_quantity is not None:
257-
current_quantity_str = str(original_quantity).strip()
258-
needs_de = needs_de_separator(current_quantity_str)
259-
ingredient_item["quantity_display"] = current_quantity_str + (
260-
" de" if needs_de else ""
261-
)
254+
quantity = ingredient_item.get("quantity", "")
255+
needs_de = needs_de_separator(quantity)
256+
ingredient_item["quantity_display"] = quantity + " de"*needs_de
262257

263258
image_filename_val = recipe_data.get("image_filename")
264259
image_path_for_template = None # Renamed to avoid confusion

src/recipe_data/all_recipes.json

Lines changed: 106 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
},
2424
{
2525
"name": "Lardons fumés",
26-
"quantity": "200g"
26+
"quantity": "200 g"
2727
},
2828
{
2929
"name": "Tomates",
@@ -62,7 +62,7 @@
6262
"serves": "",
6363
"list": [
6464
{
65-
"quantity": "350g",
65+
"quantity": "350 g",
6666
"name": "farine"
6767
},
6868
{
@@ -74,15 +74,15 @@
7474
"name": "sel"
7575
},
7676
{
77-
"quantity": "40g",
77+
"quantity": "40 g",
7878
"name": "beurre"
7979
},
8080
{
8181
"quantity": "1/2 litre",
8282
"name": "lait"
8383
},
8484
{
85-
"quantity": "4/5 sachets de",
85+
"quantity": "4/5 sachets",
8686
"name": "sucre vanillé"
8787
}
8888
]
@@ -95,6 +95,57 @@
9595
"Laisse reposer (facultatif). Si la pâte est trop épaisse, ajouter un peu de lait."
9696
]
9797
},
98+
{
99+
"name": "Tarte à la rhubarbe",
100+
"type": "dessert",
101+
"description": "Attention aux papas gourmands !",
102+
"image_filename": "tarte_a_la_rhubarbe.webp",
103+
"durations": {
104+
"total": "",
105+
"preparation": "",
106+
"cooking": "1 heure environ",
107+
"rest": ""
108+
},
109+
"ingredients": {
110+
"serves": "",
111+
"list": [
112+
{
113+
"name": "pâte feuilletée",
114+
"quantity": "1"
115+
},
116+
{
117+
"name": "petits pains au lait",
118+
"quantity": "3"
119+
},
120+
{
121+
"name": "beurre demi-sel",
122+
"quantity": "60 g"
123+
},
124+
{
125+
"name": "sucre en poudre",
126+
"quantity": "100 g"
127+
},
128+
{
129+
"name": "sachets de sucre vanillé",
130+
"quantity": "2"
131+
},
132+
{
133+
"name": "rhubarbe à volonté",
134+
"quantity": ""
135+
}
136+
]
137+
},
138+
"utensils": [],
139+
"instructions": [
140+
"Etaler la pâte feuilletée",
141+
"Couper les pains au lait en 3 dans le sens de l'épaisseur et tapisser le fond de tarte",
142+
"Faire fondre le beurre et napper les pains au lait",
143+
"Mélanger les 2 sucres et napper le fond de tarte avec la moitié",
144+
"Mettre la rhubarbe",
145+
"Saupoudrer avec le reste de sucre",
146+
"Faire cuire à 200° pendant 1 heure environ"
147+
]
148+
},
98149
{
99150
"name": "Gâteau aux pommes",
100151
"type": "dessert",
@@ -153,5 +204,56 @@
153204
"Verser la préparation dans un moule beurré.",
154205
"Cuire au four pendant 40 à 50 minutes, jusqu’à ce que le gâteau soit doré et bien cuit à cœur."
155206
]
207+
},
208+
{
209+
"name": "Tarte à la rhubarbe",
210+
"type": "dessert",
211+
"description": "Attention aux papas gourmands !",
212+
"image_filename": "tarte_a_la_rhubarbe.webp",
213+
"durations": {
214+
"total": "",
215+
"preparation": "",
216+
"cooking": "1 heure environ",
217+
"rest": ""
218+
},
219+
"ingredients": {
220+
"serves": "",
221+
"list": [
222+
{
223+
"name": "pâte feuilletée",
224+
"quantity": "1"
225+
},
226+
{
227+
"name": "petits pains au lait",
228+
"quantity": "3"
229+
},
230+
{
231+
"name": "beurre demi-sel",
232+
"quantity": "60 g"
233+
},
234+
{
235+
"name": "sucre en poudre",
236+
"quantity": "100 g"
237+
},
238+
{
239+
"name": "sachets de sucre vanillé",
240+
"quantity": "2"
241+
},
242+
{
243+
"name": "rhubarbe à volonté",
244+
"quantity": ""
245+
}
246+
]
247+
},
248+
"utensils": [],
249+
"instructions": [
250+
"Etaler la pâte feuilletée",
251+
"Couper les pains au lait en 3 dans le sens de l'épaisseur et tapisser le fond de tarte",
252+
"Faire fondre le beurre et napper les pains au lait",
253+
"Mélanger les 2 sucres et napper le fond de tarte avec la moitié",
254+
"Mettre la rhubarbe",
255+
"Saupoudrer avec le reste de sucre",
256+
"Faire cuire à 200° pendant 1 heure environ"
257+
]
156258
}
157259
]

src/recipe_data/recipe_boilerplate.json

Lines changed: 41 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,46 @@
11
{
2-
"name": "Nom de la recette",
3-
"type": "dessert", // valeurs possibles : "entrée", "plat", "dessert", "accompagnement
4-
"description": "Description de la recette.",
5-
"image_filename": "https://example.com/path/to/image.jpg",
6-
"durations": {
7-
"total": "", // e.g., "1h 30min"
8-
"preparation": "", // e.g., "30min"
9-
"cooking": "", // e.g., "1h"
10-
"rest": "" // e.g., "2h"
11-
},
12-
"utensils": [
13-
"Nom de l'ustensile 1",
14-
"Nom de l'ustensile 2"
15-
// ... ajouter d'autres ustensiles ici
16-
],
17-
"ingredients": {
18-
"serves": "5 personnes", // Ou "8 gourmands", "6-8 parts", etc.
19-
"list": [
20-
{
21-
"name": "Nom de l'ingrédient 1",
22-
"quantity": "Quantité et unité" // e.g., "200g", "1 cuillère à soupe"
23-
},
24-
{
25-
"name": "Nom de l'ingrédient 2",
26-
"quantity": "Quantité et unité"
27-
}
28-
// ... ajouter d'autres ingrédients ici
29-
]
30-
},
31-
"instructions": [
32-
"Première étape de la préparation.",
33-
"Deuxième étape de la préparation."
34-
// ... ajouter d'autres étapes ici
2+
"name": "Nom de la recette",
3+
"type": "dessert",
4+
// valeurs possibles : "entrée", "plat", "dessert", "accompagnement
5+
"description": "Description de la recette.",
6+
"image_filename": "https://example.com/path/to/image.jpg",
7+
"durations": {
8+
"total": "",
9+
// e.g., "1h 30min"
10+
"preparation": "",
11+
// e.g., "30min"
12+
"cooking": "",
13+
// e.g., "1h"
14+
"rest": ""
15+
// e.g., "2h"
16+
},
17+
"utensils": [
18+
"Nom de l'ustensile 1",
19+
"Nom de l'ustensile 2"
20+
// ... ajouter d'autres ustensiles ici
21+
],
22+
"ingredients": {
23+
"serves": "5 personnes",
24+
// Ou "8 gourmands", "6-8 parts", etc.
25+
"list": [
26+
{
27+
"name": "Nom de l'ingrédient 1",
28+
"quantity": "Quantité et unité"
29+
// e.g., "200g", "1 cuillère à soupe"
30+
},
31+
{
32+
"name": "Nom de l'ingrédient 2",
33+
"quantity": "Quantité et unité"
34+
}
35+
// ... ajouter d'autres ingrédients ici
3536
]
36-
}
37+
},
38+
"instructions": [
39+
"Première étape de la préparation.",
40+
"Deuxième étape de la préparation."
41+
// ... ajouter d'autres étapes ici
42+
]
43+
}
3744

3845
// Without comments for copy/pasting:
3946
{
139 KB
Loading

src/static/css/print.css

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
@page {
44
size: A4;
5-
margin: 1.5cm; /* Reverted to the previous standard A4 margin */
5+
margin: 1.5cm; /* Standard A4 margin */
66
}
77

88
body {
@@ -17,18 +17,12 @@ body {
1717

1818
/* Hide elements not suitable for print */
1919
.page-actions,
20-
.recipe-page-content-container > img, /* Cela cache l'image principale de la recette DANS le contenu */
20+
.page-content-container > img, /* Cela cache l'image principale de la recette DANS le contenu */
2121
footer.attribution {
2222
display: none !important;
2323
}
2424

25-
.recipe-page-section {
26-
max-width: 100% !important;
27-
margin: 0 !important;
28-
padding: 0 !important;
29-
}
30-
31-
.recipe-page-content-container {
25+
.page-content-container {
3226
width: 100% !important;
3327
padding: 0 !important;
3428
margin: 0 !important;
@@ -137,21 +131,4 @@ a, a:visited {
137131
box-shadow: none !important;
138132
text-shadow: none !important;
139133
transition: none !important;
140-
}
141-
142-
/* ---- NOUVEAU CSS POUR L'IMAGE DE PIED DE PAGE EN IMPRESSION ---- */
143-
.print-footer-image-container {
144-
page-break-inside: avoid !important; /* Essayer de garder tout ce conteneur sur une seule page */
145-
margin-top: 2cm !important; /* Espace au-dessus de l'image ; ajustez si nécessaire */
146-
text-align: center !important; /* Centrer l'image dans le conteneur */
147-
width: 100% !important; /* S'assurer qu'il prend toute la largeur disponible pour le centrage */
148-
}
149-
150-
#print-page-footer-image {
151-
max-width: 60% !important; /* Largeur maximale de l'image par rapport à son conteneur */
152-
/* Ajustez selon vos besoins, ex: 50%, 80%, ou une largeur fixe comme 10cm */
153-
max-height: 4cm !important; /* CRUCIAL : Définir une hauteur maximale pour l'image. */
154-
/* Ajustez ceci en fonction de votre image et de l'espace souhaité. */
155-
object-fit: contain !important; /* Assure que le ratio de l'image est maintenu, s'adapte aux dimensions */
156-
display: inline-block !important; /* Permet à text-align:center sur le parent de fonctionner et respecte le ratio de l'image */
157134
}

src/templates/base_recipe.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ <h3>Ustensiles</h3>
9999
<h2>Ingrédients</h2>
100100
<ul class="ingredients-list">
101101
{% for ingredient_item in recipe.ingredients.list %}
102-
<li>{{ ingredient_item.quantity }} {{ ingredient_item.name }}</li>
102+
<li>{{ ingredient_item.quantity_display }} {{ ingredient_item.name }}</li>
103103
{% endfor %}
104104
</ul>
105105
<span class="separation-line"></span>

website/crêpes.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,15 @@ <h3>Temps de préparation</h3>
8383
<h2>Ingrédients</h2>
8484
<ul class="ingredients-list">
8585

86-
<li>350g farine</li>
86+
<li>350 g de farine</li>
8787

8888
<li>4 oeufs</li>
8989

90-
<li>1 pincée sel</li>
90+
<li>1 pincée de sel</li>
9191

92-
<li>40g beurre</li>
92+
<li>40 g de beurre</li>
9393

94-
<li>1/2 litre lait</li>
94+
<li>1/2 litre de lait</li>
9595

9696
<li>4/5 sachets de sucre vanillé</li>
9797

website/css/print.css

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
@page {
44
size: A4;
5-
margin: 1.5cm; /* Reverted to the previous standard A4 margin */
5+
margin: 1.5cm; /* Standard A4 margin */
66
}
77

88
body {
@@ -17,18 +17,12 @@ body {
1717

1818
/* Hide elements not suitable for print */
1919
.page-actions,
20-
.recipe-page-content-container > img, /* Cela cache l'image principale de la recette DANS le contenu */
20+
.page-content-container > img, /* Cela cache l'image principale de la recette DANS le contenu */
2121
footer.attribution {
2222
display: none !important;
2323
}
2424

25-
.recipe-page-section {
26-
max-width: 100% !important;
27-
margin: 0 !important;
28-
padding: 0 !important;
29-
}
30-
31-
.recipe-page-content-container {
25+
.page-content-container {
3226
width: 100% !important;
3327
padding: 0 !important;
3428
margin: 0 !important;
@@ -137,21 +131,4 @@ a, a:visited {
137131
box-shadow: none !important;
138132
text-shadow: none !important;
139133
transition: none !important;
140-
}
141-
142-
/* ---- NOUVEAU CSS POUR L'IMAGE DE PIED DE PAGE EN IMPRESSION ---- */
143-
.print-footer-image-container {
144-
page-break-inside: avoid !important; /* Essayer de garder tout ce conteneur sur une seule page */
145-
margin-top: 2cm !important; /* Espace au-dessus de l'image ; ajustez si nécessaire */
146-
text-align: center !important; /* Centrer l'image dans le conteneur */
147-
width: 100% !important; /* S'assurer qu'il prend toute la largeur disponible pour le centrage */
148-
}
149-
150-
#print-page-footer-image {
151-
max-width: 60% !important; /* Largeur maximale de l'image par rapport à son conteneur */
152-
/* Ajustez selon vos besoins, ex: 50%, 80%, ou une largeur fixe comme 10cm */
153-
max-height: 4cm !important; /* CRUCIAL : Définir une hauteur maximale pour l'image. */
154-
/* Ajustez ceci en fonction de votre image et de l'espace souhaité. */
155-
object-fit: contain !important; /* Assure que le ratio de l'image est maintenu, s'adapte aux dimensions */
156-
display: inline-block !important; /* Permet à text-align:center sur le parent de fonctionner et respecte le ratio de l'image */
157134
}

0 commit comments

Comments
 (0)