toMermaid method
Генерирует 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();
}