orangy
class MainTemplate : Template<HTML> {
val content = Placeholder<BODY>()
val menu = TemplatePlaceholder<MenuTemplate>()
override fun HTML.apply() {
head {
title { +"Template" }
}
body {
h1 {
insert(content)
}
insert(MenuTemplate(), menu)
}
}
}
class MulticolumnTemplate(val main: MainTemplate) : Template<HTML> {
val column1 = Placeholder<FlowContent>()
val column2 = Placeholder<FlowContent>()
override fun HTML.apply() {
insert(main) {
content {
div("column") {
insert(column1)
}
div("column") {
insert(column2)
}
}
}
}
}
Something like this?