diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/index.ts | 15 |
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") |