Files
doc.rustdesk.com/v3/src/layouts/PageLayout.astro
T
2026-07-04 10:41:20 +08:00

66 lines
1.6 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';
import type { Lang, LocalePath } from '@/i18n';
export interface Props {
metadata?: MetaData;
i18n?: boolean;
lang?: Lang;
localePaths?: LocalePath[];
alternateLinks?: LocalePath[];
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, lang, localePaths, alternateLinks, structuredDataType, articleData, faqItems } = Astro.props;
const locale = lang || (Astro.currentLocale as Lang);
---
<Layout
metadata={metadata}
i18n={i18n}
lang={locale}
localePaths={localePaths}
alternateLinks={alternateLinks}
structuredDataType={structuredDataType}
articleData={articleData}
faqItems={faqItems}
>
<slot name="announcement">
<Announcement lang={locale} />
</slot>
<slot name="header">
<Header
{...headerData(locale)}
isSticky
showGithubStar
showToggleTheme
i18n={i18n}
lang={locale}
localePaths={localePaths}
/>
</slot>
<main>
<slot />
</main>
<slot name="footer">
<Footer {...footerData(locale) as FD} />
</slot>
</Layout>