صفحات

توجد أجزاء قليلة لكل صفحة. وتشمل هذه التخطيط، المحتوى، وخيارات اللغة.

التخطيط هو HTML الذي يحيط بالمحتوى. يشمل الرأس، والتذييل، وأي عناصر أخرى تتكرر عبر جميع الصفحات. يتم تعريف هذا التخطيط في صفحة أخرى كدالة TypeScript.

المحتوى هو HTML الفريد لكل صفحة. نحن نعرفه كما هو موضح أدناه. تأكد من تضمين الاستدعاءات إلى i18Next.t حسب الاقتضاء لدعم الترجمات.

خيارات اللغة هي اللغات المختلفة التي تتوفر بها الصفحة. نقوم بتعريفها في البداية. تربط هذه الخيارات المسار ووظيفة الصفحة الفردية معًا. يتم التعامل مع ترجمة عناوين URL ضمن ذلك.

TypeScript - pages/ExamplePage.ts
import i18next from "../GlobalSitesCore/i18n";
import { Layout } from "../Layout";
import { RenderProps, renderLanguageFiles } from "../GlobalSitesCore/languages";
import { FileResult } from "../GlobalSitesCore/FileResult";

export async function ExamplePagePages(): Promise<FileResult[]> {
  return renderLanguageFiles({
    subDirectoryInEnglish: undefined,
    fileNameInEnglish: "example-page",
    includeInSitemap: true,
    render: (props) => ExamplePage(props),
  });
}

interface ExamplePageProps extends RenderProps {}

export function ExamplePage(props: ExamplePageProps): string {
  var title = i18next.t(`Example Page`);
  var metaDescription = i18next.t(`This is an example page.`);

  return Layout({
    lang: props.option.code,
    title: title,
    description: metaDescription,
    languageOptions: props.allOptions,
    content: /* HTML */ `
      <h1>${title}</h1>
      <p>${metaDescription}</p>
      <!-- Add more content as needed -->
    `,
  });
}