Seiten

Jede Seite besteht aus mehreren Teilen. Dazu gehören das Layout, der Inhalt und die Sprachoptionen.

Das Layout ist das HTML, das den Inhalt umschließt. Es umfasst den Header, den Footer und alle anderen Elemente, die auf allen Seiten konsistent sind. Dieses Layout ist in einer anderen Seite als TypeScript Funktion definiert.

Der Inhalt ist der HTML Code, der für jede Seite einzigartig ist. Wir definieren ihn wie unten gezeigt. Stellen Sie sicher, dass Sie Aufrufe an i18Next.t entsprechend einfügen, um die Übersetzungen zu unterstützen.

Die Sprachoptionen sind die verschiedenen Sprachen, in denen die Seite verfügbar ist. Wir definieren diese zu Beginn. Sie verbinden die Route und die einzelnen Seitenfunktionen miteinander. Die Übersetzung von URLs wird dabei behandelt.

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 -->
    `,
  });
}