--- 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 && } {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 && }
{article.date.year}年{article.date.month}月{article.date.day}日 {article.categories.length > 0 && ·} {article.categories.map((category, index) => {index > 0 && /} {category} )}
{subtitle}