Mermaid diagrams (flowcharts, sequence diagrams, etc.) can be supported by using a custom wrapper via createMermaidWrapper. This allows for interactive features like full-screen viewing, zooming, and theme switching.
import 'package:markdown_widget/markdown_widget.dart';
import 'markdown_custom/mermaid.dart';
// Basic usage
final isDark = Theme.of(context).brightness == Brightness.dark;
final preConfig = PreConfig(
wrapper: createMermaidWrapper(
config: const MermaidConfig(),
isDark: isDark,
preConfig: preConfig,
),
);
MarkdownWidget(
data: markdown,
config: config.copy(configs: [preConfig]),
)
// Custom configuration
final preConfig = PreConfig(
wrapper: createMermaidWrapper(
config: MermaidConfig(
displayMode: MermaidDisplayMode.codeAndDiagram,
diagramPadding: EdgeInsets.all(16.0),
showLoadingIndicator: true,
),
isDark: isDark,
preConfig: preConfig,
),
);
import 'package:markdown_widget/markdown_widget.dart';
import 'markdown_custom/mermaid.dart';
// 基本用法
final isDark = Theme.of(context).brightness == Brightness.dark;
final preConfig = PreConfig(
wrapper: createMermaidWrapper(
config: const MermaidConfig(),
isDark: isDark,
preConfig: preConfig,
),
);
MarkdownWidget(
data: markdown,
config: config.copy(configs: [preConfig]),
)
// 自定义配置
final preConfig = PreConfig(
wrapper: createMermaidWrapper(
config: MermaidConfig(
displayMode: MermaidDisplayMode.codeAndDiagram,
diagramPadding: EdgeInsets.all(16.0),
showLoadingIndicator: true,
),
isDark: isDark,
preConfig: preConfig,
),
);