You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ktor:如何将Markdown渲染的原始HTML注入HTML DSL?

在Ktor HTML DSL中插入原始HTML片段的解决方案

Ktor的HTML DSL默认会对文本做HTML转义处理,直接用+添加原始HTML会被转义成字符实体,无法成为DOM的一部分。要解决这个问题,你可以使用DSL提供的unsafe代码块,它允许直接输出未转义的原始内容。

修改后的代码示例

val rawHtml = renderHtmlFromMarkdown(mdText) // "<p>That came from raw Html</p>"
call.respondHtml(HttpStatusCode.OK) {
    head {
        title {
            +name
        }
    }
    body {
        h1 {
            +"Hello from $name!"
        }
        
        // 插入原始HTML的核心代码
        unsafe {
            raw(rawHtml)
        }
    }
}

关键说明

  • unsafe是Ktor HTML DSL专门用于输出未转义内容的构造器
  • 调用内部的raw()方法传入原始HTML字符串,这段内容就会直接嵌入最终的DOM结构中,不会被转义
  • 执行后生成的HTML响应会完全符合你的预期,原始HTML片段会正常成为页面的一部分

内容的提问来源于stack exchange,提问作者Wesley Chang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:25:19