transform method

  1. @override
String transform(
  1. Node node,
  2. DocumentMarkdownEncoder? encoder
)
override

Implementation

@override
String transform(Node node, DocumentMarkdownEncoder? encoder) {
  final int rowsLen = node.attributes['rowsLen'],
      colsLen = node.attributes['colsLen'];
  String result = '';

  for (var i = 0; i < rowsLen; i++) {
    for (var j = 0; j < colsLen; j++) {
      final Node cell = getCellNode(node, j, i)!;
      String cellStr = '|${documentToMarkdown(Document(root: cell))}';
      // markdown doesn't have literally empty table cell
      cellStr = cellStr == '|' ? '| ' : cellStr;

      result += j == colsLen - 1 ? '$cellStr|\n' : cellStr;
    }
  }
  result = result.substring(0, result.length - 1);

  String tableMark = '';
  for (var j = 0; j < colsLen; j++) {
    tableMark += j == colsLen - 1 ? '|-|' : '|-';
  }

  final List<String> lines = result.split('\n');
  lines.insert(1, tableMark);
  result = lines.join('\n');

  return node.next == null ? result : '$result\n';
}