From c4da920843972b6571e978cdc9f9278eb87b7398 Mon Sep 17 00:00:00 2001 From: Elias Haugsbakk Date: Wed, 1 Jul 2026 14:05:14 +0200 Subject: add HTML, CSS and basic routing --- .../java/no/eliashaugsbakk/clams/server/Main.java | 16 +++++++++++++++- .../clams/server/controller/BlogController.java | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/BlogController.java (limited to 'clams-server/src/main/java/no') diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java index 62c1677..200d23d 100644 --- a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java @@ -1,11 +1,25 @@ package no.eliashaugsbakk.clams.server; import io.javalin.Javalin; +import io.javalin.rendering.template.JavalinPebble; +import no.eliashaugsbakk.clams.server.controller.BlogController; public class Main { void main() { + BlogController blogController = new BlogController(); + var app = Javalin.create(config -> { - config.routes.get("/", ctx -> ctx.result("Hello World")); + config.staticFiles.add("/public"); + config.fileRenderer(new JavalinPebble()); + + config.routes.error(404, ctx -> ctx.render("templates/404.html")); + + config.routes.get("/", ctx -> ctx.redirect("/home")); + config.routes.get("/home", ctx -> ctx.render("templates/home.html")); + config.routes.get("/projects", ctx -> ctx.render("templates/projects.html")); + + config.routes.get("/blog/{slug}", blogController::handleGetPost); + config.routes.get("/blog", blogController::handleGetOverview); }).start(7070); } } diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/BlogController.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/BlogController.java new file mode 100644 index 0000000..d4fc9d3 --- /dev/null +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/controller/BlogController.java @@ -0,0 +1,21 @@ +package no.eliashaugsbakk.clams.server.controller; + +import io.javalin.http.Context; +import java.util.Map; + +public class BlogController { + public void handleGetPost(Context ctx) { + ctx.render("templates/post.html", + Map.of("title", "place holder Title", + "published_date", "place holder Release Date", + "author", "place holder Author", + "content", "place holder Content")); + } + + public void handleGetOverview(Context ctx) { + ctx.render("templates/blog.html", Map.of( + "all_posts_by_year", "place holder for all posts", + "recent_posts", " place holder for recent posts" + )); + } +} -- cgit v1.2.3