LAB / EXPLORATION
TypeScript Lab: Template to Generated Page
Planned
LAB 117 — Static Generation
Fill a page template and write the completed HTML file.
LAB
TypeScript Lab: Template to Generated Page
Preview coming soon
TypeScript Lab: Template to Generated Page
Concept
Template composition combines reusable shell markup with generated content.
Concept
Template composition combines reusable shell markup with generated content.
Objective & Explanation
What the project should make visible and why the concept matters.Learning Target
Objective
Fill a page template and write the completed HTML file.
Explanation
Template composition combines reusable shell markup with generated content.
Project Plan
Structure, technologies, data boundary, and source connection.Build Instructions
Build only the focused behavior, then use the visual layer to inspect it.Setup
Create the standalone project folder and listed files.Install TypeScript locally and initialize the compiler configuration.
Implement
Implement the smallest version that demonstrates the concept.- Create a small source dataset or query the learning database.
- Transform the data into HTML with the focused generator function.
Run & Inspect
Write the generated file and open it in the browser.Change one input or action and confirm the visible result changes for the expected reason.
Code & Configuration
Starter configuration plus the focused implementation example.Focused TypeScript
Implement this behavior first, then alter the input.const template = readFileSync("tpl/page.html", "utf8");
const html = replaceTemplateValues(template, {
TITLE: escapeHtml(record.title),
CONTENT: renderCard(record),
});
writeFileSync("output/page.html", html, "utf8");Starter Configuration
Keep the project independently buildable.package.json
{
"type": "module",
"scripts": {
"build": "tsc",
"start": "npm run build && node --enable-source-maps dist/server.js"
},
"devDependencies": {
"@types/node": "^26.4.0",
"typescript": "^7.0.2"
}
}tsconfig.json
{
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist",
"target": "ES2022",
"module": "ES2022",
"lib": ["ES2022", "DOM"],
"types": ["node"],
"strict": true,
"sourceMap": true
},
"include": ["src/**/*.ts"]
}Expected Visual Result
The output is the proof that the concept is working.Visible Proof
The browser should visibly demonstrate: fill a page template and write the completed HTML file.
Data: JSON