family-menu

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Family Menu Generator

家庭菜单生成器

This skill creates beautiful, research-backed weekly dinner menus designed for families, with a focus on high-protein meals, seasonal ingredients, and practical leftover planning.
本工具为家庭打造美观、有调研依据的每周晚餐菜单,主打高蛋白餐食、应季食材,兼顾实用的剩菜规划。

Key Features

核心功能

  • Protein-focused meals: Every meal emphasizes protein sources
  • Leftover detection: Automatically identifies opportunities to use leftovers
  • Local restaurant suggestions: Searches for restaurants within 25 miles of user's location
  • Homemade Pizza Fridays: Periodically includes fun pizza nights
  • Seasonal ingredients: Researches and incorporates seasonal produce
  • Random beautiful designs: 5 different design styles (fun & colorful, clean & modern, rustic, elegant, bold & playful)
  • Print-ready PDFs: Optimized for 8.5x11 paper to post on refrigerator
  • 高蛋白餐食:每餐都主打蛋白质来源
  • 剩菜识别:自动识别剩菜利用的机会
  • 本地餐厅推荐:搜索用户所在地25英里范围内的餐厅
  • 自制披萨周五:定期加入有趣的披萨之夜
  • 应季食材:调研并融入当季食材
  • 随机精美设计:5种不同设计风格(趣味多彩风、简洁现代风、乡村风、优雅风、大胆活泼风)
  • 适合打印的PDF:针对8.5x11英寸纸张优化,可张贴在冰箱上

Workflow

工作流程

1. Gather Information

1. 收集信息

When a user requests a menu, first determine what ingredients or preferences they have:
Ask the user:
  • "Do you have any ingredients on hand that you'd like me to incorporate into this week's menu?"
  • "Any dietary restrictions or preferences I should know about?"
  • "Any meals you're craving this week?"
If the user doesn't provide specific ingredients: Assume all ingredients will be purchased from the grocery store and proceed with planning.
当用户请求生成菜单时,首先确定用户拥有的食材或饮食偏好:
询问用户:
  • "你手头有没有想要融入本周菜单的食材?"
  • "有没有我需要了解的饮食限制或偏好?"
  • "这周你想吃什么餐食?"
若用户未提供特定食材: 假设所有食材都将从杂货店采购,继续进行规划。

2. Research Phase

2. 调研阶段

Use web search to gather information:
Seasonal Ingredients:
  • Search for current seasonal produce and proteins (consider the current month)
  • Example: "seasonal vegetables October" or "fall produce in season"
Recipe Ideas:
  • Search for high-protein recipes incorporating seasonal ingredients
  • Example: "high protein chicken recipes with butternut squash"
  • Look for recipes with prep times and protein content
Restaurant Options:
  • Search for restaurants near the user's zip code (20136 for this user)
  • Use local search: "restaurants near 20136" or "best dinner restaurants Centreville VA"
  • Select one interesting option within 25 miles for restaurant night
Leftover Assessment:
  • When planning, identify meals that will likely produce leftovers based on:
    • Large batch recipes (roasts, casseroles, soups)
    • Recipes that serve 4-6+ people
    • Meals that reheat well
  • Schedule a "leftovers" meal 1-2 days after these large meals
通过网络搜索收集信息:
应季食材:
  • 搜索当前当季的食材和蛋白质(结合当前月份)
  • 示例:"十月应季蔬菜"或"秋季当季食材"
菜谱灵感:
  • 搜索融入应季食材的高蛋白菜谱
  • 示例:"搭配胡桃南瓜的高蛋白鸡肉菜谱"
  • 寻找包含准备时间和蛋白质含量的菜谱
餐厅选项:
  • 搜索用户邮政编码附近的餐厅(本用户默认邮编为20136)
  • 使用本地搜索:"20136附近的餐厅"或"弗吉尼亚州森特维尔最佳晚餐餐厅"
  • 选择25英里范围内的一个特色餐厅作为外出就餐日的选项
剩菜评估:
  • 规划时,根据以下因素识别可能产生剩菜的餐食:
    • 大份菜谱(烤肉、砂锅菜、汤品)
    • 可供4-6人以上食用的菜谱
    • 适合二次加热的餐食
  • 在这些大餐后的1-2天安排“剩菜餐”

3. Menu Planning

3. 菜单规划

Create a 7-day dinner menu following these guidelines:
Monday-Thursday:
  • Focus on variety of proteins (chicken, beef, fish, pork, turkey)
  • Include prep times
  • Note the primary protein source
  • Consider cooking methods variety
Friday:
  • Every 2-3 weeks: "Homemade Pizza Friday 🍕"
  • Other Fridays: Regular protein-focused meals
Saturday:
  • Restaurant night approximately once per week
  • Include the restaurant name and a brief note
  • Example: "Restaurant Night - Try the new Thai place on Main Street"
Sunday:
  • Often a good day for slow-cooker meals or batch cooking
  • Meals that can provide leftovers for the week ahead
Leftover Days:
  • Explicitly mark 1-2 days as using leftovers from specific previous meals
  • Example: "Monday Leftovers - Use remaining pot roast and vegetables"
创建7天晚餐菜单,遵循以下准则:
周一至周四:
  • 主打多样蛋白质(鸡肉、牛肉、鱼肉、猪肉、火鸡肉)
  • 包含准备时间
  • 标注主要蛋白质来源
  • 考虑多样烹饪方式
周五:
  • 每2-3周安排一次“自制披萨周五 🍕”
  • 其他周五:常规高蛋白餐食
周六:
  • 每周约一次外出就餐日
  • 包含餐厅名称和简短说明
  • 示例:"外出就餐日 - 试试主街上新开的泰国餐厅"
周日:
  • 通常适合慢炖锅餐食或批量烹饪
  • 可为本周后续提供剩菜的餐食
剩菜日:
  • 明确标记1-2天为使用特定前序餐食的剩菜
  • 示例:"周一剩菜 - 使用剩余的烤肉和蔬菜"

4. Generate the PDF

4. 生成PDF

Use the
scripts/generate_menu.py
script to create the PDF:
python
from scripts.generate_menu import create_menu_pdf
import datetime

menu_data = {
    'title': 'Family Dinner Menu',
    'subtitle': f'Week of {datetime.datetime.now().strftime("%B %d, %Y")}',
    'meals': [
        {
            'day': 'Monday',
            'name': 'Grilled Salmon with Roasted Brussels Sprouts',
            'protein': 'Salmon fillet (6oz)',
            'prep_time': '30 min',
            'notes': 'Seasonal fall vegetables'
        },
        {
            'day': 'Tuesday',
            'name': 'Monday Leftovers',
            'notes': 'Use remaining salmon and veggies'
        },
        # ... continue for all 7 days
    ]
}
使用
scripts/generate_menu.py
脚本创建PDF:
python
from scripts.generate_menu import create_menu_pdf
import datetime

menu_data = {
    'title': 'Family Dinner Menu',
    'subtitle': f'Week of {datetime.datetime.now().strftime("%B %d, %Y")}',
    'meals': [
        {
            'day': 'Monday',
            'name': 'Grilled Salmon with Roasted Brussels Sprouts',
            'protein': 'Salmon fillet (6oz)',
            'prep_time': '30 min',
            'notes': 'Seasonal fall vegetables'
        },
        {
            'day': 'Tuesday',
            'name': 'Monday Leftovers',
            'notes': 'Use remaining salmon and veggies'
        },
        # ... continue for all 7 days
    ]
}

The function will randomly select a design style

The function will randomly select a design style

design_used = create_menu_pdf(menu_data, output_path)

**Menu Data Structure:**
- `title`: Menu title (usually "Family Dinner Menu" or similar)
- `subtitle`: Date range for the week
- `meals`: List of meal objects with:
  - `day`: Day of the week (required)
  - `name`: Meal name (required)
  - `protein`: Primary protein source (optional but recommended)
  - `prep_time`: Estimated cooking time (optional)
  - `notes`: Special notes like "leftover", "seasonal", "restaurant info" (optional)
design_used = create_menu_pdf(menu_data, output_path)

**菜单数据结构:**
- `title`: 菜单标题(通常为“家庭晚餐菜单”或类似名称)
- `subtitle`: 当周日期范围
- `meals`: 餐食对象列表,包含:
  - `day`: 星期几(必填)
  - `name`: 餐食名称(必填)
  - `protein`: 主要蛋白质来源(可选但推荐)
  - `prep_time`: 预估烹饪时间(可选)
  - `notes`: 特殊说明,如“剩菜”、“应季”、“餐厅信息”(可选)

5. Present to User

5. 向用户展示

After generating the menu:
  1. Show the user a text summary of the week's meals
  2. Provide the PDF link for download
  3. Mention which design style was randomly selected
  4. Offer to regenerate if they want a different design style
生成菜单后:
  1. 向用户展示当周餐食的文字摘要
  2. 提供PDF下载链接
  3. 说明随机选择的设计风格
  4. 若用户想要不同设计风格,提供重新生成选项

Tips for Great Menus

打造优质菜单的小贴士

  • Balance cooking complexity: Mix quick meals with more involved ones
  • Protein variety: Try to avoid repeating the same protein more than twice
  • Leftover strategic placement: Place leftover days 1-2 days after big meals
  • Seasonal excitement: Highlight when you're using seasonal ingredients
  • Restaurant selection: Choose restaurants with good reviews and variety
  • Pizza frequency: Aim for 1-2 pizza nights per month
  • Batch cooking: Sunday is often ideal for slow cooker or big batch meals
  • 平衡烹饪复杂度:将快手餐和耗时餐混合搭配
  • 蛋白质多样性:尽量避免同一蛋白质重复出现超过两次
  • 剩菜策略性安排:将剩菜日安排在大餐后的1-2天
  • 应季食材亮点:突出使用应季食材的部分
  • 餐厅选择:选择评价良好、品类多样的餐厅
  • 披萨频率:每月安排1-2次披萨之夜
  • 批量烹饪:周日通常是慢炖锅或大份餐食的理想时间

Available Design Styles

可用设计风格

The script randomly selects from these designs:
  1. Fun and Colorful: Bright, playful colors perfect for families with kids
  2. Clean and Modern: Minimalist with bold typography
  3. Rustic: Warm earth tones with serif fonts
  4. Elegant: Sophisticated with gold accents
  5. Bold and Playful: Vibrant colors with fun fonts
All designs are optimized for 8.5x11 inch paper and include the meal details in an easy-to-read format.
脚本会从以下设计中随机选择:
  1. 趣味多彩风:明亮活泼的配色,非常适合有孩子的家庭
  2. 简洁现代风:极简风格搭配醒目字体
  3. 乡村风:温暖大地色调搭配衬线字体
  4. 优雅风:精致风格搭配金色装饰
  5. 大胆活泼风:鲜艳配色搭配趣味字体
所有设计均针对8.5x11英寸纸张优化,餐食信息排版易读。

Resources

资源

scripts/generate_menu.py

scripts/generate_menu.py

The main PDF generation script that creates beautiful menus with random design styles. Uses ReportLab library and the bundled fonts.
用于生成带有随机设计风格的精美菜单的主PDF生成脚本。使用ReportLab库和捆绑字体。

assets/fonts/

assets/fonts/

Collection of 36+ fonts used for different design styles, including Poppins, Montserrat, PlayfairDisplay, FredokaOne, Satisfy, Lora, and DejaVu font families.
包含36种以上用于不同设计风格的字体,包括Poppins、Montserrat、PlayfairDisplay、FredokaOne、Satisfy、Lora和DejaVu字体家族。

User Location

用户位置

Default zip code: 20136 (Centreville, Virginia)
  • Use this for restaurant searches
  • 25-mile radius for restaurant recommendations
默认邮政编码:20136(弗吉尼亚州森特维尔)
  • 用于餐厅搜索
  • 餐厅推荐范围为25英里半径