feat: support external and step images with structured cooking instructions

This commit is contained in:
Sascha Nesterovic committed 2026-10-24 17:31:47 +02:00
1 parent 361862ad0b
commit 0ec1d45bdb
34 files changed
+898 -92

No files matched your search

+41 -4
View File
@@ -37,8 +37,17 @@
"default": "",
"anyOf": [
{
"type": "string",
"pattern": "^\\/(?:media\\/[a-f0-9-]+\\.webp|images\\/[a-z0-9-]+\\.(?:webp|jpg|svg))$"
"anyOf": [
{
"type": "string",
"pattern": "^\\/(?:media\\/[a-f0-9-]+\\.webp|images\\/[a-z0-9-]+\\.(?:webp|jpg|svg))$"
},
{
"type": "string",
"maxLength": 2048,
"pattern": "^https:\\/\\/[^@\\s/\\\\]+(?:[/?#][^\\s\\\\]*)?$"
}
]
},
{
"type": "string",
@@ -51,8 +60,17 @@
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"pattern": "^\\/(?:media\\/[a-f0-9-]+\\.webp|images\\/[a-z0-9-]+\\.(?:webp|jpg|svg))$"
"anyOf": [
{
"type": "string",
"pattern": "^\\/(?:media\\/[a-f0-9-]+\\.webp|images\\/[a-z0-9-]+\\.(?:webp|jpg|svg))$"
},
{
"type": "string",
"maxLength": 2048,
"pattern": "^https:\\/\\/[^@\\s/\\\\]+(?:[/?#][^\\s\\\\]*)?$"
}
]
}
},
"categories": {
@@ -214,6 +232,24 @@
"pattern": "^[a-zA-Z0-9_-]{1,80}$"
}
},
"images": {
"default": [],
"maxItems": 10,
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"pattern": "^\\/(?:media\\/[a-f0-9-]+\\.webp|images\\/[a-z0-9-]+\\.(?:webp|jpg|svg))$"
},
{
"type": "string",
"maxLength": 2048,
"pattern": "^https:\\/\\/[^@\\s/\\\\]+(?:[/?#][^\\s\\\\]*)?$"
}
]
}
},
"timers": {
"default": [],
"maxItems": 10,
@@ -250,6 +286,7 @@
"title",
"text",
"ingredients",
"images",
"timers"
],
"additionalProperties": false
+10
View File
@@ -97,6 +97,7 @@
"kaese",
"salz"
],
"images": [],
"timers": []
},
{
@@ -109,6 +110,7 @@
"oel",
"kaese"
],
"images": [],
"timers": [
{
"id": "roesten",
@@ -124,6 +126,7 @@
"ingredients": [
"pasta"
],
"images": [],
"timers": [
{
"id": "nudeln",
@@ -140,6 +143,7 @@
"zitrone",
"salz"
],
"images": [],
"timers": []
}
],
@@ -256,6 +260,7 @@
"tomaten",
"gurke"
],
"images": [],
"timers": []
},
{
@@ -265,6 +270,7 @@
"ingredients": [
"kichererbsen"
],
"images": [],
"timers": [
{
"id": "roesten",
@@ -283,6 +289,7 @@
"wasser",
"salz"
],
"images": [],
"timers": []
}
],
@@ -386,6 +393,7 @@
"kartoffeln",
"zwiebel"
],
"images": [],
"timers": []
},
{
@@ -396,6 +404,7 @@
"oel",
"bruehe"
],
"images": [],
"timers": [
{
"id": "suppe",
@@ -412,6 +421,7 @@
"bohnen",
"kraeuter"
],
"images": [],
"timers": [
{
"id": "bohnen",
+5
View File
@@ -107,6 +107,7 @@
"wasser",
"pfeffer"
],
"images": [],
"timers": []
},
{
@@ -114,6 +115,7 @@
"title": "Geschmack entwickeln lassen",
"text": "Die Masse zugedeckt mindestens eine Stunde im Kühlschrank ruhen lassen.",
"ingredients": [],
"images": [],
"timers": [
{
"id": "ruhezeit",
@@ -127,6 +129,7 @@
"title": "Flache Laibchen formen",
"text": "Mit angefeuchteten Händen je Portion ein etwa 1,5 cm dickes Laibchen formen. In die Mitte eine leichte Mulde drücken.",
"ingredients": [],
"images": [],
"timers": []
},
{
@@ -134,6 +137,7 @@
"title": "Kräftig grillen",
"text": "Grill oder Grillpfanne vorheizen. Laibchen von beiden Seiten je etwa fünf bis sechs Minuten braten. Faschiertes vollständig durchgaren: im Kern mindestens 70 °C für zwei Minuten erreichen.",
"ingredients": [],
"images": [],
"timers": [
{
"id": "erste-seite",
@@ -155,6 +159,7 @@
"brot",
"ajvar"
],
"images": [],
"timers": []
}
],
+5
View File
@@ -107,6 +107,7 @@
<ref>wasser</ref>
<ref>pfeffer</ref>
</ingredients>
<images></images>
<timers></timers>
</step>
<step>
@@ -114,6 +115,7 @@
<title>Geschmack entwickeln lassen</title>
<text>Die Masse zugedeckt mindestens eine Stunde im Kühlschrank ruhen lassen.</text>
<ingredients></ingredients>
<images></images>
<timers>
<timer>
<id>ruhezeit</id>
@@ -127,6 +129,7 @@
<title>Flache Laibchen formen</title>
<text>Mit angefeuchteten Händen je Portion ein etwa 1,5 cm dickes Laibchen formen. In die Mitte eine leichte Mulde drücken.</text>
<ingredients></ingredients>
<images></images>
<timers></timers>
</step>
<step>
@@ -134,6 +137,7 @@
<title>Kräftig grillen</title>
<text>Grill oder Grillpfanne vorheizen. Laibchen von beiden Seiten je etwa fünf bis sechs Minuten braten. Faschiertes vollständig durchgaren: im Kern mindestens 70 °C für zwei Minuten erreichen.</text>
<ingredients></ingredients>
<images></images>
<timers>
<timer>
<id>erste-seite</id>
@@ -155,6 +159,7 @@
<ref>brot</ref>
<ref>ajvar</ref>
</ingredients>
<images></images>
<timers></timers>
</step>
</steps>