family-menu
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFamily 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 script to create the PDF:
scripts/generate_menu.pypython
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
]
}使用脚本创建PDF:
scripts/generate_menu.pypython
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:
- Show the user a text summary of the week's meals
- Provide the PDF link for download
- Mention which design style was randomly selected
- Offer to regenerate if they want a different design style
生成菜单后:
- 向用户展示当周餐食的文字摘要
- 提供PDF下载链接
- 说明随机选择的设计风格
- 若用户想要不同设计风格,提供重新生成选项
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:
- Fun and Colorful: Bright, playful colors perfect for families with kids
- Clean and Modern: Minimalist with bold typography
- Rustic: Warm earth tones with serif fonts
- Elegant: Sophisticated with gold accents
- 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.
脚本会从以下设计中随机选择:
- 趣味多彩风:明亮活泼的配色,非常适合有孩子的家庭
- 简洁现代风:极简风格搭配醒目字体
- 乡村风:温暖大地色调搭配衬线字体
- 优雅风:精致风格搭配金色装饰
- 大胆活泼风:鲜艳配色搭配趣味字体
所有设计均针对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英里半径