v0.7.0: kiskegyed.hu parser, dual measurements, site links as URLs

- New parser for kiskegyed.hu: ingredients (with groups, dual measurements),
  instructions (ol > li > div), tags (section.tags)
- Dual measurement handling: "3 ek (70 g)" extracts alternate measurement
  to comment field
- Cross-site linking: kiskegyed→sobors links are followed to get full recipe
  (mirrors existing sobors→kiskegyed support)
- Supported sites now shown as clickable URLs in the import page
- supported_sites() returns dicts with name and url

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 18:45:25 +01:00
parent 0912311357
commit 20fabb84bf
4 changed files with 193 additions and 5 deletions
+15
View File
@@ -44,6 +44,7 @@ Docker container for importing recipes from Hungarian websites into [Mealie](htt
| streetkitchen.hu | Yes (with groups) | Yes (ol/ul/paragraph) | Yes | Yes (from JSON-LD categories) |
| nosalty.hu | Yes (with groups) | Yes (with section headers) | Yes | Yes |
| sobors.hu | Yes (with groups) | Yes (with section headers, follows linked recipes) | Yes | Yes |
| kiskegyed.hu | Yes (with groups, dual measurements) | Yes (follows sobors.hu links) | Yes | Yes |
| *Other sites* | Fallback (schema.org JSON-LD) | Fallback (schema.org JSON-LD) | Yes (og:image) | Fallback (schema.org keywords) |
### Mindmegette.hu Parser
@@ -96,6 +97,20 @@ Extracts data from the sobors.hu recipe pages:
- **Article-style ingredient fallback**: Pages without the structured `div.hozzavalok-container` are parsed from article-body `h4` + `ul > li` plain text
- **Tags**: `div.cikk-cimkek > ul.cikk-cimkek-list > li > a` (skips generic "Receptek" category)
### Kiskegyed.hu Parser
Extracts data from kiskegyed.hu recipe pages:
- **Title**: `h2` element (with ` - Kiskegyed` suffix stripped)
- **Description**: `section#leadText > p`
- **Image**: `og:image` meta tag
- **Ingredients**: `div.recipe_ingredients``ul.list > li` items; group headers from `<p>` or `<p><em>` elements
- **Ingredient groups**: `<p>Name:</p>` or `<p><em>A ...hez</em></p>` format
- **Dual measurements**: "3 ek (70 g) búzafinomliszt" → qty: 3, unit: ek, food: búzafinomliszt, extra: 70 g
- **Instructions**: `div.recipe_preparation > ol > li > div`
- **Cross-site links**: Pages linking to sobors.hu are followed to get the full recipe
- **Tags**: `section.tags > a > span` (# prefix stripped, "recept" filtered)
### Generic Fallback Parser
For unsupported sites, attempts extraction via: