aboutsummaryrefslogtreecommitdiffstats
path: root/app/builder/renderPage.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/builder/renderPage.ts')
-rw-r--r--app/builder/renderPage.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/builder/renderPage.ts b/app/builder/renderPage.ts
new file mode 100644
index 0000000..7dff22c
--- /dev/null
+++ b/app/builder/renderPage.ts
@@ -0,0 +1,26 @@
+import { Page, PageDirectory } from "./pageDirectory";
+import ejs from 'ejs';
+import path from 'path';
+import buildInfo from "../config/info.js";
+import htmlMinify from 'html-minifier-terser';
+
+export async function render(page: Page, pageDirectory: PageDirectory): Promise<string> {
+ const options = {
+ page: page,
+ site: {
+ pages: pageDirectory,
+ },
+ build: buildInfo,
+ };
+ const html = await ejs.renderFile(path.join(process.env.VIEWS_DIR, `${page.view}.ejs`), options);
+
+ const minifiedHtml = await htmlMinify.minify(html, {
+ collapseWhitespace: true,
+ removeComments: true,
+ continueOnParseError: true,
+ minifyCSS: true,
+ minifyJS: true,
+ });
+
+ return minifiedHtml;
+}