in src/commonMain/kotlin/org/intellij/markdown/flavours/gfm/GFMGeneratingProviders.kt [18:59]
override fun processNode(visitor: HtmlGenerator.HtmlGeneratingVisitor, text: String, node: ASTNode) {
assert(node is ListItemCompositeNode)
val checkBoxElement = node.findChildOfType(GFMTokenTypes.CHECK_BOX)
val inputHtml: CharSequence
val listItemClass: CharSequence?
if (checkBoxElement != null) {
listItemClass = "class=\"task-list-item\""
val checkedString = getIsCheckedString(checkBoxElement, text)
inputHtml = "<input type=\"checkbox\" class=\"task-list-item-checkbox\"$checkedString disabled />"
} else {
listItemClass = null
inputHtml = ""
}
visitor.consumeTagOpen(node, "li", listItemClass)
val listNode = node.parent
assert(listNode is ListCompositeNode)
val isLoose = (listNode as ListCompositeNode).loose
var flushedInput = false
for (child in node.children) {
if (child is LeafASTNode) {
continue
}
if (!flushedInput) {
if (child.type == MarkdownElementTypes.PARAGRAPH) {
SubParagraphGeneratingProvider(isLoose, inputHtml).processNode(visitor, text, child)
} else {
visitor.consumeHtml(inputHtml)
child.accept(visitor)
}
flushedInput = true
} else {
child.accept(visitor)
}
}
closeTag(visitor, text, node)
}