From 8a4b5556746f08a19bbf035dc498519d6557298a Mon Sep 17 00:00:00 2001 From: Roman Smirnov Date: Thu, 2 Jan 2025 23:55:01 +0300 Subject: [PATCH] Add TemplateEngine --- app/src/main/java/hexlet/code/App.java | 14 ++++++++++++-- app/src/main/resources/templates/.jteroot | 0 app/src/main/resources/templates/index.jte | 5 +++++ .../main/resources/templates/layout/page.jte | 17 +++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 app/src/main/resources/templates/.jteroot create mode 100644 app/src/main/resources/templates/index.jte create mode 100644 app/src/main/resources/templates/layout/page.jte diff --git a/app/src/main/java/hexlet/code/App.java b/app/src/main/java/hexlet/code/App.java index f9b3279..5e69f23 100644 --- a/app/src/main/java/hexlet/code/App.java +++ b/app/src/main/java/hexlet/code/App.java @@ -2,6 +2,9 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import gg.jte.ContentType; +import gg.jte.TemplateEngine; +import gg.jte.resolve.ResourceCodeResolver; import hexlet.code.repository.BaseRepository; import io.javalin.Javalin; import io.javalin.rendering.template.JavalinJte; @@ -38,10 +41,10 @@ public static Javalin getApp() throws IOException, SQLException { var app = Javalin.create(config -> { config.bundledPlugins.enableDevLogging(); - config.fileRenderer(new JavalinJte()); + config.fileRenderer(new JavalinJte(createTemplateEngine())); }); - app.get("/", ctx -> ctx.result("Hello World")); + app.get("/", ctx -> ctx.render("index.jte")); return app; } @@ -61,4 +64,11 @@ private static String readResourceFile(String fileName) throws IOException { return reader.lines().collect(Collectors.joining("\n")); } } + + private static TemplateEngine createTemplateEngine() { + ClassLoader classLoader = App.class.getClassLoader(); + ResourceCodeResolver codeResolver = new ResourceCodeResolver("templates", classLoader); + TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html); + return templateEngine; + } } diff --git a/app/src/main/resources/templates/.jteroot b/app/src/main/resources/templates/.jteroot new file mode 100644 index 0000000..e69de29 diff --git a/app/src/main/resources/templates/index.jte b/app/src/main/resources/templates/index.jte new file mode 100644 index 0000000..6237cbf --- /dev/null +++ b/app/src/main/resources/templates/index.jte @@ -0,0 +1,5 @@ +@template.layout.page( +content = @` +

"Hello World"

+` +) \ No newline at end of file diff --git a/app/src/main/resources/templates/layout/page.jte b/app/src/main/resources/templates/layout/page.jte new file mode 100644 index 0000000..cdf1060 --- /dev/null +++ b/app/src/main/resources/templates/layout/page.jte @@ -0,0 +1,17 @@ +@import gg.jte.Content +@param Content content + + + + + + + Main page + + +${content} + +