Skip to content

Instantly share code, notes, and snippets.

@janjiss
Created March 12, 2017 01:36
Show Gist options
  • Save janjiss/fe19382664e2f493492264025769035e to your computer and use it in GitHub Desktop.
Save janjiss/fe19382664e2f493492264025769035e to your computer and use it in GitHub Desktop.
// Join together lists that don't have
// any blocks in-between
{
match: (node) => {
return node.kind == 'document'
},
validate: (document) => {
const joinableNode = document.nodes.find((node, key) => {
if (!['ordered-list', 'unordered-list'].includes(node.type)) { return false }
const previousNode = document.nodes.get(key - 1)
if (!previousNode) { return false }
return node.type === previousNode.type
})
if ( joinableNode ) {
const previousNode = document.getPreviousSibling(joinableNode.key)
return { previousNode, joinableNode }
} else {
return false
}
},
normalize: (transform, document, nodes) => {
const { joinableNode, previousNode } = nodes
const joinableNodelistItems = joinableNode.nodes
joinableNodelistItems.forEach((node, index) => {
transform.moveNodeByKey(node.key, previousNode.key, previousNode.nodes.size + index)
})
return transform.removeNodeByKey(joinableNode.key)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment