summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/index.ts15
1 files changed, 8 insertions, 7 deletions
diff --git a/source/index.ts b/source/index.ts
index 9c4fa90..a9ee059 100644
--- a/source/index.ts
+++ b/source/index.ts
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: AGPL-3.0-only
-import { Application, Router, Response } from "https://deno.land/x/oak/mod.ts";
+import { Application, Router, Response, Request } from "https://deno.land/x/oak/mod.ts";
import { compile, compileTemplate } from "https://deno.land/x/pug/mod.ts";
@@ -11,19 +11,20 @@ const renderEnv = {
}
const templates: Map<string, compileTemplate> = new Map()
-async function render(response: Response, name: string) {
+async function render(response: Response, request: Request, name: string) {
const template = templates.get(name) ?? compile(await Deno.readTextFile(`./views/${name}.pug`), { filename: `./views/${name}.pug`, name: name })
templates.set(name, template)
- response.body = template(renderEnv)
+ let js = request.url.search == "?with-evil-javascript-enabled"
+ response.body = template({ js, ...renderEnv })
}
router.get("/", ({ response }) => response.redirect("/about"))
-router.get("/about", ({ response }) => render(response, "about"))
-router.get("/projects", ({ response }) => render(response, "projects"))
-router.get("/contact", ({ response }) => render(response, "contact"))
-router.get("/links", ({ response }) => render(response, "links"))
+router.get("/about", c => render(c.response, c.request, "about"))
+router.get("/projects", c => render(c.response, c.request, "projects"))
+router.get("/contact", c => render(c.response, c.request, "contact"))
+router.get("/links", c => render(c.response, c.request, "links"))
router.get("/licence", async ({ response }) => {
const content = await Deno.readTextFile("LICENCE")