Files
doc.rustdesk.com/v3/src/layouts/PageLayout.astro
rustdesk c5bb9c3c09 seo
2026-03-20 14:05:39 +08:00

44 lines
1.2 KiB
Plaintext

---
import Layout from '~/layouts/Layout.astro';
import Header from '~/components/widgets/Header.astro';
import Footer, { type Props as FD } from '~/components/widgets/Footer.astro';
import Announcement from '~/components/widgets/Announcement.astro';
import { headerData, footerData } from '~/navigation';
import type { MetaData } from '~/types';
export interface Props {
metadata?: MetaData;
i18n?: boolean;
structuredDataType?: 'website' | 'article' | 'software' | 'faq';
articleData?: {
title: string;
description?: string;
image?: string;
publishDate?: Date;
updateDate?: Date;
author?: string;
category?: string;
};
faqItems?: Array<{ question: string; answer: string }>;
}
const { metadata, i18n, structuredDataType, articleData, faqItems } = Astro.props;
---
<Layout metadata={metadata} i18n={i18n} structuredDataType={structuredDataType} articleData={articleData} faqItems={faqItems}>
<slot name="announcement">
<Announcement />
</slot>
<slot name="header">
<Header {...headerData(Astro.currentLocale)} isSticky showGithubStar showToggleTheme i18n={i18n} />
</slot>
<main>
<slot />
</main>
<slot name="footer">
<Footer {...footerData(Astro.currentLocale) as FD} />
</slot>
</Layout>