レシピ変換 は何をしますか?
概要
既存のレシピをCooklang形式に変換します:
- URL - CookCLIを使用してレシピサイトからインポート
- プレーンテキスト - 貼り付けられたレシピを手動で解析
- その他の形式 - JSON、YAML、マークダウンのレシピ
このスキルは以下の場合に使用します:
- ウェブサイトからレシピを保存する
- 手書きレシピをデジタル化する
- 他の形式から変換する
プロセス
ステップ1: ソースの特定
質問: 「何を変換しますか?」
- URL - インポートするウェブサイトのリンク
- 貼り付けテキスト - どこかからコピーしたレシピ
- ファイル - 別の形式の既存ファイル
ステップ2: インポートまたは解析
URLの場合(CookCLIを使用):
cook import "https://example.com/recipe"
CookCLIのインポートが失敗した場合(未対応サイト)は、手動変換にフォールバックします。
貼り付けテキストまたは未対応サイトの場合:
- タイトルを抽出
- 分量/出来上がり数を特定
- 材料リストを解析(数量、単位を探す)
- 手順をステップに分割
- 記載されている調理時間を記録
- 必要な調理器具を特定
ステップ3: Cooklangを生成
適切にフォーマットされた .cook ファイルを作成:
- メタデータ - 抽出した情報を含むYAMLフロントマター
- 材料 -
@と適切な数量形式でマーク - 調理器具 - 機器を
#でマーク - タイマー - 時間を抽出し
~でマーク - 手順 - 各ステップを1段落ずつ
ステップ4: 不足部分を補完
不足情報の入力を促す:
- 「レシピに人数の記載がありません。何人分ですか?」
- 「調理時間の記載がありません。おおよその時間は?」
ステップ5: 確認と保存
変換結果を表示し、確認:
- 「この変換は正確ですか?」
- 「どこに保存しますか?」
例
ユーザー: 「https://example.com/banana-bread を変換して」
実行:
cook import "https://example.com/banana-bread"
成功した場合は出力を保存。失敗した場合は手動変換:
ユーザー: 「このレシピを変換して: バナナブレッド 1斤分 熟したバナナ3本、溶かしバター1/3カップ、砂糖3/4カップ、卵1個、バニラ小さじ1、重曹小さじ1、塩ひとつまみ、小麦粉1.5カップ オーブンを350°Fに予熱。バナナをつぶし、バター、砂糖、卵、バニラを混ぜる。乾燥材料を加える。パン型に流し入れる。60分焼く。」
生成結果:
---
title: Banana Bread
servings: 8
time: 1 hour 15 minutes
prep time: 15 minutes
cook time: 60 minutes
source: (add original source if known)
tags: [baking, breakfast, dessert]
calories: 280 kcal
carbohydrates: 52 g
protein: 4 g
fat: 7 g
fiber: 2 g
---
#oven{} を350°Fに予熱する。
#large mixing bowl{} で @ripe bananas{3} が滑らかになるまでつぶす。
@melted butter{1/3%cup}、@sugar{3/4%cup}、@egg{1}、@vanilla extract{1%tsp} を混ぜ合わせる。
@baking soda{1%tsp}、@salt{1%pinch}、@all-purpose flour{1.5%cups} を加え、混ざるまでかき混ぜる。
生地を油を塗った #loaf pan{} に流し入れる。
~oven{60%minutes} 焼く、または中心に竹串を刺して何もついてこなくなるまで焼く。
冷ましてから切る。
リファレンス
CookCLI インポート
# 基本インポート
cook import "https://example.com/recipe"
# 名前を指定して保存
cook import "https://example.com/recipe" -o "My Recipe.cook"
対応サイト: CookCLIはrecipe-scrapersライブラリを使用します。ほとんどの主要レシピサイトで動作します。インポートが失敗した場合は手動変換を使用します。
手動変換パターン
材料パターンの認識:
- "3 large eggs" →
@large eggs{3} - "1 cup flour" →
@flour{1%cup} - "salt to taste" →
@salt - "2-3 cloves garlic" →
@garlic{2-3%cloves} - "1/2 tsp vanilla" →
@vanilla{1/2%tsp}
時間パターン:
- "bake for 30 minutes" →
~oven{30%minutes} - "simmer 1 hour" →
~{1%hour} - "rest 10-15 min" →
~{10-15%minutes}
調理器具パターン:
- "large bowl" →
#large mixing bowl{} - "9x13 pan" →
#9x13 baking pan{} - "in a skillet" →
#skillet{}
メタデータ抽出
以下の一般的なフィールドを探します:
- タイトル: レシピ名、通常は見出し
- 人数: 「4人分」「12個分」「2カップ分」
- 時間: 「合計時間: 45分」「準備: 15分、調理: 30分」
- ソース: 元のURLまたは「...を参考に」
- 作者: クレジットされているレシピ作成者
栄養情報(1食あたり) — 存在する場合は必ず抽出:
calories— kcalcarbohydrates— gprotein— gfat— gfiber— gsugar— gsaturated_fat— gsodium— mg
栄養情報がJSで動的にレンダリングされるサイト(例:lidl-kochen.de)の場合は、常に /print/ URLバリアントを取得してください。すべての値が含まれた静的なPDFが返されます。
Cooklang構文の注意点
- YAMLフロントマターは
---で囲む(>>は不可) - 複数単語の材料:
@ground black pepper{} - 単位付き数量:
{500%g}({500g}ではない) - 各ステップは空白行で区切る