Как представлять теги веб-компонентов в инфраструктурах Kotlin html?

Kotlin имеет рамки для представления html, такие как kotlinx . Как я могу представить теги веб-компонентов в таких рамках? Например, если я хочу использовать компоненты Polymer, мне нужно расширить эти рамки, чтобы включить каждый компонент Polymer?

    Вы можете создавать XSD-файл для своих компонентов и генерировать их автоматически. Это точно, как это делают котлинкс.

    Генератор является частью проекта. Посмотрите здесь: https://github.com/Kotlin/kotlinx.html/tree/master/generate

    Существует также исходный XSD-файл для HTML5 в папке ресурсов: https://github.com/Kotlin/kotlinx.html/blob/master/generate/src/main/resources/html_5.xsd

    Вы можете настроить Kotlinx (создать пользовательский тег ). Для тега, называемого dicom-editor который будет использоваться внутри divs :

     class DicomEditor(consumer: TagConsumer<*>) : HTMLTag("dicom-editor", consumer, emptyMap(), inlineTag = true, emptyTag = false), HtmlInlineTag {} fun DIV.dicom_editor(block: DicomEditor.() -> Unit = {}) { DicomEditor(consumer).visit(block) } ... div{ dicom_editor { onMouseDownFunction = {_ -> window.alert("Dicom Editor") } } } 

    В приведенном выше dicom_editor вызов dicom_editor включает обратный вызов для события mouse down. Вы также можете добавить атрибуты: attributes["data-toggle"] = "dropdown"

    Вы можете добавлять атрибуты в виде полей:

     class DicomEditor(consumer: TagConsumer<*>) : HTMLTag("dicom-editor", consumer, emptyMap(), inlineTag = true, emptyTag = false), HtmlInlineTag { var data_toggle: String = "" set(x) {attributes["data-toggle"] = x} } fun DIV.dicom_editor(block: DicomEditor.() -> Unit = {}) { DicomEditor(consumer).visit(block) } ... div{ dicom_editor { data_toggle = "dropdown" } } 

    В коде Kotlin вам нужно использовать _ вместо - или вы получите сообщение об ошибке.