import { cn } from "@/lib/utils"; /** * 文章骨架屏组件。 * * ## 为什么本项目没有使用路由级 `loading.tsx` * * 路由级 `loading.tsx` 会创建 Suspense 边界,Next.js 会**立即以 200 状态** * 流式输出骨架屏;之后页面内的 `notFound()` 只能替换内容,无法再改写已经 * 发出的状态码。 * * 实测结果(Next.js 16.3.8): * - 存在 `app/[locale]/loading.tsx` 时,`/zh/posts/<草稿>` 与 * `/zh/posts/<不存在>` 均返回 **200**(内容却是 404 页面); * - 移除后,二者正确返回 **404**。 * * 对博客而言,让不存在的 URL 返回 200 会被搜索引擎当作有效页面收录, * 属于必须避免的 SEO 缺陷。因此这里**牺牲路由级骨架屏**, * 保证状态码正确;骨架屏仅作为组件按需使用(例如包裹已知存在的 * 慢速数据区块)。 */ export function PostListSkeleton({ count = 6 }: { count?: number }) { return (