--- import type { CollectionEntry } from "astro:content"; import { getPostUrlBySlug } from "@utils/url-utils"; import PostCard from "@/components/layout/PostCard.astro"; import { sidebarLayoutConfig, siteConfig } from "@/config"; const { page } = Astro.props; let delay = 0; const interval = 50; // 类型别名避免Fragment语法问题 type PostEntry = CollectionEntry<"posts">; // 检查是否启用双侧边栏 const isBothSidebars = sidebarLayoutConfig.position === "both"; const masonryEnabled = siteConfig.postListLayout.grid.masonry; const gridColumns = siteConfig.postListLayout.grid.columns || 2; // 根据配置设置初始布局模式,避免闪烁 const defaultLayout = siteConfig.postListLayout.defaultMode || "list"; const gridCols = !isBothSidebars && gridColumns === 3 ? "md:grid-cols-2 lg:grid-cols-3" : "md:grid-cols-2"; const initialLayoutClass = defaultLayout === "grid" ? `grid grid-cols-1 ${gridCols} gap-4 grid-mode` : "flex flex-col gap-4 md:gap-4 list-mode"; ---