--- import '@/styles/global.css' import type { PostLayoutProps } from '@/types' import FormattedDate from '@/components/widgets/FormattedDate.astro' import FootnoteScroll from '@/components/widgets/FootnoteScroll.astro' import BaseHead from '@/components/layout/BaseHead.astro' import Footer from '@/components/layout/Footer.astro' import BackButton from '@/components/ui/BackButton.astro' import TableOfContents from '@/components/ui/TableOfContents.astro' import GradientMask from '@/components/ui/GradientMask.astro' import ImageOptimizer from '@/components/ui/ImageOptimizer.astro' import ImageViewer from '@/components/ui/ImageViewer.astro' import GitHubCard from '@/components/ui/GitHubCard.astro' import LinkCard from '@/components/ui/LinkCard.astro' import NeoDBCard from '@/components/ui/NeoDBCard.astro' import XPOST from '@/components/ui/XPOST.astro' import CopyCode from '@/components/ui/CopyCode.astro' import BaseLayout from '@/layouts/BaseLayout.astro' import { themeConfig } from '@/config' const { title, pubDate, readingTime, toc, image} = Astro.props as PostLayoutProps const postSlug = Astro.url.pathname.split('/').filter(Boolean).pop() || '' const backupImage = `/open-graph/${postSlug}.png` ---
{themeConfig.post.toc && }

{title}

{ themeConfig.post.readingTime && readingTime && ( · {readingTime.text} ) }

Comments

{themeConfig.post.imageViewer && } {themeConfig.post.linkCard && } {themeConfig.general.footer &&