'use strict' module.exports = listItem var u = require('unist-builder') var wrap = require('../wrap') var all = require('../all') function listItem(h, node, parent) { var children = node.children var head = children[0] var props = {} var single = false var result var container if ( (!parent || !parent.loose) && children.length === 1 && head.type === 'paragraph' ) { single = true } result = all(h, single ? head : node) if (typeof node.checked === 'boolean') { if (!single && (!head || head.type !== 'paragraph')) { result.unshift(h(null, 'p', [])) } container = single ? result : result[0].children if (container.length !== 0) { container.unshift(u('text', ' ')) } container.unshift( h(null, 'input', { type: 'checkbox', checked: node.checked, disabled: true }) ) // According to github-markdown-css, this class hides bullet. props.className = ['task-list-item'] } if (!single && result.length !== 0) { result = wrap(result, true) } return h(node, 'li', props, result) }