หน้า

แต่ละหน้าจะมีหลายส่วน ซึ่งรวมถึงเค้าโครง เนื้อหา และตัวเลือกภาษา

เลย์เอาต์คือ 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 -->
    `,
  });
}