페이지

각 페이지에는 몇 가지 부분이 있습니다. 여기에는 레이아웃, 콘텐츠 및 언어 옵션이 포함됩니다.

레이아웃은 콘텐츠를 감싸는 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 -->
    `,
  });
}