diff options
author | metamuffin <metamuffin@yandex.com> | 2021-12-19 20:06:51 +0100 |
---|---|---|
committer | metamuffin <metamuffin@yandex.com> | 2021-12-19 20:06:51 +0100 |
commit | abb4aa6f47e91cffe7775095d8949b65af100480 (patch) | |
tree | 0e0cd2f6241a94d17b2815a22a68398d8c40846d /source/index.ts | |
parent | df5b106f9a782f66a036ebc3ce3dc39b82363acf (diff) | |
download | metamuffin-website-abb4aa6f47e91cffe7775095d8949b65af100480.tar metamuffin-website-abb4aa6f47e91cffe7775095d8949b65af100480.tar.bz2 metamuffin-website-abb4aa6f47e91cffe7775095d8949b65af100480.tar.zst |
moved evil
Diffstat (limited to 'source/index.ts')
-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") |