Kotlin: Ktor, как ответить на текст в виде HTML - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу использовать библиотеку kotlin-html для создания html вместо kotlinx.html.Эта библиотека генерирует только html-текст:

p("A paragraph").render()
// => <p>A paragraph</p>

, но я не могу найти способ ответить html вместо текста, используя Ktor

fun Routing.root() {
    get("/") {
        call.respondText {"<p>A paragraph</p>"}
    }
}

Этот код создаст страницу с текстом<p>A paragraph</p> вместо html-страницы.И похоже, что call.respondHtml работает только с kotlinx.html DSL.Как я могу сделать это с помощью простого текста?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Ktor имеет специальный модуль для работы с kotlinx.html, поэтому вы можете использовать

call.respondHtml {
    head {
        title { +"Async World" }
    }
    body {
        h1(id = "title") {
            +"Title"
        }
    }
}

Подробнее см. Здесь: https://ktor.io/servers/features/templates/html-dsl.html

0 голосов
/ 27 сентября 2018

Вы можете указать ContentType.Text.Html для параметра ContentType для respondText

call.respondText("<p>foo</p>", ContentType.Text.Html)

ContentType.Text.Plain используется по умолчанию, если нет ContentType, если предусмотрено.

...