我想使用库kotlin-html
来生成html而不是kotlinx.html。
该库仅产生html文本:
p("A paragraph").render()
// => <p>A paragraph</p>
但是我找不到如何使用Ktor响应html而不是文本
fun Routing.root() {
get("/") {
call.respondText {"<p>A paragraph</p>"}
}
}
此代码将产生一个带有文本<p>A paragraph</p>
的页面,而不是html-page。看来call.respondHtml
仅适用于kotlinx.html DSL。如何使用纯文本做到这一点?
答案 0 :(得分:2)
您可以为ContentType.Text.Html
的{{1}}参数指定ContentType
respondText
如果没有提供call.respondText("<p>foo</p>", ContentType.Text.Html)
,则默认使用 ContentType.Text.Plain
。
答案 1 :(得分:0)
Ktor有一个用于处理kotlinx.html
的特殊模块,因此您可以使用
call.respondHtml {
head {
title { +"Async World" }
}
body {
h1(id = "title") {
+"Title"
}
}
}
在此处查看详细信息:https://ktor.io/servers/features/templates/html-dsl.html