UNPKG

substance

Version:

Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing systems.

29 lines (28 loc) 902 B
import { last } from '../../util' import getListTagName from './getListTagName' export default function renderListNode(node, rootEl, createElement) { let items = node.getItems() let stack = [rootEl] for (let i = 0; i < items.length; i++) { let item = items[i] if (item.level<stack.length) { for (let j = stack.length; j > item.level; j--) { stack.pop() } } else if (item.level>stack.length) { for (let j = stack.length; j < item.level; j++) { // Note: ATM all sublists have the same order type let sublist = createElement(getListTagName(node)) last(stack).append(sublist) stack.push(sublist) } } console.assert(item.level === stack.length, 'item.level should now be the same as stack.length') last(stack).append( createElement(item) ) } for(let j=stack.length; j>1;j--) { stack.pop() } }