diff --git a/.changeset/strong-dryers-pay.md b/.changeset/strong-dryers-pay.md new file mode 100644 index 000000000..495cde202 --- /dev/null +++ b/.changeset/strong-dryers-pay.md @@ -0,0 +1,5 @@ +--- +'mermaid': patch +--- + +fix: correctly render non-directional lines for '---' in block diagrams diff --git a/cypress/integration/rendering/block.spec.js b/cypress/integration/rendering/block.spec.js index f01d59375..180c0093d 100644 --- a/cypress/integration/rendering/block.spec.js +++ b/cypress/integration/rendering/block.spec.js @@ -393,6 +393,17 @@ describe('Block diagram', () => { overflow:3 short:1 also_overflow:2 +`, + {} + ); + }); + + it('BL31: edge without arrow syntax should render with no arrowheads', () => { + imgSnapshotTest( + `block-beta + a + b + a --- b `, {} ); diff --git a/packages/mermaid/src/diagrams/block/blockDB.ts b/packages/mermaid/src/diagrams/block/blockDB.ts index 39a8b47a0..b291be61e 100644 --- a/packages/mermaid/src/diagrams/block/blockDB.ts +++ b/packages/mermaid/src/diagrams/block/blockDB.ts @@ -238,13 +238,15 @@ export function edgeTypeStr2Type(typeStr: string): string { } export function edgeStrToEdgeData(typeStr: string): string { - switch (typeStr.trim()) { - case '--x': + switch (typeStr.replace(/^[\s-]+|[\s-]+$/g, '')) { + case 'x': return 'arrow_cross'; - case '--o': + case 'o': return 'arrow_circle'; - default: + case '>': return 'arrow_point'; + default: + return ''; } }