I found another option, but it looks like it might then prevent list items containing block elements: (from Claude Desktop)
changing content: 'paragraph block*' (the default) to content: 'text*' tells TipTap that list items should only contain text nodes, not paragraph blocks.
import ListItem from '@tiptap/extension-list-item'
const CustomListItem = ListItem.extend({
addAttributes() {
return {}
},
parseHTML() {
return [
{
tag: 'li',
getContent(node, schema) {
const content = []
node.childNodes.forEach(child => {
if (child.nodeName === 'P') {
child.childNodes.forEach(textNode => {
content.push(schema.text(textNode.textContent))
})
}
})
return Fragment.from(content)
}
}
]
}
})