blockRenderFn method
Block renderer map
Implementation
@override
blockRenderFn(BaseBlock block, {bool shouldWrite = false}) {
if (currentLevel == null) {
currentLevel = root;
}
if (shouldWrite) {
if (block.blockType == "ordered-list-item") {
if (block.depth == prevNode?.depth || prevNode == null) {
prevNode = currentLevel!.addChild(block);
} else {
if (block.depth > prevNode!.depth) {
currentLevel = prevNode;
prevNode = prevNode!.addChild(block);
} else {
currentLevel = currentLevel!.parent;
prevNode = currentLevel!.addChild(block);
}
}
} else {
root = ListTreeNode(isRoot: true);
prevNode = null;
currentLevel = root;
}
}
var map = {
"ordered-list-item": ListBlock(
depth: prevNode?.depth ?? 0,
blockType: '',
data: {},
end: 0,
entityTypes: [],
inlineStyles: [],
start: 0,
text: '',
isOrderedList: true,
order: prevNode?.order ?? 0,
),
"unordered-list-item": ListBlock(
depth: block.depth,
blockType: '',
data: {},
end: 0,
entityTypes: [],
inlineStyles: [],
start: 0,
text: '',
isOrderedList: false,
order: 0,
),
};
return map;
}