Pagina's

Er zijn een paar onderdelen op elke pagina. Deze omvatten de indeling, de inhoud en de taalopties.

De lay out is de HTML die de inhoud omhult. Het omvat de header, footer en andere elementen die consistent zijn op alle pagina's. Die lay out is gedefinieerd op een andere pagina als een TypeScript functie.

De inhoud is de HTML die uniek is voor elke pagina. We definiëren het zoals hieronder weergegeven. Zorg ervoor dat je oproepen naar i18Next.t op de juiste manier opneemt om vertalingen te ondersteunen.

De taalopties zijn de verschillende talen waarin de pagina beschikbaar is. We definiëren deze aan het begin. Het verbindt de route en de individuele pagina functie met elkaar. De vertaling van URL's wordt daarbij afhandeld.

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