Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用kotlinx.HTML编写HTML_Html_Kotlin_Jvm_Kotlinx Html - Fatal编程技术网

使用kotlinx.HTML编写HTML

使用kotlinx.HTML编写HTML,html,kotlin,jvm,kotlinx-html,Html,Kotlin,Jvm,Kotlinx Html,我正在尝试使用kotlinx.html构建html布局页面。我可以创建主页,但无法将其分解为单独函数生成的部分。我不知道如何将在单独函数中创建的html包含到主文档中 我成功地使用了不安全软件,但我认为应该有更好的方法 我的单元测试如下所示: import kotlinx.html.* import kotlinx.html.stream.appendHTML import kotlinx.html.stream.createHTML import org.junit.jupiter.api.T

我正在尝试使用kotlinx.html构建html布局页面。我可以创建主页,但无法将其分解为单独函数生成的部分。我不知道如何将在单独函数中创建的html包含到主文档中

我成功地使用了不安全软件,但我认为应该有更好的方法

我的单元测试如下所示:

import kotlinx.html.*
import kotlinx.html.stream.appendHTML
import kotlinx.html.stream.createHTML
import org.junit.jupiter.api.Test

class TestHtmlDsl {

    fun html(): String {
        val stringBuffer = StringBuffer()
        stringBuffer.appendHTML().html {
            head {
            }
            body {
                h1 { +"Head lines" }
                div {
                    id = "main div"
                    div {
                       strong {+"sub div"}
                    }
                    getDiv1()
                    getDiv2()
                }
            }
        }
        return stringBuffer.toString()
    }

    fun getDiv1(): DIV.() -> Unit {
        return {
            p { +"first try" }
        }
    }

    fun getDiv2(): String {
        return createHTML().div {
            p { +"second try" }
        }
    }

    @Test
    fun testHtml() {
        println(html())
    }
}
它产生输出:

<html>
  <head></head>
  <body>
    <h1>Head lines</h1>
    <div id="main div">
      <div><strong>sub div</strong></div>
    </div>
  </body>
</html>

首尾线
子分区
缺少带段落的两个div

我正在运行这个服务器端(jvm)。我在js中找到了一些示例,但没有找到

我很想在某处为kotlinx找到更好的文档

getDiv1()
返回函数,所以您需要调用它:
getDiv1()()

getDiv2()
返回
String
,因此您需要附加它:
+getDiv2()
(请注意,HTML中的所有保留字符(如
)都将替换为字符实体(
),因此无论如何,这不太可能是您的选择)