--- import { getCollection, getEntry, type CollectionEntry } from "astro:content"; import MainLayout from "../../layouts/MainLayout.astro"; // 定义Props类型 export interface Props { entry: CollectionEntry<"cuisine">; } // 生成静态路径 export async function getStaticPaths() { const cuisines = await getCollection("cuisine"); return cuisines.map((entry) => ({ params: { slug: entry.slug }, props: { entry }, })); } // 获取当前美食数据 const { entry } = Astro.props; const { Content } = await entry.render(); // 获取相关美食 const allCuisines = await getCollection("cuisine"); const relatedCuisines = allCuisines .filter( (item) => item.slug !== entry.slug && (item.data.category === entry.data.category || item.data.tags.some((tag) => entry.data.tags.includes(tag))) ) .slice(0, 3); ---
{entry.data.title}
首页 / 美食 / {entry.data.title}

{entry.data.title}

{entry.data.tags.map((tag) => ( {tag} ))}

{entry.data.description}

{entry.data.city && entry.data.city.length > 0 && (
地域: {entry.data.city.map((cityName: string) => ( {cityName} ))}
)}
{entry.data.ingredients && entry.data.ingredients.length > 0 && (

🥘 主要食材

{entry.data.ingredients.map((ingredient) => (
{ingredient}
))}
)}

⏱️ 烹饪信息

烹饪时间 {entry.data.cookTime || '45分钟'}
难度等级 {entry.data.difficulty || '中等'}
{relatedCuisines.length > 0 && (

🍽️ 相关美食

{relatedCuisines.map((cuisine) => (
{cuisine.data.title}

{cuisine.data.title}

{cuisine.data.category}

))}
)}