Hi <@U0E2MNCPN>! I'm not sure this is what you ar...
# kotlinx-html
c
Hi @dmcg! I'm not sure this is what you are looking for, but I have responded to a similar question before in this channel with the following snippet from our code base that we use for the rare case that we want to respond with an HTML "snippet" (= just a fragment, no proper HTML document):
Copy code
/** Evaluate a TemplateRenderer block into a String. Used in email rendering. */
fun stringFromHtml(renderer: TemplateRenderer): String {
  return StringBuilder().apply {
    append("<!DOCTYPE html>\n")
    appendHTML().renderer()
  }.toString()
}

/** Evaluate a TemplateRenderer block into a RePlay RenderHtml Result. <------- so this would be different for KTor! */
fun resultFromHtml(renderer: TemplateRenderer): RenderHtml {
  return RenderHtml(stringFromHtml(renderer))
}

typealias TemplateRenderer = TagConsumer<*>.() -> Unit

typealias LayoutBuilder<T> = TagConsumer<*>.(data: T, renderer: TemplateRenderer) -> Unit

fun <T> layout(builder: LayoutBuilder<T>): LayoutBuilder<T> {
  return { data, renderer -> builder(data, renderer) }
}

// In a render method we simply do:
fun render(input: Whatever): RenderHtml {
  return resultFromHtml {
    table {
      tr {
        +input.toString()
      }
    }
  }
}