feat: Enhance ingredient parsing to support mixed fractions and add description extraction in recipe parsers

This commit is contained in:
Nils-Johan Gynther
2026-04-12 10:50:59 +02:00
parent 9ca7fcce96
commit 3d4994f24d
5 changed files with 314 additions and 218 deletions
@@ -45,6 +45,9 @@ export class IcaRecipeParser extends RecipeParser {
// Extrahera titel
const name = recipe.name || '';
// Extrahera beskrivning
const description = recipe.description || '';
// Extrahera ingredienser
const ingredients: Array<{ quantity: number; unit: string; name: string; note?: string }> = [];
if (recipe.recipeIngredient && Array.isArray(recipe.recipeIngredient)) {
@@ -75,6 +78,7 @@ export class IcaRecipeParser extends RecipeParser {
return {
name,
description,
ingredients,
instructions,
};
@@ -96,6 +100,15 @@ export class IcaRecipeParser extends RecipeParser {
}
}
// Extrahera beskrivning från meta-taggar
let description = '';
const descMatch = html.match(
/<meta\s+name="description"\s+content="([^"]+)"/i
);
if (descMatch) {
description = descMatch[1].trim();
}
const ingredients: Array<{ quantity: number; unit: string; name: string; note?: string }> = [];
const ingredientRegex =
/<li[^>]*class="[^"]*ingredient[^"]*"[^>]*>([^<]+)<\/li>/gi;
@@ -117,6 +130,7 @@ export class IcaRecipeParser extends RecipeParser {
return {
name,
description,
ingredients,
instructions,
};