Skip to content

Commit

Permalink
Merge pull request mermaid-js#6196 from mermaid-js/6195-at-signs-in-l…
Browse files Browse the repository at this point in the history
…abels

mermaid-js#6195 at signs in labels
  • Loading branch information
ashishjain0512 authored Jan 21, 2025
2 parents 1d9c2aa + 7f47678 commit 84b03f3
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 9 deletions.
5 changes: 5 additions & 0 deletions .changeset/chatty-elephants-warn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

Fix for issue #6195 - allowing @ signs inside node labels
26 changes: 18 additions & 8 deletions cypress/platform/knsv2.html
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,11 @@
font-family: monospace;
font-size: 72px;
}

pre {
width: 100%;
}

/* tspan {
font-size: 6px !important;
} */
Expand All @@ -103,16 +105,20 @@
</head>

<body>
<pre id="diagram4" class="mermaid2">
<pre id="diagram4" class="mermaid">
flowchart LR
A --> B
AB["apa@apa@"] --> B(("`apa@apa`"))
</pre>
<pre id="diagram4" class="mermaid">
flowchart
D(("for D"))
</pre>
<pre id="diagram4" class="mermaid">
flowchart LR
A e1@==> B
e1@{ animate: true}
</pre>
<pre id="diagram4" class="mermaid2">
<pre id="diagram4" class="mermaid">
flowchart LR
A e1@--> B
classDef animate stroke-width:2,stroke-dasharray:10\,8,stroke-dashoffset:-180,animation: edge-animation-frame 6s linear infinite, stroke-linecap: round
Expand All @@ -126,7 +132,7 @@ <h2>infinite</h2>
class e1 animate
</pre>
<h2>Mermaid - edge-animation-slow</h2>
<pre id="diagram4" class="mermaid">
<pre id="diagram4" class="mermaid2">
flowchart LR
A e1@--> B
e1@{ animation: fast}
Expand Down Expand Up @@ -428,7 +434,10 @@ <h2>Mermaid - edge-animation-fast</h2>
window.callback = function () {
alert('A callback was triggered');
};
mermaid.initialize({
function callback() {
alert('It worked');
}
await mermaid.initialize({
// theme: 'base',
// theme: 'default',
// theme: 'forest',
Expand All @@ -440,9 +449,11 @@ <h2>Mermaid - edge-animation-fast</h2>
// layout: 'fixed',
// htmlLabels: false,
flowchart: { titleTopMargin: 10 },

// fontFamily: 'Caveat',
// fontFamily: 'Kalam',
// fontFamily: 'courier',
fontFamily: 'arial',
sequence: {
actorFontFamily: 'courier',
noteFontFamily: 'courier',
Expand All @@ -454,10 +465,9 @@ <h2>Mermaid - edge-animation-fast</h2>
fontSize: 12,
logLevel: 0,
securityLevel: 'loose',
callback,
});
function callback() {
alert('It worked');
}

mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,32 @@ describe('when parsing directions', function () {
expect(data4Layout.nodes[3].label).toEqual('for E');
expect(data4Layout.nodes[4].label).toEqual('for D');
});

it('should be possible to use @ syntax in labels', function () {
const res = flow.parser.parse(`flowchart TD
A["@A@"] --> B["@for@ B@"] & C@{ label: "@for@ c@"} & E{"\`@for@ E@\`"} & D(("@for@ D@"))
H1{{"@for@ H@"}}
H2{{"\`@for@ H@\`"}}
Q1{"@for@ Q@"}
Q2{"\`@for@ Q@\`"}
AS1>"@for@ AS@"]
AS2>"\`@for@ AS@\`"]
`);

const data4Layout = flow.parser.yy.getData();
expect(data4Layout.nodes.length).toBe(11);
expect(data4Layout.nodes[0].label).toEqual('@A@');
expect(data4Layout.nodes[1].label).toEqual('@for@ B@');
expect(data4Layout.nodes[2].label).toEqual('@for@ c@');
expect(data4Layout.nodes[3].label).toEqual('@for@ E@');
expect(data4Layout.nodes[4].label).toEqual('@for@ D@');
expect(data4Layout.nodes[5].label).toEqual('@for@ H@');
expect(data4Layout.nodes[6].label).toEqual('@for@ H@');
expect(data4Layout.nodes[7].label).toEqual('@for@ Q@');
expect(data4Layout.nodes[8].label).toEqual('@for@ Q@');
expect(data4Layout.nodes[9].label).toEqual('@for@ AS@');
expect(data4Layout.nodes[10].label).toEqual('@for@ AS@');
});
it.skip(' should be possible to use @ syntax to add labels with trail spaces', function () {
const res = flow.parser.parse(
`flowchart TB
Expand Down
2 changes: 1 addition & 1 deletion packages/mermaid/src/diagrams/flowchart/parser/flow.jison
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ that id.
.*direction\s+RL[^\n]* return 'direction_rl';
.*direction\s+LR[^\n]* return 'direction_lr';

[^\s]+\@(?=[^\{]) { return 'LINK_ID'; }
[^\s\"]+\@(?=[^\{\"]) { return 'LINK_ID'; }
[0-9]+ return 'NUM';
\# return 'BRKT';
":::" return 'STYLE_SEPARATOR';
Expand Down

0 comments on commit 84b03f3

Please sign in to comment.