Fixing issues in mindmaps and class diagram notes after tests

This commit is contained in:
Knut Sveidqvist
2023-04-04 10:45:39 +02:00
parent e8799ad515
commit 1841346ff6
5 changed files with 30 additions and 15 deletions

View File

@@ -57,12 +57,12 @@
</style> </style>
</head> </head>
<body> <body>
<pre id="diagram" class="mermaid"> <pre id="diagram" class="mermaid2">
flowchart LR flowchart LR
A[A text that needs to be wrapped wraps to another line] A[A text that needs to be wrapped wraps to another line]
B[A text that needs to be<br/>wrapped wraps to another line] B[A text that needs to be<br/>wrapped wraps to another line]
C["`A text that needs to be wrapped to another line`"]</pre> C["`A text that needs to be wrapped to another line`"]</pre>
<pre id="diagram" class="mermaid"> <pre id="diagram" class="mermaid2">
flowchart LR flowchart LR
C["`A text C["`A text
that needs that needs
@@ -71,11 +71,21 @@ flowchart LR
way`"] way`"]
</pre </pre
> >
<pre id="diagram" class="mermaid2"> <pre id="diagram" class="mermaid">
flowchart-elk LR mindmap
b("The dog in the hog... a very<br/>long text about it<br/>Word!") root
</pre> Child3(A node with an icon and with a long text that wraps to keep the node size in check)
</pre
> >
<pre id="diagram" class="mermaid">
%%{init: {"theme": "forest"} }%%
mindmap
id1[**Start2**<br/>end]
id2[**Start2**<br />end]
%% Another comment
id3[**Start2**<br>end] %% Comment
id4[**Start2**<br >end<br >the very end]
</pre>
<pre id="diagram" class="mermaid2"> <pre id="diagram" class="mermaid2">
mindmap mindmap
id1[`**Start2** id1[`**Start2**
@@ -89,7 +99,7 @@ mindmap
and another and another
`] `]
</pre> </pre>
<pre id="diagram" class="mermaid"> <pre id="diagram" class="mermaid2">
mindmap mindmap
id1("`**Root**`"] id1("`**Root**`"]
id2["`A formatted text... with **bold** and *italics*`"] id2["`A formatted text... with **bold** and *italics*`"]

View File

@@ -316,15 +316,19 @@ const rect = (parent, node) => {
// add the rect // add the rect
const rect = shapeSvg.insert('rect', ':first-child'); const rect = shapeSvg.insert('rect', ':first-child');
const totalWidth = bbox.width + node.padding * 2; // const totalWidth = bbox.width + node.padding * 2;
const totalHeight = bbox.height + node.padding * 2; // const totalHeight = bbox.height + node.padding * 2;
const totalWidth = bbox.width + node.padding;
const totalHeight = bbox.height + node.padding;
rect rect
.attr('class', 'basic label-container') .attr('class', 'basic label-container')
.attr('style', node.style) .attr('style', node.style)
.attr('rx', node.rx) .attr('rx', node.rx)
.attr('ry', node.ry) .attr('ry', node.ry)
.attr('x', -bbox.width / 2 - node.padding) // .attr('x', -bbox.width / 2 - node.padding)
.attr('y', -bbox.height / 2 - node.padding) // .attr('y', -bbox.height / 2 - node.padding)
.attr('x', -bbox.width / 2 - halfPadding)
.attr('y', -bbox.height / 2 - halfPadding)
.attr('width', totalWidth) .attr('width', totalWidth)
.attr('height', totalHeight); .attr('height', totalHeight);
@@ -351,7 +355,7 @@ const rect = (parent, node) => {
const labelRect = (parent, node) => { const labelRect = (parent, node) => {
const { shapeSvg } = labelHelper(parent, node, 'label', true); const { shapeSvg } = labelHelper(parent, node, 'label', true);
log.info('Classes = ', node.classes); log.trace('Classes = ', node.classes);
// add the rect // add the rect
const rect = shapeSvg.insert('rect', ':first-child'); const rect = shapeSvg.insert('rect', ':first-child');

View File

@@ -175,7 +175,7 @@ export const draw = async (text, id, version, diagObj) => {
// Parse the graph definition // Parse the graph definition
diagObj.parser.parse(text); diagObj.parser.parse(text);
log.debug('Renering mindmap diagram\n' + text, diagObj); log.debug('Rendering mindmap diagram\n' + text, diagObj.parser);
const securityLevel = getConfig().securityLevel; const securityLevel = getConfig().securityLevel;
// Handle root and Document for when rendering in sandbox mode // Handle root and Document for when rendering in sandbox mode

View File

@@ -18,7 +18,7 @@
%% %%
\s*\%\%.* {yy.getLogger().trace('Found comment',yytext);} \s*\%\%.* {yy.getLogger().trace('Found comment',yytext); return 'SPACELINE';}
// \%\%[^\n]*\n /* skip comments */ // \%\%[^\n]*\n /* skip comments */
"mindmap" return 'MINDMAP'; "mindmap" return 'MINDMAP';
":::" { this.begin('CLASS'); } ":::" { this.begin('CLASS'); }

View File

@@ -217,7 +217,8 @@ export const drawNode = function (elem, node, fullSection, conf) {
// Create the wrapped text element // Create the wrapped text element
const textElem = nodeElem.append('g'); const textElem = nodeElem.append('g');
const newEl = createText(textElem, node.descr, { const description = node.descr.replace(/(<br\/*>)/g, '\n');
const newEl = createText(textElem, description, {
useHtmlLabels: htmlLabels, useHtmlLabels: htmlLabels,
width: node.width, width: node.width,
classes: 'mindmap-node-label', classes: 'mindmap-node-label',