diff --git a/src/main/java/eu/m724/blog/BlogBuilder.java b/src/main/java/eu/m724/blog/BlogBuilder.java index 591e9bb..2527a3d 100644 --- a/src/main/java/eu/m724/blog/BlogBuilder.java +++ b/src/main/java/eu/m724/blog/BlogBuilder.java @@ -3,6 +3,7 @@ package eu.m724.blog; import eu.m724.blog.data.Feed; import eu.m724.blog.data.Post; import eu.m724.blog.data.Site; +import eu.m724.blog.template.TemplateRenderer; import org.apache.commons.io.file.PathUtils; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.lib.RepositoryBuilder; diff --git a/src/main/java/eu/m724/blog/template/TemplateExtension.java b/src/main/java/eu/m724/blog/template/TemplateExtension.java new file mode 100644 index 0000000..54eb917 --- /dev/null +++ b/src/main/java/eu/m724/blog/template/TemplateExtension.java @@ -0,0 +1,39 @@ +package eu.m724.blog.template; + +import io.pebbletemplates.pebble.extension.AbstractExtension; +import io.pebbletemplates.pebble.extension.Function; +import io.pebbletemplates.pebble.template.EvaluationContext; +import io.pebbletemplates.pebble.template.PebbleTemplate; + +import java.util.List; +import java.util.Map; + +public class TemplateExtension extends AbstractExtension { + @Override + public Map getFunctions() { + return Map.of( + "static", new Function() { + @Override + public List getArgumentNames() { + return List.of("path"); + } + + @Override + public Object execute(Map args, PebbleTemplate self, EvaluationContext context, int lineNumber) { + return "/static/" + args.get("path"); // TODO for more advanced stuff + } + }, + "asset", new Function() { + @Override + public List getArgumentNames() { + return List.of("path"); + } + + @Override + public Object execute(Map args, PebbleTemplate self, EvaluationContext context, int lineNumber) { + return "/assets/" + args.get("path"); // TODO for more advanced stuff + } + } + ); + } +} diff --git a/src/main/java/eu/m724/blog/TemplateRenderer.java b/src/main/java/eu/m724/blog/template/TemplateRenderer.java similarity index 63% rename from src/main/java/eu/m724/blog/TemplateRenderer.java rename to src/main/java/eu/m724/blog/template/TemplateRenderer.java index 5378e4f..5930d5f 100644 --- a/src/main/java/eu/m724/blog/TemplateRenderer.java +++ b/src/main/java/eu/m724/blog/template/TemplateRenderer.java @@ -1,4 +1,4 @@ -package eu.m724.blog; +package eu.m724.blog.template; import eu.m724.blog.data.Post; import eu.m724.blog.data.Site; @@ -35,35 +35,7 @@ public class TemplateRenderer { var pebbleEngine = new PebbleEngine.Builder() .loader(loader) - .extension(new AbstractExtension() { - @Override - public Map getFunctions() { - return Map.of( - "static", new Function() { - @Override - public List getArgumentNames() { - return List.of("path"); - } - - @Override - public Object execute(Map args, PebbleTemplate self, EvaluationContext context, int lineNumber) { - return "/static/" + args.get("path"); // TODO for more advanced stuff - } - }, - "asset", new Function() { - @Override - public List getArgumentNames() { - return List.of("path"); - } - - @Override - public Object execute(Map args, PebbleTemplate self, EvaluationContext context, int lineNumber) { - return "/assets/" + args.get("path"); // TODO for more advanced stuff - } - } - ); - } - }) + .extension(new TemplateExtension()) .build(); this.indexTemplate = pebbleEngine.getTemplate("index_template");