X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FTemplateRenderer.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FTemplateRenderer.kt;h=21eeb2adcc143d9e8fcfc0c0b63f8a7242251f23;hb=1e6ed6655b808480d7dfed38afed70a84872f938;hp=0000000000000000000000000000000000000000;hpb=5b9d7d47f2e3ba720a3d5a5b94146904e5e10632;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/web/page/TemplateRenderer.kt b/src/main/kotlin/net/pterodactylus/sone/web/page/TemplateRenderer.kt new file mode 100644 index 0000000..21eeb2a --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/web/page/TemplateRenderer.kt @@ -0,0 +1,16 @@ +package net.pterodactylus.sone.web.page + +import net.pterodactylus.util.template.* +import java.io.* +import javax.inject.* + +class TemplateRenderer @Inject constructor(private val templateContextFactory: TemplateContextFactory) { + + fun render(template: Template, processor: (TemplateContext) -> Unit = {}): String = + templateContextFactory.createTemplateContext().let { templateContext -> + templateContext.mergeContext(template.initialContext) + processor(templateContext) + StringWriter().also { template.render(templateContext, it) }.toString() + } + +}