我正在使用lukasjapan/koreander库及其 ktor 支持版本,当我从 kor 文件中调用 ViewModel(Res class) topbar 变量时,它会转义 html 字符串。
这就是我调用 ktor 来提供网页的方式:
suspend fun main() = coroutineScope<Unit> {
System.setProperty(SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "TRACE")
embeddedServer(
Netty,
port = 80,
module = Application::module
).apply { start(wait = true) }
}
data class Res(val topbar: String)
fun Application.module() {
install(KoreanderFeature)
routing {
get("/") {
val text = javaClass.getResource("/templates/topbar.kor").readText()
val resource = Res(Koreander().render(text, Any()))
call.respondKorRes("/templates/index.kor", resource)
}
}
}
这是我的 topbar.kor 文件:这只是为了测试,所以我把它做得很小。
.navbar-custom
%ul.list-unstyled.topnav-menu.float-right.mb-0
%li.d-none.d-sm-block
%form.app-search
这是我的 index.kor 文件:
%html
%head
%body
%p.hello Hello World!
$topbar / <- problem here, this has escaped html, browser interpret it as text