mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-14 04:49:44 +02:00
Compare commits
17 Commits
mermaid@11
...
sidv/biome
Author | SHA1 | Date | |
---|---|---|---|
![]() |
83fb2d933c | ||
![]() |
48303a030d | ||
![]() |
054ed6c69c | ||
![]() |
89e061aa51 | ||
![]() |
a1badd5167 | ||
![]() |
55a8e4cf7e | ||
![]() |
e7577ed51e | ||
![]() |
d2b42ebd74 | ||
![]() |
ba34386a69 | ||
![]() |
a23b891f20 | ||
![]() |
3a5793f948 | ||
![]() |
0a5315cd5a | ||
![]() |
98f32bfdfe | ||
![]() |
22a00a5f8b | ||
![]() |
3381717e86 | ||
![]() |
08dfdfed82 | ||
![]() |
2c80d806cc |
@@ -22,9 +22,9 @@ export const packageOptions = {
|
|||||||
packageName: 'mermaid-zenuml',
|
packageName: 'mermaid-zenuml',
|
||||||
file: 'detector.ts',
|
file: 'detector.ts',
|
||||||
},
|
},
|
||||||
'mermaid-layout-elk': {
|
'mermaid-flowchart-elk': {
|
||||||
name: 'mermaid-layout-elk',
|
name: 'mermaid-flowchart-elk',
|
||||||
packageName: 'mermaid-layout-elk',
|
packageName: 'mermaid-flowchart-elk',
|
||||||
file: 'layouts.ts',
|
file: 'detector.ts',
|
||||||
},
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
import jison from 'jison';
|
import jison from 'jison';
|
||||||
|
|
||||||
export const transformJison = (src: string): string => {
|
export const transformJison = (src: string): string => {
|
||||||
// @ts-ignore - Jison is not typed properly
|
|
||||||
const parser = new jison.Generator(src, {
|
const parser = new jison.Generator(src, {
|
||||||
moduleType: 'js',
|
moduleType: 'js',
|
||||||
'token-stack': true,
|
'token-stack': true,
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable no-console */
|
|
||||||
import { packageOptions } from './common.js';
|
import { packageOptions } from './common.js';
|
||||||
import { execSync } from 'child_process';
|
import { execSync } from 'child_process';
|
||||||
|
|
||||||
@@ -6,17 +5,11 @@ const buildType = (packageName: string) => {
|
|||||||
console.log(`Building types for ${packageName}`);
|
console.log(`Building types for ${packageName}`);
|
||||||
try {
|
try {
|
||||||
const out = execSync(`tsc -p ./packages/${packageName}/tsconfig.json --emitDeclarationOnly`);
|
const out = execSync(`tsc -p ./packages/${packageName}/tsconfig.json --emitDeclarationOnly`);
|
||||||
if (out.length > 0) {
|
out.length > 0 && console.log(out.toString());
|
||||||
console.log(out.toString());
|
|
||||||
}
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
if (e.stdout.length > 0) {
|
e.stdout.length > 0 && console.error(e.stdout.toString());
|
||||||
console.error(e.stdout.toString());
|
e.stderr.length > 0 && console.error(e.stderr.toString());
|
||||||
}
|
|
||||||
if (e.stderr.length > 0) {
|
|
||||||
console.error(e.stderr.toString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1,8 +0,0 @@
|
|||||||
# Changesets
|
|
||||||
|
|
||||||
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
|
|
||||||
with multi-package repos, or single-package repos to help you version and publish your code. You can
|
|
||||||
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
|
|
||||||
|
|
||||||
We have a quick list of common questions to get you started engaging with this project in
|
|
||||||
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
|
|
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
|
|
||||||
"changelog": ["@changesets/changelog-github", { "repo": "mermaid-js/mermaid" }],
|
|
||||||
"commit": false,
|
|
||||||
"fixed": [],
|
|
||||||
"linked": [],
|
|
||||||
"access": "public",
|
|
||||||
"baseBranch": "master",
|
|
||||||
"updateInternalDependencies": "patch",
|
|
||||||
"bumpVersionsWithWorkspaceProtocolOnly": true,
|
|
||||||
"ignore": ["@mermaid-js/docs", "@mermaid-js/webpack-test", "@mermaid-js/mermaid-example-diagram"]
|
|
||||||
}
|
|
@@ -13,7 +13,6 @@ bqstring
|
|||||||
BQUOTE
|
BQUOTE
|
||||||
bramp
|
bramp
|
||||||
BRKT
|
BRKT
|
||||||
brotli
|
|
||||||
callbackargs
|
callbackargs
|
||||||
callbackname
|
callbackname
|
||||||
classdef
|
classdef
|
||||||
@@ -28,7 +27,6 @@ controly
|
|||||||
CSSCLASS
|
CSSCLASS
|
||||||
CYLINDEREND
|
CYLINDEREND
|
||||||
CYLINDERSTART
|
CYLINDERSTART
|
||||||
DAGA
|
|
||||||
datakey
|
datakey
|
||||||
DEND
|
DEND
|
||||||
descr
|
descr
|
||||||
@@ -91,7 +89,6 @@ reqs
|
|||||||
rewritelinks
|
rewritelinks
|
||||||
rgba
|
rgba
|
||||||
RIGHTOF
|
RIGHTOF
|
||||||
roughjs
|
|
||||||
sankey
|
sankey
|
||||||
sequencenumber
|
sequencenumber
|
||||||
shrc
|
shrc
|
||||||
@@ -111,17 +108,13 @@ strikethrough
|
|||||||
stringifying
|
stringifying
|
||||||
struct
|
struct
|
||||||
STYLECLASS
|
STYLECLASS
|
||||||
STYLEDEF
|
|
||||||
STYLEOPTS
|
STYLEOPTS
|
||||||
subcomponent
|
subcomponent
|
||||||
subcomponents
|
subcomponents
|
||||||
subconfig
|
|
||||||
SUBROUTINEEND
|
SUBROUTINEEND
|
||||||
SUBROUTINESTART
|
SUBROUTINESTART
|
||||||
Subschemas
|
Subschemas
|
||||||
substr
|
substr
|
||||||
SVGG
|
|
||||||
SVGSVG
|
|
||||||
TAGEND
|
TAGEND
|
||||||
TAGSTART
|
TAGSTART
|
||||||
techn
|
techn
|
||||||
@@ -132,7 +125,6 @@ titlevalue
|
|||||||
topbar
|
topbar
|
||||||
TRAPEND
|
TRAPEND
|
||||||
TRAPSTART
|
TRAPSTART
|
||||||
treemap
|
|
||||||
ts-nocheck
|
ts-nocheck
|
||||||
tsdoc
|
tsdoc
|
||||||
typeof
|
typeof
|
||||||
|
@@ -4,6 +4,5 @@ cpettitt
|
|||||||
Dong Cai
|
Dong Cai
|
||||||
Nikolay Rozhkov
|
Nikolay Rozhkov
|
||||||
Peng Xiao
|
Peng Xiao
|
||||||
Per Brolin
|
|
||||||
subhash-halder
|
subhash-halder
|
||||||
Vinod Sidharth
|
Vinod Sidharth
|
||||||
|
@@ -20,7 +20,6 @@ dagre-d3
|
|||||||
Deepdwn
|
Deepdwn
|
||||||
Docsify
|
Docsify
|
||||||
Docsy
|
Docsy
|
||||||
Doctave
|
|
||||||
DokuWiki
|
DokuWiki
|
||||||
dompurify
|
dompurify
|
||||||
elkjs
|
elkjs
|
||||||
@@ -55,17 +54,13 @@ presetAttributify
|
|||||||
pyplot
|
pyplot
|
||||||
redmine
|
redmine
|
||||||
rehype
|
rehype
|
||||||
roughjs
|
|
||||||
rscratch
|
rscratch
|
||||||
shiki
|
|
||||||
Slidev
|
|
||||||
sparkline
|
sparkline
|
||||||
sphinxcontrib
|
sphinxcontrib
|
||||||
ssim
|
ssim
|
||||||
stylis
|
stylis
|
||||||
Swimm
|
Swimm
|
||||||
tsbuildinfo
|
tsbuildinfo
|
||||||
tseslint
|
|
||||||
Tuleap
|
Tuleap
|
||||||
Typora
|
Typora
|
||||||
unocss
|
unocss
|
||||||
|
@@ -9,7 +9,6 @@ elems
|
|||||||
gantt
|
gantt
|
||||||
gitgraph
|
gitgraph
|
||||||
gzipped
|
gzipped
|
||||||
handDrawn
|
|
||||||
knsv
|
knsv
|
||||||
Knut
|
Knut
|
||||||
marginx
|
marginx
|
||||||
@@ -18,7 +17,6 @@ Markdownish
|
|||||||
mermaidjs
|
mermaidjs
|
||||||
mindmap
|
mindmap
|
||||||
mindmaps
|
mindmaps
|
||||||
mrtree
|
|
||||||
multigraph
|
multigraph
|
||||||
nodesep
|
nodesep
|
||||||
NOTEGROUP
|
NOTEGROUP
|
||||||
|
@@ -1,6 +1 @@
|
|||||||
BRANDES
|
|
||||||
circo
|
|
||||||
handDrawn
|
|
||||||
KOEPF
|
|
||||||
neato
|
|
||||||
newbranch
|
newbranch
|
||||||
|
@@ -2,14 +2,13 @@ import { build } from 'esbuild';
|
|||||||
import { mkdir, writeFile } from 'node:fs/promises';
|
import { mkdir, writeFile } from 'node:fs/promises';
|
||||||
import { packageOptions } from '../.build/common.js';
|
import { packageOptions } from '../.build/common.js';
|
||||||
import { generateLangium } from '../.build/generateLangium.js';
|
import { generateLangium } from '../.build/generateLangium.js';
|
||||||
import type { MermaidBuildOptions } from './util.js';
|
import { type MermaidBuildOptions, defaultOptions, getBuildConfig } from './util.js';
|
||||||
import { defaultOptions, getBuildConfig } from './util.js';
|
|
||||||
|
|
||||||
const shouldVisualize = process.argv.includes('--visualize');
|
const shouldVisualize = process.argv.includes('--visualize');
|
||||||
|
|
||||||
const buildPackage = async (entryName: keyof typeof packageOptions) => {
|
const buildPackage = async (entryName: keyof typeof packageOptions) => {
|
||||||
const commonOptions: MermaidBuildOptions = { ...defaultOptions, entryName } as const;
|
const commonOptions = { ...defaultOptions, entryName } as const;
|
||||||
const buildConfigs: MermaidBuildOptions[] = [
|
const buildConfigs = [
|
||||||
// package.mjs
|
// package.mjs
|
||||||
{ ...commonOptions },
|
{ ...commonOptions },
|
||||||
// package.min.mjs
|
// package.min.mjs
|
||||||
@@ -36,11 +35,11 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => {
|
|||||||
|
|
||||||
if (shouldVisualize) {
|
if (shouldVisualize) {
|
||||||
for (const { metafile } of results) {
|
for (const { metafile } of results) {
|
||||||
if (!metafile?.outputs) {
|
if (!metafile) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const fileName = Object.keys(metafile.outputs)
|
const fileName = Object.keys(metafile.outputs)
|
||||||
.find((file) => !file.includes('chunks') && file.endsWith('js'))
|
.filter((file) => !file.includes('chunks') && file.endsWith('js'))[0]
|
||||||
.replace('dist/', '');
|
.replace('dist/', '');
|
||||||
// Upload metafile into https://esbuild.github.io/analyze/
|
// Upload metafile into https://esbuild.github.io/analyze/
|
||||||
await writeFile(`stats/${fileName}.meta.json`, JSON.stringify(metafile));
|
await writeFile(`stats/${fileName}.meta.json`, JSON.stringify(metafile));
|
||||||
@@ -49,14 +48,13 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handler = (e) => {
|
const handler = (e) => {
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.error(e);
|
console.error(e);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
};
|
};
|
||||||
|
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
await generateLangium();
|
await generateLangium();
|
||||||
await mkdir('stats', { recursive: true });
|
await mkdir('stats').catch(() => {});
|
||||||
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
|
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
|
||||||
// it should build `parser` before `mermaid` because it's a dependency
|
// it should build `parser` before `mermaid` because it's a dependency
|
||||||
for (const pkg of packageNames) {
|
for (const pkg of packageNames) {
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
/* eslint-disable no-console */
|
|
||||||
import chokidar from 'chokidar';
|
|
||||||
import cors from 'cors';
|
|
||||||
import { context } from 'esbuild';
|
|
||||||
import type { Request, Response } from 'express';
|
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { packageOptions } from '../.build/common.js';
|
import type { NextFunction, Request, Response } from 'express';
|
||||||
|
import cors from 'cors';
|
||||||
|
import { getBuildConfig, defaultOptions } from './util.js';
|
||||||
|
import { context } from 'esbuild';
|
||||||
|
import chokidar from 'chokidar';
|
||||||
import { generateLangium } from '../.build/generateLangium.js';
|
import { generateLangium } from '../.build/generateLangium.js';
|
||||||
import { defaultOptions, getBuildConfig } from './util.js';
|
import { packageOptions } from '../.build/common.js';
|
||||||
|
|
||||||
const configs = Object.values(packageOptions).map(({ packageName }) =>
|
const configs = Object.values(packageOptions).map(({ packageName }) =>
|
||||||
getBuildConfig({ ...defaultOptions, minify: false, core: false, entryName: packageName })
|
getBuildConfig({ ...defaultOptions, minify: false, core: false, entryName: packageName })
|
||||||
@@ -20,28 +19,16 @@ const mermaidIIFEConfig = getBuildConfig({
|
|||||||
});
|
});
|
||||||
configs.push(mermaidIIFEConfig);
|
configs.push(mermaidIIFEConfig);
|
||||||
|
|
||||||
const contexts = await Promise.all(
|
const contexts = await Promise.all(configs.map((config) => context(config)));
|
||||||
configs.map(async (config) => ({ config, context: await context(config) }))
|
|
||||||
);
|
|
||||||
|
|
||||||
let rebuildCounter = 1;
|
|
||||||
const rebuildAll = async () => {
|
const rebuildAll = async () => {
|
||||||
const buildNumber = rebuildCounter++;
|
console.time('Rebuild time');
|
||||||
const timeLabel = `Rebuild ${buildNumber} Time (total)`;
|
await Promise.all(contexts.map((ctx) => ctx.rebuild())).catch((e) => console.error(e));
|
||||||
console.time(timeLabel);
|
console.timeEnd('Rebuild time');
|
||||||
await Promise.all(
|
|
||||||
contexts.map(async ({ config, context }) => {
|
|
||||||
const buildVariant = `Rebuild ${buildNumber} Time (${Object.keys(config.entryPoints!)[0]} ${config.format})`;
|
|
||||||
console.time(buildVariant);
|
|
||||||
await context.rebuild();
|
|
||||||
console.timeEnd(buildVariant);
|
|
||||||
})
|
|
||||||
).catch((e) => console.error(e));
|
|
||||||
console.timeEnd(timeLabel);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let clients: { id: number; response: Response }[] = [];
|
let clients: { id: number; response: Response }[] = [];
|
||||||
function eventsHandler(request: Request, response: Response) {
|
function eventsHandler(request: Request, response: Response, next: NextFunction) {
|
||||||
const headers = {
|
const headers = {
|
||||||
'Content-Type': 'text/event-stream',
|
'Content-Type': 'text/event-stream',
|
||||||
Connection: 'keep-alive',
|
Connection: 'keep-alive',
|
||||||
@@ -58,20 +45,19 @@ function eventsHandler(request: Request, response: Response) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let timeoutID: NodeJS.Timeout | undefined = undefined;
|
let timeoutId: NodeJS.Timeout | undefined = undefined;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debounce file change events to avoid rebuilding multiple times.
|
* Debounce file change events to avoid rebuilding multiple times.
|
||||||
*/
|
*/
|
||||||
function handleFileChange() {
|
function handleFileChange() {
|
||||||
if (timeoutID !== undefined) {
|
if (timeoutId !== undefined) {
|
||||||
clearTimeout(timeoutID);
|
clearTimeout(timeoutId);
|
||||||
}
|
}
|
||||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
timeoutId = setTimeout(async () => {
|
||||||
timeoutID = setTimeout(async () => {
|
|
||||||
await rebuildAll();
|
await rebuildAll();
|
||||||
sendEventsToAll();
|
sendEventsToAll();
|
||||||
timeoutID = undefined;
|
timeoutId = undefined;
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,16 +74,15 @@ async function createServer() {
|
|||||||
ignoreInitial: true,
|
ignoreInitial: true,
|
||||||
ignored: [/node_modules/, /dist/, /docs/, /coverage/],
|
ignored: [/node_modules/, /dist/, /docs/, /coverage/],
|
||||||
})
|
})
|
||||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
||||||
.on('all', async (event, path) => {
|
.on('all', async (event, path) => {
|
||||||
// Ignore other events.
|
// Ignore other events.
|
||||||
if (!['add', 'change'].includes(event)) {
|
if (!['add', 'change'].includes(event)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log(`${path} changed. Rebuilding...`);
|
if (/\.langium$/.test(path)) {
|
||||||
if (path.endsWith('.langium')) {
|
|
||||||
await generateLangium();
|
await generateLangium();
|
||||||
}
|
}
|
||||||
|
console.log(`${path} changed. Rebuilding...`);
|
||||||
handleFileChange();
|
handleFileChange();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -114,4 +99,4 @@ async function createServer() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void createServer();
|
createServer();
|
||||||
|
@@ -8,7 +8,7 @@ import { jisonPlugin } from './jisonPlugin.js';
|
|||||||
|
|
||||||
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
||||||
|
|
||||||
export interface MermaidBuildOptions extends BuildOptions {
|
export interface MermaidBuildOptions {
|
||||||
minify: boolean;
|
minify: boolean;
|
||||||
core: boolean;
|
core: boolean;
|
||||||
metafile: boolean;
|
metafile: boolean;
|
||||||
|
1
.eslintignore
Symbolic link
1
.eslintignore
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
.gitignore
|
190
.eslintrc.cjs
Normal file
190
.eslintrc.cjs
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
module.exports = {
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
es6: true,
|
||||||
|
'jest/globals': true,
|
||||||
|
node: true,
|
||||||
|
},
|
||||||
|
root: true,
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
parserOptions: {
|
||||||
|
ecmaFeatures: {
|
||||||
|
experimentalObjectRestSpread: true,
|
||||||
|
jsx: true,
|
||||||
|
},
|
||||||
|
tsconfigRootDir: __dirname,
|
||||||
|
sourceType: 'module',
|
||||||
|
ecmaVersion: 2022,
|
||||||
|
allowAutomaticSingleRunInference: true,
|
||||||
|
project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'],
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
},
|
||||||
|
extends: [
|
||||||
|
'eslint:recommended',
|
||||||
|
'plugin:@typescript-eslint/recommended',
|
||||||
|
'plugin:json/recommended',
|
||||||
|
'plugin:markdown/recommended-legacy',
|
||||||
|
'plugin:@cspell/recommended',
|
||||||
|
'prettier',
|
||||||
|
],
|
||||||
|
plugins: [
|
||||||
|
'@typescript-eslint',
|
||||||
|
'no-only-tests',
|
||||||
|
'html',
|
||||||
|
'jest',
|
||||||
|
'jsdoc',
|
||||||
|
'json',
|
||||||
|
'@cspell',
|
||||||
|
'lodash',
|
||||||
|
'unicorn',
|
||||||
|
],
|
||||||
|
ignorePatterns: [
|
||||||
|
// this file is automatically generated by `pnpm run --filter mermaid types:build-config`
|
||||||
|
'packages/mermaid/src/config.type.ts',
|
||||||
|
],
|
||||||
|
rules: {
|
||||||
|
curly: 'error',
|
||||||
|
'no-console': 'error',
|
||||||
|
'no-prototype-builtins': 'off',
|
||||||
|
'no-unused-vars': 'off',
|
||||||
|
'cypress/no-async-tests': 'off',
|
||||||
|
'@typescript-eslint/consistent-type-imports': 'error',
|
||||||
|
'@typescript-eslint/no-explicit-any': 'warn',
|
||||||
|
'@typescript-eslint/no-floating-promises': 'error',
|
||||||
|
'@typescript-eslint/no-misused-promises': 'error',
|
||||||
|
'@typescript-eslint/no-unused-vars': 'warn',
|
||||||
|
'@typescript-eslint/consistent-type-definitions': 'error',
|
||||||
|
'@typescript-eslint/ban-ts-comment': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
'ts-expect-error': 'allow-with-description',
|
||||||
|
'ts-ignore': 'allow-with-description',
|
||||||
|
'ts-nocheck': 'allow-with-description',
|
||||||
|
'ts-check': 'allow-with-description',
|
||||||
|
minimumDescriptionLength: 10,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'@typescript-eslint/naming-convention': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
selector: 'typeLike',
|
||||||
|
format: ['PascalCase'],
|
||||||
|
custom: {
|
||||||
|
regex: '^I[A-Z]',
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'json/*': ['error', 'allowComments'],
|
||||||
|
'@cspell/spellchecker': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
checkIdentifiers: true,
|
||||||
|
checkStrings: true,
|
||||||
|
checkStringTemplates: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'no-empty': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
allowEmptyCatch: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'no-only-tests/no-only-tests': 'error',
|
||||||
|
'lodash/import-scope': ['error', 'method'],
|
||||||
|
'unicorn/better-regex': 'error',
|
||||||
|
'unicorn/no-abusive-eslint-disable': 'error',
|
||||||
|
'unicorn/no-array-push-push': 'error',
|
||||||
|
'unicorn/no-for-loop': 'error',
|
||||||
|
'unicorn/no-instanceof-array': 'error',
|
||||||
|
'unicorn/no-typeof-undefined': 'error',
|
||||||
|
'unicorn/no-unnecessary-await': 'error',
|
||||||
|
'unicorn/no-unsafe-regex': 'warn',
|
||||||
|
'unicorn/no-useless-promise-resolve-reject': 'error',
|
||||||
|
'unicorn/prefer-array-find': 'error',
|
||||||
|
'unicorn/prefer-array-flat-map': 'error',
|
||||||
|
'unicorn/prefer-array-index-of': 'error',
|
||||||
|
'unicorn/prefer-array-some': 'error',
|
||||||
|
'unicorn/prefer-default-parameters': 'error',
|
||||||
|
'unicorn/prefer-includes': 'error',
|
||||||
|
'unicorn/prefer-negative-index': 'error',
|
||||||
|
'unicorn/prefer-object-from-entries': 'error',
|
||||||
|
'unicorn/prefer-string-starts-ends-with': 'error',
|
||||||
|
'unicorn/prefer-string-trim-start-end': 'error',
|
||||||
|
'unicorn/string-content': 'error',
|
||||||
|
'unicorn/prefer-spread': 'error',
|
||||||
|
'unicorn/no-lonely-if': 'error',
|
||||||
|
},
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['cypress/**', 'demos/**'],
|
||||||
|
rules: {
|
||||||
|
'no-console': 'off',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.{js,jsx,mjs,cjs}'],
|
||||||
|
extends: ['plugin:jsdoc/recommended'],
|
||||||
|
rules: {
|
||||||
|
'jsdoc/check-indentation': 'off',
|
||||||
|
'jsdoc/check-alignment': 'off',
|
||||||
|
'jsdoc/check-line-alignment': 'off',
|
||||||
|
'jsdoc/multiline-blocks': 'off',
|
||||||
|
'jsdoc/newline-after-description': 'off',
|
||||||
|
'jsdoc/tag-lines': 'off',
|
||||||
|
'jsdoc/require-param-description': 'off',
|
||||||
|
'jsdoc/require-param-type': 'off',
|
||||||
|
'jsdoc/require-returns': 'off',
|
||||||
|
'jsdoc/require-returns-description': 'off',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.{ts,tsx}'],
|
||||||
|
plugins: ['tsdoc'],
|
||||||
|
rules: {
|
||||||
|
'no-restricted-syntax': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
selector: 'TSEnumDeclaration',
|
||||||
|
message:
|
||||||
|
'Prefer using TypeScript union types over TypeScript enum, since TypeScript enums have a bunch of issues, see https://dev.to/dvddpl/whats-the-problem-with-typescript-enums-2okj',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'tsdoc/syntax': 'error',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.spec.{ts,js}', 'cypress/**', 'demos/**', '**/docs/**'],
|
||||||
|
rules: {
|
||||||
|
'jsdoc/require-jsdoc': 'off',
|
||||||
|
'@typescript-eslint/no-unused-vars': 'off',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.spec.{ts,js}', 'tests/**', 'cypress/**/*.js'],
|
||||||
|
rules: {
|
||||||
|
'@cspell/spellchecker': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
checkIdentifiers: false,
|
||||||
|
checkStrings: false,
|
||||||
|
checkStringTemplates: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
files: ['*.html', '*.md', '**/*.md/*'],
|
||||||
|
rules: {
|
||||||
|
'no-var': 'error',
|
||||||
|
'no-undef': 'off',
|
||||||
|
'@typescript-eslint/no-unused-vars': 'off',
|
||||||
|
'@typescript-eslint/no-floating-promises': 'off',
|
||||||
|
'@typescript-eslint/no-misused-promises': 'off',
|
||||||
|
},
|
||||||
|
parserOptions: {
|
||||||
|
project: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@@ -15,4 +15,4 @@ Make sure you
|
|||||||
- [ ] :book: have read the [contribution guidelines](https://mermaid.js.org/community/contributing.html)
|
- [ ] :book: have read the [contribution guidelines](https://mermaid.js.org/community/contributing.html)
|
||||||
- [ ] :computer: have added necessary unit/e2e tests.
|
- [ ] :computer: have added necessary unit/e2e tests.
|
||||||
- [ ] :notebook: have added documentation. Make sure [`MERMAID_RELEASE_VERSION`](https://mermaid.js.org/community/contributing.html#update-documentation) is used for all new features.
|
- [ ] :notebook: have added documentation. Make sure [`MERMAID_RELEASE_VERSION`](https://mermaid.js.org/community/contributing.html#update-documentation) is used for all new features.
|
||||||
- [ ] :butterfly: If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running `pnpm changeset` and following the prompts. Changesets that add features should be `minor` and those that fix bugs should be `patch`. Please prefix changeset messages with `feat:`, `fix:`, or `chore:`.
|
- [ ] :bookmark: targeted `develop` branch
|
||||||
|
36
.github/release-drafter.yml
vendored
Normal file
36
.github/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name-template: '$NEXT_PATCH_VERSION'
|
||||||
|
tag-template: '$NEXT_PATCH_VERSION'
|
||||||
|
categories:
|
||||||
|
- title: '🚨 **Breaking Changes**'
|
||||||
|
labels:
|
||||||
|
- 'Breaking Change'
|
||||||
|
- title: '🚀 Features'
|
||||||
|
labels:
|
||||||
|
- 'Type: Enhancement'
|
||||||
|
- 'feature' # deprecated, new PRs shouldn't have this
|
||||||
|
- title: '🐛 Bug Fixes'
|
||||||
|
labels:
|
||||||
|
- 'Type: Bug / Error'
|
||||||
|
- 'fix' # deprecated, new PRs shouldn't have this
|
||||||
|
- title: '🧰 Maintenance'
|
||||||
|
labels:
|
||||||
|
- 'Type: Other'
|
||||||
|
- 'chore' # deprecated, new PRs shouldn't have this
|
||||||
|
- title: '⚡️ Performance'
|
||||||
|
labels:
|
||||||
|
- 'Type: Performance'
|
||||||
|
- title: '📚 Documentation'
|
||||||
|
labels:
|
||||||
|
- 'Area: Documentation'
|
||||||
|
change-template: '- $TITLE (#$NUMBER) @$AUTHOR'
|
||||||
|
sort-by: title
|
||||||
|
sort-direction: ascending
|
||||||
|
exclude-labels:
|
||||||
|
- 'Skip changelog'
|
||||||
|
no-changes-template: 'This release contains minor changes and bugfixes.'
|
||||||
|
template: |
|
||||||
|
# Release Notes
|
||||||
|
|
||||||
|
$CHANGES
|
||||||
|
|
||||||
|
🎉 **Thanks to all contributors helping with this release!** 🎉
|
43
.github/workflows/autofix.yml
vendored
43
.github/workflows/autofix.yml
vendored
@@ -1,43 +0,0 @@
|
|||||||
name: autofix.ci # needed to securely identify the workflow
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches-ignore:
|
|
||||||
- 'renovate/**'
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
autofix:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
|
||||||
# uses version from "packageManager" field in package.json
|
|
||||||
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
cache: pnpm
|
|
||||||
node-version-file: '.node-version'
|
|
||||||
|
|
||||||
- name: Install Packages
|
|
||||||
run: |
|
|
||||||
pnpm install --frozen-lockfile
|
|
||||||
env:
|
|
||||||
CYPRESS_CACHE_FOLDER: .cache/Cypress
|
|
||||||
|
|
||||||
- name: Fix Linting
|
|
||||||
shell: bash
|
|
||||||
run: pnpm -w run lint:fix
|
|
||||||
|
|
||||||
- name: Sync `./src/config.type.ts` with `./src/schemas/config.schema.yaml`
|
|
||||||
shell: bash
|
|
||||||
run: pnpm run --filter mermaid types:build-config
|
|
||||||
|
|
||||||
- name: Build Docs
|
|
||||||
working-directory: ./packages/mermaid
|
|
||||||
run: pnpm run docs:build
|
|
||||||
|
|
||||||
- uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c
|
|
2
.github/workflows/build-docs.yml
vendored
2
.github/workflows/build-docs.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
# uses version from "packageManager" field in package.json
|
# uses version from "packageManager" field in package.json
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
|
2
.github/workflows/e2e-applitools.yml
vendored
2
.github/workflows/e2e-applitools.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
# uses version from "packageManager" field in package.json
|
# uses version from "packageManager" field in package.json
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
|
13
.github/workflows/e2e.yml
vendored
13
.github/workflows/e2e.yml
vendored
@@ -24,7 +24,6 @@ env:
|
|||||||
) ||
|
) ||
|
||||||
github.event.before
|
github.event.before
|
||||||
}}
|
}}
|
||||||
shouldRunParallel: ${{ secrets.CYPRESS_RECORD_KEY != '' && !(github.event_name == 'push' && github.ref == 'refs/heads/develop') }}
|
|
||||||
jobs:
|
jobs:
|
||||||
cache:
|
cache:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -33,7 +32,7 @@ jobs:
|
|||||||
options: --user 1001
|
options: --user 1001
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
@@ -80,7 +79,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
# uses version from "packageManager" field in package.json
|
# uses version from "packageManager" field in package.json
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
@@ -117,7 +116,7 @@ jobs:
|
|||||||
id: cypress
|
id: cypress
|
||||||
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
|
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
|
||||||
# Otherwise (e.g. if running from fork), we run on a single container only
|
# Otherwise (e.g. if running from fork), we run on a single container only
|
||||||
if: ${{ env.shouldRunParallel == 'true' || ( matrix.containers == 1 ) }}
|
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
|
||||||
with:
|
with:
|
||||||
install: false
|
install: false
|
||||||
start: pnpm run dev:coverage
|
start: pnpm run dev:coverage
|
||||||
@@ -125,14 +124,14 @@ jobs:
|
|||||||
browser: chrome
|
browser: chrome
|
||||||
# Disable recording if we don't have an API key
|
# Disable recording if we don't have an API key
|
||||||
# e.g. if this action was run from a fork
|
# e.g. if this action was run from a fork
|
||||||
record: ${{ env.shouldRunParallel == 'true' }}
|
record: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
|
||||||
parallel: ${{ env.shouldRunParallel == 'true' }}
|
parallel: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
|
||||||
env:
|
env:
|
||||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||||
VITEST_COVERAGE: true
|
VITEST_COVERAGE: true
|
||||||
CYPRESS_COMMIT: ${{ github.sha }}
|
CYPRESS_COMMIT: ${{ github.sha }}
|
||||||
ARGOS_TOKEN: ${{ secrets.ARGOS_TOKEN }}
|
ARGOS_TOKEN: ${{ secrets.ARGOS_TOKEN }}
|
||||||
ARGOS_PARALLEL: ${{ env.shouldRunParallel == 'true' }}
|
ARGOS_PARALLEL: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
|
||||||
ARGOS_PARALLEL_TOTAL: 4
|
ARGOS_PARALLEL_TOTAL: 4
|
||||||
ARGOS_PARALLEL_INDEX: ${{ matrix.containers }}
|
ARGOS_PARALLEL_INDEX: ${{ matrix.containers }}
|
||||||
|
|
||||||
|
18
.github/workflows/lint.yml
vendored
18
.github/workflows/lint.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
# uses version from "packageManager" field in package.json
|
# uses version from "packageManager" field in package.json
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
@@ -37,9 +37,9 @@ jobs:
|
|||||||
- name: Run Linting
|
- name: Run Linting
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
if ! pnpm run lint; then
|
if ! pnpm run lint:ci; then
|
||||||
# print a nice error message on lint failure
|
# print a nice error message on lint failure
|
||||||
ERROR_MESSAGE='Running `pnpm run lint` failed.'
|
ERROR_MESSAGE='Running `pnpm run lint:ci` failed.'
|
||||||
ERROR_MESSAGE+=' Running `pnpm -w run lint:fix` may fix this issue. '
|
ERROR_MESSAGE+=' Running `pnpm -w run lint:fix` may fix this issue. '
|
||||||
ERROR_MESSAGE+=" If this error doesn't occur on your local machine,"
|
ERROR_MESSAGE+=" If this error doesn't occur on your local machine,"
|
||||||
ERROR_MESSAGE+=' make sure your packages are up-to-date by running `pnpm install`.'
|
ERROR_MESSAGE+=' make sure your packages are up-to-date by running `pnpm install`.'
|
||||||
@@ -82,3 +82,15 @@ jobs:
|
|||||||
working-directory: ./packages/mermaid
|
working-directory: ./packages/mermaid
|
||||||
continue-on-error: ${{ github.event_name == 'push' }}
|
continue-on-error: ${{ github.event_name == 'push' }}
|
||||||
run: pnpm run docs:verify
|
run: pnpm run docs:verify
|
||||||
|
|
||||||
|
- name: Rebuild Docs
|
||||||
|
if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
|
||||||
|
working-directory: ./packages/mermaid
|
||||||
|
run: pnpm run docs:build
|
||||||
|
|
||||||
|
- name: Commit changes
|
||||||
|
uses: EndBug/add-and-commit@v9
|
||||||
|
if: ${{ steps.verifyDocs.outcome == 'failure' && github.event_name == 'push' }}
|
||||||
|
with:
|
||||||
|
message: 'Update docs'
|
||||||
|
add: 'docs/*'
|
||||||
|
2
.github/workflows/publish-docs.yml
vendored
2
.github/workflows/publish-docs.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
23
.github/workflows/release-draft.yml
vendored
Normal file
23
.github/workflows/release-draft.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
name: Draft Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
draft-release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write # write permission is required to create a GitHub release
|
||||||
|
pull-requests: read # required to read PR titles/labels
|
||||||
|
steps:
|
||||||
|
- name: Draft Release
|
||||||
|
uses: release-drafter/release-drafter@v6
|
||||||
|
with:
|
||||||
|
disable-autolabeler: true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
@@ -13,7 +13,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
2
.github/workflows/release-publish.yml
vendored
2
.github/workflows/release-publish.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: fregante/setup-git-user@v2
|
- uses: fregante/setup-git-user@v2
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
# uses version from "packageManager" field in package.json
|
# uses version from "packageManager" field in package.json
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
|
37
.github/workflows/release.yml
vendored
37
.github/workflows/release.yml
vendored
@@ -1,37 +0,0 @@
|
|||||||
name: Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
concurrency: ${{ github.workflow }}-${{ github.ref }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
name: Release
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Repo
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
|
||||||
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
cache: pnpm
|
|
||||||
node-version-file: '.node-version'
|
|
||||||
|
|
||||||
- name: Install Packages
|
|
||||||
run: pnpm install --frozen-lockfile
|
|
||||||
|
|
||||||
- name: Create Release Pull Request or Publish to npm
|
|
||||||
id: changesets
|
|
||||||
uses: changesets/action@v1
|
|
||||||
with:
|
|
||||||
version: pnpm changeset:version
|
|
||||||
publish: pnpm changeset:publish
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
# uses version from "packageManager" field in package.json
|
# uses version from "packageManager" field in package.json
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
|
2
.github/workflows/update-browserlist.yml
vendored
2
.github/workflows/update-browserlist.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: pnpm/action-setup@v4
|
- uses: pnpm/action-setup@v2
|
||||||
- run: npx update-browserslist-db@latest
|
- run: npx update-browserslist-db@latest
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: EndBug/add-and-commit@v9
|
uses: EndBug/add-and-commit@v9
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -35,7 +35,7 @@ cypress/snapshots/
|
|||||||
.tsbuildinfo
|
.tsbuildinfo
|
||||||
tsconfig.tsbuildinfo
|
tsconfig.tsbuildinfo
|
||||||
|
|
||||||
#knsv*.html
|
knsv*.html
|
||||||
local*.html
|
local*.html
|
||||||
stats/
|
stats/
|
||||||
|
|
||||||
|
@@ -1,10 +1,6 @@
|
|||||||
export default {
|
export default {
|
||||||
'!(docs/**/*)*.{ts,js,html,md,mts}': [
|
'!(docs/**/*)*.{ts,js,html,md,mts}': [
|
||||||
'eslint --cache --cache-strategy content --fix',
|
'biome check --no-errors-on-unmatched --files-ignore-unknown=true --write',
|
||||||
// don't cache prettier yet, since we use `prettier-plugin-jsdoc`,
|
|
||||||
// and prettier doesn't invalidate cache on plugin updates"
|
|
||||||
// https://prettier.io/docs/en/cli.html#--cache
|
|
||||||
'prettier --write',
|
|
||||||
],
|
],
|
||||||
'.cspell/*.txt': ['tsx scripts/fixCSpell.ts'],
|
'.cspell/*.txt': ['tsx scripts/fixCSpell.ts'],
|
||||||
'**/*.jison': ['pnpm -w run lint:jison'],
|
'**/*.jison': ['pnpm -w run lint:jison'],
|
||||||
|
@@ -1,20 +0,0 @@
|
|||||||
dist
|
|
||||||
cypress/platform/xss3.html
|
|
||||||
.cache
|
|
||||||
.pnpm-store
|
|
||||||
coverage
|
|
||||||
# Autogenerated by PNPM
|
|
||||||
pnpm-lock.yaml
|
|
||||||
stats
|
|
||||||
**/.vitepress/components.d.ts
|
|
||||||
**/.vitepress/cache
|
|
||||||
.nyc_output
|
|
||||||
# Autogenerated by `pnpm run --filter mermaid types:build-config`
|
|
||||||
packages/mermaid/src/config.type.ts
|
|
||||||
# autogenereated by langium-cli
|
|
||||||
generated/
|
|
||||||
# Ignore the files creates in /demos/dev except for example.html
|
|
||||||
demos/dev/**
|
|
||||||
!/demos/dev/example.html
|
|
||||||
# TODO: Lots of errors to fix
|
|
||||||
cypress/platform/state-refactor.html
|
|
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"endOfLine": "auto",
|
|
||||||
"printWidth": 100,
|
|
||||||
"singleQuote": true,
|
|
||||||
"useTabs": false,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"trailingComma": "es5"
|
|
||||||
}
|
|
@@ -1,5 +1,4 @@
|
|||||||
import type { InlineConfig } from 'vite';
|
import { build, type InlineConfig, type PluginOption } from 'vite';
|
||||||
import { build, type PluginOption } from 'vite';
|
|
||||||
import { resolve } from 'path';
|
import { resolve } from 'path';
|
||||||
import { fileURLToPath } from 'url';
|
import { fileURLToPath } from 'url';
|
||||||
import jisonPlugin from './jisonPlugin.js';
|
import jisonPlugin from './jisonPlugin.js';
|
||||||
@@ -47,7 +46,6 @@ interface BuildOptions {
|
|||||||
|
|
||||||
export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => {
|
export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => {
|
||||||
const external: (string | RegExp)[] = ['require', 'fs', 'path'];
|
const external: (string | RegExp)[] = ['require', 'fs', 'path'];
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.log(entryName, packageOptions[entryName]);
|
console.log(entryName, packageOptions[entryName]);
|
||||||
const { name, file, packageName } = packageOptions[entryName];
|
const { name, file, packageName } = packageOptions[entryName];
|
||||||
const output: OutputOptions = [
|
const output: OutputOptions = [
|
||||||
@@ -85,6 +83,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
|
|||||||
plugins: [
|
plugins: [
|
||||||
jisonPlugin(),
|
jisonPlugin(),
|
||||||
jsonSchemaPlugin(), // handles `.schema.yaml` files
|
jsonSchemaPlugin(), // handles `.schema.yaml` files
|
||||||
|
// @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite
|
||||||
typescript({ compilerOptions: { declaration: false } }),
|
typescript({ compilerOptions: { declaration: false } }),
|
||||||
istanbul({
|
istanbul({
|
||||||
exclude: ['node_modules', 'test/', '__mocks__', 'generated'],
|
exclude: ['node_modules', 'test/', '__mocks__', 'generated'],
|
||||||
@@ -122,10 +121,10 @@ await generateLangium();
|
|||||||
|
|
||||||
if (watch) {
|
if (watch) {
|
||||||
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
|
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
|
||||||
void build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' }));
|
build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' }));
|
||||||
if (!mermaidOnly) {
|
if (!mermaidOnly) {
|
||||||
void build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
|
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
|
||||||
void build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-zenuml' }));
|
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-zenuml' }));
|
||||||
}
|
}
|
||||||
} else if (visualize) {
|
} else if (visualize) {
|
||||||
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
|
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
|
||||||
|
@@ -23,9 +23,8 @@ async function createServer() {
|
|||||||
app.use(express.static('cypress/platform'));
|
app.use(express.static('cypress/platform'));
|
||||||
|
|
||||||
app.listen(9000, () => {
|
app.listen(9000, () => {
|
||||||
// eslint-disable-next-line no-console
|
|
||||||
console.log(`Listening on http://localhost:9000`);
|
console.log(`Listening on http://localhost:9000`);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void createServer();
|
createServer();
|
||||||
|
229
biome.json
Normal file
229
biome.json
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://biomejs.dev/schemas/1.8.2/schema.json",
|
||||||
|
"files": {
|
||||||
|
"ignore": [
|
||||||
|
"**/contributor-names.json",
|
||||||
|
"**/generated/",
|
||||||
|
"**/knsv*.html",
|
||||||
|
"**/local*.html",
|
||||||
|
"**/stats/",
|
||||||
|
"**/user-avatars/*",
|
||||||
|
"./.vscode/**",
|
||||||
|
"cypress/platform/current.html",
|
||||||
|
"cypress/platform/experimental.html",
|
||||||
|
"cypress/platform/xss3.html",
|
||||||
|
"cypress/screenshots/",
|
||||||
|
"cypress/snapshots/",
|
||||||
|
"demos/dev/**",
|
||||||
|
"packages/mermaid/src/config.type.ts"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"formatter": {
|
||||||
|
"enabled": true,
|
||||||
|
"formatWithErrors": false,
|
||||||
|
"indentStyle": "space",
|
||||||
|
"indentWidth": 2,
|
||||||
|
"lineEnding": "lf",
|
||||||
|
"lineWidth": 100,
|
||||||
|
"attributePosition": "auto"
|
||||||
|
},
|
||||||
|
"organizeImports": { "enabled": false },
|
||||||
|
"linter": {
|
||||||
|
"enabled": true,
|
||||||
|
"rules": {
|
||||||
|
"recommended": false,
|
||||||
|
"complexity": {
|
||||||
|
"noBannedTypes": "error",
|
||||||
|
"noExtraBooleanCast": "error",
|
||||||
|
"noMultipleSpacesInRegularExpressionLiterals": "error",
|
||||||
|
"noUselessCatch": "error",
|
||||||
|
"noUselessThisAlias": "error",
|
||||||
|
"noUselessTypeConstraint": "error",
|
||||||
|
"noWith": "error",
|
||||||
|
"useFlatMap": "error"
|
||||||
|
},
|
||||||
|
"correctness": {
|
||||||
|
"noConstAssign": "error",
|
||||||
|
"noConstantCondition": "error",
|
||||||
|
"noEmptyCharacterClassInRegex": "error",
|
||||||
|
"noEmptyPattern": "error",
|
||||||
|
"noGlobalObjectCalls": "error",
|
||||||
|
"noInnerDeclarations": "error",
|
||||||
|
"noInvalidConstructorSuper": "error",
|
||||||
|
"noNewSymbol": "error",
|
||||||
|
"noNonoctalDecimalEscape": "error",
|
||||||
|
"noPrecisionLoss": "error",
|
||||||
|
"noSelfAssign": "error",
|
||||||
|
"noSetterReturn": "error",
|
||||||
|
"noSwitchDeclarations": "error",
|
||||||
|
"noUndeclaredVariables": "error",
|
||||||
|
"noUnreachable": "error",
|
||||||
|
"noUnreachableSuper": "error",
|
||||||
|
"noUnsafeFinally": "error",
|
||||||
|
"noUnsafeOptionalChaining": "error",
|
||||||
|
"noUnusedLabels": "error",
|
||||||
|
"noUnusedVariables": "off",
|
||||||
|
"useArrayLiterals": "off",
|
||||||
|
"useIsNan": "error",
|
||||||
|
"useValidForDirection": "error",
|
||||||
|
"useYield": "error"
|
||||||
|
},
|
||||||
|
"style": {
|
||||||
|
"noNamespace": "error",
|
||||||
|
"useAsConstAssertion": "error",
|
||||||
|
"useBlockStatements": "error",
|
||||||
|
"useForOf": "error",
|
||||||
|
"useImportType": "error",
|
||||||
|
"useNamingConvention": {
|
||||||
|
"level": "off",
|
||||||
|
"options": { "strictCase": false }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"suspicious": {
|
||||||
|
"noAssignInExpressions": "warn",
|
||||||
|
"noAsyncPromiseExecutor": "error",
|
||||||
|
"noCatchAssign": "error",
|
||||||
|
"noClassAssign": "error",
|
||||||
|
"noCompareNegZero": "error",
|
||||||
|
"noConsoleLog": "off",
|
||||||
|
"noControlCharactersInRegex": "error",
|
||||||
|
"noDebugger": "error",
|
||||||
|
"noDuplicateCase": "error",
|
||||||
|
"noDuplicateClassMembers": "error",
|
||||||
|
"noDuplicateObjectKeys": "error",
|
||||||
|
"noDuplicateParameters": "error",
|
||||||
|
"noEmptyBlockStatements": "off",
|
||||||
|
"noExplicitAny": "off",
|
||||||
|
"noExtraNonNullAssertion": "error",
|
||||||
|
"noFallthroughSwitchClause": "error",
|
||||||
|
"noFunctionAssign": "error",
|
||||||
|
"noGlobalAssign": "error",
|
||||||
|
"noImportAssign": "error",
|
||||||
|
"noMisleadingCharacterClass": "error",
|
||||||
|
"noMisleadingInstantiator": "error",
|
||||||
|
"noPrototypeBuiltins": "off",
|
||||||
|
"noRedeclare": "error",
|
||||||
|
"noShadowRestrictedNames": "error",
|
||||||
|
"noUnsafeDeclarationMerging": "error",
|
||||||
|
"noUnsafeNegation": "error",
|
||||||
|
"useGetterReturn": "error",
|
||||||
|
"useIsArray": "error",
|
||||||
|
"useValidTypeof": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"javascript": {
|
||||||
|
"formatter": {
|
||||||
|
"jsxQuoteStyle": "double",
|
||||||
|
"quoteProperties": "asNeeded",
|
||||||
|
"trailingCommas": "es5",
|
||||||
|
"semicolons": "always",
|
||||||
|
"arrowParentheses": "always",
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"bracketSameLine": false,
|
||||||
|
"quoteStyle": "single",
|
||||||
|
"attributePosition": "auto"
|
||||||
|
},
|
||||||
|
"globals": [
|
||||||
|
"it",
|
||||||
|
"describe",
|
||||||
|
"beforeEach",
|
||||||
|
"beforeAll",
|
||||||
|
"afterEach",
|
||||||
|
"cy",
|
||||||
|
"expect",
|
||||||
|
"context",
|
||||||
|
"Cypress"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"include": ["cypress/**", "demos/**", "**/scripts"],
|
||||||
|
"linter": { "rules": { "suspicious": { "noConsoleLog": "off" } } }
|
||||||
|
},
|
||||||
|
{ "include": ["*.{js,jsx,mjs,cjs}"], "linter": { "rules": {} } },
|
||||||
|
{ "include": ["*.{ts,tsx}"], "linter": { "rules": {} } },
|
||||||
|
{
|
||||||
|
"include": ["*.spec.{ts,js}", "cypress/**", "demos/**", "**/docs/**"],
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"correctness": { "noUnusedVariables": "off" },
|
||||||
|
"style": {
|
||||||
|
"useNamingConvention": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": ["*.spec.{ts,js}", "tests/**", "cypress/**/*.js"],
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"style": {
|
||||||
|
"useNamingConvention": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": ["*.html", "*.md", "**/*.md/*"],
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"correctness": {
|
||||||
|
"noUndeclaredVariables": "off",
|
||||||
|
"noUnusedVariables": "off"
|
||||||
|
},
|
||||||
|
"style": { "noVar": "error" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "include": ["*.md"] },
|
||||||
|
{
|
||||||
|
"include": ["**/*.md/**"],
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"correctness": {
|
||||||
|
"noUndeclaredVariables": "off",
|
||||||
|
"noUnusedVariables": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": ["*.ts", "*.tsx", "*.mts", "*.cts"],
|
||||||
|
"linter": {
|
||||||
|
"rules": {
|
||||||
|
"correctness": {
|
||||||
|
"noConstAssign": "off",
|
||||||
|
"noGlobalObjectCalls": "off",
|
||||||
|
"noInvalidConstructorSuper": "off",
|
||||||
|
"noNewSymbol": "off",
|
||||||
|
"noSetterReturn": "off",
|
||||||
|
"noUndeclaredVariables": "off",
|
||||||
|
"noUnreachable": "off",
|
||||||
|
"noUnreachableSuper": "off"
|
||||||
|
},
|
||||||
|
"style": {
|
||||||
|
"noArguments": "error",
|
||||||
|
"noVar": "error",
|
||||||
|
"useConst": "error"
|
||||||
|
},
|
||||||
|
"suspicious": {
|
||||||
|
"noDuplicateClassMembers": "off",
|
||||||
|
"noDuplicateObjectKeys": "off",
|
||||||
|
"noDuplicateParameters": "off",
|
||||||
|
"noFunctionAssign": "off",
|
||||||
|
"noImportAssign": "off",
|
||||||
|
"noRedeclare": "off",
|
||||||
|
"noUnsafeNegation": "off",
|
||||||
|
"useGetterReturn": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vcs": {
|
||||||
|
"enabled": true,
|
||||||
|
"clientKind": "git",
|
||||||
|
"useIgnoreFile": true
|
||||||
|
}
|
||||||
|
}
|
@@ -35,7 +35,7 @@ export const mermaidUrl = (
|
|||||||
};
|
};
|
||||||
const objStr: string = JSON.stringify(codeObject);
|
const objStr: string = JSON.stringify(codeObject);
|
||||||
let url = `http://localhost:9000/e2e.html?graph=${utf8ToB64(objStr)}`;
|
let url = `http://localhost:9000/e2e.html?graph=${utf8ToB64(objStr)}`;
|
||||||
if (api && typeof graphStr === 'string') {
|
if (api) {
|
||||||
url = `http://localhost:9000/xss.html?graph=${graphStr}`;
|
url = `http://localhost:9000/xss.html?graph=${graphStr}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,15 +54,16 @@ export const imgSnapshotTest = (
|
|||||||
): void => {
|
): void => {
|
||||||
const options: CypressMermaidConfig = {
|
const options: CypressMermaidConfig = {
|
||||||
..._options,
|
..._options,
|
||||||
fontFamily: _options.fontFamily ?? 'courier',
|
fontFamily: _options.fontFamily || 'courier',
|
||||||
// @ts-ignore TODO: Fix type of fontSize
|
// @ts-ignore TODO: Fix type of fontSize
|
||||||
fontSize: _options.fontSize ?? '16px',
|
fontSize: _options.fontSize || '16px',
|
||||||
sequence: {
|
sequence: {
|
||||||
...(_options.sequence ?? {}),
|
...(_options.sequence || {}),
|
||||||
actorFontFamily: 'courier',
|
actorFontFamily: 'courier',
|
||||||
noteFontFamily: _options.sequence?.noteFontFamily
|
noteFontFamily:
|
||||||
? _options.sequence.noteFontFamily
|
_options.sequence && _options.sequence.noteFontFamily
|
||||||
: 'courier',
|
? _options.sequence.noteFontFamily
|
||||||
|
: 'courier',
|
||||||
messageFontFamily: 'courier',
|
messageFontFamily: 'courier',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -94,7 +95,7 @@ export const openURLAndVerifyRendering = (
|
|||||||
options: CypressMermaidConfig,
|
options: CypressMermaidConfig,
|
||||||
validation?: any
|
validation?: any
|
||||||
): void => {
|
): void => {
|
||||||
const name: string = (options.name ?? cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
|
const name: string = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
|
||||||
|
|
||||||
cy.visit(url);
|
cy.visit(url);
|
||||||
cy.window().should('have.property', 'rendered', true);
|
cy.window().should('have.property', 'rendered', true);
|
||||||
@@ -124,9 +125,7 @@ export const verifyScreenshot = (name: string): void => {
|
|||||||
cy.log(`Closing eyes ${Cypress.spec.name}`);
|
cy.log(`Closing eyes ${Cypress.spec.name}`);
|
||||||
cy.eyesClose();
|
cy.eyesClose();
|
||||||
} else if (useArgos) {
|
} else if (useArgos) {
|
||||||
cy.argosScreenshot(name, {
|
cy.argosScreenshot(name);
|
||||||
threshold: 0.01,
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
cy.matchImageSnapshot(name);
|
cy.matchImageSnapshot(name);
|
||||||
}
|
}
|
||||||
|
14
cypress/integration/other/flowchart-elk.spec.js
Normal file
14
cypress/integration/other/flowchart-elk.spec.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { urlSnapshotTest, openURLAndVerifyRendering } from '../../helpers/util.ts';
|
||||||
|
|
||||||
|
describe('Flowchart elk', () => {
|
||||||
|
it('should use dagre as fallback', () => {
|
||||||
|
urlSnapshotTest('http://localhost:9000/flow-elk.html', {
|
||||||
|
name: 'flow-elk fallback to dagre',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it('should allow overriding with external package', () => {
|
||||||
|
urlSnapshotTest('http://localhost:9000/flow-elk.html?elk=true', {
|
||||||
|
name: 'flow-elk overriding dagre with elk',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@@ -11,27 +11,6 @@ describe('Git Graph diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('Should render subgraphs with title margins and edge labels', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`flowchart LR
|
|
||||||
|
|
||||||
subgraph TOP
|
|
||||||
direction TB
|
|
||||||
subgraph B1
|
|
||||||
direction RL
|
|
||||||
i1 --lb1-->f1
|
|
||||||
end
|
|
||||||
subgraph B2
|
|
||||||
direction BT
|
|
||||||
i2 --lb2-->f2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
A --lb3--> TOP --lb4--> B
|
|
||||||
B1 --lb5--> B2
|
|
||||||
`,
|
|
||||||
{ flowchart: { subGraphTitleMargin: { top: 10, bottom: 5 } } }
|
|
||||||
);
|
|
||||||
});
|
|
||||||
// it(`ultraFastTest`, function () {
|
// it(`ultraFastTest`, function () {
|
||||||
// // Navigate to the url we want to test
|
// // Navigate to the url we want to test
|
||||||
// // ⭐️ Note to see visual bugs, run the test using the above URL for the 1st run.
|
// // ⭐️ Note to see visual bugs, run the test using the above URL for the 1st run.
|
||||||
|
@@ -236,7 +236,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL17: width alignment - blocks shold be equal in width', () => {
|
it('BL16: width alignment - blocks shold be equal in width', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A("This is the text")
|
A("This is the text")
|
||||||
@@ -247,7 +247,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL18: block types 1 - square, rounded and circle', () => {
|
it('BL17: block types 1 - square, rounded and circle', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A["square"]
|
A["square"]
|
||||||
@@ -258,7 +258,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL19: block types 2 - odd, diamond and hexagon', () => {
|
it('BL18: block types 2 - odd, diamond and hexagon', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A>"rect_left_inv_arrow"]
|
A>"rect_left_inv_arrow"]
|
||||||
@@ -269,7 +269,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL20: block types 3 - stadium', () => {
|
it('BL19: block types 3 - stadium', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A(["stadium"])
|
A(["stadium"])
|
||||||
@@ -278,7 +278,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL21: block types 4 - lean right, lean left, trapezoid and inv trapezoid', () => {
|
it('BL20: block types 4 - lean right, lean left, trapezoid and inv trapezoid', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A[/"lean right"/]
|
A[/"lean right"/]
|
||||||
@@ -290,7 +290,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL22: block types 1 - square, rounded and circle', () => {
|
it('BL21: block types 1 - square, rounded and circle', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A["square"]
|
A["square"]
|
||||||
@@ -301,7 +301,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL23: sizing - it should be possible to make a block wider', () => {
|
it('BL22: sizing - it should be possible to make a block wider', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
A("rounded"):2
|
A("rounded"):2
|
||||||
@@ -312,7 +312,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL24: sizing - it should be possible to make a composite block wider', () => {
|
it('BL23: sizing - it should be possible to make a composite block wider', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
block:2
|
block:2
|
||||||
@@ -324,7 +324,7 @@ describe('Block diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('BL25: block in the middle with space on each side', () => {
|
it('BL24: block in the middle with space on each side', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
columns 3
|
columns 3
|
||||||
@@ -335,7 +335,7 @@ describe('Block diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('BL26: space and an edge', () => {
|
it('BL25: space and an edge', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
columns 5
|
columns 5
|
||||||
@@ -345,7 +345,7 @@ describe('Block diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('BL27: block sizes for regular blocks', () => {
|
it('BL26: block sizes for regular blocks', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
columns 3
|
columns 3
|
||||||
@@ -354,7 +354,7 @@ describe('Block diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('BL28: composite block with a set width - f should use the available space', () => {
|
it('BL27: composite block with a set width - f should use the available space', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
columns 3
|
columns 3
|
||||||
@@ -363,12 +363,11 @@ describe('Block diagram', () => {
|
|||||||
f
|
f
|
||||||
end
|
end
|
||||||
g
|
g
|
||||||
`,
|
`,
|
||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
it('BL23: composite block with a set width - f and g should split the available space', () => {
|
||||||
it('BL29: composite block with a set width - f and g should split the available space', () => {
|
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`block-beta
|
`block-beta
|
||||||
columns 3
|
columns 3
|
||||||
@@ -380,7 +379,7 @@ describe('Block diagram', () => {
|
|||||||
h
|
h
|
||||||
i
|
i
|
||||||
j
|
j
|
||||||
`,
|
`,
|
||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
|
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
|
||||||
|
|
||||||
describe('C4 diagram', () => {
|
describe('C4 diagram', () => {
|
||||||
it('C4.1 should render a simple C4Context diagram', () => {
|
it('should render a simple C4Context diagram', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
C4Context
|
C4Context
|
||||||
@@ -31,7 +31,7 @@ describe('C4 diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('C4.2 should render a simple C4Container diagram', () => {
|
it('should render a simple C4Container diagram', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
C4Container
|
C4Container
|
||||||
@@ -50,7 +50,7 @@ describe('C4 diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('C4.3 should render a simple C4Component diagram', () => {
|
it('should render a simple C4Component diagram', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
C4Component
|
C4Component
|
||||||
@@ -68,7 +68,7 @@ describe('C4 diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('C4.4 should render a simple C4Dynamic diagram', () => {
|
it('should render a simple C4Dynamic diagram', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
C4Dynamic
|
C4Dynamic
|
||||||
@@ -91,7 +91,7 @@ describe('C4 diagram', () => {
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('C4.5 should render a simple C4Deployment diagram', () => {
|
it('should render a simple C4Deployment diagram', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
C4Deployment
|
C4Deployment
|
||||||
|
@@ -76,7 +76,7 @@ describe('Class diagram V2', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('2.1 should render a simple class diagram with different visibilities', () => {
|
it('should render a simple class diagram with different visibilities', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
classDiagram-v2
|
classDiagram-v2
|
||||||
@@ -93,7 +93,7 @@ describe('Class diagram V2', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('3: should render multiple class diagrams', () => {
|
it('should render multiple class diagrams', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
[
|
[
|
||||||
`
|
`
|
||||||
|
@@ -3,7 +3,7 @@ import { imgSnapshotTest } from '../../helpers/util';
|
|||||||
describe('Error Diagrams', () => {
|
describe('Error Diagrams', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.on('uncaught:exception', (err) => {
|
cy.on('uncaught:exception', (err) => {
|
||||||
expect(err.message).to.include('error');
|
expect(err.message).to.include('Parse error');
|
||||||
// return false to prevent the error from
|
// return false to prevent the error from
|
||||||
// failing this test
|
// failing this test
|
||||||
return false;
|
return false;
|
||||||
|
@@ -837,26 +837,6 @@ subgraph "\`**Two**\`"
|
|||||||
in the hat\`") -- "\`1o **ipa**\`" --> d("The dog in the hog")
|
in the hat\`") -- "\`1o **ipa**\`" --> d("The dog in the hog")
|
||||||
end
|
end
|
||||||
|
|
||||||
`,
|
|
||||||
{ flowchart: { titleTopMargin: 0 } }
|
|
||||||
);
|
|
||||||
});
|
|
||||||
it('Sub graphs and markdown strings', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`---
|
|
||||||
config:
|
|
||||||
layout: elk
|
|
||||||
---
|
|
||||||
|
|
||||||
flowchart LR
|
|
||||||
subgraph subgraph_ko6czgs5u["Untitled subgraph"]
|
|
||||||
D["Option 1"]
|
|
||||||
end
|
|
||||||
C{"Evaluate"} -- One --> D
|
|
||||||
C -- Two --> E(("Option 2"))
|
|
||||||
D --> E
|
|
||||||
A["A"]
|
|
||||||
|
|
||||||
`,
|
`,
|
||||||
{ flowchart: { titleTopMargin: 0 } }
|
{ flowchart: { titleTopMargin: 0 } }
|
||||||
);
|
);
|
||||||
@@ -875,7 +855,7 @@ describe('Title and arrow styling #4813', () => {
|
|||||||
flowchart LR
|
flowchart LR
|
||||||
A-->B
|
A-->B
|
||||||
A-->C`,
|
A-->C`,
|
||||||
{ layout: 'elk' }
|
{ flowchart: { defaultRenderer: 'elk' } }
|
||||||
);
|
);
|
||||||
cy.get('svg').should((svg) => {
|
cy.get('svg').should((svg) => {
|
||||||
const title = svg[0].querySelector('text');
|
const title = svg[0].querySelector('text');
|
||||||
@@ -891,14 +871,15 @@ describe('Title and arrow styling #4813', () => {
|
|||||||
B-.-oC
|
B-.-oC
|
||||||
C==xD
|
C==xD
|
||||||
D ~~~ A`,
|
D ~~~ A`,
|
||||||
{ layout: 'elk' }
|
{ flowchart: { defaultRenderer: 'elk' } }
|
||||||
);
|
);
|
||||||
cy.get('svg').should((svg) => {
|
cy.get('svg').should((svg) => {
|
||||||
const edges = svg[0].querySelectorAll('.edges path');
|
const edges = svg[0].querySelectorAll('.edges path');
|
||||||
expect(edges[0].getAttribute('class')).to.contain('edge-pattern-solid');
|
console.log(edges);
|
||||||
expect(edges[1].getAttribute('class')).to.contain('edge-pattern-dotted');
|
expect(edges[0]).to.have.attr('pattern', 'solid');
|
||||||
expect(edges[2].getAttribute('class')).to.contain('edge-thickness-thick');
|
expect(edges[1]).to.have.attr('pattern', 'dotted');
|
||||||
expect(edges[3].getAttribute('class')).to.contain('edge-thickness-invisible');
|
expect(edges[2]).to.have.css('stroke-width', '3.5px');
|
||||||
|
expect(edges[3]).to.have.css('stroke-width', '1.5px');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -99,7 +99,7 @@ describe('Flowchart v2', () => {
|
|||||||
const style = svg.attr('style');
|
const style = svg.attr('style');
|
||||||
expect(style).to.match(/^max-width: [\d.]+px;$/);
|
expect(style).to.match(/^max-width: [\d.]+px;$/);
|
||||||
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
|
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
|
||||||
expect(maxWidthValue).to.be.within(446 * 0.95 - 1, 446 * 1.05);
|
expect(maxWidthValue).to.be.within(290 * 0.95 - 1, 290 * 1.05);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('8: should render a flowchart when useMaxWidth is false', () => {
|
it('8: should render a flowchart when useMaxWidth is false', () => {
|
||||||
@@ -118,7 +118,7 @@ describe('Flowchart v2', () => {
|
|||||||
const width = parseFloat(svg.attr('width'));
|
const width = parseFloat(svg.attr('width'));
|
||||||
// use within because the absolute value can be slightly different depending on the environment ±5%
|
// use within because the absolute value can be slightly different depending on the environment ±5%
|
||||||
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
|
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
|
||||||
expect(width).to.be.within(446 * 0.95 - 1, 446 * 1.05);
|
expect(width).to.be.within(290 * 0.95 - 1, 290 * 1.05);
|
||||||
expect(svg).to.not.have.attr('style');
|
expect(svg).to.not.have.attr('style');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1047,9 +1047,7 @@ end
|
|||||||
A --lb3--> TOP --lb4--> B
|
A --lb3--> TOP --lb4--> B
|
||||||
B1 --lb5--> B2
|
B1 --lb5--> B2
|
||||||
`,
|
`,
|
||||||
{
|
{ flowchart: { subGraphTitleMargin: { top: 10, bottom: 5 } } }
|
||||||
flowchart: { subGraphTitleMargin: { top: 10, bottom: 5 } },
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -733,7 +733,7 @@ describe('Graph', () => {
|
|||||||
});
|
});
|
||||||
it('38: should render a flowchart when useMaxWidth is true (default)', () => {
|
it('38: should render a flowchart when useMaxWidth is true (default)', () => {
|
||||||
renderGraph(
|
renderGraph(
|
||||||
`flowchart TD
|
`graph TD
|
||||||
A[Christmas] -->|Get money| B(Go shopping)
|
A[Christmas] -->|Get money| B(Go shopping)
|
||||||
B --> C{Let me think}
|
B --> C{Let me think}
|
||||||
C -->|One| D[Laptop]
|
C -->|One| D[Laptop]
|
||||||
@@ -751,7 +751,7 @@ describe('Graph', () => {
|
|||||||
const style = svg.attr('style');
|
const style = svg.attr('style');
|
||||||
expect(style).to.match(/^max-width: [\d.]+px;$/);
|
expect(style).to.match(/^max-width: [\d.]+px;$/);
|
||||||
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
|
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
|
||||||
expect(maxWidthValue).to.be.within(446 * 0.9, 446 * 1.1);
|
expect(maxWidthValue).to.be.within(300 * 0.9, 300 * 1.1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('39: should render a flowchart when useMaxWidth is false', () => {
|
it('39: should render a flowchart when useMaxWidth is false', () => {
|
||||||
@@ -770,7 +770,7 @@ describe('Graph', () => {
|
|||||||
const width = parseFloat(svg.attr('width'));
|
const width = parseFloat(svg.attr('width'));
|
||||||
// use within because the absolute value can be slightly different depending on the environment ±10%
|
// use within because the absolute value can be slightly different depending on the environment ±10%
|
||||||
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
|
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
|
||||||
expect(width).to.be.within(446 * 0.9, 446 * 1.1);
|
expect(width).to.be.within(300 * 0.9, 300 * 1.1);
|
||||||
expect(svg).to.not.have.attr('style');
|
expect(svg).to.not.have.attr('style');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -905,16 +905,13 @@ graph TD
|
|||||||
it('67: should be able to style default node independently', () => {
|
it('67: should be able to style default node independently', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
flowchart TD
|
flowchart TD
|
||||||
classDef default fill:#a34
|
classDef default fill:#a34
|
||||||
hello --> default
|
hello --> default
|
||||||
|
|
||||||
style default stroke:#000,stroke-width:4px
|
style default stroke:#000,stroke-width:4px
|
||||||
`,
|
`,
|
||||||
{
|
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
|
||||||
flowchart: { htmlLabels: true },
|
|
||||||
securityLevel: 'loose',
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -1532,41 +1532,5 @@ gitGraph TB:
|
|||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it('75: should render a gitGraph with multiple tags on a merge commit on bottom-to-top orientation', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`gitGraph BT:
|
|
||||||
commit id: "ZERO"
|
|
||||||
branch develop
|
|
||||||
commit id:"A"
|
|
||||||
checkout main
|
|
||||||
commit id:"ONE"
|
|
||||||
checkout develop
|
|
||||||
commit id:"B"
|
|
||||||
checkout main
|
|
||||||
merge develop id:"Release 1.0" type:HIGHLIGHT tag: "SAML v2.0" tag: "OpenID v1.1"
|
|
||||||
commit id:"TWO"
|
|
||||||
checkout develop
|
|
||||||
commit id:"C"`,
|
|
||||||
{}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
it('76: should render a gitGraph with multiple tags on a merge commit on left-to-right orientation', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`gitGraph
|
|
||||||
commit id: "ZERO"
|
|
||||||
branch develop
|
|
||||||
commit id:"A"
|
|
||||||
checkout main
|
|
||||||
commit id:"ONE"
|
|
||||||
checkout develop
|
|
||||||
commit id:"B"
|
|
||||||
checkout main
|
|
||||||
merge develop id:"Release 1.0" type:HIGHLIGHT tag: "SAML v2.0" tag: "OpenID v1.1"
|
|
||||||
commit id:"TWO"
|
|
||||||
checkout develop
|
|
||||||
commit id:"C"`,
|
|
||||||
{}
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -10,15 +10,6 @@ describe('packet structure', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render a simple packet diagram without ranges', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`packet-beta
|
|
||||||
0: "h"
|
|
||||||
1: "i"
|
|
||||||
`
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should render a complex packet diagram', () => {
|
it('should render a complex packet diagram', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`packet-beta
|
`packet-beta
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
|
// <reference types="Cypress" />
|
||||||
|
|
||||||
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
|
import { imgSnapshotTest, renderGraph } from '../../helpers/util.ts';
|
||||||
|
|
||||||
describe('Sequence diagram', () => {
|
context('Sequence diagram', () => {
|
||||||
it('should render a sequence diagram with boxes', () => {
|
it('should render a sequence diagram with boxes', () => {
|
||||||
renderGraph(
|
renderGraph(
|
||||||
`
|
`
|
||||||
@@ -242,7 +244,7 @@ describe('Sequence diagram', () => {
|
|||||||
`
|
`
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
describe('font settings', () => {
|
context('font settings', () => {
|
||||||
it('should render different note fonts when configured', () => {
|
it('should render different note fonts when configured', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
@@ -339,7 +341,7 @@ describe('Sequence diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('auth width scaling', () => {
|
context('auth width scaling', () => {
|
||||||
it('should render long actor descriptions', () => {
|
it('should render long actor descriptions', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
@@ -528,7 +530,7 @@ describe('Sequence diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('background rects', () => {
|
context('background rects', () => {
|
||||||
it('should render a single and nested rects', () => {
|
it('should render a single and nested rects', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
@@ -808,7 +810,7 @@ describe('Sequence diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('directives', () => {
|
context('directives', () => {
|
||||||
it('should override config with directive settings', () => {
|
it('should override config with directive settings', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
`
|
`
|
||||||
@@ -840,7 +842,7 @@ describe('Sequence diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('links', () => {
|
context('links', () => {
|
||||||
it('should support actor links', () => {
|
it('should support actor links', () => {
|
||||||
renderGraph(
|
renderGraph(
|
||||||
`
|
`
|
||||||
@@ -856,7 +858,7 @@ describe('Sequence diagram', () => {
|
|||||||
);
|
);
|
||||||
cy.get('#actor0_popup').should((popupMenu) => {
|
cy.get('#actor0_popup').should((popupMenu) => {
|
||||||
const style = popupMenu.attr('style');
|
const style = popupMenu.attr('style');
|
||||||
// expect(style).to.undefined;
|
expect(style).to.undefined;
|
||||||
});
|
});
|
||||||
cy.get('#root-0').click();
|
cy.get('#root-0').click();
|
||||||
cy.get('#actor0_popup').should((popupMenu) => {
|
cy.get('#actor0_popup').should((popupMenu) => {
|
||||||
@@ -931,7 +933,7 @@ describe('Sequence diagram', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('svg size', () => {
|
context('svg size', () => {
|
||||||
it('should render a sequence diagram when useMaxWidth is true (default)', () => {
|
it('should render a sequence diagram when useMaxWidth is true (default)', () => {
|
||||||
renderGraph(
|
renderGraph(
|
||||||
`
|
`
|
||||||
@@ -1010,7 +1012,7 @@ describe('Sequence diagram', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('render after error', () => {
|
context('render after error', () => {
|
||||||
it('should render diagram after fixing destroy participant error', () => {
|
it('should render diagram after fixing destroy participant error', () => {
|
||||||
cy.on('uncaught:exception', (err) => {
|
cy.on('uncaught:exception', (err) => {
|
||||||
return false;
|
return false;
|
||||||
|
@@ -542,43 +542,6 @@ stateDiagram-v2
|
|||||||
{ logLevel: 0, fontFamily: 'courier' }
|
{ logLevel: 0, fontFamily: 'courier' }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
it(' can have styles applied ', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`
|
|
||||||
stateDiagram-v2
|
|
||||||
AState
|
|
||||||
style AState fill:#636,border:1px solid red,color:white;
|
|
||||||
`,
|
|
||||||
{ logLevel: 0, fontFamily: 'courier' }
|
|
||||||
);
|
|
||||||
});
|
|
||||||
it(' should let styles take preceedence over classes', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`
|
|
||||||
stateDiagram-v2
|
|
||||||
AState: Should NOT be white
|
|
||||||
BState
|
|
||||||
classDef exampleStyleClass fill:#fff,color: blue;
|
|
||||||
class AState,BState exampleStyleClass
|
|
||||||
style AState fill:#636,border:1px solid red,color:white;
|
|
||||||
`,
|
|
||||||
{ logLevel: 0, fontFamily: 'courier' }
|
|
||||||
);
|
|
||||||
});
|
|
||||||
it(' should allow styles to take effect in stubgraphs', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`
|
|
||||||
stateDiagram
|
|
||||||
state roundWithTitle {
|
|
||||||
C: Black with white text
|
|
||||||
}
|
|
||||||
D: Black with white text
|
|
||||||
|
|
||||||
style C,D stroke:#00f, fill:black, color:white
|
|
||||||
`,
|
|
||||||
{ logLevel: 0, fontFamily: 'courier' }
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
it('1433: should render a simple state diagram with a title', () => {
|
it('1433: should render a simple state diagram with a title', () => {
|
||||||
imgSnapshotTest(
|
imgSnapshotTest(
|
||||||
@@ -588,20 +551,6 @@ title: simple state diagram
|
|||||||
stateDiagram-v2
|
stateDiagram-v2
|
||||||
[*] --> State1
|
[*] --> State1
|
||||||
State1 --> [*]
|
State1 --> [*]
|
||||||
`,
|
|
||||||
{}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
it('should align dividers correctly', () => {
|
|
||||||
imgSnapshotTest(
|
|
||||||
`stateDiagram-v2
|
|
||||||
state s2 {
|
|
||||||
s3
|
|
||||||
--
|
|
||||||
s4
|
|
||||||
--
|
|
||||||
55
|
|
||||||
}
|
|
||||||
`,
|
`,
|
||||||
{}
|
{}
|
||||||
);
|
);
|
||||||
|
@@ -27,7 +27,7 @@ const code3 = `flowchart TD
|
|||||||
A(<img scr='https://iconscout.com/ms-icon-310x310.png' width='20' height='20' />)
|
A(<img scr='https://iconscout.com/ms-icon-310x310.png' width='20' height='20' />)
|
||||||
B(<b>Bold text!</b>)`;
|
B(<b>Bold text!</b>)`;
|
||||||
|
|
||||||
if (/test-html-escaping/.exec(location.href)) {
|
if (location.href.match('test-html-escaping')) {
|
||||||
code = code3;
|
code = code3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,866 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
|
|
||||||
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
font-family: 'Arial';
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
width: 100%;
|
|
||||||
border-collapse: collapse;
|
|
||||||
table-layout: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
th,
|
|
||||||
td {
|
|
||||||
border: 1px solid black;
|
|
||||||
padding: 10px;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.separator {
|
|
||||||
height: 20px;
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.vertical-header {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsible {
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
color: #444;
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 18px;
|
|
||||||
width: 100%;
|
|
||||||
border: none;
|
|
||||||
text-align: left;
|
|
||||||
outline: none;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active,
|
|
||||||
.collapsible:hover {
|
|
||||||
background-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsible:after {
|
|
||||||
content: '\002B';
|
|
||||||
color: #777;
|
|
||||||
font-weight: bold;
|
|
||||||
float: right;
|
|
||||||
margin-left: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active:after {
|
|
||||||
content: '\2212';
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
padding: 0 5px;
|
|
||||||
max-height: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
transition: max-height 0.2s ease-out;
|
|
||||||
background-color: #f1f1f1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content .pre-scrollable {
|
|
||||||
max-height: 200px;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th></th>
|
|
||||||
<!-- Placeholder for the top left corner -->
|
|
||||||
<th>Dagre</th>
|
|
||||||
<th>Dagre with rough</th>
|
|
||||||
<th>ELK</th>
|
|
||||||
<th>ELK with rough</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Stadium shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1([This is the text in the box])
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram1" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1([This is the text in the box])
|
|
||||||
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram2" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1([This is the text in the box])
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram3" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1([This is the text in the box])
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram4" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1([This is the text in the box])
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Sub-Routine shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1[[This is the text in the box]]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram5" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1[[This is the text in the box]]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram6" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[[This is the text in the box]]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram7" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[[This is the text in the box]]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram8" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[[This is the text in the box]]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Cylindrical shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1[(Database)]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram9" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1[(Database)]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram10" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[(Database)]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram11" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[(Database)]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram12" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[(Database)]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Circle shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1((This is the text in the circle))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram13" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1((This is the text in the circle))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram14" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1((This is the text in the circle))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram15" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1((This is the text in the circle))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram16" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1((This is the text in the circle))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Double Circle shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart TD
|
|
||||||
id1(((This is the text in the circle)))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram17" class="mermaid">
|
|
||||||
flowchart TD
|
|
||||||
id1(((This is the text in the circle)))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram18" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1(((This is the text in the circle)))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram19" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1(((This is the text in the circle)))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram20" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1(((This is the text in the circle)))
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Asymmetric shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1>This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram21" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1>This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram22" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1>This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram23" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1>This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram24" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1>This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Rhombus/Diamond/Question shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1{This is the text in the box}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram25" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1{This is the text in the box}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram26" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1{This is the text in the box}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram27" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1{This is the text in the box}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram28" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1{This is the text in the box}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Hexagon shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1{{This is the text in the box}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram29" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1{{This is the text in the box}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram31" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1{{This is the text in the box}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram32" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1{{This is the text in the box}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Parallelogram shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart TD
|
|
||||||
id1[/This is the text in the box/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram33" class="mermaid">
|
|
||||||
flowchart TD
|
|
||||||
id1[/This is the text in the box/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram34" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1[/This is the text in the box/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram35" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1[/This is the text in the box/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram36" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1[/This is the text in the box/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Parallelogram Alt shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart TD
|
|
||||||
id1[\This is the text in the box\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram37" class="mermaid">
|
|
||||||
flowchart TD
|
|
||||||
id1[\This is the text in the box\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram38" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1[\This is the text in the box\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram39" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1[\This is the text in the box\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram40" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
id1[\This is the text in the box\]
|
|
||||||
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Trapezoid shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart TD
|
|
||||||
A[/Christmas\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram41" class="mermaid">
|
|
||||||
flowchart TD
|
|
||||||
A[/Christmas\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram42" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart TD
|
|
||||||
A[/Christmas\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram43" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
A[/Christmas\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram44" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
A[/Christmas\]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Trapezoid Alt shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart TD
|
|
||||||
A[\Christmas/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram45" class="mermaid">
|
|
||||||
flowchart TD
|
|
||||||
A[\Christmas/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram46" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart TD
|
|
||||||
A[\Christmas/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram47" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
A[\Christmas/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram48" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart TD
|
|
||||||
A[\Christmas/]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Rect with rounded corner</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1(This is the text in the box)
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram49" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1(This is the text in the box)
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram50" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1(This is the text in the box)
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram51" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1(This is the text in the box)
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram52" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1(This is the text in the box)
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Rect with sharp corner</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1[This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram53" class="mermaid">
|
|
||||||
flowchart LR
|
|
||||||
id1[This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram54" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram55" class="mermaid">
|
|
||||||
%%{init: {"handDrawn": false, "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram56" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn", "layout": "elk"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[This is the text in the box]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- Separator row -->
|
|
||||||
<tr class="separator">
|
|
||||||
<td colspan="5"></td>
|
|
||||||
<!-- This cell spans all columns including the vertical header -->
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<script type="module">
|
|
||||||
import mermaid from './mermaid.esm.mjs';
|
|
||||||
import layouts from './mermaid-layout-elk.esm.mjs';
|
|
||||||
mermaid.registerLayoutLoaders(layouts);
|
|
||||||
mermaid.parseError = function (err, hash) {};
|
|
||||||
|
|
||||||
mermaid.initialize({
|
|
||||||
handDrawn: false,
|
|
||||||
mergeEdges: true,
|
|
||||||
layout: 'dagre',
|
|
||||||
flowchart: { titleTopMargin: 10 },
|
|
||||||
// fontFamily: 'Caveat',
|
|
||||||
fontFamily: 'Kalam',
|
|
||||||
sequence: {
|
|
||||||
actorFontFamily: 'courier',
|
|
||||||
noteFontFamily: 'courier',
|
|
||||||
messageFontFamily: 'courier',
|
|
||||||
},
|
|
||||||
fontSize: 16,
|
|
||||||
logLevel: 0,
|
|
||||||
});
|
|
||||||
function callback() {
|
|
||||||
alert('It worked');
|
|
||||||
}
|
|
||||||
mermaid.parseError = function (err, hash) {
|
|
||||||
console.error('In parse error:');
|
|
||||||
console.error(err);
|
|
||||||
};
|
|
||||||
|
|
||||||
let coll = document.getElementsByClassName('collapsible');
|
|
||||||
for (const element of coll) {
|
|
||||||
element.addEventListener('click', function () {
|
|
||||||
this.classList.toggle('active');
|
|
||||||
let content = this.nextElementSibling;
|
|
||||||
if (content.style.maxHeight) {
|
|
||||||
content.style.maxHeight = null;
|
|
||||||
} else {
|
|
||||||
content.style.maxHeight = content.scrollHeight + 'px';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -1,191 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
|
|
||||||
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
font-family: 'Arial';
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
width: 100%;
|
|
||||||
border-collapse: collapse;
|
|
||||||
table-layout: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
th,
|
|
||||||
td {
|
|
||||||
border: 1px solid black;
|
|
||||||
padding: 10px;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.separator {
|
|
||||||
height: 20px;
|
|
||||||
background-color: #f0f0f0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.vertical-header {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsible {
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
color: #444;
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 18px;
|
|
||||||
width: 100%;
|
|
||||||
border: none;
|
|
||||||
text-align: left;
|
|
||||||
outline: none;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active,
|
|
||||||
.collapsible:hover {
|
|
||||||
background-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsible:after {
|
|
||||||
content: '\002B';
|
|
||||||
color: #777;
|
|
||||||
font-weight: bold;
|
|
||||||
float: right;
|
|
||||||
margin-left: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.active:after {
|
|
||||||
content: '\2212';
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
padding: 0 5px;
|
|
||||||
max-height: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
transition: max-height 0.2s ease-out;
|
|
||||||
background-color: #f1f1f1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content .pre-scrollable {
|
|
||||||
max-height: 200px;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th></th>
|
|
||||||
<!-- Placeholder for the top left corner -->
|
|
||||||
<th>State rough</th>
|
|
||||||
<th>Flowchart rough</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th class="vertical-header">
|
|
||||||
<button class="collapsible">Stadium shape</button>
|
|
||||||
<div class="content">
|
|
||||||
<div class="pre-scrollable">
|
|
||||||
<pre>
|
|
||||||
flowchart LR
|
|
||||||
id1([This is the text in the box])
|
|
||||||
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram1" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
stateDiagram-v2
|
|
||||||
stateA
|
|
||||||
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<pre id="diagram2" class="mermaid">
|
|
||||||
%%{init: {"look": "handDrawn"} }%%
|
|
||||||
flowchart LR
|
|
||||||
id1[[This is the text in the box]]
|
|
||||||
|
|
||||||
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<script type="module">
|
|
||||||
import mermaid from './mermaid.esm.mjs';
|
|
||||||
import layouts from './mermaid-layout-elk.esm.mjs';
|
|
||||||
mermaid.registerLayoutLoaders(layouts);
|
|
||||||
mermaid.parseError = function (err, hash) {};
|
|
||||||
|
|
||||||
mermaid.initialize({
|
|
||||||
handDrawn: false,
|
|
||||||
mergeEdges: true,
|
|
||||||
layout: 'dagre',
|
|
||||||
flowchart: { titleTopMargin: 10 },
|
|
||||||
// fontFamily: 'Caveat',
|
|
||||||
fontFamily: 'Kalam',
|
|
||||||
sequence: {
|
|
||||||
actorFontFamily: 'courier',
|
|
||||||
noteFontFamily: 'courier',
|
|
||||||
messageFontFamily: 'courier',
|
|
||||||
},
|
|
||||||
fontSize: 16,
|
|
||||||
logLevel: 0,
|
|
||||||
});
|
|
||||||
function callback() {
|
|
||||||
alert('It worked');
|
|
||||||
}
|
|
||||||
mermaid.parseError = function (err, hash) {
|
|
||||||
console.error('In parse error:');
|
|
||||||
console.error(err);
|
|
||||||
};
|
|
||||||
|
|
||||||
let coll = document.getElementsByClassName('collapsible');
|
|
||||||
for (const element of coll) {
|
|
||||||
element.addEventListener('click', function () {
|
|
||||||
this.classList.toggle('active');
|
|
||||||
let content = this.nextElementSibling;
|
|
||||||
if (content.style.maxHeight) {
|
|
||||||
content.style.maxHeight = null;
|
|
||||||
} else {
|
|
||||||
content.style.maxHeight = content.scrollHeight + 'px';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -1,433 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
|
|
||||||
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
|
|
||||||
<link
|
|
||||||
rel="stylesheet"
|
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
/* background: rgb(221, 208, 208); */
|
|
||||||
/* background:#333; */
|
|
||||||
font-family: 'Arial';
|
|
||||||
/* font-size: 18px !important; */
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
color: grey;
|
|
||||||
}
|
|
||||||
.mermaid2 {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mermaid svg {
|
|
||||||
/* font-size: 18px !important; */
|
|
||||||
background-color: #efefef;
|
|
||||||
background-image: radial-gradient(#fff 51%, transparent 91%),
|
|
||||||
radial-gradient(#fff 51%, transparent 91%);
|
|
||||||
background-size: 20px 20px;
|
|
||||||
background-position:
|
|
||||||
0 0,
|
|
||||||
10px 10px;
|
|
||||||
background-repeat: repeat;
|
|
||||||
}
|
|
||||||
.malware {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
height: 150px;
|
|
||||||
background: red;
|
|
||||||
color: black;
|
|
||||||
display: flex;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
font-family: monospace;
|
|
||||||
font-size: 72px;
|
|
||||||
}
|
|
||||||
/* tspan {
|
|
||||||
font-size: 6px !important;
|
|
||||||
} */
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<pre id="diagram" class="mermaid">
|
|
||||||
stateDiagram-v2
|
|
||||||
[*] --> Still
|
|
||||||
Still --> [*]
|
|
||||||
Still --> Moving
|
|
||||||
Moving --> Still
|
|
||||||
Moving --> Crash
|
|
||||||
Crash --> [*] </pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
flowchart RL
|
|
||||||
subgraph "`one`"
|
|
||||||
a1 -- l1 --> a2
|
|
||||||
a1 -- l2 --> a2
|
|
||||||
end
|
|
||||||
</pre>
|
|
||||||
<pre id="diagram" class="mermaid">
|
|
||||||
flowchart RL
|
|
||||||
subgraph "`one`"
|
|
||||||
a1 -- l1 --> a2
|
|
||||||
a1 -- l2 --> a2
|
|
||||||
end
|
|
||||||
</pre>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
flowchart
|
|
||||||
id["`A root with a long text that wraps to keep the node size in check. A root with a long text that wraps to keep the node size in check`"]</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
flowchart LR
|
|
||||||
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]
|
|
||||||
C["`A text that needs to be wrapped to another line`"]</pre>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
flowchart LR
|
|
||||||
C["`A text
|
|
||||||
that needs
|
|
||||||
to be wrapped
|
|
||||||
in another
|
|
||||||
way`"]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid">
|
|
||||||
classDiagram-v2
|
|
||||||
note "I love this diagram!\nDo you love it?"
|
|
||||||
</pre>
|
|
||||||
<pre id="diagram" class="mermaid">
|
|
||||||
stateDiagram-v2
|
|
||||||
State1: The state with a note with minus - and plus + in it
|
|
||||||
note left of State1
|
|
||||||
Important information! You can write
|
|
||||||
notes with . and in them.
|
|
||||||
end note </pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
mindmap
|
|
||||||
root
|
|
||||||
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="mermaid2">
|
|
||||||
%%{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">
|
|
||||||
mindmap
|
|
||||||
id1["`**Start2**
|
|
||||||
second line 😎 with long text that is wrapping to the next line`"]
|
|
||||||
id2["`Child **with bold** text`"]
|
|
||||||
id3["`Children of which some
|
|
||||||
is using *italic type of* text`"]
|
|
||||||
id4[Child]
|
|
||||||
id5["`Child
|
|
||||||
Row
|
|
||||||
and another
|
|
||||||
`"]
|
|
||||||
</pre>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
mindmap
|
|
||||||
id1("`**Root**`"]
|
|
||||||
id2["`A formatted text... with **bold** and *italics*`"]
|
|
||||||
id3[Regular labels works as usual]
|
|
||||||
id4["`Emojis and unicode works too: 🤓
|
|
||||||
शान्तिः سلام 和平 `"]
|
|
||||||
|
|
||||||
</pre>
|
|
||||||
<pre id="diagram" class="mermaid">
|
|
||||||
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
|
|
||||||
flowchart TB
|
|
||||||
%% I could not figure out how to use double quotes in labels in Mermaid
|
|
||||||
subgraph ibm[IBM Espresso CPU]
|
|
||||||
core0[IBM PowerPC Broadway Core 0]
|
|
||||||
core1[IBM PowerPC Broadway Core 1]
|
|
||||||
core2[IBM PowerPC Broadway Core 2]
|
|
||||||
|
|
||||||
rom[16 KB ROM]
|
|
||||||
|
|
||||||
core0 --- core2
|
|
||||||
|
|
||||||
rom --> core2
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph amd["`**AMD** Latte GPU`"]
|
|
||||||
mem[Memory & I/O Bridge]
|
|
||||||
dram[DRAM Controller]
|
|
||||||
edram[32 MB EDRAM MEM1]
|
|
||||||
rom[512 B SEEPROM]
|
|
||||||
|
|
||||||
sata[SATA IF]
|
|
||||||
exi[EXI]
|
|
||||||
|
|
||||||
subgraph gx[GX]
|
|
||||||
sram[3 MB 1T-SRAM]
|
|
||||||
end
|
|
||||||
|
|
||||||
radeon[AMD Radeon R7xx GX2]
|
|
||||||
|
|
||||||
mem --- gx
|
|
||||||
mem --- radeon
|
|
||||||
|
|
||||||
rom --- mem
|
|
||||||
|
|
||||||
mem --- sata
|
|
||||||
mem --- exi
|
|
||||||
|
|
||||||
dram --- sata
|
|
||||||
dram --- exi
|
|
||||||
end
|
|
||||||
|
|
||||||
ddr3[2 GB DDR3 RAM MEM2]
|
|
||||||
|
|
||||||
mem --- ddr3
|
|
||||||
dram --- ddr3
|
|
||||||
edram --- ddr3
|
|
||||||
|
|
||||||
core1 --- mem
|
|
||||||
|
|
||||||
exi --- rtc
|
|
||||||
rtc{{rtc}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
%%{init: {"flowchart": {"defaultRenderer": "elk", "htmlLabels": false}} }%%
|
|
||||||
flowchart TB
|
|
||||||
%% I could not figure out how to use double quotes in labels in Mermaid
|
|
||||||
subgraph ibm[IBM Espresso CPU]
|
|
||||||
core0[IBM PowerPC Broadway Core 0]
|
|
||||||
core1[IBM PowerPC Broadway Core 1]
|
|
||||||
core2[IBM PowerPC Broadway Core 2]
|
|
||||||
|
|
||||||
rom[16 KB ROM]
|
|
||||||
|
|
||||||
core0 --- core2
|
|
||||||
|
|
||||||
rom --> core2
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph amd["`**AMD** Latte GPU`"]
|
|
||||||
mem[Memory & I/O Bridge]
|
|
||||||
dram[DRAM Controller]
|
|
||||||
edram[32 MB EDRAM MEM1]
|
|
||||||
rom[512 B SEEPROM]
|
|
||||||
|
|
||||||
sata[SATA IF]
|
|
||||||
exi[EXI]
|
|
||||||
|
|
||||||
subgraph gx[GX]
|
|
||||||
sram[3 MB 1T-SRAM]
|
|
||||||
end
|
|
||||||
|
|
||||||
radeon[AMD Radeon R7xx GX2]
|
|
||||||
|
|
||||||
mem --- gx
|
|
||||||
mem --- radeon
|
|
||||||
|
|
||||||
rom --- mem
|
|
||||||
|
|
||||||
mem --- sata
|
|
||||||
mem --- exi
|
|
||||||
|
|
||||||
dram --- sata
|
|
||||||
dram --- exi
|
|
||||||
end
|
|
||||||
|
|
||||||
ddr3[2 GB DDR3 RAM MEM2]
|
|
||||||
|
|
||||||
mem --- ddr3
|
|
||||||
dram --- ddr3
|
|
||||||
edram --- ddr3
|
|
||||||
|
|
||||||
core1 --- mem
|
|
||||||
|
|
||||||
exi --- rtc
|
|
||||||
rtc{{rtc}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
flowchart TB
|
|
||||||
%% I could not figure out how to use double quotes in labels in Mermaid
|
|
||||||
subgraph ibm[IBM Espresso CPU]
|
|
||||||
core0[IBM PowerPC Broadway Core 0]
|
|
||||||
core1[IBM PowerPC Broadway Core 1]
|
|
||||||
core2[IBM PowerPC Broadway Core 2]
|
|
||||||
|
|
||||||
rom[16 KB ROM]
|
|
||||||
|
|
||||||
core0 --- core2
|
|
||||||
|
|
||||||
rom --> core2
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph amd[AMD Latte GPU]
|
|
||||||
mem[Memory & I/O Bridge]
|
|
||||||
dram[DRAM Controller]
|
|
||||||
edram[32 MB EDRAM MEM1]
|
|
||||||
rom[512 B SEEPROM]
|
|
||||||
|
|
||||||
sata[SATA IF]
|
|
||||||
exi[EXI]
|
|
||||||
|
|
||||||
subgraph gx[GX]
|
|
||||||
sram[3 MB 1T-SRAM]
|
|
||||||
end
|
|
||||||
|
|
||||||
radeon[AMD Radeon R7xx GX2]
|
|
||||||
|
|
||||||
mem --- gx
|
|
||||||
mem --- radeon
|
|
||||||
|
|
||||||
rom --- mem
|
|
||||||
|
|
||||||
mem --- sata
|
|
||||||
mem --- exi
|
|
||||||
|
|
||||||
dram --- sata
|
|
||||||
dram --- exi
|
|
||||||
end
|
|
||||||
|
|
||||||
ddr3[2 GB DDR3 RAM MEM2]
|
|
||||||
|
|
||||||
mem --- ddr3
|
|
||||||
dram --- ddr3
|
|
||||||
edram --- ddr3
|
|
||||||
|
|
||||||
core1 --- mem
|
|
||||||
|
|
||||||
exi --- rtc
|
|
||||||
rtc{{rtc}}
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
flowchart LR
|
|
||||||
B1 --be be--x B2
|
|
||||||
B1 --bo bo--o B3
|
|
||||||
subgraph Ugge
|
|
||||||
B2
|
|
||||||
B3
|
|
||||||
subgraph inner
|
|
||||||
B4
|
|
||||||
B5
|
|
||||||
end
|
|
||||||
subgraph inner2
|
|
||||||
subgraph deeper
|
|
||||||
C4
|
|
||||||
C5
|
|
||||||
end
|
|
||||||
C6
|
|
||||||
end
|
|
||||||
|
|
||||||
B4 --> C4
|
|
||||||
|
|
||||||
B3 -- X --> B4
|
|
||||||
B2 --> inner
|
|
||||||
|
|
||||||
C4 --> C5
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph outer
|
|
||||||
B6
|
|
||||||
end
|
|
||||||
B6 --> B5
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
sequenceDiagram
|
|
||||||
Customer->>+Stripe: Makes a payment request
|
|
||||||
Stripe->>+Bank: Forwards the payment request to the bank
|
|
||||||
Bank->>+Customer: Asks for authorization
|
|
||||||
Customer->>+Bank: Provides authorization
|
|
||||||
Bank->>+Stripe: Sends a response with payment details
|
|
||||||
Stripe->>+Merchant: Sends a notification of payment receipt
|
|
||||||
Merchant->>+Stripe: Confirms the payment
|
|
||||||
Stripe->>+Customer: Sends a confirmation of payment
|
|
||||||
Customer->>+Merchant: Receives goods or services
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
mindmap
|
|
||||||
root((mindmap))
|
|
||||||
Origins
|
|
||||||
Long history
|
|
||||||
::icon(fa fa-book)
|
|
||||||
Popularisation
|
|
||||||
British popular psychology author Tony Buzan
|
|
||||||
Research
|
|
||||||
On effectiveness<br/>and features
|
|
||||||
On Automatic creation
|
|
||||||
Uses
|
|
||||||
Creative techniques
|
|
||||||
Strategic planning
|
|
||||||
Argument mapping
|
|
||||||
Tools
|
|
||||||
Pen and paper
|
|
||||||
Mermaid
|
|
||||||
</pre>
|
|
||||||
<br />
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
example-diagram
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<!-- <div id="cy"></div> -->
|
|
||||||
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
|
|
||||||
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
|
|
||||||
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
|
|
||||||
<!-- <script src="./mermaid.js"></script> -->
|
|
||||||
|
|
||||||
<scrpt>
|
|
||||||
// import mindmap from '../../packages/mermaid-mindmap/src/detector'; // import example from
|
|
||||||
'../../packages/mermaid-example-diagram/src/mermaid-example-diagram.core.mjs'; import mermaid
|
|
||||||
from './mermaid.esm.mjs'; // await mermaid.registerExternalDiagrams([example]);
|
|
||||||
mermaid.parseError = function (err, hash) { // console.error('Mermaid error: ', err); };
|
|
||||||
mermaid.initialize({ // theme: 'forest', startOnLoad: true, logLevel: 0, flowchart: { //
|
|
||||||
defaultRenderer: 'elk', useMaxWidth: false, // htmlLabels: false, htmlLabels: true, }, //
|
|
||||||
htmlLabels: false, gantt: { useMaxWidth: false, }, useMaxWidth: false, }); function callback()
|
|
||||||
{ alert('It worked'); } mermaid.parseError = function (err, hash) { console.error('In parse
|
|
||||||
error:'); console.error(err); }; // mermaid.test1('first_slow', 1200).then((r) =>
|
|
||||||
console.info(r)); // mermaid.test1('second_fast', 200).then((r) => console.info(r)); //
|
|
||||||
mermaid.test1('third_fast', 200).then((r) => console.info(r)); // mermaid.test1('forth_slow',
|
|
||||||
1200).then((r) => console.info(r));
|
|
||||||
</scrpt>
|
|
||||||
<script
|
|
||||||
type="text/javascript"
|
|
||||||
src="https://cdn.jsdelivr.net/npm/mermaid@10.2.0/dist/mermaid.min.js"
|
|
||||||
></script>
|
|
||||||
<script type="module">
|
|
||||||
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10.2.0/dist/mermaid.min.js';
|
|
||||||
(function () {
|
|
||||||
mermaid.initialize({ startOnLoad: false });
|
|
||||||
const elements = document.getElementsByClassName('mermaid');
|
|
||||||
console.log(elements);
|
|
||||||
let id = 0;
|
|
||||||
[...elements].forEach((elem) => {
|
|
||||||
const insertSvg = function (svgCode) {
|
|
||||||
elem.innerHTML = svgCode;
|
|
||||||
};
|
|
||||||
|
|
||||||
console.log(atob(elem.innerText));
|
|
||||||
|
|
||||||
mermaid.render(`graphDiv-${id++}`, atob(elem.innerText), insertSvg);
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@@ -4,7 +4,7 @@
|
|||||||
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
|
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/font-awesome.min.css"
|
||||||
/>
|
/>
|
||||||
<link
|
<link
|
||||||
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
|
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
|
||||||
@@ -14,50 +14,34 @@
|
|||||||
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
|
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
/>
|
/>
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
/* background: rgb(221, 208, 208); */
|
/* background: rgb(221, 208, 208); */
|
||||||
/* background: #333; */
|
background: #333;
|
||||||
font-family: 'Arial';
|
font-family: 'Arial';
|
||||||
/* font-size: 18px !important; */
|
/* font-size: 18px !important; */
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
color: grey;
|
color: grey;
|
||||||
}
|
}
|
||||||
|
.mermaid {
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
.mermaid2 {
|
.mermaid2 {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mermaid svg {
|
.mermaid svg {
|
||||||
/* font-size: 18px !important; */
|
/* font-size: 18px !important; */
|
||||||
|
/* background-color: #efefef; */
|
||||||
/* background-color: #efefef;
|
background-color: #333;
|
||||||
background-image: radial-gradient(#fff 51%, transparent 91%),
|
background-image: radial-gradient(#333 51%, transparent 91%),
|
||||||
radial-gradient(#fff 51%, transparent 91%);
|
radial-gradient(#333 51%, transparent 91%);
|
||||||
background-size: 20px 20px;
|
background-size: 20px 20px;
|
||||||
background-position:
|
background-position: 0 0, 10px 10px;
|
||||||
0 0,
|
background-repeat: repeat;
|
||||||
10px 10px;
|
border: 2px solid rgb(131, 142, 205);
|
||||||
background-repeat: repeat; */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.malware {
|
.malware {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@@ -73,130 +57,546 @@
|
|||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
font-size: 72px;
|
font-size: 72px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tspan {
|
/* tspan {
|
||||||
font-size: 6px !important;
|
font-size: 6px !important;
|
||||||
} */
|
} */
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="flex">
|
<pre id="diagram" class="mermaid">
|
||||||
<pre id="diagram" class="mermaid">
|
block-beta
|
||||||
---
|
blockArrowId<["Label"]>(right)
|
||||||
title: hello2
|
blockArrowId2<["Label"]>(left)
|
||||||
config:
|
blockArrowId3<["Label"]>(up)
|
||||||
look: handDrawn
|
blockArrowId4<["Label"]>(down)
|
||||||
layout: elk
|
blockArrowId5<["Label"]>(x)
|
||||||
elk:
|
blockArrowId6<["Label"]>(y)
|
||||||
nodePlacementStrategy: BRANDES_KOEPF
|
blockArrowId6<["Label"]>(x, down)
|
||||||
---
|
</pre>
|
||||||
flowchart LR
|
<pre id="diagram" class="mermaid">
|
||||||
A[Start] --Some text--> B(Continue)
|
block-beta
|
||||||
B --> C{Evaluate}
|
block:e:4
|
||||||
C -- One --> D[Option 1]
|
columns 2
|
||||||
C -- Two --> E[Option 2]
|
f
|
||||||
C -- Three --> F[fa:fa-car Option 3]
|
g
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
look: handdrawn
|
|
||||||
flowchart:
|
|
||||||
htmlLabels: true
|
|
||||||
---
|
|
||||||
flowchart
|
|
||||||
A[I am a long text, where do I go??? handdrawn - true]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div class="flex">
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
flowchart:
|
|
||||||
htmlLabels: false
|
|
||||||
---
|
|
||||||
flowchart
|
|
||||||
A[I am a long text, where do I go??? classic - false]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
<pre id="diagram" class="mermaid2">
|
|
||||||
---
|
|
||||||
config:
|
|
||||||
flowchart:
|
|
||||||
htmlLabels: true
|
|
||||||
---
|
|
||||||
flowchart
|
|
||||||
A[I am a long text, where do I go??? classic - true]
|
|
||||||
</pre
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<pre id="diagram2" class="mermaid2">
|
|
||||||
flowchart LR
|
|
||||||
id1(Start)-->id2(Stop)
|
|
||||||
style id1 fill:#f9f,stroke:#333,stroke-width:4px
|
|
||||||
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
|
|
||||||
|
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid">
|
||||||
|
block-beta
|
||||||
|
block:e:4
|
||||||
|
columns 2
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
end
|
||||||
|
|
||||||
<pre id="diagram3" class="mermaid2">
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid">
|
||||||
|
block-beta
|
||||||
|
columns 4
|
||||||
|
a b c d
|
||||||
|
block:e:4
|
||||||
|
columns 2
|
||||||
|
f
|
||||||
|
g
|
||||||
|
h
|
||||||
|
end
|
||||||
|
i:4
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart LR
|
||||||
|
X-- "y" -->z
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
columns 5
|
||||||
|
A space B
|
||||||
|
A --x B
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
columns 3
|
||||||
|
a["A wide one"] b:2 c:2 d
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
block:e
|
||||||
|
f
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
columns 3
|
||||||
|
a:3
|
||||||
|
block:e:3
|
||||||
|
f
|
||||||
|
end
|
||||||
|
g
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
columns 3
|
||||||
|
a:3
|
||||||
|
block:e:3
|
||||||
|
f
|
||||||
|
g
|
||||||
|
end
|
||||||
|
h
|
||||||
|
i
|
||||||
|
j
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
columns 3
|
||||||
|
a b:2
|
||||||
|
block:e:3
|
||||||
|
f
|
||||||
|
end
|
||||||
|
g h i
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid">
|
||||||
|
block-beta
|
||||||
|
columns 3
|
||||||
|
a b c
|
||||||
|
e:3
|
||||||
|
f g h
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid">
|
||||||
|
block-beta
|
||||||
|
columns 1
|
||||||
|
db(("DB"))
|
||||||
|
blockArrowId6<[" "]>(down)
|
||||||
|
block:ID
|
||||||
|
A
|
||||||
|
B["A wide one in the middle"]
|
||||||
|
C
|
||||||
|
end
|
||||||
|
space
|
||||||
|
D
|
||||||
|
ID --> D
|
||||||
|
C --> D
|
||||||
|
style B fill:#f9F,stroke:#333,stroke-width:4px
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid">
|
||||||
|
block-beta
|
||||||
|
columns 5
|
||||||
|
A1:3
|
||||||
|
A2:1
|
||||||
|
A3
|
||||||
|
B1 B2 B3:3
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
block
|
||||||
|
D
|
||||||
|
E
|
||||||
|
end
|
||||||
|
db("This is the text in the box")
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
|
||||||
|
block
|
||||||
|
D
|
||||||
|
end
|
||||||
|
A["A: I am a wide one"]
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
A["square"]
|
||||||
|
B("rounded")
|
||||||
|
C(("circle"))
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
A>"rect_left_inv_arrow"]
|
||||||
|
B{"diamond"}
|
||||||
|
C{{"hexagon"}}
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
A(["stadium"])
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
%% A[["subroutine"]]
|
||||||
|
%% B[("cylinder")]
|
||||||
|
C>"surprise"]
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
block-beta
|
||||||
|
A[/"lean right"/]
|
||||||
|
B[\"lean left"\]
|
||||||
|
C[/"trapezoid"\]
|
||||||
|
D[\"trapezoid"/]
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart
|
||||||
|
B
|
||||||
|
style B fill:#f9F,stroke:#333,stroke-width:4px
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
flowchart LR
|
flowchart LR
|
||||||
A:::foo & B:::bar --> C:::foobar
|
a1 -- apa --> b1
|
||||||
classDef foo stroke:#f00
|
|
||||||
classDef bar stroke:#0f0
|
|
||||||
classDef ash color:red
|
|
||||||
class C ash
|
|
||||||
style C stroke:#00f, fill:black
|
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<pre id="diagram4" class="mermaid2">
|
<pre id="diagram" class="mermaid2">
|
||||||
stateDiagram
|
flowchart RL
|
||||||
A:::foo
|
subgraph "`one`"
|
||||||
B:::bar --> C:::foobar
|
id
|
||||||
classDef foo stroke:#f00
|
end
|
||||||
classDef bar stroke:#0f0
|
</pre>
|
||||||
style C stroke:#00f, fill:black, color:white
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart RL
|
||||||
|
subgraph "`one`"
|
||||||
|
a1 -- l1 --> a2
|
||||||
|
a1 -- l2 --> a2
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart
|
||||||
|
id["`A root with a long text that wraps to keep the node size in check. A root with a long text that wraps to keep the node size in check`"]</pre
|
||||||
|
>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart LR
|
||||||
|
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]
|
||||||
|
C["`A text that needs to be wrapped to another line`"]</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart LR
|
||||||
|
C["`A text
|
||||||
|
that needs
|
||||||
|
to be wrapped
|
||||||
|
in another
|
||||||
|
way`"]
|
||||||
|
</pre
|
||||||
|
>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
classDiagram-v2
|
||||||
|
note "I love this diagram!\nDo you love it?"
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
stateDiagram-v2
|
||||||
|
State1: The state with a note with minus - and plus + in it
|
||||||
|
note left of State1
|
||||||
|
Important information! You can write
|
||||||
|
notes with . and in them.
|
||||||
|
end note </pre
|
||||||
|
>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
mindmap
|
||||||
|
root
|
||||||
|
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="mermaid2">
|
||||||
|
%%{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">
|
||||||
|
mindmap
|
||||||
|
id1["`**Start2**
|
||||||
|
second line 😎 with long text that is wrapping to the next line`"]
|
||||||
|
id2["`Child **with bold** text`"]
|
||||||
|
id3["`Children of which some
|
||||||
|
is using *italic type of* text`"]
|
||||||
|
id4[Child]
|
||||||
|
id5["`Child
|
||||||
|
Row
|
||||||
|
and another
|
||||||
|
`"]
|
||||||
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
mindmap
|
||||||
|
id1("`**Root**`"]
|
||||||
|
id2["`A formatted text... with **bold** and *italics*`"]
|
||||||
|
id3[Regular labels works as usual]
|
||||||
|
id4["`Emojis and unicode works too: 🤓
|
||||||
|
शान्तिः سلام 和平 `"]
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
|
||||||
|
flowchart TB
|
||||||
|
%% I could not figure out how to use double quotes in labels in Mermaid
|
||||||
|
subgraph ibm[IBM Espresso CPU]
|
||||||
|
core0[IBM PowerPC Broadway Core 0]
|
||||||
|
core1[IBM PowerPC Broadway Core 1]
|
||||||
|
core2[IBM PowerPC Broadway Core 2]
|
||||||
|
|
||||||
|
rom[16 KB ROM]
|
||||||
|
|
||||||
|
core0 --- core2
|
||||||
|
|
||||||
|
rom --> core2
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph amd["`**AMD** Latte GPU`"]
|
||||||
|
mem[Memory & I/O Bridge]
|
||||||
|
dram[DRAM Controller]
|
||||||
|
edram[32 MB EDRAM MEM1]
|
||||||
|
rom[512 B SEEPROM]
|
||||||
|
|
||||||
|
sata[SATA IF]
|
||||||
|
exi[EXI]
|
||||||
|
|
||||||
|
subgraph gx[GX]
|
||||||
|
sram[3 MB 1T-SRAM]
|
||||||
|
end
|
||||||
|
|
||||||
|
radeon[AMD Radeon R7xx GX2]
|
||||||
|
|
||||||
|
mem --- gx
|
||||||
|
mem --- radeon
|
||||||
|
|
||||||
|
rom --- mem
|
||||||
|
|
||||||
|
mem --- sata
|
||||||
|
mem --- exi
|
||||||
|
|
||||||
|
dram --- sata
|
||||||
|
dram --- exi
|
||||||
|
end
|
||||||
|
|
||||||
|
ddr3[2 GB DDR3 RAM MEM2]
|
||||||
|
|
||||||
|
mem --- ddr3
|
||||||
|
dram --- ddr3
|
||||||
|
edram --- ddr3
|
||||||
|
|
||||||
|
core1 --- mem
|
||||||
|
|
||||||
|
exi --- rtc
|
||||||
|
rtc{{rtc}}
|
||||||
|
</pre
|
||||||
|
>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
%%{init: {"flowchart": {"defaultRenderer": "elk", "htmlLabels": false}} }%%
|
||||||
|
flowchart TB
|
||||||
|
%% I could not figure out how to use double quotes in labels in Mermaid
|
||||||
|
subgraph ibm[IBM Espresso CPU]
|
||||||
|
core0[IBM PowerPC Broadway Core 0]
|
||||||
|
core1[IBM PowerPC Broadway Core 1]
|
||||||
|
core2[IBM PowerPC Broadway Core 2]
|
||||||
|
|
||||||
|
rom[16 KB ROM]
|
||||||
|
|
||||||
|
core0 --- core2
|
||||||
|
|
||||||
|
rom --> core2
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph amd["`**AMD** Latte GPU`"]
|
||||||
|
mem[Memory & I/O Bridge]
|
||||||
|
dram[DRAM Controller]
|
||||||
|
edram[32 MB EDRAM MEM1]
|
||||||
|
rom[512 B SEEPROM]
|
||||||
|
|
||||||
|
sata[SATA IF]
|
||||||
|
exi[EXI]
|
||||||
|
|
||||||
|
subgraph gx[GX]
|
||||||
|
sram[3 MB 1T-SRAM]
|
||||||
|
end
|
||||||
|
|
||||||
|
radeon[AMD Radeon R7xx GX2]
|
||||||
|
|
||||||
|
mem --- gx
|
||||||
|
mem --- radeon
|
||||||
|
|
||||||
|
rom --- mem
|
||||||
|
|
||||||
|
mem --- sata
|
||||||
|
mem --- exi
|
||||||
|
|
||||||
|
dram --- sata
|
||||||
|
dram --- exi
|
||||||
|
end
|
||||||
|
|
||||||
|
ddr3[2 GB DDR3 RAM MEM2]
|
||||||
|
|
||||||
|
mem --- ddr3
|
||||||
|
dram --- ddr3
|
||||||
|
edram --- ddr3
|
||||||
|
|
||||||
|
core1 --- mem
|
||||||
|
|
||||||
|
exi --- rtc
|
||||||
|
rtc{{rtc}}
|
||||||
|
</pre
|
||||||
|
>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart TB
|
||||||
|
%% I could not figure out how to use double quotes in labels in Mermaid
|
||||||
|
subgraph ibm[IBM Espresso CPU]
|
||||||
|
core0[IBM PowerPC Broadway Core 0]
|
||||||
|
core1[IBM PowerPC Broadway Core 1]
|
||||||
|
core2[IBM PowerPC Broadway Core 2]
|
||||||
|
|
||||||
|
rom[16 KB ROM]
|
||||||
|
|
||||||
|
core0 --- core2
|
||||||
|
|
||||||
|
rom --> core2
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph amd[AMD Latte GPU]
|
||||||
|
mem[Memory & I/O Bridge]
|
||||||
|
dram[DRAM Controller]
|
||||||
|
edram[32 MB EDRAM MEM1]
|
||||||
|
rom[512 B SEEPROM]
|
||||||
|
|
||||||
|
sata[SATA IF]
|
||||||
|
exi[EXI]
|
||||||
|
|
||||||
|
subgraph gx[GX]
|
||||||
|
sram[3 MB 1T-SRAM]
|
||||||
|
end
|
||||||
|
|
||||||
|
radeon[AMD Radeon R7xx GX2]
|
||||||
|
|
||||||
|
mem --- gx
|
||||||
|
mem --- radeon
|
||||||
|
|
||||||
|
rom --- mem
|
||||||
|
|
||||||
|
mem --- sata
|
||||||
|
mem --- exi
|
||||||
|
|
||||||
|
dram --- sata
|
||||||
|
dram --- exi
|
||||||
|
end
|
||||||
|
|
||||||
|
ddr3[2 GB DDR3 RAM MEM2]
|
||||||
|
|
||||||
|
mem --- ddr3
|
||||||
|
dram --- ddr3
|
||||||
|
edram --- ddr3
|
||||||
|
|
||||||
|
core1 --- mem
|
||||||
|
|
||||||
|
exi --- rtc
|
||||||
|
rtc{{rtc}}
|
||||||
|
</pre
|
||||||
|
>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
flowchart LR
|
||||||
|
B1 --be be--x B2
|
||||||
|
B1 --bo bo--o B3
|
||||||
|
subgraph Ugge
|
||||||
|
B2
|
||||||
|
B3
|
||||||
|
subgraph inner
|
||||||
|
B4
|
||||||
|
B5
|
||||||
|
end
|
||||||
|
subgraph inner2
|
||||||
|
subgraph deeper
|
||||||
|
C4
|
||||||
|
C5
|
||||||
|
end
|
||||||
|
C6
|
||||||
|
end
|
||||||
|
|
||||||
|
B4 --> C4
|
||||||
|
|
||||||
|
B3 -- X --> B4
|
||||||
|
B2 --> inner
|
||||||
|
|
||||||
|
C4 --> C5
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph outer
|
||||||
|
B6
|
||||||
|
end
|
||||||
|
B6 --> B5
|
||||||
|
</pre
|
||||||
|
>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
sequenceDiagram
|
||||||
|
Customer->>+Stripe: Makes a payment request
|
||||||
|
Stripe->>+Bank: Forwards the payment request to the bank
|
||||||
|
Bank->>+Customer: Asks for authorization
|
||||||
|
Customer->>+Bank: Provides authorization
|
||||||
|
Bank->>+Stripe: Sends a response with payment details
|
||||||
|
Stripe->>+Merchant: Sends a notification of payment receipt
|
||||||
|
Merchant->>+Stripe: Confirms the payment
|
||||||
|
Stripe->>+Customer: Sends a confirmation of payment
|
||||||
|
Customer->>+Merchant: Receives goods or services
|
||||||
|
</pre
|
||||||
|
>
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
mindmap
|
||||||
|
root((mindmap))
|
||||||
|
Origins
|
||||||
|
Long history
|
||||||
|
::icon(fa fa-book)
|
||||||
|
Popularisation
|
||||||
|
British popular psychology author Tony Buzan
|
||||||
|
Research
|
||||||
|
On effectiveness<br/>and features
|
||||||
|
On Automatic creation
|
||||||
|
Uses
|
||||||
|
Creative techniques
|
||||||
|
Strategic planning
|
||||||
|
Argument mapping
|
||||||
|
Tools
|
||||||
|
Pen and paper
|
||||||
|
Mermaid
|
||||||
|
</pre>
|
||||||
|
<br />
|
||||||
|
<pre id="diagram" class="mermaid2">
|
||||||
|
example-diagram
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<!-- <div id="cy"></div> -->
|
||||||
|
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
|
||||||
|
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
|
||||||
|
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
|
||||||
|
<!-- <script src="./mermaid.js"></script> -->
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
|
// import mindmap from '../../packages/mermaid-mindmap/src/detector';
|
||||||
|
// import example from '../../packages/mermaid-example-diagram/src/mermaid-example-diagram.core.mjs';
|
||||||
import mermaid from './mermaid.esm.mjs';
|
import mermaid from './mermaid.esm.mjs';
|
||||||
import layouts from './mermaid-layout-elk.esm.mjs';
|
// await mermaid.registerExternalDiagrams([example]);
|
||||||
mermaid.registerLayoutLoaders(layouts);
|
|
||||||
mermaid.parseError = function (err, hash) {
|
mermaid.parseError = function (err, hash) {
|
||||||
console.error('Mermaid error: ', err);
|
// console.error('Mermaid error: ', err);
|
||||||
};
|
|
||||||
window.callback = function () {
|
|
||||||
alert('A callback was triggered');
|
|
||||||
};
|
};
|
||||||
|
// mermaid.initialize({
|
||||||
|
// // theme: 'forest',
|
||||||
|
// startOnLoad: true,
|
||||||
|
// logLevel: 0,
|
||||||
|
// flowchart: {
|
||||||
|
// // defaultRenderer: 'elk',
|
||||||
|
// useMaxWidth: false,
|
||||||
|
// // htmlLabels: false,
|
||||||
|
// htmlLabels: true,
|
||||||
|
// },
|
||||||
|
// // htmlLabels: false,
|
||||||
|
// gantt: {
|
||||||
|
// useMaxWidth: false,
|
||||||
|
// },
|
||||||
|
// useMaxWidth: false,
|
||||||
|
// });
|
||||||
mermaid.initialize({
|
mermaid.initialize({
|
||||||
// theme: 'base',
|
theme: 'dark',
|
||||||
// handDrawnSeed: 12,
|
startOnLoad: true,
|
||||||
// look: 'handDrawn',
|
|
||||||
// 'elk.nodePlacement.strategy': 'NETWORK_SIMPLEX',
|
|
||||||
// layout: 'dagre',
|
|
||||||
// layout: 'elk',
|
|
||||||
// layout: 'fixed',
|
|
||||||
// htmlLabels: false,
|
|
||||||
flowchart: { titleTopMargin: 10 },
|
|
||||||
// fontFamily: 'Caveat',
|
|
||||||
// fontFamily: 'Kalam',
|
|
||||||
// fontFamily: 'courier',
|
|
||||||
sequence: {
|
|
||||||
actorFontFamily: 'courier',
|
|
||||||
noteFontFamily: 'courier',
|
|
||||||
messageFontFamily: 'courier',
|
|
||||||
},
|
|
||||||
fontSize: 12,
|
|
||||||
logLevel: 0,
|
logLevel: 0,
|
||||||
securityLevel: 'loose',
|
|
||||||
});
|
});
|
||||||
function callback() {
|
function callback() {
|
||||||
alert('It worked');
|
alert('It worked');
|
||||||
@@ -205,6 +605,10 @@ flowchart LR
|
|||||||
console.error('In parse error:');
|
console.error('In parse error:');
|
||||||
console.error(err);
|
console.error(err);
|
||||||
};
|
};
|
||||||
|
// mermaid.test1('first_slow', 1200).then((r) => console.info(r));
|
||||||
|
// mermaid.test1('second_fast', 200).then((r) => console.info(r));
|
||||||
|
// mermaid.test1('third_fast', 200).then((r) => console.info(r));
|
||||||
|
// mermaid.test1('forth_slow', 1200).then((r) => console.info(r));
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
<!doctype html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
import externalExample from './mermaid-example-diagram.esm.mjs';
|
|
||||||
import layouts from './mermaid-layout-elk.esm.mjs';
|
|
||||||
import zenUml from './mermaid-zenuml.esm.mjs';
|
|
||||||
import mermaid from './mermaid.esm.mjs';
|
import mermaid from './mermaid.esm.mjs';
|
||||||
|
import flowchartELK from './mermaid-flowchart-elk.esm.mjs';
|
||||||
|
import externalExample from './mermaid-example-diagram.esm.mjs';
|
||||||
|
import zenUml from './mermaid-zenuml.esm.mjs';
|
||||||
|
|
||||||
function b64ToUtf8(str) {
|
function b64ToUtf8(str) {
|
||||||
return decodeURIComponent(escape(window.atob(str)));
|
return decodeURIComponent(escape(window.atob(str)));
|
||||||
@@ -46,9 +46,7 @@ const contentLoaded = async function () {
|
|||||||
document.getElementsByTagName('body')[0].appendChild(div);
|
document.getElementsByTagName('body')[0].appendChild(div);
|
||||||
}
|
}
|
||||||
|
|
||||||
await mermaid.registerExternalDiagrams([externalExample, zenUml]);
|
await mermaid.registerExternalDiagrams([externalExample, zenUml, flowchartELK]);
|
||||||
|
|
||||||
mermaid.registerLayoutLoaders(layouts);
|
|
||||||
mermaid.initialize(graphObj.mermaid);
|
mermaid.initialize(graphObj.mermaid);
|
||||||
await mermaid.run();
|
await mermaid.run();
|
||||||
}
|
}
|
||||||
@@ -134,7 +132,7 @@ if (typeof document !== 'undefined') {
|
|||||||
window.addEventListener(
|
window.addEventListener(
|
||||||
'load',
|
'load',
|
||||||
function () {
|
function () {
|
||||||
if (/xss.html/.exec(this.location.href)) {
|
if (this.location.href.match('xss.html')) {
|
||||||
this.console.log('Using api');
|
this.console.log('Using api');
|
||||||
void contentLoadedApi().finally(markRendered);
|
void contentLoadedApi().finally(markRendered);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -238,17 +238,6 @@
|
|||||||
Alice-xJohn: Hello John, how are you?
|
Alice-xJohn: Hello John, how are you?
|
||||||
John--xAlice: Great!
|
John--xAlice: Great!
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<pre class="mermaid">
|
|
||||||
sequenceDiagram
|
|
||||||
participant Alice
|
|
||||||
participant Bob
|
|
||||||
Alice<<->>Bob: Hello!
|
|
||||||
Alice<<->>Bob: Wow, we said that at the same time!
|
|
||||||
Bob<<-->>Alice: Bidirectional Arrows are so cool
|
|
||||||
</pre>
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import mermaid from './mermaid.esm.mjs';
|
import mermaid from './mermaid.esm.mjs';
|
||||||
mermaid.initialize({
|
mermaid.initialize({
|
||||||
|
@@ -10,4 +10,4 @@
|
|||||||
|
|
||||||
- [config](modules/config.md)
|
- [config](modules/config.md)
|
||||||
- [defaultConfig](modules/defaultConfig.md)
|
- [defaultConfig](modules/defaultConfig.md)
|
||||||
- [mermaid](modules/mermaid.md)
|
- [mermaidAPI](modules/mermaidAPI.md)
|
||||||
|
@@ -1,171 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/classes/mermaid.UnknownDiagramError.md](../../../../packages/mermaid/src/docs/config/setup/classes/mermaid.UnknownDiagramError.md).
|
|
||||||
|
|
||||||
# Class: UnknownDiagramError
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).UnknownDiagramError
|
|
||||||
|
|
||||||
## Hierarchy
|
|
||||||
|
|
||||||
- `Error`
|
|
||||||
|
|
||||||
↳ **`UnknownDiagramError`**
|
|
||||||
|
|
||||||
## Constructors
|
|
||||||
|
|
||||||
### constructor
|
|
||||||
|
|
||||||
• **new UnknownDiagramError**(`message`): [`UnknownDiagramError`](mermaid.UnknownDiagramError.md)
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :-------- | :------- |
|
|
||||||
| `message` | `string` |
|
|
||||||
|
|
||||||
#### Returns
|
|
||||||
|
|
||||||
[`UnknownDiagramError`](mermaid.UnknownDiagramError.md)
|
|
||||||
|
|
||||||
#### Overrides
|
|
||||||
|
|
||||||
Error.constructor
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/errors.ts:2](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/errors.ts#L2)
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### cause
|
|
||||||
|
|
||||||
• `Optional` **cause**: `unknown`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.cause
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/.pnpm/typescript\@5.4.5/node_modules/typescript/lib/lib.es2022.error.d.ts:24
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### message
|
|
||||||
|
|
||||||
• **message**: `string`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.message
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/.pnpm/typescript\@5.4.5/node_modules/typescript/lib/lib.es5.d.ts:1077
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### name
|
|
||||||
|
|
||||||
• **name**: `string`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.name
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/.pnpm/typescript\@5.4.5/node_modules/typescript/lib/lib.es5.d.ts:1076
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### stack
|
|
||||||
|
|
||||||
• `Optional` **stack**: `string`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.stack
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/.pnpm/typescript\@5.4.5/node_modules/typescript/lib/lib.es5.d.ts:1078
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### prepareStackTrace
|
|
||||||
|
|
||||||
▪ `Static` `Optional` **prepareStackTrace**: (`err`: `Error`, `stackTraces`: `CallSite`\[]) => `any`
|
|
||||||
|
|
||||||
Optional override for formatting stack traces
|
|
||||||
|
|
||||||
**`See`**
|
|
||||||
|
|
||||||
<https://v8.dev/docs/stack-trace-api#customizing-stack-traces>
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`err`, `stackTraces`): `any`
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :------------ | :------------ |
|
|
||||||
| `err` | `Error` |
|
|
||||||
| `stackTraces` | `CallSite`\[] |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`any`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.prepareStackTrace
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/@types/node/globals.d.ts:28
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### stackTraceLimit
|
|
||||||
|
|
||||||
▪ `Static` **stackTraceLimit**: `number`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.stackTraceLimit
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/@types/node/globals.d.ts:30
|
|
||||||
|
|
||||||
## Methods
|
|
||||||
|
|
||||||
### captureStackTrace
|
|
||||||
|
|
||||||
▸ **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`
|
|
||||||
|
|
||||||
Create .stack property on a target object
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :---------------- | :--------- |
|
|
||||||
| `targetObject` | `object` |
|
|
||||||
| `constructorOpt?` | `Function` |
|
|
||||||
|
|
||||||
#### Returns
|
|
||||||
|
|
||||||
`void`
|
|
||||||
|
|
||||||
#### Inherited from
|
|
||||||
|
|
||||||
Error.captureStackTrace
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
node_modules/@types/node/globals.d.ts:21
|
|
@@ -1,49 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.DetailedError.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.DetailedError.md).
|
|
||||||
|
|
||||||
# Interface: DetailedError
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).DetailedError
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### error
|
|
||||||
|
|
||||||
• `Optional` **error**: `any`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/utils.ts:785](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L785)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### hash
|
|
||||||
|
|
||||||
• **hash**: `any`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/utils.ts:783](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L783)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### message
|
|
||||||
|
|
||||||
• `Optional` **message**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/utils.ts:786](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L786)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### str
|
|
||||||
|
|
||||||
• **str**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/utils.ts:781](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/utils.ts#L781)
|
|
@@ -1,39 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.ExternalDiagramDefinition.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.ExternalDiagramDefinition.md).
|
|
||||||
|
|
||||||
# Interface: ExternalDiagramDefinition
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).ExternalDiagramDefinition
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### detector
|
|
||||||
|
|
||||||
• **detector**: `DiagramDetector`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/diagram-api/types.ts:101](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/diagram-api/types.ts#L101)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### id
|
|
||||||
|
|
||||||
• **id**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/diagram-api/types.ts:100](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/diagram-api/types.ts#L100)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### loader
|
|
||||||
|
|
||||||
• **loader**: `DiagramLoader`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/diagram-api/types.ts:102](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/diagram-api/types.ts#L102)
|
|
@@ -1,43 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.LayoutData.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.LayoutData.md).
|
|
||||||
|
|
||||||
# Interface: LayoutData
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).LayoutData
|
|
||||||
|
|
||||||
## Indexable
|
|
||||||
|
|
||||||
▪ \[key: `string`]: `any`
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### config
|
|
||||||
|
|
||||||
• **config**: `MermaidConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/types.d.ts:118](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.d.ts#L118)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### edges
|
|
||||||
|
|
||||||
• **edges**: `Edge`\[]
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/types.d.ts:117](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.d.ts#L117)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### nodes
|
|
||||||
|
|
||||||
• **nodes**: `Node`\[]
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/types.d.ts:116](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/types.d.ts#L116)
|
|
@@ -1,39 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.LayoutLoaderDefinition.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.LayoutLoaderDefinition.md).
|
|
||||||
|
|
||||||
# Interface: LayoutLoaderDefinition
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).LayoutLoaderDefinition
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### algorithm
|
|
||||||
|
|
||||||
• `Optional` **algorithm**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/render.ts:24](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/render.ts#L24)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### loader
|
|
||||||
|
|
||||||
• **loader**: `LayoutLoader`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/render.ts:23](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/render.ts#L23)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### name
|
|
||||||
|
|
||||||
• **name**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/render.ts:22](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/render.ts#L22)
|
|
@@ -1,364 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.Mermaid.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.Mermaid.md).
|
|
||||||
|
|
||||||
# Interface: Mermaid
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).Mermaid
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### contentLoaded
|
|
||||||
|
|
||||||
• **contentLoaded**: () => `void`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (): `void`
|
|
||||||
|
|
||||||
\##contentLoaded Callback function that is called when page is loaded. This functions fetches
|
|
||||||
configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the
|
|
||||||
page.
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`void`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:435](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L435)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### detectType
|
|
||||||
|
|
||||||
• **detectType**: (`text`: `string`, `config?`: [`MermaidConfig`](mermaid.MermaidConfig.md)) => `string`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`text`, `config?`): `string`
|
|
||||||
|
|
||||||
Detects the type of the graph text.
|
|
||||||
|
|
||||||
Takes into consideration the possible existence of an `%%init` directive
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| :-------- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
||||||
| `text` | `string` | The text defining the graph. For example: `mermaid %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%% graph LR a-->b b-->c c-->d d-->e e-->f f-->g g-->h ` |
|
|
||||||
| `config?` | [`MermaidConfig`](mermaid.MermaidConfig.md) | The mermaid config. |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`string`
|
|
||||||
|
|
||||||
A graph definition key
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:437](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L437)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### init
|
|
||||||
|
|
||||||
• **init**: (`config?`: [`MermaidConfig`](mermaid.MermaidConfig.md), `nodes?`: `string` | `HTMLElement` | `NodeListOf`<`HTMLElement`>, `callback?`: (`id`: `string`) => `unknown`) => `Promise`<`void`>
|
|
||||||
|
|
||||||
**`Deprecated`**
|
|
||||||
|
|
||||||
Use [initialize](mermaid.Mermaid.md#initialize) and [run](mermaid.Mermaid.md#run) instead.
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`config?`, `nodes?`, `callback?`): `Promise`<`void`>
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :---------- | :------------------------------------------------------- |
|
|
||||||
| `config?` | [`MermaidConfig`](mermaid.MermaidConfig.md) |
|
|
||||||
| `nodes?` | `string` \| `HTMLElement` \| `NodeListOf`<`HTMLElement`> |
|
|
||||||
| `callback?` | (`id`: `string`) => `unknown` |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`Promise`<`void`>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:430](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L430)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### initialize
|
|
||||||
|
|
||||||
• **initialize**: (`config`: [`MermaidConfig`](mermaid.MermaidConfig.md)) => `void`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`config`): `void`
|
|
||||||
|
|
||||||
Used to set configurations for mermaid.
|
|
||||||
This function should be called before the run function.
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| :------- | :------------------------------------------ | :-------------------------------- |
|
|
||||||
| `config` | [`MermaidConfig`](mermaid.MermaidConfig.md) | Configuration object for mermaid. |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`void`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:434](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L434)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### mermaidAPI
|
|
||||||
|
|
||||||
• **mermaidAPI**: `Readonly`<{ `defaultConfig`: [`MermaidConfig`](mermaid.MermaidConfig.md) = configApi.defaultConfig; `getConfig`: () => [`MermaidConfig`](mermaid.MermaidConfig.md) = configApi.getConfig; `getDiagramFromText`: (`text`: `string`, `metadata`: `Pick`<`DiagramMetadata`, `"title"`>) => `Promise`<`Diagram`> ; `getSiteConfig`: () => [`MermaidConfig`](mermaid.MermaidConfig.md) = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`userOptions`: [`MermaidConfig`](mermaid.MermaidConfig.md)) => `void` ; `parse`: (`text`: `string`, `parseOptions`: [`ParseOptions`](mermaid.ParseOptions.md) & { `suppressErrors`: `true` }) => `Promise`<[`ParseResult`](mermaid.ParseResult.md) | `false`>(`text`: `string`, `parseOptions?`: [`ParseOptions`](mermaid.ParseOptions.md)) => `Promise`<[`ParseResult`](mermaid.ParseResult.md)> ; `render`: (`id`: `string`, `text`: `string`, `svgContainingElement?`: `Element`) => `Promise`<[`RenderResult`](mermaid.RenderResult.md)> ; `reset`: () => `void` ; `setConfig`: (`conf`: [`MermaidConfig`](mermaid.MermaidConfig.md)) => [`MermaidConfig`](mermaid.MermaidConfig.md) = configApi.setConfig; `updateSiteConfig`: (`conf`: [`MermaidConfig`](mermaid.MermaidConfig.md)) => [`MermaidConfig`](mermaid.MermaidConfig.md) = configApi.updateSiteConfig }>
|
|
||||||
|
|
||||||
**`Deprecated`**
|
|
||||||
|
|
||||||
Use [parse](mermaid.Mermaid.md#parse) and [render](mermaid.Mermaid.md#render) instead. Please [open a discussion](https://github.com/mermaid-js/mermaid/discussions) if your use case does not fit the new API.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:424](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L424)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### parse
|
|
||||||
|
|
||||||
• **parse**: (`text`: `string`, `parseOptions`: [`ParseOptions`](mermaid.ParseOptions.md) & { `suppressErrors`: `true` }) => `Promise`<[`ParseResult`](mermaid.ParseResult.md) | `false`>(`text`: `string`, `parseOptions?`: [`ParseOptions`](mermaid.ParseOptions.md)) => `Promise`<[`ParseResult`](mermaid.ParseResult.md)>
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`text`, `parseOptions`): `Promise`<[`ParseResult`](mermaid.ParseResult.md) | `false`>
|
|
||||||
|
|
||||||
Parse the text and validate the syntax.
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| :------------- | :----------------------------------------------------------------------- | :------------------------------ |
|
|
||||||
| `text` | `string` | The mermaid diagram definition. |
|
|
||||||
| `parseOptions` | [`ParseOptions`](mermaid.ParseOptions.md) & { `suppressErrors`: `true` } | Options for parsing. |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`Promise`<[`ParseResult`](mermaid.ParseResult.md) | `false`>
|
|
||||||
|
|
||||||
An object with the `diagramType` set to type of the diagram if valid. Otherwise `false` if parseOptions.suppressErrors is `true`.
|
|
||||||
|
|
||||||
**`See`**
|
|
||||||
|
|
||||||
[ParseOptions](mermaid.ParseOptions.md)
|
|
||||||
|
|
||||||
**`Throws`**
|
|
||||||
|
|
||||||
Error if the diagram is invalid and parseOptions.suppressErrors is false or not set.
|
|
||||||
|
|
||||||
▸ (`text`, `parseOptions?`): `Promise`<[`ParseResult`](mermaid.ParseResult.md)>
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :-------------- | :---------------------------------------- |
|
|
||||||
| `text` | `string` |
|
|
||||||
| `parseOptions?` | [`ParseOptions`](mermaid.ParseOptions.md) |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`Promise`<[`ParseResult`](mermaid.ParseResult.md)>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:425](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L425)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### parseError
|
|
||||||
|
|
||||||
• `Optional` **parseError**: [`ParseErrorFunction`](../modules/mermaid.md#parseerrorfunction)
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:419](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L419)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### registerExternalDiagrams
|
|
||||||
|
|
||||||
• **registerExternalDiagrams**: (`diagrams`: [`ExternalDiagramDefinition`](mermaid.ExternalDiagramDefinition.md)\[], `opts`: { `lazyLoad?`: `boolean` = true }) => `Promise`<`void`>
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`diagrams`, `opts?`): `Promise`<`void`>
|
|
||||||
|
|
||||||
Used to register external diagram types.
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type | Default value | Description |
|
|
||||||
| :--------------- | :--------------------------------------------------------------------- | :------------ | :-------------------------------------------------------------------------- |
|
|
||||||
| `diagrams` | [`ExternalDiagramDefinition`](mermaid.ExternalDiagramDefinition.md)\[] | `undefined` | Array of [ExternalDiagramDefinition](mermaid.ExternalDiagramDefinition.md). |
|
|
||||||
| `opts` | `Object` | `{}` | If opts.lazyLoad is false, the diagrams will be loaded immediately. |
|
|
||||||
| `opts.lazyLoad?` | `boolean` | `true` | - |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`Promise`<`void`>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:433](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L433)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### registerLayoutLoaders
|
|
||||||
|
|
||||||
• **registerLayoutLoaders**: (`loaders`: [`LayoutLoaderDefinition`](mermaid.LayoutLoaderDefinition.md)\[]) => `void`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`loaders`): `void`
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :-------- | :--------------------------------------------------------------- |
|
|
||||||
| `loaders` | [`LayoutLoaderDefinition`](mermaid.LayoutLoaderDefinition.md)\[] |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`void`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:432](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L432)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### render
|
|
||||||
|
|
||||||
• **render**: (`id`: `string`, `text`: `string`, `svgContainingElement?`: `Element`) => `Promise`<[`RenderResult`](mermaid.RenderResult.md)>
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`id`, `text`, `svgContainingElement?`): `Promise`<[`RenderResult`](mermaid.RenderResult.md)>
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :---------------------- | :-------- |
|
|
||||||
| `id` | `string` |
|
|
||||||
| `text` | `string` |
|
|
||||||
| `svgContainingElement?` | `Element` |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`Promise`<[`RenderResult`](mermaid.RenderResult.md)>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:426](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L426)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### run
|
|
||||||
|
|
||||||
• **run**: (`options`: [`RunOptions`](mermaid.RunOptions.md)) => `Promise`<`void`>
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`options?`): `Promise`<`void`>
|
|
||||||
|
|
||||||
## run
|
|
||||||
|
|
||||||
Function that goes through the document to find the chart definitions in there and render them.
|
|
||||||
|
|
||||||
The function tags the processed attributes with the attribute data-processed and ignores found
|
|
||||||
elements with the attribute already set. This way the init function can be triggered several
|
|
||||||
times.
|
|
||||||
|
|
||||||
```mermaid-example
|
|
||||||
graph LR;
|
|
||||||
a(Find elements)-->b{Processed}
|
|
||||||
b-->|Yes|c(Leave element)
|
|
||||||
b-->|No |d(Transform)
|
|
||||||
```
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph LR;
|
|
||||||
a(Find elements)-->b{Processed}
|
|
||||||
b-->|Yes|c(Leave element)
|
|
||||||
b-->|No |d(Transform)
|
|
||||||
```
|
|
||||||
|
|
||||||
Renders the mermaid diagrams
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| :-------- | :------------------------------------ | :----------------------- |
|
|
||||||
| `options` | [`RunOptions`](mermaid.RunOptions.md) | Optional runtime configs |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`Promise`<`void`>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:431](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L431)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### setParseErrorHandler
|
|
||||||
|
|
||||||
• **setParseErrorHandler**: (`parseErrorHandler`: (`err`: `any`, `hash`: `any`) => `void`) => `void`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`parseErrorHandler`): `void`
|
|
||||||
|
|
||||||
## setParseErrorHandler Alternative to directly setting parseError using:
|
|
||||||
|
|
||||||
```js
|
|
||||||
mermaid.parseError = function (err, hash) {
|
|
||||||
forExampleDisplayErrorInGui(err); // do something with the error
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
This is provided for environments where the mermaid object can't directly have a new member added
|
|
||||||
to it (eg. dart interop wrapper). (Initially there is no parseError member of mermaid).
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| :------------------ | :-------------------------------------- | :------------------------- |
|
|
||||||
| `parseErrorHandler` | (`err`: `any`, `hash`: `any`) => `void` | New parseError() callback. |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`void`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:436](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L436)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### startOnLoad
|
|
||||||
|
|
||||||
• **startOnLoad**: `boolean`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:418](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L418)
|
|
@@ -1,520 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.MermaidConfig.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.MermaidConfig.md).
|
|
||||||
|
|
||||||
# Interface: MermaidConfig
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).MermaidConfig
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### altFontFamily
|
|
||||||
|
|
||||||
• `Optional` **altFontFamily**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:112](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L112)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### arrowMarkerAbsolute
|
|
||||||
|
|
||||||
• `Optional` **arrowMarkerAbsolute**: `boolean`
|
|
||||||
|
|
||||||
Controls whether or arrow markers in html code are absolute paths or anchors.
|
|
||||||
This matters if you are using base tag settings.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:131](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L131)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### block
|
|
||||||
|
|
||||||
• `Optional` **block**: `BlockDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:189](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L189)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### c4
|
|
||||||
|
|
||||||
• `Optional` **c4**: `C4DiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:186](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L186)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### class
|
|
||||||
|
|
||||||
• `Optional` **class**: `ClassDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:177](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L177)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### darkMode
|
|
||||||
|
|
||||||
• `Optional` **darkMode**: `boolean`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:103](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L103)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### deterministicIDSeed
|
|
||||||
|
|
||||||
• `Optional` **deterministicIDSeed**: `string`
|
|
||||||
|
|
||||||
This option is the optional seed for deterministic ids.
|
|
||||||
If set to `undefined` but deterministicIds is `true`, a simple number iterator is used.
|
|
||||||
You can set this attribute to base the seed on a static string.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:171](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L171)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### deterministicIds
|
|
||||||
|
|
||||||
• `Optional` **deterministicIds**: `boolean`
|
|
||||||
|
|
||||||
This option controls if the generated ids of nodes in the SVG are
|
|
||||||
generated randomly or based on a seed.
|
|
||||||
If set to `false`, the IDs are generated based on the current date and
|
|
||||||
thus are not deterministic. This is the default behavior.
|
|
||||||
|
|
||||||
This matters if your files are checked into source control e.g. git and
|
|
||||||
should not change unless content is changed.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:164](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L164)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### dompurifyConfig
|
|
||||||
|
|
||||||
• `Optional` **dompurifyConfig**: `Config`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:190](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L190)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### elk
|
|
||||||
|
|
||||||
• `Optional` **elk**: `Object`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
| :----------------------- | :---------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| `mergeEdges?` | `boolean` | Elk specific option that allows edges to share path where it convenient. It can make for pretty diagrams but can also make it harder to read the diagram. |
|
|
||||||
| `nodePlacementStrategy?` | `"SIMPLE"` \| `"NETWORK_SIMPLEX"` \| `"LINEAR_SEGMENTS"` \| `"BRANDES_KOEPF"` | Elk specific option affecting how nodes are placed. |
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:91](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L91)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### er
|
|
||||||
|
|
||||||
• `Optional` **er**: `ErDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:179](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L179)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### flowchart
|
|
||||||
|
|
||||||
• `Optional` **flowchart**: `FlowchartDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:172](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L172)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### fontFamily
|
|
||||||
|
|
||||||
• `Optional` **fontFamily**: `string`
|
|
||||||
|
|
||||||
Specifies the font to be used in the rendered diagrams.
|
|
||||||
Can be any possible CSS `font-family`.
|
|
||||||
See <https://developer.mozilla.org/en-US/docs/Web/CSS/font-family>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:111](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L111)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### fontSize
|
|
||||||
|
|
||||||
• `Optional` **fontSize**: `number`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:192](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L192)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### forceLegacyMathML
|
|
||||||
|
|
||||||
• `Optional` **forceLegacyMathML**: `boolean`
|
|
||||||
|
|
||||||
This option forces Mermaid to rely on KaTeX's own stylesheet for rendering MathML. Due to differences between OS
|
|
||||||
fonts and browser's MathML implementation, this option is recommended if consistent rendering is important.
|
|
||||||
If set to true, ignores legacyMathML.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:153](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L153)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### gantt
|
|
||||||
|
|
||||||
• `Optional` **gantt**: `GanttDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:174](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L174)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### gitGraph
|
|
||||||
|
|
||||||
• `Optional` **gitGraph**: `GitGraphDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:185](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L185)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### handDrawnSeed
|
|
||||||
|
|
||||||
• `Optional` **handDrawnSeed**: `number`
|
|
||||||
|
|
||||||
Defines the seed to be used when using handDrawn look. This is important for the automated tests as they will always find differences without the seed. The default value is 0 which gives a random seed.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:76](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L76)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### htmlLabels
|
|
||||||
|
|
||||||
• `Optional` **htmlLabels**: `boolean`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:104](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L104)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### journey
|
|
||||||
|
|
||||||
• `Optional` **journey**: `JourneyDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:175](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L175)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### layout
|
|
||||||
|
|
||||||
• `Optional` **layout**: `string`
|
|
||||||
|
|
||||||
Defines which layout algorithm to use for rendering the diagram.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:81](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L81)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### legacyMathML
|
|
||||||
|
|
||||||
• `Optional` **legacyMathML**: `boolean`
|
|
||||||
|
|
||||||
This option specifies if Mermaid can expect the dependent to include KaTeX stylesheets for browsers
|
|
||||||
without their own MathML implementation. If this option is disabled and MathML is not supported, the math
|
|
||||||
equations are replaced with a warning. If this option is enabled and MathML is not supported, Mermaid will
|
|
||||||
fall back to legacy rendering for KaTeX.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:146](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L146)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### logLevel
|
|
||||||
|
|
||||||
• `Optional` **logLevel**: `0` | `2` | `1` | `"trace"` | `"debug"` | `"info"` | `"warn"` | `"error"` | `"fatal"` | `3` | `4` | `5`
|
|
||||||
|
|
||||||
This option decides the amount of logging to be used by mermaid.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:117](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L117)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### look
|
|
||||||
|
|
||||||
• `Optional` **look**: `"classic"` | `"handDrawn"`
|
|
||||||
|
|
||||||
Defines which main look to use for the diagram.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:71](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L71)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### markdownAutoWrap
|
|
||||||
|
|
||||||
• `Optional` **markdownAutoWrap**: `boolean`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:193](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L193)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### maxEdges
|
|
||||||
|
|
||||||
• `Optional` **maxEdges**: `number`
|
|
||||||
|
|
||||||
Defines the maximum number of edges that can be drawn in a graph.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:90](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L90)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### maxTextSize
|
|
||||||
|
|
||||||
• `Optional` **maxTextSize**: `number`
|
|
||||||
|
|
||||||
The maximum allowed size of the users text diagram
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:85](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L85)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### mindmap
|
|
||||||
|
|
||||||
• `Optional` **mindmap**: `MindmapDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:184](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L184)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### packet
|
|
||||||
|
|
||||||
• `Optional` **packet**: `PacketDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:188](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L188)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### pie
|
|
||||||
|
|
||||||
• `Optional` **pie**: `PieDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:180](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L180)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### quadrantChart
|
|
||||||
|
|
||||||
• `Optional` **quadrantChart**: `QuadrantChartConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:181](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L181)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### requirement
|
|
||||||
|
|
||||||
• `Optional` **requirement**: `RequirementDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:183](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L183)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### sankey
|
|
||||||
|
|
||||||
• `Optional` **sankey**: `SankeyDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:187](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L187)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### secure
|
|
||||||
|
|
||||||
• `Optional` **secure**: `string`\[]
|
|
||||||
|
|
||||||
This option controls which `currentConfig` keys are considered secure and
|
|
||||||
can only be changed via call to `mermaid.initialize`.
|
|
||||||
This prevents malicious graph directives from overriding a site's default security.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:138](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L138)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### securityLevel
|
|
||||||
|
|
||||||
• `Optional` **securityLevel**: `"strict"` | `"loose"` | `"antiscript"` | `"sandbox"`
|
|
||||||
|
|
||||||
Level of trust for parsed diagram
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:121](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L121)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### sequence
|
|
||||||
|
|
||||||
• `Optional` **sequence**: `SequenceDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:173](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L173)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### startOnLoad
|
|
||||||
|
|
||||||
• `Optional` **startOnLoad**: `boolean`
|
|
||||||
|
|
||||||
Dictates whether mermaid starts on Page load
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:125](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L125)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### state
|
|
||||||
|
|
||||||
• `Optional` **state**: `StateDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:178](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L178)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### suppressErrorRendering
|
|
||||||
|
|
||||||
• `Optional` **suppressErrorRendering**: `boolean`
|
|
||||||
|
|
||||||
Suppresses inserting 'Syntax error' diagram in the DOM.
|
|
||||||
This is useful when you want to control how to handle syntax errors in your application.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:199](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L199)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### theme
|
|
||||||
|
|
||||||
• `Optional` **theme**: `"default"` | `"base"` | `"dark"` | `"forest"` | `"neutral"` | `"null"`
|
|
||||||
|
|
||||||
Theme, the CSS style sheet.
|
|
||||||
You may also use `themeCSS` to override this value.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:64](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L64)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### themeCSS
|
|
||||||
|
|
||||||
• `Optional` **themeCSS**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:66](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L66)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### themeVariables
|
|
||||||
|
|
||||||
• `Optional` **themeVariables**: `any`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:65](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L65)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### timeline
|
|
||||||
|
|
||||||
• `Optional` **timeline**: `TimelineDiagramConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:176](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L176)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### wrap
|
|
||||||
|
|
||||||
• `Optional` **wrap**: `boolean`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:191](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L191)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### xyChart
|
|
||||||
|
|
||||||
• `Optional` **xyChart**: `XYChartConfig`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/config.type.ts:182](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L182)
|
|
@@ -1,21 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.ParseResult.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.ParseResult.md).
|
|
||||||
|
|
||||||
# Interface: ParseResult
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).ParseResult
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### diagramType
|
|
||||||
|
|
||||||
• **diagramType**: `string`
|
|
||||||
|
|
||||||
The diagram type, e.g. 'flowchart', 'sequence', etc.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/types.ts:50](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L50)
|
|
@@ -1,19 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.RenderOptions.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.RenderOptions.md).
|
|
||||||
|
|
||||||
# Interface: RenderOptions
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).RenderOptions
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### algorithm
|
|
||||||
|
|
||||||
• `Optional` **algorithm**: `string`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/rendering-util/render.ts:8](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/rendering-util/render.ts#L8)
|
|
@@ -1,71 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.RunOptions.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.RunOptions.md).
|
|
||||||
|
|
||||||
# Interface: RunOptions
|
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).RunOptions
|
|
||||||
|
|
||||||
## Properties
|
|
||||||
|
|
||||||
### nodes
|
|
||||||
|
|
||||||
• `Optional` **nodes**: `ArrayLike`<`HTMLElement`>
|
|
||||||
|
|
||||||
The nodes to render. If this is set, `querySelector` will be ignored.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:48](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L48)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### postRenderCallback
|
|
||||||
|
|
||||||
• `Optional` **postRenderCallback**: (`id`: `string`) => `unknown`
|
|
||||||
|
|
||||||
A callback to call after each diagram is rendered.
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`id`): `unknown`
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :--- | :------- |
|
|
||||||
| `id` | `string` |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`unknown`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:52](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L52)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### querySelector
|
|
||||||
|
|
||||||
• `Optional` **querySelector**: `string`
|
|
||||||
|
|
||||||
The query selector to use when finding elements to render. Default: `".mermaid"`.
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:44](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L44)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### suppressErrors
|
|
||||||
|
|
||||||
• `Optional` **suppressErrors**: `boolean`
|
|
||||||
|
|
||||||
If `true`, errors will be logged to the console, but not thrown. Default: `false`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:56](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L56)
|
|
@@ -2,11 +2,11 @@
|
|||||||
>
|
>
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
||||||
>
|
>
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.ParseOptions.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.ParseOptions.md).
|
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.ParseOptions.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.ParseOptions.md).
|
||||||
|
|
||||||
# Interface: ParseOptions
|
# Interface: ParseOptions
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).ParseOptions
|
[mermaidAPI](../modules/mermaidAPI.md).ParseOptions
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
@@ -19,4 +19,4 @@ The `parseError` function will not be called.
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/types.ts:43](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L43)
|
[mermaidAPI.ts:65](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L65)
|
21
docs/config/setup/interfaces/mermaidAPI.ParseResult.md
Normal file
21
docs/config/setup/interfaces/mermaidAPI.ParseResult.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
> **Warning**
|
||||||
|
>
|
||||||
|
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
||||||
|
>
|
||||||
|
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.ParseResult.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.ParseResult.md).
|
||||||
|
|
||||||
|
# Interface: ParseResult
|
||||||
|
|
||||||
|
[mermaidAPI](../modules/mermaidAPI.md).ParseResult
|
||||||
|
|
||||||
|
## Properties
|
||||||
|
|
||||||
|
### diagramType
|
||||||
|
|
||||||
|
• **diagramType**: `string`
|
||||||
|
|
||||||
|
The diagram type, e.g. 'flowchart', 'sequence', etc.
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L72)
|
@@ -2,11 +2,11 @@
|
|||||||
>
|
>
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
||||||
>
|
>
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaid.RenderResult.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaid.RenderResult.md).
|
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.RenderResult.md](../../../../packages/mermaid/src/docs/config/setup/interfaces/mermaidAPI.RenderResult.md).
|
||||||
|
|
||||||
# Interface: RenderResult
|
# Interface: RenderResult
|
||||||
|
|
||||||
[mermaid](../modules/mermaid.md).RenderResult
|
[mermaidAPI](../modules/mermaidAPI.md).RenderResult
|
||||||
|
|
||||||
## Properties
|
## Properties
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ Bind function to be called after the svg has been inserted into the DOM.
|
|||||||
This is necessary for adding event listeners to the elements in the svg.
|
This is necessary for adding event listeners to the elements in the svg.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const { svg, bindFunctions } = await mermaid.render('id1', 'graph TD;A-->B');
|
const { svg, bindFunctions } = mermaidAPI.render('id1', 'graph TD;A-->B');
|
||||||
div.innerHTML = svg;
|
div.innerHTML = svg;
|
||||||
bindFunctions?.(div); // To call bindFunctions only if it's present.
|
bindFunctions?.(div); // To call bindFunctions only if it's present.
|
||||||
```
|
```
|
||||||
@@ -39,7 +39,7 @@ bindFunctions?.(div); // To call bindFunctions only if it's present.
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/types.ts:73](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L73)
|
[mermaidAPI.ts:95](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L95)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ The diagram type, e.g. 'flowchart', 'sequence', etc.
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/types.ts:63](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L63)
|
[mermaidAPI.ts:85](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L85)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -63,4 +63,4 @@ The svg code for the rendered graph.
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/types.ts:59](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L59)
|
[mermaidAPI.ts:81](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L81)
|
@@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
### defaultConfig
|
### defaultConfig
|
||||||
|
|
||||||
• `Const` **defaultConfig**: [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
• `Const` **defaultConfig**: `MermaidConfig`
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:8](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L8)
|
[config.ts:8](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L8)
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
@@ -26,9 +26,9 @@ Pushes in a directive to the configuration
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type | Description |
|
| Name | Type | Description |
|
||||||
| :---------- | :-------------------------------------------------------- | :----------------------- |
|
| :---------- | :-------------- | :----------------------- |
|
||||||
| `directive` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) | The directive to push in |
|
| `directive` | `MermaidConfig` | The directive to push in |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
@@ -36,13 +36,13 @@ Pushes in a directive to the configuration
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:188](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L188)
|
[config.ts:188](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L188)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### getConfig
|
### getConfig
|
||||||
|
|
||||||
▸ **getConfig**(): [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
▸ **getConfig**(): `MermaidConfig`
|
||||||
|
|
||||||
## getConfig
|
## getConfig
|
||||||
|
|
||||||
@@ -54,19 +54,19 @@ Pushes in a directive to the configuration
|
|||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
`MermaidConfig`
|
||||||
|
|
||||||
The currentConfig
|
The currentConfig
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:131](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L131)
|
[config.ts:131](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L131)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### getSiteConfig
|
### getSiteConfig
|
||||||
|
|
||||||
▸ **getSiteConfig**(): [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
▸ **getSiteConfig**(): `MermaidConfig`
|
||||||
|
|
||||||
## getSiteConfig
|
## getSiteConfig
|
||||||
|
|
||||||
@@ -78,13 +78,13 @@ The currentConfig
|
|||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
`MermaidConfig`
|
||||||
|
|
||||||
The siteConfig
|
The siteConfig
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96)
|
[config.ts:96](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L96)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -108,9 +108,9 @@ The siteConfig
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type | Default value | Description |
|
| Name | Type | Default value | Description |
|
||||||
| :------- | :-------------------------------------------------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
| :------- | :-------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
| `config` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). |
|
| `config` | `MermaidConfig` | `siteConfig` | base set of values, which currentConfig could be **reset** to. Defaults to the current siteConfig (e.g returned by [getSiteConfig](config.md#getsiteconfig)). |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ The siteConfig
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:221](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L221)
|
[config.ts:218](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L218)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ options in-place
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:146](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L146)
|
[config.ts:146](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L146)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -157,9 +157,9 @@ options in-place
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type |
|
| Name | Type |
|
||||||
| :----- | :-------------------------------------------------------- |
|
| :----- | :-------------- |
|
||||||
| `conf` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) |
|
| `conf` | `MermaidConfig` |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
@@ -167,13 +167,13 @@ options in-place
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75)
|
[config.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L75)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### setConfig
|
### setConfig
|
||||||
|
|
||||||
▸ **setConfig**(`conf`): [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
▸ **setConfig**(`conf`): `MermaidConfig`
|
||||||
|
|
||||||
## setConfig
|
## setConfig
|
||||||
|
|
||||||
@@ -187,25 +187,25 @@ corresponding siteConfig value.
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type | Description |
|
| Name | Type | Description |
|
||||||
| :----- | :-------------------------------------------------------- | :-------------------------- |
|
| :----- | :-------------- | :-------------------------- |
|
||||||
| `conf` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) | The potential currentConfig |
|
| `conf` | `MermaidConfig` | The potential currentConfig |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
`MermaidConfig`
|
||||||
|
|
||||||
The currentConfig merged with the sanitized conf
|
The currentConfig merged with the sanitized conf
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113)
|
[config.ts:113](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L113)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### setSiteConfig
|
### setSiteConfig
|
||||||
|
|
||||||
▸ **setSiteConfig**(`conf`): [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
▸ **setSiteConfig**(`conf`): `MermaidConfig`
|
||||||
|
|
||||||
## setSiteConfig
|
## setSiteConfig
|
||||||
|
|
||||||
@@ -220,57 +220,57 @@ function _Default value: At default, will mirror Global Config_
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type | Description |
|
| Name | Type | Description |
|
||||||
| :----- | :-------------------------------------------------------- | :------------------------------------------ |
|
| :----- | :-------------- | :------------------------------------------ |
|
||||||
| `conf` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) | The base currentConfig to use as siteConfig |
|
| `conf` | `MermaidConfig` | The base currentConfig to use as siteConfig |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
`MermaidConfig`
|
||||||
|
|
||||||
The new siteConfig
|
The new siteConfig
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61)
|
[config.ts:61](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L61)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### updateCurrentConfig
|
### updateCurrentConfig
|
||||||
|
|
||||||
▸ **updateCurrentConfig**(`siteCfg`, `_directives`): [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
▸ **updateCurrentConfig**(`siteCfg`, `_directives`): `MermaidConfig`
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type |
|
| Name | Type |
|
||||||
| :------------ | :----------------------------------------------------------- |
|
| :------------ | :----------------- |
|
||||||
| `siteCfg` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) |
|
| `siteCfg` | `MermaidConfig` |
|
||||||
| `_directives` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)\[] |
|
| `_directives` | `MermaidConfig`\[] |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
`MermaidConfig`
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:15](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L15)
|
[config.ts:15](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L15)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### updateSiteConfig
|
### updateSiteConfig
|
||||||
|
|
||||||
▸ **updateSiteConfig**(`conf`): [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
▸ **updateSiteConfig**(`conf`): `MermaidConfig`
|
||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
| Name | Type |
|
| Name | Type |
|
||||||
| :----- | :-------------------------------------------------------- |
|
| :----- | :-------------- |
|
||||||
| `conf` | [`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md) |
|
| `conf` | `MermaidConfig` |
|
||||||
|
|
||||||
#### Returns
|
#### Returns
|
||||||
|
|
||||||
[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)
|
`MermaidConfig`
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79)
|
[config.ts:79](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.ts#L79)
|
||||||
|
@@ -14,13 +14,13 @@
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/defaultConfig.ts:266](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L266)
|
[defaultConfig.ts:275](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L275)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### default
|
### default
|
||||||
|
|
||||||
• `Const` **default**: `RequiredDeep`<[`MermaidConfig`](../interfaces/mermaid.MermaidConfig.md)>
|
• `Const` **default**: `RequiredDeep`<`MermaidConfig`>
|
||||||
|
|
||||||
Default mermaid configuration options.
|
Default mermaid configuration options.
|
||||||
|
|
||||||
@@ -30,4 +30,4 @@ Non-JSON JS default values are listed in this file, e.g. functions, or
|
|||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[packages/mermaid/src/defaultConfig.ts:18](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L18)
|
[defaultConfig.ts:18](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L18)
|
||||||
|
@@ -1,90 +0,0 @@
|
|||||||
> **Warning**
|
|
||||||
>
|
|
||||||
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
|
||||||
>
|
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/mermaid.md](../../../../packages/mermaid/src/docs/config/setup/modules/mermaid.md).
|
|
||||||
|
|
||||||
# Module: mermaid
|
|
||||||
|
|
||||||
## Classes
|
|
||||||
|
|
||||||
- [UnknownDiagramError](../classes/mermaid.UnknownDiagramError.md)
|
|
||||||
|
|
||||||
## Interfaces
|
|
||||||
|
|
||||||
- [DetailedError](../interfaces/mermaid.DetailedError.md)
|
|
||||||
- [ExternalDiagramDefinition](../interfaces/mermaid.ExternalDiagramDefinition.md)
|
|
||||||
- [LayoutData](../interfaces/mermaid.LayoutData.md)
|
|
||||||
- [LayoutLoaderDefinition](../interfaces/mermaid.LayoutLoaderDefinition.md)
|
|
||||||
- [Mermaid](../interfaces/mermaid.Mermaid.md)
|
|
||||||
- [MermaidConfig](../interfaces/mermaid.MermaidConfig.md)
|
|
||||||
- [ParseOptions](../interfaces/mermaid.ParseOptions.md)
|
|
||||||
- [ParseResult](../interfaces/mermaid.ParseResult.md)
|
|
||||||
- [RenderOptions](../interfaces/mermaid.RenderOptions.md)
|
|
||||||
- [RenderResult](../interfaces/mermaid.RenderResult.md)
|
|
||||||
- [RunOptions](../interfaces/mermaid.RunOptions.md)
|
|
||||||
|
|
||||||
## Type Aliases
|
|
||||||
|
|
||||||
### InternalHelpers
|
|
||||||
|
|
||||||
Ƭ **InternalHelpers**: typeof `internalHelpers`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/internals.ts:33](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/internals.ts#L33)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### ParseErrorFunction
|
|
||||||
|
|
||||||
Ƭ **ParseErrorFunction**: (`err`: `string` | [`DetailedError`](../interfaces/mermaid.DetailedError.md) | `unknown`, `hash?`: `any`) => `void`
|
|
||||||
|
|
||||||
#### Type declaration
|
|
||||||
|
|
||||||
▸ (`err`, `hash?`): `void`
|
|
||||||
|
|
||||||
##### Parameters
|
|
||||||
|
|
||||||
| Name | Type |
|
|
||||||
| :------ | :--------------------------------------------------------------------------------- |
|
|
||||||
| `err` | `string` \| [`DetailedError`](../interfaces/mermaid.DetailedError.md) \| `unknown` |
|
|
||||||
| `hash?` | `any` |
|
|
||||||
|
|
||||||
##### Returns
|
|
||||||
|
|
||||||
`void`
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/Diagram.ts:10](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/Diagram.ts#L10)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### SVG
|
|
||||||
|
|
||||||
Ƭ **SVG**: `d3.Selection`<`SVGSVGElement`, `unknown`, `Element` | `null`, `unknown`>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/diagram-api/types.ts:130](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/diagram-api/types.ts#L130)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### SVGGroup
|
|
||||||
|
|
||||||
Ƭ **SVGGroup**: `d3.Selection`<`SVGGElement`, `unknown`, `Element` | `null`, `unknown`>
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/diagram-api/types.ts:132](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/diagram-api/types.ts#L132)
|
|
||||||
|
|
||||||
## Variables
|
|
||||||
|
|
||||||
### default
|
|
||||||
|
|
||||||
• `Const` **default**: [`Mermaid`](../interfaces/mermaid.Mermaid.md)
|
|
||||||
|
|
||||||
#### Defined in
|
|
||||||
|
|
||||||
[packages/mermaid/src/mermaid.ts:440](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaid.ts#L440)
|
|
283
docs/config/setup/modules/mermaidAPI.md
Normal file
283
docs/config/setup/modules/mermaidAPI.md
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
> **Warning**
|
||||||
|
>
|
||||||
|
> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
|
||||||
|
>
|
||||||
|
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md](../../../../packages/mermaid/src/docs/config/setup/modules/mermaidAPI.md).
|
||||||
|
|
||||||
|
# Module: mermaidAPI
|
||||||
|
|
||||||
|
## Interfaces
|
||||||
|
|
||||||
|
- [ParseOptions](../interfaces/mermaidAPI.ParseOptions.md)
|
||||||
|
- [ParseResult](../interfaces/mermaidAPI.ParseResult.md)
|
||||||
|
- [RenderResult](../interfaces/mermaidAPI.RenderResult.md)
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
### default
|
||||||
|
|
||||||
|
Renames and re-exports [mermaidAPI](mermaidAPI.md#mermaidapi)
|
||||||
|
|
||||||
|
## Type Aliases
|
||||||
|
|
||||||
|
### D3Element
|
||||||
|
|
||||||
|
Ƭ **D3Element**: `any`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L75)
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
### mermaidAPI
|
||||||
|
|
||||||
|
• `Const` **mermaidAPI**: `Readonly`<{ `defaultConfig`: `MermaidConfig` = configApi.defaultConfig; `getConfig`: () => `MermaidConfig` = configApi.getConfig; `getDiagramFromText`: (`text`: `string`, `metadata`: `Pick`<`DiagramMetadata`, `"title"`>) => `Promise`<`Diagram`> ; `getSiteConfig`: () => `MermaidConfig` = configApi.getSiteConfig; `globalReset`: () => `void` ; `initialize`: (`options`: `MermaidConfig`) => `void` ; `parse`: (`text`: `string`, `parseOptions`: [`ParseOptions`](../interfaces/mermaidAPI.ParseOptions.md) & { `suppressErrors`: `true` }) => `Promise`<[`ParseResult`](../interfaces/mermaidAPI.ParseResult.md) | `false`>(`text`: `string`, `parseOptions?`: [`ParseOptions`](../interfaces/mermaidAPI.ParseOptions.md)) => `Promise`<[`ParseResult`](../interfaces/mermaidAPI.ParseResult.md)> ; `render`: (`id`: `string`, `text`: `string`, `svgContainingElement?`: `Element`) => `Promise`<[`RenderResult`](../interfaces/mermaidAPI.RenderResult.md)> ; `reset`: () => `void` ; `setConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.setConfig; `updateSiteConfig`: (`conf`: `MermaidConfig`) => `MermaidConfig` = configApi.updateSiteConfig }>
|
||||||
|
|
||||||
|
## mermaidAPI configuration defaults
|
||||||
|
|
||||||
|
```ts
|
||||||
|
const config = {
|
||||||
|
theme: 'default',
|
||||||
|
logLevel: 'fatal',
|
||||||
|
securityLevel: 'strict',
|
||||||
|
startOnLoad: true,
|
||||||
|
arrowMarkerAbsolute: false,
|
||||||
|
suppressErrorRendering: false,
|
||||||
|
|
||||||
|
er: {
|
||||||
|
diagramPadding: 20,
|
||||||
|
layoutDirection: 'TB',
|
||||||
|
minEntityWidth: 100,
|
||||||
|
minEntityHeight: 75,
|
||||||
|
entityPadding: 15,
|
||||||
|
stroke: 'gray',
|
||||||
|
fill: 'honeydew',
|
||||||
|
fontSize: 12,
|
||||||
|
useMaxWidth: true,
|
||||||
|
},
|
||||||
|
flowchart: {
|
||||||
|
diagramPadding: 8,
|
||||||
|
htmlLabels: true,
|
||||||
|
curve: 'basis',
|
||||||
|
},
|
||||||
|
sequence: {
|
||||||
|
diagramMarginX: 50,
|
||||||
|
diagramMarginY: 10,
|
||||||
|
actorMargin: 50,
|
||||||
|
width: 150,
|
||||||
|
height: 65,
|
||||||
|
boxMargin: 10,
|
||||||
|
boxTextMargin: 5,
|
||||||
|
noteMargin: 10,
|
||||||
|
messageMargin: 35,
|
||||||
|
messageAlign: 'center',
|
||||||
|
mirrorActors: true,
|
||||||
|
bottomMarginAdj: 1,
|
||||||
|
useMaxWidth: true,
|
||||||
|
rightAngles: false,
|
||||||
|
showSequenceNumbers: false,
|
||||||
|
},
|
||||||
|
gantt: {
|
||||||
|
titleTopMargin: 25,
|
||||||
|
barHeight: 20,
|
||||||
|
barGap: 4,
|
||||||
|
topPadding: 50,
|
||||||
|
leftPadding: 75,
|
||||||
|
gridLineStartPadding: 35,
|
||||||
|
fontSize: 11,
|
||||||
|
fontFamily: '"Open Sans", sans-serif',
|
||||||
|
numberSectionStyles: 4,
|
||||||
|
axisFormat: '%Y-%m-%d',
|
||||||
|
topAxis: false,
|
||||||
|
displayMode: '',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
mermaid.initialize(config);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:634](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L634)
|
||||||
|
|
||||||
|
## Functions
|
||||||
|
|
||||||
|
### appendDivSvgG
|
||||||
|
|
||||||
|
▸ **appendDivSvgG**(`parentRoot`, `id`, `enclosingDivId`, `divStyle?`, `svgXlink?`): `any`
|
||||||
|
|
||||||
|
Append an enclosing div, then svg, then g (group) to the d3 parentRoot. Set attributes.
|
||||||
|
Only set the style attribute on the enclosing div if divStyle is given.
|
||||||
|
Only set the xmlns:xlink attribute on svg if svgXlink is given.
|
||||||
|
Return the last node appended
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :--------------- | :------- | :----------------------------------------------- |
|
||||||
|
| `parentRoot` | `any` | the d3 node to append things to |
|
||||||
|
| `id` | `string` | the value to set the id attr to |
|
||||||
|
| `enclosingDivId` | `string` | the id to set the enclosing div to |
|
||||||
|
| `divStyle?` | `string` | if given, the style to set the enclosing div to |
|
||||||
|
| `svgXlink?` | `string` | if given, the link to set the new svg element to |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`any`
|
||||||
|
|
||||||
|
- returns the parentRoot that had nodes appended
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:276](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L276)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### cleanUpSvgCode
|
||||||
|
|
||||||
|
▸ **cleanUpSvgCode**(`svgCode?`, `inSandboxMode`, `useArrowMarkerUrls`): `string`
|
||||||
|
|
||||||
|
Clean up svgCode. Do replacements needed
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Default value | Description |
|
||||||
|
| :------------------- | :-------- | :------------ | :---------------------------------------------------------- |
|
||||||
|
| `svgCode` | `string` | `''` | the code to clean up |
|
||||||
|
| `inSandboxMode` | `boolean` | `undefined` | security level |
|
||||||
|
| `useArrowMarkerUrls` | `boolean` | `undefined` | should arrow marker's use full urls? (vs. just the anchors) |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
the cleaned up svgCode
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:223](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L223)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### createCssStyles
|
||||||
|
|
||||||
|
▸ **createCssStyles**(`config`, `classDefs?`): `string`
|
||||||
|
|
||||||
|
Create the user styles
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :---------- | :--------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------ |
|
||||||
|
| `config` | `MermaidConfig` | configuration that has style and theme settings to use |
|
||||||
|
| `classDefs` | `undefined` \| `null` \| `Map`<`string`, `DiagramStyleClassDef`> | the classDefs in the diagram text. Might be null if none were defined. Usually is the result of a call to getClasses(...) |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
the string with all the user styles
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:154](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L154)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### createUserStyles
|
||||||
|
|
||||||
|
▸ **createUserStyles**(`config`, `graphType`, `classDefs`, `svgId`): `string`
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type |
|
||||||
|
| :---------- | :----------------------------------------------------- |
|
||||||
|
| `config` | `MermaidConfig` |
|
||||||
|
| `graphType` | `string` |
|
||||||
|
| `classDefs` | `undefined` \| `Map`<`string`, `DiagramStyleClassDef`> |
|
||||||
|
| `svgId` | `string` |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:200](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L200)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### cssImportantStyles
|
||||||
|
|
||||||
|
▸ **cssImportantStyles**(`cssClass`, `element`, `cssClasses?`): `string`
|
||||||
|
|
||||||
|
Create a CSS style that starts with the given class name, then the element,
|
||||||
|
with an enclosing block that has each of the cssClasses followed by !important;
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Default value | Description |
|
||||||
|
| :----------- | :---------- | :------------ | :--------------------------------------------- |
|
||||||
|
| `cssClass` | `string` | `undefined` | CSS class name |
|
||||||
|
| `element` | `string` | `undefined` | CSS element |
|
||||||
|
| `cssClasses` | `string`\[] | `[]` | list of CSS styles to append after the element |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
- the constructed string
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:139](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L139)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### putIntoIFrame
|
||||||
|
|
||||||
|
▸ **putIntoIFrame**(`svgCode?`, `svgElement?`): `string`
|
||||||
|
|
||||||
|
Put the svgCode into an iFrame. Return the iFrame code
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Default value | Description |
|
||||||
|
| :------------ | :------- | :------------ | :--------------------------------------------------------------------------- |
|
||||||
|
| `svgCode` | `string` | `''` | the svg code to put inside the iFrame |
|
||||||
|
| `svgElement?` | `any` | `undefined` | the d3 node that has the current svgElement so we can get the height from it |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`string`
|
||||||
|
|
||||||
|
- the code with the iFrame that now contains the svgCode
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:253](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L253)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### removeExistingElements
|
||||||
|
|
||||||
|
▸ **removeExistingElements**(`doc`, `id`, `divId`, `iFrameId`): `void`
|
||||||
|
|
||||||
|
Remove any existing elements from the given document
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| :--------- | :--------- | :------------------------------------ |
|
||||||
|
| `doc` | `Document` | the document to removed elements from |
|
||||||
|
| `id` | `string` | id for any existing SVG element |
|
||||||
|
| `divId` | `string` | - |
|
||||||
|
| `iFrameId` | `string` | - |
|
||||||
|
|
||||||
|
#### Returns
|
||||||
|
|
||||||
|
`void`
|
||||||
|
|
||||||
|
#### Defined in
|
||||||
|
|
||||||
|
[mermaidAPI.ts:326](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L326)
|
@@ -24,12 +24,12 @@ Themes can now be customized at the site-wide level, or on individual Mermaid di
|
|||||||
|
|
||||||
## Site-wide Theme
|
## Site-wide Theme
|
||||||
|
|
||||||
To customize themes site-wide, call the `initialize` method on the `mermaid`.
|
To customize themes site-wide, call the `initialize` method on the `mermaidAPI`.
|
||||||
|
|
||||||
Example of `initialize` call setting `theme` to `base`:
|
Example of `initialize` call setting `theme` to `base`:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
mermaid.initialize({
|
mermaidAPI.initialize({
|
||||||
securityLevel: 'loose',
|
securityLevel: 'loose',
|
||||||
theme: 'base',
|
theme: 'base',
|
||||||
});
|
});
|
||||||
|
@@ -193,7 +193,7 @@ await mermaid.run({
|
|||||||
### Calling `mermaid.init` - Deprecated
|
### Calling `mermaid.init` - Deprecated
|
||||||
|
|
||||||
> **Warning**
|
> **Warning**
|
||||||
> mermaid.init is deprecated in v10 and will be removed in a future release. Please use mermaid.run instead.
|
> mermaid.init is deprecated in v10 and will be removed in v11. Please use mermaid.run instead.
|
||||||
|
|
||||||
By default, `mermaid.init` will be called when the document is ready, finding all elements with
|
By default, `mermaid.init` will be called when the document is ready, finding all elements with
|
||||||
`class="mermaid"`. If you are adding content after mermaid is loaded, or otherwise need
|
`class="mermaid"`. If you are adding content after mermaid is loaded, or otherwise need
|
||||||
@@ -217,6 +217,9 @@ Or with no config object, and a jQuery selection:
|
|||||||
mermaid.init(undefined, $('#someId .yetAnotherClass'));
|
mermaid.init(undefined, $('#someId .yetAnotherClass'));
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Warning**
|
||||||
|
> This type of integration is deprecated. Instead the preferred way of handling more complex integration is to use the mermaidAPI instead.
|
||||||
|
|
||||||
## Usage with webpack
|
## Usage with webpack
|
||||||
|
|
||||||
mermaid fully supports webpack. Here is a [working demo](https://github.com/mermaidjs/mermaid-webpack-demo).
|
mermaid fully supports webpack. Here is a [working demo](https://github.com/mermaidjs/mermaid-webpack-demo).
|
||||||
|
@@ -42,8 +42,6 @@ To add an integration to this list, see the [Integrations - create page](./integ
|
|||||||
- [CloudScript.io Mermaid Addon](https://marketplace.atlassian.com/apps/1219878/cloudscript-io-mermaid-addon?hosting=cloud&tab=overview)
|
- [CloudScript.io Mermaid Addon](https://marketplace.atlassian.com/apps/1219878/cloudscript-io-mermaid-addon?hosting=cloud&tab=overview)
|
||||||
- [Azure Devops](https://learn.microsoft.com/en-us/azure/devops/project/wiki/markdown-guidance?view=azure-devops#add-mermaid-diagrams-to-a-wiki-page) ✅
|
- [Azure Devops](https://learn.microsoft.com/en-us/azure/devops/project/wiki/markdown-guidance?view=azure-devops#add-mermaid-diagrams-to-a-wiki-page) ✅
|
||||||
- [Deepdwn](https://billiam.itch.io/deepdwn) ✅
|
- [Deepdwn](https://billiam.itch.io/deepdwn) ✅
|
||||||
- [Doctave](https://www.doctave.com/) ✅
|
|
||||||
- [Mermaid in Markdown code blocks](https://docs.doctave.com/components/mermaid) ✅
|
|
||||||
- [GitBook](https://gitbook.com)
|
- [GitBook](https://gitbook.com)
|
||||||
- [Mermaid Plugin](https://github.com/JozoVilcek/gitbook-plugin-mermaid)
|
- [Mermaid Plugin](https://github.com/JozoVilcek/gitbook-plugin-mermaid)
|
||||||
- [Mermaid plugin for GitBook](https://github.com/wwformat/gitbook-plugin-mermaid-pdf)
|
- [Mermaid plugin for GitBook](https://github.com/wwformat/gitbook-plugin-mermaid-pdf)
|
||||||
@@ -56,10 +54,8 @@ To add an integration to this list, see the [Integrations - create page](./integ
|
|||||||
- [SVG diagram generator](https://github.com/SimonKenyonShepard/mermaidjs-github-svg-generator)
|
- [SVG diagram generator](https://github.com/SimonKenyonShepard/mermaidjs-github-svg-generator)
|
||||||
- [GitLab](https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts) ✅
|
- [GitLab](https://docs.gitlab.com/ee/user/markdown.html#diagrams-and-flowcharts) ✅
|
||||||
- [Mermaid Plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/20146-mermaid)
|
- [Mermaid Plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/20146-mermaid)
|
||||||
- [MonsterWriter](https://www.monsterwriter.com/) ✅
|
|
||||||
- [Joplin](https://joplinapp.org) ✅
|
- [Joplin](https://joplinapp.org) ✅
|
||||||
- [LiveBook](https://livebook.dev) ✅
|
- [LiveBook](https://livebook.dev) ✅
|
||||||
- [Slidev](https://sli.dev) ✅
|
|
||||||
- [Tuleap](https://docs.tuleap.org/user-guide/writing-in-tuleap.html#graphs) ✅
|
- [Tuleap](https://docs.tuleap.org/user-guide/writing-in-tuleap.html#graphs) ✅
|
||||||
- [Mermaid Flow Visual Editor](https://www.mermaidflow.app) ✅
|
- [Mermaid Flow Visual Editor](https://www.mermaidflow.app) ✅
|
||||||
- [Mermerd](https://github.com/KarnerTh/mermerd)
|
- [Mermerd](https://github.com/KarnerTh/mermerd)
|
||||||
@@ -135,7 +131,7 @@ Communication tools and platforms
|
|||||||
### Wikis
|
### Wikis
|
||||||
|
|
||||||
- [DokuWiki](https://dokuwiki.org)
|
- [DokuWiki](https://dokuwiki.org)
|
||||||
- [ComboStrap](https://combostrap.com/utility/create-diagram-with-mermaid-vh3ab9yj)
|
- [ComboStrap](https://combostrap.com/mermaid)
|
||||||
- [Mermaid Plugin](https://www.dokuwiki.org/plugin:mermaid)
|
- [Mermaid Plugin](https://www.dokuwiki.org/plugin:mermaid)
|
||||||
- [Foswiki](https://foswiki.org)
|
- [Foswiki](https://foswiki.org)
|
||||||
- [Mermaid Plugin](https://foswiki.org/Extensions/MermaidPlugin)
|
- [Mermaid Plugin](https://foswiki.org/Extensions/MermaidPlugin)
|
||||||
@@ -210,7 +206,6 @@ Communication tools and platforms
|
|||||||
- [gatsby-remark-mermaid](https://github.com/remcohaszing/gatsby-remark-mermaid)
|
- [gatsby-remark-mermaid](https://github.com/remcohaszing/gatsby-remark-mermaid)
|
||||||
- [JSDoc](https://jsdoc.app/)
|
- [JSDoc](https://jsdoc.app/)
|
||||||
- [jsdoc-mermaid](https://github.com/Jellyvision/jsdoc-mermaid)
|
- [jsdoc-mermaid](https://github.com/Jellyvision/jsdoc-mermaid)
|
||||||
- [Madness](https://madness.dannyb.co/)
|
|
||||||
- [mdBook](https://rust-lang.github.io/mdBook/index.html)
|
- [mdBook](https://rust-lang.github.io/mdBook/index.html)
|
||||||
- [mdbook-mermaid](https://github.com/badboy/mdbook-mermaid)
|
- [mdbook-mermaid](https://github.com/badboy/mdbook-mermaid)
|
||||||
- [MkDocs](https://www.mkdocs.org)
|
- [MkDocs](https://www.mkdocs.org)
|
||||||
|
@@ -12,7 +12,7 @@ Try the Ultimate AI, Mermaid, and Visual Diagramming Suite by creating an accoun
|
|||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<a href="https://www.producthunt.com/products/mermaid-chart?utm_source=badge-follow&utm_medium=badge&utm_souce=badge-mermaid-chart" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/follow.svg?product_id=552855&theme=light" alt="Mermaid Chart - A smarter way to create diagrams | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
|
<a href="https://www.producthunt.com/posts/mermaid-chart?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-mermaid-chart" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=416671&theme=light" alt="Mermaid Chart - A smarter way to create diagrams | Product Hunt" style="width: 250px; height: 54px;" width="250" height="54" /></a>
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
|
@@ -6,30 +6,6 @@
|
|||||||
|
|
||||||
# Blog
|
# Blog
|
||||||
|
|
||||||
## [Mermaid AI Is Here to Change the Game For Diagram Creation](https://www.mermaidchart.com/blog/posts/mermaid-ai-is-here-to-change-the-game-for-diagram-creation/)
|
|
||||||
|
|
||||||
22 July 2024 · 5 mins
|
|
||||||
|
|
||||||
The Mermaid AI chat interface
|
|
||||||
|
|
||||||
## [How to Make a Sequence Diagram with Mermaid Chart](https://www.mermaidchart.com/blog/posts/how-to-make-a-sequence-diagram-in-mermaid-chart-step-by-step-guide/)
|
|
||||||
|
|
||||||
8 July 2024 · 6 mins
|
|
||||||
|
|
||||||
Sequence diagrams are important for communicating complex systems in a clear and concise manner.
|
|
||||||
|
|
||||||
## [How to Use the New “Comments” Feature in Mermaid Chart](https://www.mermaidchart.com/blog/posts/how-to-use-the-new-comments-feature-in-mermaid-chart/)
|
|
||||||
|
|
||||||
2 July 2024 · 3 mins
|
|
||||||
|
|
||||||
How to Use the New Comments Feature in Mermaid Chart
|
|
||||||
|
|
||||||
## [How to Use the official Mermaid Chart for Confluence app](https://www.mermaidchart.com/blog/posts/how-to-use-the-official-mermaid-chart-for-confluence-app/)
|
|
||||||
|
|
||||||
21 May 2024 · 4 mins
|
|
||||||
|
|
||||||
It doesn’t matter if you’re a data enthusiast, software engineer, or visual storyteller; our Confluence app can allow you to embed Mermaid Chart diagrams — and dynamically edit them — within your Confluence pages.
|
|
||||||
|
|
||||||
## [How to Choose the Right Documentation Software](https://www.mermaidchart.com/blog/posts/how-to-choose-the-right-documentation-software/)
|
## [How to Choose the Right Documentation Software](https://www.mermaidchart.com/blog/posts/how-to-choose-the-right-documentation-software/)
|
||||||
|
|
||||||
7 May 2024 · 5 mins
|
7 May 2024 · 5 mins
|
||||||
|
@@ -136,7 +136,7 @@ Cardinality is a property that describes how many elements of another entity can
|
|||||||
| 1+ | 1+ | One or more |
|
| 1+ | 1+ | One or more |
|
||||||
| zero or more | zero or more | Zero or more |
|
| zero or more | zero or more | Zero or more |
|
||||||
| zero or many | zero or many | Zero or more |
|
| zero or many | zero or many | Zero or more |
|
||||||
| many(0) | many(0) | Zero or more |
|
| many(0) | many(1) | Zero or more |
|
||||||
| 0+ | 0+ | Zero or more |
|
| 0+ | 0+ | Zero or more |
|
||||||
| only one | only one | Exactly one |
|
| only one | only one | Exactly one |
|
||||||
| 1 | 1 | Exactly one |
|
| 1 | 1 | Exactly one |
|
||||||
|
@@ -172,7 +172,7 @@ The `title` is an _optional_ string to be displayed at the top of the Gantt char
|
|||||||
The `excludes` is an _optional_ attribute that accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".
|
The `excludes` is an _optional_ attribute that accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".
|
||||||
These date will be marked on the graph, and be excluded from the duration calculation of tasks. Meaning that if there are excluded dates during a task interval, the number of 'skipped' days will be added to the end of the task to ensure the duration is as specified in the code.
|
These date will be marked on the graph, and be excluded from the duration calculation of tasks. Meaning that if there are excluded dates during a task interval, the number of 'skipped' days will be added to the end of the task to ensure the duration is as specified in the code.
|
||||||
|
|
||||||
#### Weekend (v\11.0.0+)
|
#### Weekend (v\<MERMAID_RELEASE_VERSION>+)
|
||||||
|
|
||||||
When excluding weekends, it is possible to configure the weekends to be either Friday and Saturday or Saturday and Sunday. By default weekends are Saturday and Sunday.
|
When excluding weekends, it is possible to configure the weekends to be either Friday and Saturday or Saturday and Sunday. By default weekends are Saturday and Sunday.
|
||||||
To define the weekend start day, there is an _optional_ attribute `weekend` that can be added in a new line followed by either `friday` or `saturday`.
|
To define the weekend start day, there is an _optional_ attribute `weekend` that can be added in a new line followed by either `friday` or `saturday`.
|
||||||
|
@@ -918,7 +918,7 @@ Usage example:
|
|||||||
commit
|
commit
|
||||||
```
|
```
|
||||||
|
|
||||||
### Bottom to Top (`BT:`) (v11.0.0+)
|
### Bottom to Top (`BT:`) (v\<MERMAID_RELEASE_VERSION>+)
|
||||||
|
|
||||||
In `BT` (**Bottom-to-Top**) orientation, the commits run from bottom to top of the graph and branches are arranged side-by-side.
|
In `BT` (**Bottom-to-Top**) orientation, the commits run from bottom to top of the graph and branches are arranged side-by-side.
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
>
|
>
|
||||||
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/packet.md](../../packages/mermaid/src/docs/syntax/packet.md).
|
> ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/packet.md](../../packages/mermaid/src/docs/syntax/packet.md).
|
||||||
|
|
||||||
# Packet Diagram (v11.0.0+)
|
# Packet Diagram (v\<MERMAID_RELEASE_VERSION>+)
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ A packet diagram is a visual representation used to illustrate the structure and
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
This diagram type is particularly useful for developers, network engineers, educators, and students who require a clear and concise way to represent the structure of network packets.
|
This diagram type is particularly useful for network engineers, educators, and students who require a clear and concise way to represent the structure of network packets.
|
||||||
|
|
||||||
## Syntax
|
## Syntax
|
||||||
|
|
||||||
|
@@ -208,18 +208,18 @@ Messages can be of two displayed either solid or with a dotted line.
|
|||||||
|
|
||||||
There are ten types of arrows currently supported:
|
There are ten types of arrows currently supported:
|
||||||
|
|
||||||
| Type | Description |
|
| Type | Description |
|
||||||
| -------- | ---------------------------------------------------- |
|
| -------- | ------------------------------------------------------------------------ |
|
||||||
| `->` | Solid line without arrow |
|
| `->` | Solid line without arrow |
|
||||||
| `-->` | Dotted line without arrow |
|
| `-->` | Dotted line without arrow |
|
||||||
| `->>` | Solid line with arrowhead |
|
| `->>` | Solid line with arrowhead |
|
||||||
| `-->>` | Dotted line with arrowhead |
|
| `-->>` | Dotted line with arrowhead |
|
||||||
| `<<->>` | Solid line with bidirectional arrowheads (v11.0.0+) |
|
| `<<->>` | Solid line with bidirectional arrowheads (v\<MERMAID_RELEASE_VERSION>+) |
|
||||||
| `<<-->>` | Dotted line with bidirectional arrowheads (v11.0.0+) |
|
| `<<-->>` | Dotted line with bidirectional arrowheads (v\<MERMAID_RELEASE_VERSION>+) |
|
||||||
| `-x` | Solid line with a cross at the end |
|
| `-x` | Solid line with a cross at the end |
|
||||||
| `--x` | Dotted line with a cross at the end. |
|
| `--x` | Dotted line with a cross at the end. |
|
||||||
| `-)` | Solid line with an open arrow at the end (async) |
|
| `-)` | Solid line with an open arrow at the end (async) |
|
||||||
| `--)` | Dotted line with a open arrow at the end (async) |
|
| `--)` | Dotted line with a open arrow at the end (async) |
|
||||||
|
|
||||||
## Activations
|
## Activations
|
||||||
|
|
||||||
|
@@ -483,8 +483,8 @@ a _[valid CSS property name](https://www.w3.org/TR/CSS/#properties)_ followed by
|
|||||||
|
|
||||||
Here is an example of a classDef with just one property-value pair:
|
Here is an example of a classDef with just one property-value pair:
|
||||||
|
|
||||||
```txt
|
```
|
||||||
classDef movement font-style:italic;
|
classDef movement font-style:italic;
|
||||||
```
|
```
|
||||||
|
|
||||||
where
|
where
|
||||||
@@ -496,8 +496,8 @@ If you want to have more than one _property-value pair_ then you put a comma (`,
|
|||||||
|
|
||||||
Here is an example with three property-value pairs:
|
Here is an example with three property-value pairs:
|
||||||
|
|
||||||
```txt
|
```
|
||||||
classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
|
classDef badBadEvent fill:#f00,color:white,font-weight:bold,stroke-width:2px,stroke:yellow
|
||||||
```
|
```
|
||||||
|
|
||||||
where
|
where
|
||||||
@@ -522,7 +522,7 @@ There are two ways to apply a `classDef` style to a state:
|
|||||||
A `class` statement tells Mermaid to apply the named classDef to one or more classes. The form is:
|
A `class` statement tells Mermaid to apply the named classDef to one or more classes. The form is:
|
||||||
|
|
||||||
```txt
|
```txt
|
||||||
class [one or more state names, separated by commas] [name of a style defined with classDef]
|
class [one or more state names, separated by commas] [name of a style defined with classDef]
|
||||||
```
|
```
|
||||||
|
|
||||||
Here is an example applying the `badBadEvent` style to a state named `Crash`:
|
Here is an example applying the `badBadEvent` style to a state named `Crash`:
|
||||||
|
222
eslint.config.js
222
eslint.config.js
@@ -1,222 +0,0 @@
|
|||||||
import cspell from '@cspell/eslint-plugin';
|
|
||||||
import eslint from '@eslint/js';
|
|
||||||
import cypress from 'eslint-plugin-cypress';
|
|
||||||
import jsdoc from 'eslint-plugin-jsdoc';
|
|
||||||
import json from 'eslint-plugin-json';
|
|
||||||
import lodash from 'eslint-plugin-lodash';
|
|
||||||
import markdown from 'eslint-plugin-markdown';
|
|
||||||
import noOnlyTests from 'eslint-plugin-no-only-tests';
|
|
||||||
import tsdoc from 'eslint-plugin-tsdoc';
|
|
||||||
import unicorn from 'eslint-plugin-unicorn';
|
|
||||||
import globals from 'globals';
|
|
||||||
import tseslint from 'typescript-eslint';
|
|
||||||
|
|
||||||
export default tseslint.config(
|
|
||||||
eslint.configs.recommended,
|
|
||||||
...tseslint.configs.recommendedTypeChecked,
|
|
||||||
...tseslint.configs.stylisticTypeChecked,
|
|
||||||
{
|
|
||||||
ignores: [
|
|
||||||
'**/dist/',
|
|
||||||
'**/node_modules/',
|
|
||||||
'.git/',
|
|
||||||
'**/generated/',
|
|
||||||
'**/coverage/',
|
|
||||||
'packages/mermaid/src/config.type.ts',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
languageOptions: {
|
|
||||||
parserOptions: {
|
|
||||||
project: [
|
|
||||||
'./tsconfig.eslint.json',
|
|
||||||
'./packages/*/tsconfig.json',
|
|
||||||
'./packages/*/tsconfig.eslint.json',
|
|
||||||
'./packages/mermaid/src/docs/tsconfig.json',
|
|
||||||
],
|
|
||||||
tsconfigRootDir: import.meta.dirname,
|
|
||||||
},
|
|
||||||
globals: {
|
|
||||||
...globals.browser,
|
|
||||||
...globals.node,
|
|
||||||
...globals.es2020,
|
|
||||||
...globals.jest,
|
|
||||||
cy: 'readonly',
|
|
||||||
Cypress: 'readonly',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
plugins: {
|
|
||||||
json,
|
|
||||||
'@cspell': cspell,
|
|
||||||
'no-only-tests': noOnlyTests,
|
|
||||||
lodash,
|
|
||||||
unicorn,
|
|
||||||
cypress,
|
|
||||||
markdown,
|
|
||||||
tsdoc,
|
|
||||||
jsdoc,
|
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
curly: 'error',
|
|
||||||
'no-console': 'error',
|
|
||||||
'no-prototype-builtins': 'off',
|
|
||||||
'no-unused-vars': 'off',
|
|
||||||
'cypress/no-async-tests': 'off',
|
|
||||||
'@typescript-eslint/consistent-type-imports': 'error',
|
|
||||||
'@typescript-eslint/no-explicit-any': 'warn',
|
|
||||||
'@typescript-eslint/no-floating-promises': 'error',
|
|
||||||
'@typescript-eslint/no-misused-promises': 'error',
|
|
||||||
'@typescript-eslint/no-unused-vars': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
args: 'after-used',
|
|
||||||
argsIgnorePattern: '^_',
|
|
||||||
caughtErrors: 'all',
|
|
||||||
caughtErrorsIgnorePattern: '^_',
|
|
||||||
destructuredArrayIgnorePattern: '^_',
|
|
||||||
varsIgnorePattern: '^_',
|
|
||||||
ignoreRestSiblings: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'@typescript-eslint/consistent-type-definitions': 'error',
|
|
||||||
'@typescript-eslint/ban-ts-comment': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
'ts-expect-error': 'allow-with-description',
|
|
||||||
'ts-ignore': 'allow-with-description',
|
|
||||||
'ts-nocheck': 'allow-with-description',
|
|
||||||
'ts-check': 'allow-with-description',
|
|
||||||
minimumDescriptionLength: 10,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'@typescript-eslint/naming-convention': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
selector: 'typeLike',
|
|
||||||
format: ['PascalCase'],
|
|
||||||
custom: {
|
|
||||||
regex: '^I[A-Z]',
|
|
||||||
match: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
// START: These rules should be turned on once the codebase is cleaned up
|
|
||||||
'@typescript-eslint/no-unsafe-argument': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-call': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
|
||||||
'@typescript-eslint/no-unsafe-return': 'off',
|
|
||||||
'@typescript-eslint/only-throw-error': 'warn',
|
|
||||||
'@typescript-eslint/prefer-nullish-coalescing': 'warn',
|
|
||||||
'@typescript-eslint/prefer-promise-reject-errors': 'warn',
|
|
||||||
// END
|
|
||||||
'json/*': ['error', 'allowComments'],
|
|
||||||
'@cspell/spellchecker': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
checkIdentifiers: true,
|
|
||||||
checkStrings: true,
|
|
||||||
checkStringTemplates: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'no-empty': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
allowEmptyCatch: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'no-only-tests/no-only-tests': 'error',
|
|
||||||
'lodash/import-scope': ['error', 'method'],
|
|
||||||
'unicorn/better-regex': 'error',
|
|
||||||
'unicorn/no-abusive-eslint-disable': 'error',
|
|
||||||
'unicorn/no-array-push-push': 'error',
|
|
||||||
'unicorn/no-for-loop': 'error',
|
|
||||||
'unicorn/no-instanceof-array': 'error',
|
|
||||||
'unicorn/no-typeof-undefined': 'error',
|
|
||||||
'unicorn/no-unnecessary-await': 'error',
|
|
||||||
'unicorn/no-unsafe-regex': 'warn',
|
|
||||||
'unicorn/no-useless-promise-resolve-reject': 'error',
|
|
||||||
'unicorn/prefer-array-find': 'error',
|
|
||||||
'unicorn/prefer-array-flat-map': 'error',
|
|
||||||
'unicorn/prefer-array-index-of': 'error',
|
|
||||||
'unicorn/prefer-array-some': 'error',
|
|
||||||
'unicorn/prefer-default-parameters': 'error',
|
|
||||||
'unicorn/prefer-includes': 'error',
|
|
||||||
'unicorn/prefer-negative-index': 'error',
|
|
||||||
'unicorn/prefer-object-from-entries': 'error',
|
|
||||||
'unicorn/prefer-string-starts-ends-with': 'error',
|
|
||||||
'unicorn/prefer-string-trim-start-end': 'error',
|
|
||||||
'unicorn/string-content': 'error',
|
|
||||||
'unicorn/prefer-spread': 'error',
|
|
||||||
'unicorn/no-lonely-if': 'error',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['cypress/**', 'demos/**'],
|
|
||||||
rules: {
|
|
||||||
'no-console': 'off',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['**/*.{js,jsx,mjs,cjs}'],
|
|
||||||
rules: {
|
|
||||||
'jsdoc/check-indentation': 'off',
|
|
||||||
'jsdoc/check-alignment': 'off',
|
|
||||||
'jsdoc/check-line-alignment': 'off',
|
|
||||||
'jsdoc/multiline-blocks': 'off',
|
|
||||||
'jsdoc/newline-after-description': 'off',
|
|
||||||
'jsdoc/tag-lines': 'off',
|
|
||||||
'jsdoc/require-param-description': 'off',
|
|
||||||
'jsdoc/require-param-type': 'off',
|
|
||||||
'jsdoc/require-returns': 'off',
|
|
||||||
'jsdoc/require-returns-description': 'off',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['**/*.{ts,tsx}'],
|
|
||||||
rules: {
|
|
||||||
'no-restricted-syntax': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
selector: 'TSEnumDeclaration',
|
|
||||||
message:
|
|
||||||
'Prefer using TypeScript union types over TypeScript enum, since TypeScript enums have a bunch of issues, see https://dev.to/dvddpl/whats-the-problem-with-typescript-enums-2okj',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'tsdoc/syntax': 'error',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['**/*.spec.{ts,js}', 'cypress/**', 'demos/**', '**/docs/**'],
|
|
||||||
rules: {
|
|
||||||
'jsdoc/require-jsdoc': 'off',
|
|
||||||
'@typescript-eslint/no-unused-vars': 'off',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['**/*.spec.{ts,js}', 'tests/**', 'cypress/**/*.js'],
|
|
||||||
rules: {
|
|
||||||
'@cspell/spellchecker': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
checkIdentifiers: false,
|
|
||||||
checkStrings: false,
|
|
||||||
checkStringTemplates: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
files: ['*.html', '*.md', '**/*.md/*'],
|
|
||||||
rules: {
|
|
||||||
'no-var': 'error',
|
|
||||||
'no-undef': 'off',
|
|
||||||
'@typescript-eslint/no-unused-vars': 'off',
|
|
||||||
'@typescript-eslint/no-floating-promises': 'off',
|
|
||||||
'@typescript-eslint/no-misused-promises': 'off',
|
|
||||||
},
|
|
||||||
processor: 'markdown/markdown',
|
|
||||||
}
|
|
||||||
);
|
|
64
package.json
64
package.json
@@ -4,7 +4,7 @@
|
|||||||
"version": "10.2.4",
|
"version": "10.2.4",
|
||||||
"description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
|
"description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"packageManager": "pnpm@9.7.1+sha512.faf344af2d6ca65c4c5c8c2224ea77a81a5e8859cbc4e06b1511ddce2f0151512431dd19e6aff31f2c6a8f5f2aced9bd2273e1fed7dd4de1868984059d2c4247",
|
"packageManager": "pnpm@9.4.0+sha512.f549b8a52c9d2b8536762f99c0722205efc5af913e77835dbccc3b0b0b2ca9e7dc8022b78062c17291c48e88749c70ce88eb5a74f1fa8c4bf5e18bb46c8bd83a",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"diagram",
|
"diagram",
|
||||||
"markdown",
|
"markdown",
|
||||||
@@ -24,11 +24,10 @@
|
|||||||
"dev": "tsx .esbuild/server.ts",
|
"dev": "tsx .esbuild/server.ts",
|
||||||
"dev:vite": "tsx .vite/server.ts",
|
"dev:vite": "tsx .vite/server.ts",
|
||||||
"dev:coverage": "pnpm coverage:cypress:clean && VITE_COVERAGE=true pnpm dev:vite",
|
"dev:coverage": "pnpm coverage:cypress:clean && VITE_COVERAGE=true pnpm dev:vite",
|
||||||
"copy-readme": "cpy './README.*' ./packages/mermaid/ --cwd=.",
|
"release": "pnpm build",
|
||||||
"changeset:version": "changeset version && pnpm build && pnpm --filter mermaid run docs:release-version && pnpm --filter mermaid run docs:build && git add --all",
|
"lint": "pnpm biome check && pnpm lint:jison",
|
||||||
"changeset:publish": "pnpm copy-readme && changeset publish",
|
"lint:fix": "pnpm biome check --write",
|
||||||
"lint": "eslint --quiet --stats --cache --cache-strategy content . && pnpm lint:jison && prettier --cache --check .",
|
"lint:ci": "cross-env NODE_OPTIONS=--max_old_space_size=8192 eslint --cache --cache-strategy content . && pnpm lint",
|
||||||
"lint:fix": "eslint --cache --cache-strategy content --fix . && prettier --write . && tsx scripts/fixCSpell.ts",
|
|
||||||
"lint:jison": "tsx ./scripts/jison/lint.mts",
|
"lint:jison": "tsx ./scripts/jison/lint.mts",
|
||||||
"contributors": "tsx scripts/updateContributors.ts",
|
"contributors": "tsx scripts/updateContributors.ts",
|
||||||
"cypress": "cypress run",
|
"cypress": "cypress run",
|
||||||
@@ -42,6 +41,7 @@
|
|||||||
"test": "pnpm lint && vitest run",
|
"test": "pnpm lint && vitest run",
|
||||||
"test:watch": "vitest --watch",
|
"test:watch": "vitest --watch",
|
||||||
"test:coverage": "vitest --coverage",
|
"test:coverage": "vitest --coverage",
|
||||||
|
"prepublishOnly": "pnpm build && pnpm test",
|
||||||
"prepare": "husky install && pnpm build",
|
"prepare": "husky install && pnpm build",
|
||||||
"pre-commit": "lint-staged"
|
"pre-commit": "lint-staged"
|
||||||
},
|
},
|
||||||
@@ -52,25 +52,18 @@
|
|||||||
"author": "Knut Sveidqvist",
|
"author": "Knut Sveidqvist",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"standard": {
|
"standard": {
|
||||||
"ignore": [
|
"ignore": ["**/parser/*.js", "dist/**/*.js", "cypress/**/*.js"],
|
||||||
"**/parser/*.js",
|
"globals": ["page"]
|
||||||
"dist/**/*.js",
|
|
||||||
"cypress/**/*.js"
|
|
||||||
],
|
|
||||||
"globals": [
|
|
||||||
"page"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@applitools/eyes-cypress": "^3.44.4",
|
"@applitools/eyes-cypress": "^3.42.3",
|
||||||
"@argos-ci/cypress": "^2.1.0",
|
"@argos-ci/cypress": "^2.0.5",
|
||||||
"@changesets/changelog-github": "^0.5.0",
|
"@biomejs/biome": "1.8.2",
|
||||||
"@changesets/cli": "^2.27.7",
|
"@cspell/eslint-plugin": "^8.6.0",
|
||||||
"@cspell/eslint-plugin": "^8.8.4",
|
|
||||||
"@cypress/code-coverage": "^3.12.30",
|
"@cypress/code-coverage": "^3.12.30",
|
||||||
"@eslint/js": "^9.4.0",
|
|
||||||
"@rollup/plugin-typescript": "^11.1.6",
|
"@rollup/plugin-typescript": "^11.1.6",
|
||||||
"@types/cors": "^2.8.17",
|
"@types/cors": "^2.8.17",
|
||||||
|
"@types/eslint": "^8.56.6",
|
||||||
"@types/express": "^4.17.21",
|
"@types/express": "^4.17.21",
|
||||||
"@types/js-yaml": "^4.0.9",
|
"@types/js-yaml": "^4.0.9",
|
||||||
"@types/jsdom": "^21.1.6",
|
"@types/jsdom": "^21.1.6",
|
||||||
@@ -78,6 +71,8 @@
|
|||||||
"@types/mdast": "^4.0.3",
|
"@types/mdast": "^4.0.3",
|
||||||
"@types/node": "^20.11.30",
|
"@types/node": "^20.11.30",
|
||||||
"@types/rollup-plugin-visualizer": "^4.2.4",
|
"@types/rollup-plugin-visualizer": "^4.2.4",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
||||||
|
"@typescript-eslint/parser": "^7.3.1",
|
||||||
"@vitest/coverage-v8": "^1.4.0",
|
"@vitest/coverage-v8": "^1.4.0",
|
||||||
"@vitest/spy": "^1.4.0",
|
"@vitest/spy": "^1.4.0",
|
||||||
"@vitest/ui": "^1.4.0",
|
"@vitest/ui": "^1.4.0",
|
||||||
@@ -85,26 +80,24 @@
|
|||||||
"chokidar": "^3.6.0",
|
"chokidar": "^3.6.0",
|
||||||
"concurrently": "^8.2.2",
|
"concurrently": "^8.2.2",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"cpy-cli": "^5.0.0",
|
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"cspell": "^8.6.0",
|
"cspell": "^8.6.0",
|
||||||
"cypress": "^13.11.0",
|
"cypress": "^13.7.1",
|
||||||
"cypress-image-snapshot": "^4.0.1",
|
"cypress-image-snapshot": "^4.0.1",
|
||||||
"esbuild": "^0.21.5",
|
"esbuild": "^0.20.2",
|
||||||
"eslint": "^9.4.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-cypress": "^3.3.0",
|
"eslint-plugin-cypress": "^2.15.1",
|
||||||
"eslint-plugin-html": "^8.1.1",
|
"eslint-plugin-html": "^8.0.0",
|
||||||
"eslint-plugin-jest": "^28.6.0",
|
"eslint-plugin-jest": "^27.9.0",
|
||||||
"eslint-plugin-jsdoc": "^48.2.9",
|
"eslint-plugin-jsdoc": "^48.2.1",
|
||||||
"eslint-plugin-json": "^4.0.0",
|
"eslint-plugin-json": "^3.1.0",
|
||||||
"eslint-plugin-lodash": "^8.0.0",
|
"eslint-plugin-lodash": "^7.4.0",
|
||||||
"eslint-plugin-markdown": "^5.0.0",
|
"eslint-plugin-markdown": "^4.0.1",
|
||||||
"eslint-plugin-no-only-tests": "^3.1.0",
|
"eslint-plugin-no-only-tests": "^3.1.0",
|
||||||
"eslint-plugin-tsdoc": "^0.3.0",
|
"eslint-plugin-tsdoc": "^0.2.17",
|
||||||
"eslint-plugin-unicorn": "^55.0.0",
|
"eslint-plugin-unicorn": "^51.0.1",
|
||||||
"express": "^4.19.1",
|
"express": "^4.19.1",
|
||||||
"globals": "^15.4.0",
|
|
||||||
"globby": "^14.0.1",
|
"globby": "^14.0.1",
|
||||||
"husky": "^9.0.11",
|
"husky": "^9.0.11",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
@@ -123,8 +116,7 @@
|
|||||||
"rollup-plugin-visualizer": "^5.12.0",
|
"rollup-plugin-visualizer": "^5.12.0",
|
||||||
"start-server-and-test": "^2.0.3",
|
"start-server-and-test": "^2.0.3",
|
||||||
"tsx": "^4.7.1",
|
"tsx": "^4.7.1",
|
||||||
"typescript": "~5.4.5",
|
"typescript": "^5.4.3",
|
||||||
"typescript-eslint": "^8.0.0-alpha.34",
|
|
||||||
"vite": "^5.2.3",
|
"vite": "^5.2.3",
|
||||||
"vite-plugin-istanbul": "^6.0.0",
|
"vite-plugin-istanbul": "^6.0.0",
|
||||||
"vitest": "^1.4.0"
|
"vitest": "^1.4.0"
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@mermaid-js/mermaid-example-diagram",
|
"name": "@mermaid-js/mermaid-example-diagram",
|
||||||
"version": "9.3.0",
|
"version": "9.3.0",
|
||||||
"private": true,
|
|
||||||
"description": "Example of external diagram module for MermaidJS.",
|
"description": "Example of external diagram module for MermaidJS.",
|
||||||
"module": "dist/mermaid-example-diagram.core.mjs",
|
"module": "dist/mermaid-example-diagram.core.mjs",
|
||||||
"types": "dist/detector.d.ts",
|
"types": "dist/detector.d.ts",
|
||||||
@@ -13,13 +12,10 @@
|
|||||||
},
|
},
|
||||||
"./*": "./*"
|
"./*": "./*"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": ["diagram", "markdown", "example", "mermaid"],
|
||||||
"diagram",
|
"scripts": {
|
||||||
"markdown",
|
"prepublishOnly": "pnpm -w run build"
|
||||||
"example",
|
},
|
||||||
"mermaid"
|
|
||||||
],
|
|
||||||
"scripts": {},
|
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/mermaid-js/mermaid"
|
"url": "https://github.com/mermaid-js/mermaid"
|
||||||
@@ -27,14 +23,8 @@
|
|||||||
"author": "Knut Sveidqvist",
|
"author": "Knut Sveidqvist",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"standard": {
|
"standard": {
|
||||||
"ignore": [
|
"ignore": ["**/parser/*.js", "dist/**/*.js", "cypress/**/*.js"],
|
||||||
"**/parser/*.js",
|
"globals": ["page"]
|
||||||
"dist/**/*.js",
|
|
||||||
"cypress/**/*.js"
|
|
||||||
],
|
|
||||||
"globals": [
|
|
||||||
"page"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@braintree/sanitize-url": "^7.0.0",
|
"@braintree/sanitize-url": "^7.0.0",
|
||||||
@@ -46,11 +36,6 @@
|
|||||||
"mermaid": "workspace:*",
|
"mermaid": "workspace:*",
|
||||||
"rimraf": "^5.0.5"
|
"rimraf": "^5.0.5"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": ["dist"],
|
||||||
"dist"
|
"sideEffects": ["**/*.css", "**/*.scss"]
|
||||||
],
|
|
||||||
"sideEffects": [
|
|
||||||
"**/*.css",
|
|
||||||
"**/*.scss"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
@@ -13,7 +13,7 @@ export const draw = (text, id, version) => {
|
|||||||
try {
|
try {
|
||||||
const conf = getConfig();
|
const conf = getConfig();
|
||||||
log.debug('Rendering example diagram\n' + text, 'Conf: ');
|
log.debug('Rendering example diagram\n' + text, 'Conf: ');
|
||||||
const THEME_COLOR_LIMIT = getConfig().themeVariables.THEME_COLOR_LIMIT;
|
const themeColorLimit = getConfig().themeVariables.THEME_COLOR_LIMIT;
|
||||||
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
|
||||||
let sandboxElement;
|
let sandboxElement;
|
||||||
@@ -30,7 +30,7 @@ export const draw = (text, id, version) => {
|
|||||||
const g = svg.append('g');
|
const g = svg.append('g');
|
||||||
|
|
||||||
let i;
|
let i;
|
||||||
for (i = 0; i < THEME_COLOR_LIMIT; i++) {
|
for (i = 0; i < themeColorLimit; i++) {
|
||||||
const section = g.append('g').attr('class', 'section-' + i);
|
const section = g.append('g').attr('class', 'section-' + i);
|
||||||
section
|
section
|
||||||
.append('rect')
|
.append('rect')
|
||||||
|
@@ -25,7 +25,7 @@ export const log: Record<keyof typeof LEVELS, typeof console.log> = {
|
|||||||
fatal: warning,
|
fatal: warning,
|
||||||
};
|
};
|
||||||
|
|
||||||
export let setLogLevel: (level: keyof typeof LEVELS | number) => void;
|
export let setLogLevel: (level: keyof typeof LEVELS | number | string) => void;
|
||||||
export let getConfig: () => object;
|
export let getConfig: () => object;
|
||||||
export let sanitizeText: (str: string) => string;
|
export let sanitizeText: (str: string) => string;
|
||||||
export let commonDb: () => object;
|
export let commonDb: () => object;
|
||||||
|
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
|
||||||
"extends": ["./tsconfig.json"],
|
|
||||||
"compilerOptions": {
|
|
||||||
"noEmit": true
|
|
||||||
},
|
|
||||||
"include": [
|
|
||||||
"./src/**/*.spec.js",
|
|
||||||
"./src/**/*.spec.ts" // test files
|
|
||||||
]
|
|
||||||
}
|
|
37
packages/mermaid-flowchart-elk/package.json
Normal file
37
packages/mermaid-flowchart-elk/package.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "@mermaid-js/flowchart-elk",
|
||||||
|
"version": "1.0.0-rc.1",
|
||||||
|
"description": "Flowchart plugin for mermaid with ELK layout",
|
||||||
|
"module": "dist/mermaid-flowchart-elk.core.mjs",
|
||||||
|
"types": "dist/packages/mermaid-flowchart-elk/src/detector.d.ts",
|
||||||
|
"type": "module",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"import": "./dist/mermaid-flowchart-elk.core.mjs",
|
||||||
|
"types": "./dist/packages/mermaid-flowchart-elk/src/detector.d.ts"
|
||||||
|
},
|
||||||
|
"./*": "./*"
|
||||||
|
},
|
||||||
|
"keywords": ["diagram", "markdown", "flowchart", "elk", "mermaid"],
|
||||||
|
"scripts": {
|
||||||
|
"prepublishOnly": "pnpm -w run build"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/mermaid-js/mermaid"
|
||||||
|
},
|
||||||
|
"author": "Knut Sveidqvist",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"d3": "^7.9.0",
|
||||||
|
"dagre-d3-es": "7.0.10",
|
||||||
|
"elkjs": "^0.9.2",
|
||||||
|
"khroma": "^2.1.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"concurrently": "^8.2.2",
|
||||||
|
"mermaid": "workspace:^",
|
||||||
|
"rimraf": "^5.0.5"
|
||||||
|
},
|
||||||
|
"files": ["dist"]
|
||||||
|
}
|
75
packages/mermaid-flowchart-elk/src/detector.spec.ts
Normal file
75
packages/mermaid-flowchart-elk/src/detector.spec.ts
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
import plugin from './detector.js';
|
||||||
|
import { describe, it } from 'vitest';
|
||||||
|
|
||||||
|
const { detector } = plugin;
|
||||||
|
|
||||||
|
describe('flowchart-elk detector', () => {
|
||||||
|
it('should fail for dagre-d3', () => {
|
||||||
|
expect(
|
||||||
|
detector('flowchart', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'dagre-d3',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(false);
|
||||||
|
});
|
||||||
|
it('should fail for dagre-wrapper', () => {
|
||||||
|
expect(
|
||||||
|
detector('flowchart', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'dagre-wrapper',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(false);
|
||||||
|
});
|
||||||
|
it('should succeed for elk', () => {
|
||||||
|
expect(
|
||||||
|
detector('flowchart', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'elk',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(true);
|
||||||
|
expect(
|
||||||
|
detector('graph', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'elk',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
// The error from the issue was reproduced with mindmap, so this is just an example
|
||||||
|
// what matters is the keyword somewhere inside graph definition
|
||||||
|
it('should check only the beginning of the line in search of keywords', () => {
|
||||||
|
expect(
|
||||||
|
detector('mindmap ["Descendant node in flowchart"]', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'elk',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(false);
|
||||||
|
|
||||||
|
expect(
|
||||||
|
detector('mindmap ["Descendant node in graph"]', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'elk',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should detect flowchart-elk', () => {
|
||||||
|
expect(detector('flowchart-elk')).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not detect class with defaultRenderer set to elk', () => {
|
||||||
|
expect(
|
||||||
|
detector('class', {
|
||||||
|
flowchart: {
|
||||||
|
defaultRenderer: 'elk',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
32
packages/mermaid-flowchart-elk/src/detector.ts
Normal file
32
packages/mermaid-flowchart-elk/src/detector.ts
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
import type {
|
||||||
|
ExternalDiagramDefinition,
|
||||||
|
DiagramDetector,
|
||||||
|
DiagramLoader,
|
||||||
|
} from '../../mermaid/src/diagram-api/types.js';
|
||||||
|
|
||||||
|
const id = 'flowchart-elk';
|
||||||
|
|
||||||
|
const detector: DiagramDetector = (txt, config): boolean => {
|
||||||
|
if (
|
||||||
|
// If diagram explicitly states flowchart-elk
|
||||||
|
/^\s*flowchart-elk/.test(txt) ||
|
||||||
|
// If a flowchart/graph diagram has their default renderer set to elk
|
||||||
|
(/^\s*(flowchart|graph)/.test(txt) && config?.flowchart?.defaultRenderer === 'elk')
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const loader: DiagramLoader = async () => {
|
||||||
|
const { diagram } = await import('./diagram-definition.js');
|
||||||
|
return { id, diagram };
|
||||||
|
};
|
||||||
|
|
||||||
|
const plugin: ExternalDiagramDefinition = {
|
||||||
|
id,
|
||||||
|
detector,
|
||||||
|
loader,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default plugin;
|
12
packages/mermaid-flowchart-elk/src/diagram-definition.ts
Normal file
12
packages/mermaid-flowchart-elk/src/diagram-definition.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// @ts-ignore: JISON typing missing
|
||||||
|
import parser from '../../mermaid/src/diagrams/flowchart/parser/flow.jison';
|
||||||
|
import db from '../../mermaid/src/diagrams/flowchart/flowDb.js';
|
||||||
|
import styles from '../../mermaid/src/diagrams/flowchart/styles.js';
|
||||||
|
import renderer from './flowRenderer-elk.js';
|
||||||
|
|
||||||
|
export const diagram = {
|
||||||
|
db,
|
||||||
|
renderer,
|
||||||
|
parser,
|
||||||
|
styles,
|
||||||
|
};
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user