toMermaid method

String toMermaid([
  1. GraphStyle style = GraphStyle.defaultStyle
])

Генерирует Mermaid-диаграмму для графа

Implementation

String toMermaid([GraphStyle style = GraphStyle.defaultStyle]) {
  final buffer = StringBuffer();
  buffer.writeln('graph ${style.graphDirection}');
  buffer.writeln('  %% Nodes');

  // Добавляем узлы
  for (final node in nodes.values) {
    final nodeData = style.showNodeData ? getNodeData(node.key)?.toString() : '';
    final label = nodeData?.isNotEmpty == true ? '${node.key}\\n$nodeData' : node.key;
    buffer.writeln('  ${node.key}[${_escapeMermaid(label)}]');
    buffer.writeln('  style ${node.key} ${style.nodeShape}');
  }

  buffer.writeln('  %% Edges');
  // Добавляем ребра
  for (final entry in edges.entries) {
    final from = entry.key;
    for (final to in entry.value) {
      buffer.writeln('  ${from.key} ${style.edgeStyle} ${to.key}');
    }
  }

  return buffer.toString();
}