--- import { siteConfig } from '@/site.config'; import { slugify } from '@/lib/content'; import type { BannerTextTone } from '@/types/config'; interface Props { article?: { title: string; date: { year: string; month: string; day: string }; categories: string[]; image?: string; textTone?: BannerTextTone; }; banner?: { title: string; subtitle?: string; image?: string; position?: string; textTone?: BannerTextTone; }; about?: boolean; textTone?: BannerTextTone; } const { article, banner, about = false } = Astro.props; const enabled = Boolean(about || article || banner || siteConfig.banner.enabled); const image = banner ? banner.image : article?.image ?? (about ? undefined : siteConfig.banner.image); const title = about ? siteConfig.site.author.name : (banner?.title ?? article?.title ?? siteConfig.banner.title); const subtitle = banner?.subtitle ?? siteConfig.banner.subtitle; const position = banner?.position ?? siteConfig.banner.position; --- {enabled &&
{image && } {image && }
{about && {`${siteConfig.site.author.name}}

{title}

{article ?

{article.date.year}年{article.date.month}月{article.date.day}日 {article.categories.length > 0 && } {article.categories.map((category, index) => {index > 0 && } {category} )}

: !about && subtitle &&

{subtitle}

}
} {enabled && image && }