From 63ea67e4c3c8caa2cf0dc6d7c940981bd40b3974 Mon Sep 17 00:00:00 2001 From: Stanisław Zagórowski Date: Mon, 15 Jan 2024 14:21:34 +0100 Subject: all: move out from luax/ --- reluax.luax | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 reluax.luax (limited to 'reluax.luax') diff --git a/reluax.luax b/reluax.luax new file mode 100644 index 0000000..1cfc04c --- /dev/null +++ b/reluax.luax @@ -0,0 +1,72 @@ +local Common = require("common") +local Navbar = require("components.navbar") +local AnimatedBg = require("components.animated_bg") + +local Home = require("pages.home") +local Projects = require("pages.projects") +local Games = require("pages.games") +local Contact = require("pages.contact") +local Blogpost = require("pages.blogpost") +local Blog = require("pages.blog") +local NotFound = require("not_found") + +local blogposts = require("blog.posts") + +math.randomseed(os.time()) + +local function wrap_component(component) + return + + +
+
+ {$ component $} + +
+
+end + +local function route(path) + if path == '/' then + return 200, wrap_component() + elseif path == '/projects' then + return 200, wrap_component() + elseif path == '/games' then + return 200, wrap_component() + elseif path == '/contact' then + return 200, wrap_component() + elseif path == '/blog' then + return 200, wrap_component() + elseif reluax.url_matches('/blog/{slug}', path) then + local slug = reluax.url_extract('/blog/{slug}', path).slug + -- blogposts is a list of blogposts, with the slug a property of each + local post = nil + for _, p in ipairs(blogposts) do + if p.slug == slug then + post = p + break + end + end + if post then + local article = + + +
+
+ + +
+
+ + return 200, article + end + end + + return 404, NotFound() +end + +return { + name = "duckonaut.dev", + route = route +} + -- cgit v1.3.1