| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- '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)
- }
|