From 7641641ccd0a30d721e8b933b70ad62b694d9fd1 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Thu, 19 Mar 2026 14:27:41 -0500 Subject: [PATCH] test --- src/locale.ts | 9 +++++++++ src/page.ts | 3 ++- src/template.ts | 9 +++++++-- src/templates/default.ts | 15 ++++++++++++++- 4 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 src/locale.ts diff --git a/src/locale.ts b/src/locale.ts new file mode 100644 index 0000000..327f1eb --- /dev/null +++ b/src/locale.ts @@ -0,0 +1,9 @@ +export const LANGUAGES = { + 'en': 'English' +}; + +export type LocaleLanguage = keyof typeof LANGUAGES; + +export type LocaleString = { + [K in LocaleLanguage]:string; +}; \ No newline at end of file diff --git a/src/page.ts b/src/page.ts index 5415f67..fde7e7b 100644 --- a/src/page.ts +++ b/src/page.ts @@ -2,9 +2,10 @@ import { Request, Response } from 'express'; import { SectionData, sectionRender } from "./section"; import TemplateDefault from "./templates/default"; import { templateRender } from './template'; +import { LocaleString } from './locale'; export type Page = { - title?:string; + title?:LocaleString; sections:SectionData[]; } diff --git a/src/template.ts b/src/template.ts index 770d8de..95ab214 100644 --- a/src/template.ts +++ b/src/template.ts @@ -3,12 +3,17 @@ import { Page } from "./page"; export type Template = { name:string; + render:(p:{ + page:Page; + request:Request; + language:Language; + }) => Promise; } -export const templateRender = async (p:{ +export const templateRender = (p:{ page:Page, template:Template, request:Request }):Promise => { - return 'template'; + return p.template.render(p); } \ No newline at end of file diff --git a/src/templates/default.ts b/src/templates/default.ts index 0e18d2a..1e5f8e6 100644 --- a/src/templates/default.ts +++ b/src/templates/default.ts @@ -1,7 +1,20 @@ import { Template } from "../template"; const TEMPLATE_DEFAULT:Template = { - name: 'default' + name: 'default', + render: async p => { + return [ + ``, + ``, + ``, + `${p.page.title[language] || 'Untitled Page'}`, + ``, + ``, + `body`, + ``, + `` + ].join('\n'); + } }; export default TEMPLATE_DEFAULT; \ No newline at end of file