import gradio as gr from food_data import FOOD_ITEMS def get_food_details(name, image, nutrition_details): """Generate clean HTML content with the image and structured nutrition values.""" # Split the nutrition details into separate lines nutrition_list = nutrition_details.split(", ") formatted_nutrition = "
".join(nutrition_list) return f"""
{name}

{name}

Nutrition

{formatted_nutrition}

""" # Gradio Interface with gr.Blocks() as demo: gr.Markdown("

🍽️ Restaurant Menu 🍽️

") for category, items in FOOD_ITEMS.items(): gr.Markdown(f"

{category} Menu

") with gr.Row(): for item in items: with gr.Column(): # Button for each food item btn = gr.Button(item["name"], elem_id=f"menu-item-{item['name'].lower()}") output_html = gr.HTML() # Output will be formatted HTML # Display clean HTML content on button click btn.click( fn=get_food_details, inputs=[gr.Text(value=item["name"], visible=False), gr.Text(value=item["image"], visible=False), gr.Text(value=item["nutrition"], visible=False)], outputs=output_html ) gr.Markdown("

© 2024 Delicious Restaurant | Designed with ❤️

") demo.launch()