diff --git a/packages/mermaid/src/config.type.ts b/packages/mermaid/src/config.type.ts
index ca55d9af4..017410dce 100644
--- a/packages/mermaid/src/config.type.ts
+++ b/packages/mermaid/src/config.type.ts
@@ -139,6 +139,7 @@ export interface MermaidConfig {
* You can set this attribute to base the seed on a static string.
*
*/
+ markdownAutoWrap?: boolean;
deterministicIDSeed?: string;
flowchart?: FlowchartDiagramConfig;
sequence?: SequenceDiagramConfig;
diff --git a/packages/mermaid/src/rendering-util/handle-markdown-text.ts b/packages/mermaid/src/rendering-util/handle-markdown-text.ts
index ce694edcd..e5e171285 100644
--- a/packages/mermaid/src/rendering-util/handle-markdown-text.ts
+++ b/packages/mermaid/src/rendering-util/handle-markdown-text.ts
@@ -2,6 +2,7 @@ import type { Content } from 'mdast';
import { fromMarkdown } from 'mdast-util-from-markdown';
import { dedent } from 'ts-dedent';
import type { MarkdownLine, MarkdownWordType } from './types.js';
+import { getConfig } from '../config.js';
/**
* @param markdown - markdown to process
@@ -58,10 +59,15 @@ export function markdownToLines(markdown: string): MarkdownLine[] {
export function markdownToHTML(markdown: string) {
const { children } = fromMarkdown(markdown);
+ const markdownAutoWrap = getConfig().markdownAutoWrap;
function output(node: Content): string {
if (node.type === 'text') {
- return node.value.replace(/\n/g, '
');
+ if (!markdownAutoWrap) {
+ return node.value.replace(/\n/g, '
').replace(/ /g, ' ');
+ } else {
+ return node.value.replace(/\n/g, '
');
+ }
} else if (node.type === 'strong') {
return `${node.children.map(output).join('')}`;
} else if (node.type === 'emphasis') {