From f4e2b0dead921a156727e49688e6480a932379ef Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 5 Nov 2025 00:22:14 +0700 Subject: [PATCH] feat: Mark diagrams capable of handDrawn --- .../mermaid/src/diagrams/class/classDiagram.ts | 3 +++ packages/mermaid/src/diagrams/er/erDiagram.ts | 7 +++++-- .../src/diagrams/flowchart/flowDiagram.ts | 3 +++ packages/mermaid/src/diagrams/pie/pieRenderer.ts | 16 +++++++++------- .../diagrams/requirement/requirementDiagram.ts | 3 +++ .../src/diagrams/state/stateDiagram-v2.ts | 3 +++ 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/packages/mermaid/src/diagrams/class/classDiagram.ts b/packages/mermaid/src/diagrams/class/classDiagram.ts index 9111fe658..58e4e528c 100644 --- a/packages/mermaid/src/diagrams/class/classDiagram.ts +++ b/packages/mermaid/src/diagrams/class/classDiagram.ts @@ -10,6 +10,9 @@ export const diagram: DiagramDefinition = { get db() { return new ClassDB(); }, + capabilities: { + handDrawn: true, + }, renderer, styles, init: (cnf) => { diff --git a/packages/mermaid/src/diagrams/er/erDiagram.ts b/packages/mermaid/src/diagrams/er/erDiagram.ts index 1e3f0a4e1..8aa4640e8 100644 --- a/packages/mermaid/src/diagrams/er/erDiagram.ts +++ b/packages/mermaid/src/diagrams/er/erDiagram.ts @@ -2,13 +2,16 @@ import erParser from './parser/erDiagram.jison'; import { ErDB } from './erDb.js'; import * as renderer from './erRenderer-unified.js'; -import erStyles from './styles.js'; +import styles from './styles.js'; export const diagram = { parser: erParser, get db() { return new ErDB(); }, + capabilities: { + handDrawn: true, + }, renderer, - styles: erStyles, + styles, }; diff --git a/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts b/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts index 588e9f3ba..9707b33fc 100644 --- a/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts +++ b/packages/mermaid/src/diagrams/flowchart/flowDiagram.ts @@ -13,6 +13,9 @@ export const diagram = { return new FlowDB(); }, renderer, + capabilities: { + handDrawn: true, + }, styles: flowStyles, init: (cnf: MermaidConfig) => { if (!cnf.flowchart) { diff --git a/packages/mermaid/src/diagrams/pie/pieRenderer.ts b/packages/mermaid/src/diagrams/pie/pieRenderer.ts index 5b87613ff..a0f5b7ad8 100644 --- a/packages/mermaid/src/diagrams/pie/pieRenderer.ts +++ b/packages/mermaid/src/diagrams/pie/pieRenderer.ts @@ -43,7 +43,7 @@ export const draw: DrawDefinition = (text, id, _version, diagObj) => { const group: SVGGroup = svg.append('g'); group.attr('transform', 'translate(' + pieWidth / 2 + ',' + height / 2 + ')'); - const { themeVariables } = globalConfig; + const { themeVariables, look } = globalConfig; let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth); outerStrokeWidth ??= 2; @@ -59,12 +59,14 @@ export const draw: DrawDefinition = (text, id, _version, diagObj) => { .innerRadius(radius * textPosition) .outerRadius(radius * textPosition); - group - .append('circle') - .attr('cx', 0) - .attr('cy', 0) - .attr('r', radius + outerStrokeWidth / 2) - .attr('class', 'pieOuterCircle'); + if (look !== 'handDrawn') { + group + .append('circle') + .attr('cx', 0) + .attr('cy', 0) + .attr('r', radius + outerStrokeWidth / 2) + .attr('class', 'pieOuterCircle'); + } const sections: Sections = db.getSections(); const arcs: d3.PieArcDatum[] = createPieArcs(sections); diff --git a/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts b/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts index 5ad89949a..309b6837e 100644 --- a/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts +++ b/packages/mermaid/src/diagrams/requirement/requirementDiagram.ts @@ -10,6 +10,9 @@ export const diagram: DiagramDefinition = { get db() { return new RequirementDB(); }, + capabilities: { + handDrawn: true, + }, renderer, styles, }; diff --git a/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts b/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts index b0309fa84..cfd138aa2 100644 --- a/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts +++ b/packages/mermaid/src/diagrams/state/stateDiagram-v2.ts @@ -10,6 +10,9 @@ export const diagram: DiagramDefinition = { get db() { return new StateDB(2); }, + capabilities: { + handDrawn: true, + }, renderer, styles, init: (cnf) => {