toHtml method

String toHtml()

Implementation

String toHtml() {
  var str = '';

  void _traverse(Node node) {
    final shouldAddSpan = node.className != null &&
        ((node.value != null && node.value!.isNotEmpty) ||
            (node.children != null && node.children!.isNotEmpty));

    if (shouldAddSpan) {
      var prefix = node.noPrefix ? '' : 'hljs-';
      str += '<span class="${prefix + node.className!}">';
    }

    if (node.value != null) {
      str += _escape(node.value!);
    } else if (node.children != null) {
      node.children!.forEach(_traverse);
    }

    if (shouldAddSpan) {
      str += '</span>';
    }
  }

  nodes!.forEach(_traverse);
  return str;
}