From dc642fb5bc90fb553aac4c432f966a389b77f77b Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Thu, 12 Sep 2024 15:23:11 +0530 Subject: [PATCH] Build docs --- docs/adding_new_shape/Readme.md | 222 ++ docs/community/contributing.md | 523 +++++ docs/community/img/er.png | Bin 0 -> 56576 bytes docs/community/intro.md | 60 + docs/community/new-diagram-jison.md | 224 ++ docs/community/new-diagram.md | 113 + docs/community/questions-and-suggestions.md | 25 + docs/community/security.md | 29 + docs/config/8.6.0_docs.md | 222 ++ docs/config/accessibility.md | 436 ++++ docs/config/configuration.md | 72 + docs/config/directives.md | 338 +++ docs/config/faq.md | 17 + .../img/accessibility-div-example-2.png | Bin 0 -> 122847 bytes docs/config/img/accessibility-div-example.png | Bin 0 -> 122202 bytes docs/config/img/assignWithDepth.png | Bin 0 -> 6595 bytes docs/config/img/mathMLDifferences.png | Bin 0 -> 15108 bytes .../img/object.assign without depth.png | Bin 0 -> 6067 bytes docs/config/img/wrapped text.png | Bin 0 -> 105313 bytes docs/config/math.md | 96 + docs/config/mermaidCLI.md | 9 + docs/config/setup/README.md | 13 + .../classes/mermaid.UnknownDiagramError.md | 171 ++ .../setup/interfaces/mermaid.DetailedError.md | 49 + .../mermaid.ExternalDiagramDefinition.md | 39 + .../setup/interfaces/mermaid.LayoutData.md | 43 + .../mermaid.LayoutLoaderDefinition.md | 39 + .../setup/interfaces/mermaid.Mermaid.md | 389 ++++ .../setup/interfaces/mermaid.MermaidConfig.md | 531 +++++ .../setup/interfaces/mermaid.ParseOptions.md | 22 + .../setup/interfaces/mermaid.ParseResult.md | 67 + .../setup/interfaces/mermaid.RenderOptions.md | 19 + .../setup/interfaces/mermaid.RenderResult.md | 66 + .../setup/interfaces/mermaid.RunOptions.md | 71 + docs/config/setup/modules/config.md | 276 +++ docs/config/setup/modules/defaultConfig.md | 33 + docs/config/setup/modules/mermaid.md | 90 + docs/config/theming.md | 316 +++ docs/config/usage.md | 397 ++++ .../img/python-mermaid-integration.png | Bin 0 -> 39043 bytes docs/ecosystem/integrations-community.md | 272 +++ docs/ecosystem/integrations-create.md | 31 + docs/ecosystem/mermaid-chart.md | 60 + docs/ecosystem/tutorials.md | 84 + docs/img/er.png | Bin 0 -> 56576 bytes docs/intro/getting-started.md | 326 +++ docs/intro/img/Code-Preview-Config.png | Bin 0 -> 148873 bytes docs/intro/img/Live-Editor-Choices.png | Bin 0 -> 53011 bytes docs/intro/img/book-banner-post-release.jpg | Bin 0 -> 75158 bytes docs/intro/index.md | 474 ++++ docs/intro/syntax-reference.md | 221 ++ docs/news/announcements.md | 51 + docs/news/blog.md | 235 ++ docs/public/.nojekyll | 0 docs/public/favicon.ico | Bin 0 -> 12392 bytes docs/public/favicon.png | Bin 0 -> 12392 bytes docs/public/favicon.svg | 6 + docs/public/header.png | Bin 0 -> 69565 bytes docs/public/manifest.json | 14 + docs/public/mermaid-logo.svg | 6 + docs/syntax/architecture.md | 275 +++ docs/syntax/block.md | 708 ++++++ docs/syntax/c4.md | 625 ++++++ docs/syntax/classDiagram.md | 970 +++++++++ docs/syntax/entityRelationshipDiagram.md | 316 +++ docs/syntax/examples.md | 301 +++ docs/syntax/flowchart.md | 1894 ++++++++++++++++ docs/syntax/gantt.md | 601 +++++ docs/syntax/gitgraph.md | 1938 +++++++++++++++++ .../syntax/img/Gantt-excluded-days-within.png | Bin 0 -> 79453 bytes docs/syntax/img/Gantt-long-weekend-look.png | Bin 0 -> 79092 bytes .../img/zenuml-participant-annotators.png | Bin 0 -> 261239 bytes docs/syntax/mindmap.md | 316 +++ docs/syntax/packet.md | 141 ++ docs/syntax/pie.md | 76 + docs/syntax/quadrantChart.md | 253 +++ docs/syntax/requirementDiagram.md | 253 +++ docs/syntax/sankey.md | 305 +++ docs/syntax/sequenceDiagram.md | 924 ++++++++ docs/syntax/stateDiagram.md | 672 ++++++ docs/syntax/timeline.md | 476 ++++ docs/syntax/userJourney.md | 40 + docs/syntax/xyChart.md | 194 ++ docs/syntax/zenuml.md | 474 ++++ 84 files changed, 18549 insertions(+) create mode 100644 docs/adding_new_shape/Readme.md create mode 100644 docs/community/contributing.md create mode 100644 docs/community/img/er.png create mode 100644 docs/community/intro.md create mode 100644 docs/community/new-diagram-jison.md create mode 100644 docs/community/new-diagram.md create mode 100644 docs/community/questions-and-suggestions.md create mode 100644 docs/community/security.md create mode 100644 docs/config/8.6.0_docs.md create mode 100644 docs/config/accessibility.md create mode 100644 docs/config/configuration.md create mode 100644 docs/config/directives.md create mode 100644 docs/config/faq.md create mode 100644 docs/config/img/accessibility-div-example-2.png create mode 100644 docs/config/img/accessibility-div-example.png create mode 100644 docs/config/img/assignWithDepth.png create mode 100644 docs/config/img/mathMLDifferences.png create mode 100644 docs/config/img/object.assign without depth.png create mode 100644 docs/config/img/wrapped text.png create mode 100644 docs/config/math.md create mode 100644 docs/config/mermaidCLI.md create mode 100644 docs/config/setup/README.md create mode 100644 docs/config/setup/classes/mermaid.UnknownDiagramError.md create mode 100644 docs/config/setup/interfaces/mermaid.DetailedError.md create mode 100644 docs/config/setup/interfaces/mermaid.ExternalDiagramDefinition.md create mode 100644 docs/config/setup/interfaces/mermaid.LayoutData.md create mode 100644 docs/config/setup/interfaces/mermaid.LayoutLoaderDefinition.md create mode 100644 docs/config/setup/interfaces/mermaid.Mermaid.md create mode 100644 docs/config/setup/interfaces/mermaid.MermaidConfig.md create mode 100644 docs/config/setup/interfaces/mermaid.ParseOptions.md create mode 100644 docs/config/setup/interfaces/mermaid.ParseResult.md create mode 100644 docs/config/setup/interfaces/mermaid.RenderOptions.md create mode 100644 docs/config/setup/interfaces/mermaid.RenderResult.md create mode 100644 docs/config/setup/interfaces/mermaid.RunOptions.md create mode 100644 docs/config/setup/modules/config.md create mode 100644 docs/config/setup/modules/defaultConfig.md create mode 100644 docs/config/setup/modules/mermaid.md create mode 100644 docs/config/theming.md create mode 100644 docs/config/usage.md create mode 100644 docs/ecosystem/img/python-mermaid-integration.png create mode 100644 docs/ecosystem/integrations-community.md create mode 100644 docs/ecosystem/integrations-create.md create mode 100644 docs/ecosystem/mermaid-chart.md create mode 100644 docs/ecosystem/tutorials.md create mode 100644 docs/img/er.png create mode 100644 docs/intro/getting-started.md create mode 100644 docs/intro/img/Code-Preview-Config.png create mode 100644 docs/intro/img/Live-Editor-Choices.png create mode 100644 docs/intro/img/book-banner-post-release.jpg create mode 100644 docs/intro/index.md create mode 100644 docs/intro/syntax-reference.md create mode 100644 docs/news/announcements.md create mode 100644 docs/news/blog.md create mode 100644 docs/public/.nojekyll create mode 100644 docs/public/favicon.ico create mode 100644 docs/public/favicon.png create mode 100644 docs/public/favicon.svg create mode 100644 docs/public/header.png create mode 100644 docs/public/manifest.json create mode 100644 docs/public/mermaid-logo.svg create mode 100644 docs/syntax/architecture.md create mode 100644 docs/syntax/block.md create mode 100644 docs/syntax/c4.md create mode 100644 docs/syntax/classDiagram.md create mode 100644 docs/syntax/entityRelationshipDiagram.md create mode 100644 docs/syntax/examples.md create mode 100644 docs/syntax/flowchart.md create mode 100644 docs/syntax/gantt.md create mode 100644 docs/syntax/gitgraph.md create mode 100644 docs/syntax/img/Gantt-excluded-days-within.png create mode 100644 docs/syntax/img/Gantt-long-weekend-look.png create mode 100644 docs/syntax/img/zenuml-participant-annotators.png create mode 100644 docs/syntax/mindmap.md create mode 100644 docs/syntax/packet.md create mode 100644 docs/syntax/pie.md create mode 100644 docs/syntax/quadrantChart.md create mode 100644 docs/syntax/requirementDiagram.md create mode 100644 docs/syntax/sankey.md create mode 100644 docs/syntax/sequenceDiagram.md create mode 100644 docs/syntax/stateDiagram.md create mode 100644 docs/syntax/timeline.md create mode 100644 docs/syntax/userJourney.md create mode 100644 docs/syntax/xyChart.md create mode 100644 docs/syntax/zenuml.md diff --git a/docs/adding_new_shape/Readme.md b/docs/adding_new_shape/Readme.md new file mode 100644 index 000000000..74e0f45ba --- /dev/null +++ b/docs/adding_new_shape/Readme.md @@ -0,0 +1,222 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/adding_new_shape/Readme.md](../../packages/mermaid/src/docs/adding_new_shape/Readme.md). + +# Custom SVG Shapes Library + +This library provides a collection of custom SVG shapes, utilities, and helpers for generating diagram components. The shapes are designed to be used within an SVG container and include a variety of common and complex shapes. + +## Overview + +## Shape Helpers and Utilities + +Before starting with shape creation, it's essential to familiarize yourself with the utilities provided in the `utils.ts` file from `packages/mermaid/src/rendering-util/rendering-elements/shapes/util.js`. These utilities are designed to assist with various aspects of SVG shape manipulation and ensure consistent and accurate rendering. + +## Available Utilities + +### 1. `labelHelper` + +- **Purpose**: This function creates and inserts labels inside SVG shapes. +- **Features**: + - Handles both HTML labels and plain text. + - Calculates the bounding box dimensions of the label. + - Ensures proper positioning of labels within shapes. + +### 2. `updateNodeBounds` + +- **Purpose**: Updates the bounding box dimensions (width and height) of a node. +- **Usage**: + - Adjusts the size of the node to fit the content or shape. + - Useful for ensuring that shapes resize appropriately based on their content. + +### 3. `insertPolygonShape` + +- **Purpose**: Inserts a polygon shape into an SVG container. +- **Features**: + - Handles the creation and insertion of complex polygonal shapes. + - Configures the shape's appearance and positioning within the SVG container. + +### 4. `getNodeClasses` + +- **Purpose**: Returns the appropriate CSS classes for a node based on its configuration. +- **Usage**: + - Dynamically applies CSS classes to nodes for styling purposes. + - Ensures that nodes adhere to the desired design and theme. + +### 5. `createPathFromPoints` + +- **Purpose**: Generates an SVG path string from an array of points. +- **Usage**: + - Converts a list of points into a smooth path. + - Useful for creating custom shapes or paths within the SVG. + +### 6. `generateFullSineWavePoints` + +- **Purpose**: Generates points for a sine wave, useful for creating wavy-edged shapes. +- **Usage**: + - Facilitates the creation of shapes with wavy or sine-wave edges. + - Can be used to add decorative or dynamic edges to shapes. + +## Getting Started + +To utilize these utilities, simply import them from the `utils.ts` file into your shape creation script. These helpers will streamline the process of building and customizing SVG shapes, ensuring consistent results across your projects. + +```typescript +import { + labelHelper, + updateNodeBounds, + insertPolygonShape, + getNodeClasses, + createPathFromPoints, + generateFullSineWavePoints, +} from './utils.ts'; +``` + +## Example Usage + +Here’s a basic example of how you might use some of these utilities: + +```typescript +import { labelHelper, insertPolygonShape } from './utils.ts'; + +const svgContainer = document.getElementById('svgContainer'); + +// Insert a polygon shape +insertPolygonShape(svgContainer /* shape-specific parameters */); + +// Create and insert a label inside the shape +labelHelper(svgContainer /* label-specific parameters */); +``` + +## Adding New Shapes + +### 1. Create the Shape Function + +To add a new shape: + +- **Create the shape function**: Create a new file of name of the shape and export a function in the `shapes` directory that generates your shape. The file and function should follow the pattern used in existing shapes and return an SVG element. + +- **Example**: + + ```typescript + import { Node } from '../../types.d.ts'; + + export const myNewShape = async (parent: SVGAElement, node: Node) => { + // Create your shape here + const shape = parent.insert('g').attr('class', 'my-new-shape'); + // Add other elements or styles as needed + return shape; + }; + ``` + +### 2. Register the Shape + +- **Register the shape**: Add your shape to the `shapes` object in the main shapes module. This allows your shape to be recognized and used within the system. + +- **Example**: + + ```typescript + import { myNewShape } from './shapes/myNewShape'; + + const shapes = { + ..., + myNewShape, + }; + ``` + +# Shape Intersection Algorithms + +This contains algorithms and utilities for calculating intersection points for various shapes in SVG. Arrow intersection points are crucial for accurately determining where arrows connect with shapes. Ensuring precise intersection points enhances the clarity and accuracy of flowcharts and diagrams. + +## Shape Intersection Functions + +### 1. `Ellipse` + +Calculates the intersection points for an ellipse. + +**Usage**: + +```javascript +import intersectEllipse from './intersect-ellipse.js'; + +const intersection = intersectEllipse(node, rx, ry, point); +``` + +- **Parameters**: + - `node`: The SVG node element. + - `rx`: The x-radius of the ellipse. + - `ry`: The y-radius of the ellipse. + - `point`: The point from which the intersection is calculated. + +### 2. `intersectRect` + +Calculates the intersection points for a rectangle. + +**Usage**: + +```javascript +import intersectRect from './intersect-rect.js'; + +const intersection = intersectRect(node, point); +``` + +- **Parameters**: + - `node`: The SVG node element. + - `point`: The point from which the intersection is calculated. + +### 3. `intersectPolygon` + +Calculates the intersection points for a polygon. + +**Usage**: + +```javascript +import intersectPolygon from './intersect-polygon.js'; + +const intersection = intersectPolygon(node, polyPoints, point); +``` + +- **Parameters**: + - `node`: The SVG node element. + - `polyPoints`: Array of points defining the polygon. + - `point`: The point from which the intersection is calculated. + +## Cypress Tests + +To ensure the robustness of the flowchart shapes, there are implementation of comprehensive Cypress test cases in `newShapes.spec.ts` file. These tests cover various aspects such as: + +- **Shapes**: Testing new shapes like `bowTieRect`, `waveRectangle`, `trapezoidalPentagon`, etc. +- **Looks**: Verifying shapes under different visual styles (`classic` and `handDrawn`). +- **Directions**: Ensuring correct rendering in all flow directions of arrows : + - `TB` `(Top -> Bottom)` + - `BT` `(Bottom -> Top)` + - `LR` `(Left -> Right)` + - `RL` `(Right -> Left)` +- **Labels**: Testing shapes with different labels, including: + - No labels + - Short labels + - Very long labels + - Markdown with `htmlLabels:true` and `htmlLabels:false` +- **Styles**: Applying custom styles to shapes and verifying correct rendering. +- **Class Definitions**: Using `classDef` to apply custom classes and testing their impact. + +### Running the Tests + +To run the Cypress tests, follow these steps: + +1. Ensure you have all dependencies installed by running: + + ```bash + npm install + ``` + +2. Start the Cypress test runner: + + ```bash + cypress open --env updateSnapshots=true + + ``` + +3. Select the test suite from the Cypress interface to run all the flowchart shape tests. diff --git a/docs/community/contributing.md b/docs/community/contributing.md new file mode 100644 index 000000000..792c90a98 --- /dev/null +++ b/docs/community/contributing.md @@ -0,0 +1,523 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/contributing.md](../../packages/mermaid/src/docs/community/contributing.md). + +# Mermaid Contributing Guide + +You decided to take part in the development? Welcome! + +We are trying to make our guidelines for you as explicit and detailed as possible. + +## Initial Setup + +Initial setup consists of 3 main steps: + +```mermaid +flowchart LR + source --> requirements --> setup + + source[Get the Source Code] + requirements[Install the Requirements] + setup[Install Packages] +``` + +### Get the Source Code + +In GitHub, you first [**fork a mermaid repository**](https://github.com/mermaid-js/mermaid/fork) when you are going to make changes and submit pull requests. + +Then you **clone** a copy to your local development machine (e.g. where you code) to make a copy with all the files to work with. + +> **💡 Tip** > [Here is a GitHub document that gives an overview of the process](https://docs.github.com/en/get-started/quickstart/fork-a-repo). + +```bash +git clone git@github.com/your-fork/mermaid +``` + +Once you have cloned the repository onto your development machine, change into the `mermaid` project folder (the top level directory of the mermaid project repository) + +```bash +cd mermaid +``` + +### Install Requirements + +We support **development within Docker** environment along with **host setup**. You may choose it up to your preferences. + +**Host** + +These are the tools we use for working with the code and documentation: + +- [Node.js](https://nodejs.org/en/). +- [pnpm](https://pnpm.io/) package manager. + +The following commands must be sufficient enough to start with: + +```bash +curl -fsSL https://get.pnpm.io/install.sh | sh - +pnpm env use --global 20 +``` + +You may also need to reload `.shrc` or `.bashrc` afterwards. + +**Docker** + +[Install Docker](https://docs.docker.com/engine/install/). And that is pretty much all you need. + +Optionally, to run GUI (Cypress) within Docker you will also need an X11 server installed. +You might already have it installed, so check this by running: + +```bash +echo $DISPLAY +``` + +If the `$DISPLAY` variable is not empty, then an X11 server is running. Otherwise you may need to install one. + +### Install Packages + +**Host** + +Install packages: + +```bash +pnpm install +``` + +**Docker** + +For development using Docker there is a self-documented `run` bash script, which provides convenient aliases for `docker compose` commands. + +Make sure that `./run` script is executable: + +```bash +chmod +x run +``` + +> **💡 Tip** +> To get detailed help simply type `./run` or `./run help`. +> +> It also has short _Development quick start guide_ embedded. + +Then install packages: + +```bash +./run pnpm install +``` + +### Verify Everything Works + +This step is optional, but it helps to make sure that everything in development branch was OK before you started making any changes. + +You can run the `test` script to verify that pnpm is working _and_ that the repository has been cloned correctly: + +**Host** + +```bash +pnpm test +``` + +**Docker** + +```bash +./run pnpm test +``` + +The `test` script and others are in the top-level `package.json` file. + +All tests should run successfully without any errors or failures. + +> **Note** +> You might see _lint_ or _formatting_ warnings. Those are ok during this step. + +## Workflow + +Contributing process is very simple and straightforward: + +```mermaid + flowchart LR + + branch --> changes --> submit + branch[Checkout a New Branch] + changes[Make Changes] + submit[Submit a PR] +``` + +Mermaid uses a [Git Flow](https://guides.github.com/introduction/flow/)–inspired approach to branching. + +Development is done in the `develop` branch. + +```mermaid +--- +config: + gitGraph: + mainBranchName: develop +--- +gitGraph LR: + commit + commit + branch "docs/2910_update-guidelines" order: 1 + commit + commit + commit + checkout develop + merge "docs/2910_update-guidelines" + commit +``` + +To prepare a new version for release the maintainers create a `release/vX.X.X` branch from `develop` for testing. Once the release happens we add a tag to the `release` branch and merge it with `master`. The live product and on-line documentation are what is in the `master` branch. + +## Checkout a New Branch + +> **💡 Tip** +> All new work should be based on the `develop` branch. + +Make sure you have the most up-to-date version of the `develop` branch. + +Check out the `develop` branch, then `fetch` or `pull` to update it: + +```bash +git checkout develop +git fetch # or `git pull` +``` + +Create a new branch for your work: + +```bash +git checkout -b docs/2910_update-contributing-guidelines +``` + +We use the following naming convention for branches: + +```txt +[feature | bug | chore | docs]/[issue number]_[short-description] +``` + +You can always check current [configuration of labelling and branch prefixes](https://github.com/mermaid-js/mermaid/blob/develop/.github/pr-labeler.yml) + +- The first part is the **type** of change: a `feature`, `bug`, `chore`, `docs` +- followed by a **slash** (`/`),which helps to group like types together in many git tools +- followed by the **issue number**, e.g. `2910` +- followed by an **underscore** (`_`) +- followed by a **short description** with dashes (`-`) or underscores (`_`) instead of spaces + +```mermaid +flowchart LR + feature --> slash + bug --> slash + chore --> slash + docs --> slash + slash --> 2945 --> underscore + slash --> 1123 --> underscore + underscore --> short_description_1 + underscore --> short_description_2 + + underscore["_"] + slash["/"] + + short_description_1["state-diagram-new-arrow-florbs"] + short_description_2["fix_random_ugly_red_text"] +``` + +If your work is specific to a single diagram type, it is a good idea to put the diagram type at the start of the description. This will help us keep release notes organized by a diagram type. + +> **Note** +> A new feature described in issue 2945 that adds a new arrow type called 'florbs' to state diagrams +> +> `feature/2945_state-diagram-new-arrow-florbs` + +> **💡 Tip** +> A bug described in issue 1123 that causes random ugly red text in multiple diagram types +> +> `bug/1123_fix_random_ugly_red_text` + +## Contributing Code + +Code is the heart of every software project. We strive to make it better. Who if not us? + +### Where is the Code Located? + +The core of Mermaid is located under `packages/mermaid/src`. + +### Running Mermaid Locally + +**Host** + +```bash +pnpm run dev +``` + +**Docker** + +```bash +./run dev +``` + +After starting the dev server open in your browser. + +Now you are ready to make your changes! + +### Make Changes + +Have a look at . There is a list of demos that can be used to see and test your changes. + +If you need a specific diagram, you can duplicate the `example.html` file in `/demos/dev` and add your own mermaid code to your copy. + +That will be served at . +After making code changes, the dev server will rebuild the mermaid library and automatically reload the page. + +Edit files in `packages/mermaid/src` as required. + +### Write Tests + +Tests ensure that each function, module, or part of code does what it says it will do. This is critically important when other changes are made to ensure that existing code is not broken (no regression). + +Just as important, the tests act as _specifications:_ they specify what the code does (or should do). +Whenever someone is new to a section of code, they should be able to read the tests to get a thorough understanding of what it does and why. + +If you are fixing a bug, you should add tests to ensure that your code has actually fixed the bug, to specify/describe what the code is doing, and to ensure the bug doesn't happen again. +(If there had been a test for the situation, the bug never would have happened in the first place.) +You may need to change existing tests if they were inaccurate. + +If you are adding a feature, you will definitely need to add tests. Depending on the size of your feature, you may need to add integration tests. + +#### Unit Tests + +Unit tests are tests that test a single function or module. They are the easiest to write and the fastest to run. + +Unit tests are mandatory for all code except the renderers. (The renderers are tested with integration tests.) + +We use [Vitest](https://vitest.dev) to run unit tests. + +**Host** + +You can use the following command to run the unit tests: + +```sh +pnpm test +``` + +When writing new tests, it's easier to have the tests automatically run as you make changes. You can do this by running the following command: + +```sh +pnpm test:watch +``` + +**Docker** + +When using Docker prepend your command with `./run`: + +```sh +./run pnpm test +``` + +#### Integration / End-to-End (E2E) Tests + +These test the rendering and visual appearance of the diagrams. + +This ensures that the rendering of that feature in the E2E will be reviewed in the release process going forward. Less chance that it breaks! + +To start working with the E2E tests: + +**Host** + +- Run `pnpm dev` to start the dev server +- Start **Cypress** by running `pnpm cypress:open` + +**Docker** + +- Enable local connections for x11 server `xhost +local:` +- Run `./run pnpm dev` to start the dev server +- Start **Cypress** by running `./run pnpm cypress:open --project .` + +The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress. + +When running in CI it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag it for review if it differs. + +This is what a rendering test looks like: + +```js +it('should render forks and joins', () => { + imgSnapshotTest( + ` + stateDiagram + state fork_state <<fork>> + [*] --> fork_state + fork_state --> State2 + fork_state --> State3 + + state join_state <<join>> + State2 --> join_state + State3 --> join_state + join_state --> State4 + State4 --> [*] + `, + { logLevel: 0 } + ); +}); +``` + + + + + +### Update Documentation + +> **💡 Tip** +> Our documentation is managed in `packages/mermaid/src/docs`. Details on how to edit is in the [documentation section](#contributing-documentation) + +If the users have no way to know that things have changed, then you haven't really _fixed_ anything for the users; you've just added to making Mermaid feel broken. +Likewise, if users don't know that there is a new feature that you've implemented, it will forever remain unknown and unused. + +The documentation has to be updated for users to know that things have been changed and added! +If you are adding a new feature, add `(v+)` in the title or description. It will be replaced automatically with the current version number when the release happens. + +eg: `# Feature Name (v+)` + +We know it can sometimes be hard to code _and_ write user documentation. + +Create another issue specifically for the documentation. +You will need to help with the PR, but definitely ask for help if you feel stuck. +When it feels hard to write stuff out, explaining it to someone and having that person ask you clarifying questions can often be 80% of the work! + +When in doubt, write up and submit what you can. It can be clarified and refined later. (With documentation, something is better than nothing!) + +## Contributing Documentation + +If it is not in the documentation, it's like it never happened. Wouldn't that be sad? With all the effort that was put into the feature? + +### Where is the Documentation Located? + +> **Warning** +> DO NOT CHANGE FILES IN `/docs` +> +> The `docs` folder will be automatically generated when committing to `packages/mermaid/src/docs` and **should not** be edited manually. + +Documentation is located in the [`packages/mermaid/src/docs`](https://github.com/mermaid-js/mermaid/tree/develop/packages/mermaid/src/docs) folder. Just pick the right section and start typing. + +The contents of [mermaid.js.org](https://mermaid.js.org/) are based on the docs from the `master` branch. Updates committed to the `master` branch are reflected in the [Mermaid Docs](https://mermaid.js.org/) once published. + +```mermaid-example +flowchart LR + classDef default fill:#fff,color:black,stroke:black + + source["Edit /packages/mermaid/src/docs"] -- automatic processing--> published["View /docs which will be published on Official Website"] +``` + +```mermaid +flowchart LR + classDef default fill:#fff,color:black,stroke:black + + source["Edit /packages/mermaid/src/docs"] -- automatic processing--> published["View /docs which will be published on Official Website"] +``` + +### Running the Documentation Website Locally + +**[The mermaid documentation site](https://mermaid.js.org/) is powered by [Vitepress](https://vitepress.vuejs.org/).** + +Start development server for the documentation site + +**Host** + +```bash +pnpm --filter mermaid run docs:dev +``` + +or + +```bash +cd packages/mermaid +pnpm docs:dev +``` + +**Docker** + +```bash +./run docs:dev +``` + +Open in your browser. + +### Formatting + +The documentation is written in Markdown. To get acquainted with its syntax [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax). + +You can use `note`, `tip`, `warning` and `danger` in triple backticks to add a note, tip, warning or danger box. + +> **‼️ Danger** +> Do not use vitepress specific markdown syntax `::: warning` as it will not be processed correctly. + +Here are a few examples: + +````markdown +```note +This is a note +``` + +```tip +This is a tip +``` + +```warning +This is a warning +``` + +```danger +This is a danger alert +``` +```` + +> **Note** +> This is a note + +> **💡 Tip** +> This is a tip + +> **Warning** +> This is a warning + +> **‼️ Danger** +> This is a danger alert + +### Navigation + +If you want to propose changes to how the documentation is _organized_, such as adding a new section or re-arranging or renaming a section, you must update the **sidebar navigation**, which is defined in [the vitepress config](../.vitepress/config.ts). The same goes to **topbar**. + +### Build Docs + +The content of `/docs` folder is built with Github Actions. + +> **Warning** +> So as to allow automatic compilation of documentation pages you have to enable Github Actions on your fork first + +## Submit your pull request + +> **Note** +> Do not forget to push your changes +> +> ```bash +> git push -u origin docs/2910_update-guidelines +> ``` + +We make all changes via Pull Requests (PRs). Open a new one. + +Right now we are not following any strict rules about naming PRs. Give it a representative title and short description. There is also a [pull request template](https://github.com/mermaid-js/mermaid/blob/develop/.github/pull_request_template.md) which will help you with it. + +In case in its description contains a [magic comment](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) your PR will be automatically attached to the issue: + +```markdown +Resolves # +``` + +## Congratulations + +You have successfully submitted your improvements! What is next? + +- PRs will be reviewed by active maintainers, who will provide feedback and request changes as needed. +- The maintainers will request a review from _knsv_, if necessary. +- Once the PR is approved, the maintainers will merge the PR into the `develop` branch. +- When a release is ready, the `release/x.x.x` branch will be created, extensively tested and knsv will be in charge of the release process. + +Thanks for you help! + + diff --git a/docs/community/img/er.png b/docs/community/img/er.png new file mode 100644 index 0000000000000000000000000000000000000000..21c44c257a3e0ee3e782dd5b6696602f6d9f5172 GIT binary patch literal 56576 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 **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/intro.md](../../packages/mermaid/src/docs/community/intro.md). + +# Getting Started + +So you want to help? That's great! + +![Image of happy people jumping with excitement](https://media.giphy.com/media/BlVnrxJgTGsUw/giphy.gif) + +Here are a few things to get you started on the right path. + +## How can I help? + +```mermaid +mindmap + root)Contributing( + Development + Solving issues + Adding new diagrams + Handling pull requests + Updating tooling + Testing + Verification of fixed issues + Regression testing in connection with releases + Testing pull requests + Management + Coordinating the work + Classification and monitoring of incoming issues +``` + +## Join the Development + +> **💡 Tip** > **Check out our** [**detailed contribution guide**](./contributing.md). + +Where to start: + +- You could start getting some knowledge of the code base by working on [these "good first issues"](https://github.com/mermaid-js/mermaid/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22+). +- You could jump right in and help us fix any of [these bugs](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Type%3A+Bug+%2F+Error%22++label%3A%22Contributor+needed%22+)! +- You could help write and [improve the documentation](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Documentation%22). +- You could work on a new feature! [These](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Area%3A+Development%22+label%3A%22Type%3A+Enhancement%22+label%3A%22Status%3A+Approved%22+) are some ideas! +- You could confirm the bugs in [these issues](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Status%3A+Triage%22++label%3A%22Type%3A+Bug+%2F+Error%22). + +[You can join our Discord server if you want closer contact!](https://discord.gg/AgrbSrBer3) + +## A Question Or a Suggestion? + +> **💡 Tip** > **Have a look at** [**how to open an issue**](./questions-and-suggestions.md). + +If you have faced a vulnerability [report it to us](./security.md). + +## Last Words + +Don't get daunted if it is hard in the beginning. We have a great community with only encouraging words. So, if you get stuck, ask for help and hints in the Slack forum. If you want to show off something good, show it off there. + +[You can join our Discord server if you want closer contact!](https://discord.gg/AgrbSrBer3) + +![Image of superhero wishing you good luck](https://media.giphy.com/media/l49JHz7kJvl6MCj3G/giphy.gif) diff --git a/docs/community/new-diagram-jison.md b/docs/community/new-diagram-jison.md new file mode 100644 index 000000000..e1ad0f7c2 --- /dev/null +++ b/docs/community/new-diagram-jison.md @@ -0,0 +1,224 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/new-diagram-jison.md](../../packages/mermaid/src/docs/community/new-diagram-jison.md). + +# Adding a New Diagram/Chart (Deprecated) 📊 + +> **Warning** +> JISON grammars are deprecated in mermaid. Please use Langium instead. See [New Diagram](./new-diagram.md) for more information. +> +> **New diagrams with JISON grammars will not be accepted.** + +### Step 1: Grammar & Parsing + +#### Grammar + +This would be to define a JISON grammar for the new diagram type. That should start with a way to identify that the text in the mermaid tag is a diagram of that type. Create a new folder under diagrams for your new diagram type and a parser folder in it. This leads us to step 2. + +For instance: + +- the flowchart starts with the keyword _graph_ +- the sequence diagram starts with the keyword _sequenceDiagram_ + +#### Store data found during parsing + +There are some jison specific sub steps here where the parser stores the data encountered when parsing the diagram, this data is later used by the renderer. You can during the parsing call an object provided to the parser by the user of the parser. This object can be called during parsing for storing data. + +```jison +statement + : 'participant' actor { $$='actor'; } + | signal { $$='signal'; } + | note_statement { $$='note'; } + | 'title' message { yy.setTitle($2); } + ; +``` + +In the extract of the grammar above, it is defined that a call to the setTitle method in the data object will be done when parsing and the title keyword is encountered. + +> **Note** +> Make sure that the `parseError` function for the parser is defined and calling `mermaid.parseError`. This way a common way of detecting parse errors is provided for the end-user. + +For more info look at the example diagram type: + +The `yy` object has the following function: + +```javascript +exports.parseError = function (err, hash) { + mermaid.parseError(err, hash); +}; +``` + +when parsing the `yy` object is initialized as per below: + +```javascript +const parser = exampleParser.parser; +parser.yy = db; +``` + +### Step 2: Rendering + +Write a renderer that given the data found during parsing renders the diagram. To look at an example look at sequenceRenderer.js rather than the flowchart renderer as this is a more generic example. + +Place the renderer in the diagram folder. + +### Step 3: Detection of the new diagram type + +The second thing to do is to add the capability to detect the new diagram to type to the detectType in `diagram-api/detectType.ts`. The detection should return a key for the new diagram type. +[This key will be used to as the aria roledescription](#aria-roledescription), so it should be a word that clearly describes the diagram type. +For example, if your new diagram uses a UML deployment diagram, a good key would be "UMLDeploymentDiagram" because assistive technologies such as a screen reader +would voice that as "U-M-L Deployment diagram." Another good key would be "deploymentDiagram" because that would be voiced as "Deployment Diagram." A bad key would be "deployment" because that would not sufficiently describe the diagram. + +Note that the diagram type key does not have to be the same as the diagram keyword chosen for the [grammar](#grammar), but it is helpful if they are the same. + +### Step 4: The final piece - triggering the rendering + +At this point when mermaid is trying to render the diagram, it will detect it as being of the new type but there will be no match when trying to render the diagram. To fix this add a new case in the switch statement in main.js:init this should match the diagram type returned from step #2. The code in this new case statement should call the renderer for the diagram type with the data found by the parser as an argument. + +## Usage of the parser as a separate module + +### Setup + +```javascript +const graph = require('./graphDb'); +const flow = require('./parser/flow'); +flow.parser.yy = graph; +``` + +### Parsing + +```javascript +flow.parser.parse(text); +``` + +### Data extraction + +```javascript +graph.getDirection(); +graph.getVertices(); +graph.getEdges(); +``` + +The parser is also exposed in the mermaid api by calling: + +```javascript +const parser = mermaid.getParser(); +``` + +Note that the parse needs a graph object to store the data as per: + +```javascript +flow.parser.yy = graph; +``` + +Look at `graphDb.js` for more details on that object. + +## Layout + +If you are using a dagre based layout, please use flowchart-v2 as a template and by doing that you will be using dagre-wrapper instead of dagreD3 which we are migrating away from. + +### Common parts of a diagram + +There are a few features that are common between the different types of diagrams. We try to standardize the diagrams that work as similar as possible for the end user. The commonalities are: + +- Directives, a way of modifying the diagram configuration from within the diagram code. +- Accessibility, a way for an author to provide additional information like titles and descriptions to people accessing a text with diagrams using a screen reader. +- Themes, there is a common way to modify the styling of diagrams in Mermaid. +- Comments should follow mermaid standards + +Here are some pointers on how to handle these different areas. + +## Accessibility + +Mermaid automatically adds the following accessibility information for the diagram SVG HTML element: + +- aria-roledescription +- accessible title +- accessible description + +### aria-roledescription + +The aria-roledescription is automatically set to [the diagram type](#step-3--detection-of-the-new-diagram-type) and inserted into the SVG element. + +See [the definition of aria-roledescription](https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription) in [the Accessible Rich Internet Applications W3 standard.](https://www.w3.org/WAI/standards-guidelines/aria/) + +### accessible title and description + +The syntax for accessible titles and descriptions is described in [the Accessibility documentation section.](../config/accessibility.md) + +As a design goal, the jison syntax should be similar between the diagrams. + +```jison + +* lexical grammar */ +%lex +%x acc_title +%x acc_descr +%x acc_descr_multiline + +%% +accTitle\s*":"\s* { this.begin("acc_title");return 'acc_title'; } +(?!\n|;|#)*[^\n]* { this.popState(); return "acc_title_value"; } +accDescr\s*":"\s* { this.begin("acc_descr");return 'acc_descr'; } +(?!\n|;|#)*[^\n]* { this.popState(); return "acc_descr_value"; } +accDescr\s*"{"\s* { this.begin("acc_descr_multiline");} +[\}] { this.popState(); } +[^\}]* return "acc_descr_multiline_value"; + +statement + : acc_title acc_title_value { $$=$2.trim();yy.setTitle($$); } + | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); } + | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } + +``` + +The functions for setting title and description are provided by a common module. This is the import from flowDb.js: + +``` +import { + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + clear as commonClear, +} from '../../commonDb'; +``` + +The accessibility title and description are inserted into the SVG element in the `render` function in mermaidAPI. + +## Theming + +Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](../config/theming.md). + +When adding themes to a diagram it comes down to a few important locations in the code. + +The entry point for the styling engine is in **src/styles.js**. The getStyles function will be called by Mermaid when the styles are being applied to the diagram. + +This function will in turn call a function _your diagram should provide_ returning the css for the new diagram. The diagram specific, also which is commonly also called getStyles and located in the folder for your diagram under src/diagrams and should be named styles.js. The getStyles function will be called with the theme options as an argument like in the following example: + +```js +const getStyles = (options) => + ` + .line { + stroke-width: 1; + stroke: ${options.lineColor}; + stroke-dasharray: 2; + } + // ... + `; +``` + +Note that you need to provide your function to the main getStyles by adding it into the themes object in **src/styles.js** like in the xyzDiagram in the provided example: + +```js +const themes = { + flowchart, + 'flowchart-v2': flowchart, + sequence, + xyzDiagram, + //... +}; +``` + +The actual options and values for the colors are defined in **src/theme/theme-\[xyz].js**. If you provide the options your diagram needs in the existing theme files then the theming will work smoothly without hiccups. diff --git a/docs/community/new-diagram.md b/docs/community/new-diagram.md new file mode 100644 index 000000000..c214afa64 --- /dev/null +++ b/docs/community/new-diagram.md @@ -0,0 +1,113 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/new-diagram.md](../../packages/mermaid/src/docs/community/new-diagram.md). + +# Adding a New Diagram/Chart 📊 + +### Examples + +Please refer to the following PRs on how to use Langium to add a new diagram grammar. + +- +- + +> **Warning** +> The below steps are a work in progress and will be updated soon. + +### Step 1: Grammar & Parsing + +### Step 2: Rendering + +Write a renderer that given the data found during parsing renders the diagram. To look at an example look at sequenceRenderer.js rather than the flowchart renderer as this is a more generic example. + +Place the renderer in the diagram folder. + +### Step 3: Detection of the new diagram type + +The second thing to do is to add the capability to detect the new diagram to type to the detectType in `diagram-api/detectType.ts`. The detection should return a key for the new diagram type. +[This key will be used to as the aria roledescription](#aria-roledescription), so it should be a word that clearly describes the diagram type. +For example, if your new diagram uses a UML deployment diagram, a good key would be "UMLDeploymentDiagram" because assistive technologies such as a screen reader +would voice that as "U-M-L Deployment diagram." Another good key would be "deploymentDiagram" because that would be voiced as "Deployment Diagram." A bad key would be "deployment" because that would not sufficiently describe the diagram. + +Note that the diagram type key does not have to be the same as the diagram keyword chosen for the [grammar](#grammar), but it is helpful if they are the same. + +### Common parts of a diagram + +There are a few features that are common between the different types of diagrams. We try to standardize the diagrams that work as similar as possible for the end user. The commonalities are: + +- Directives, a way of modifying the diagram configuration from within the diagram code. +- Accessibility, a way for an author to provide additional information like titles and descriptions to people accessing a text with diagrams using a screen reader. +- Themes, there is a common way to modify the styling of diagrams in Mermaid. +- Comments should follow mermaid standards + +Here are some pointers on how to handle these different areas. + +## Accessibility + +Mermaid automatically adds the following accessibility information for the diagram SVG HTML element: + +- aria-roledescription +- accessible title +- accessible description + +### aria-roledescription + +The aria-roledescription is automatically set to [the diagram type](#step-3--detection-of-the-new-diagram-type) and inserted into the SVG element. + +See [the definition of aria-roledescription](https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription) in [the Accessible Rich Internet Applications W3 standard.](https://www.w3.org/WAI/standards-guidelines/aria/) + +### accessible title and description + +The syntax for accessible titles and descriptions is described in [the Accessibility documentation section.](../config/accessibility.md) + +The functions for setting title and description are provided by a common module. This is the import in flowDb.js: + +``` +import { + setAccTitle, + getAccTitle, + getAccDescription, + setAccDescription, + clear as commonClear, +} from '../../commonDb'; +``` + +The accessibility title and description are inserted into the SVG element in the `render` function in mermaidAPI. + +## Theming + +Mermaid supports themes and has an integrated theming engine. You can read more about how the themes can be used [in the docs](../config/theming.md). + +When adding themes to a diagram it comes down to a few important locations in the code. + +The entry point for the styling engine is in **src/styles.js**. The getStyles function will be called by Mermaid when the styles are being applied to the diagram. + +This function will in turn call a function _your diagram should provide_ returning the css for the new diagram. The diagram specific, also which is commonly also called getStyles and located in the folder for your diagram under src/diagrams and should be named styles.js. The getStyles function will be called with the theme options as an argument like in the following example: + +```js +const getStyles = (options) => + ` + .line { + stroke-width: 1; + stroke: ${options.lineColor}; + stroke-dasharray: 2; + } + // ... + `; +``` + +Note that you need to provide your function to the main getStyles by adding it into the themes object in **src/styles.js** like in the xyzDiagram in the provided example: + +```js +const themes = { + flowchart, + 'flowchart-v2': flowchart, + sequence, + xyzDiagram, + //... +}; +``` + +The actual options and values for the colors are defined in **src/theme/theme-\[xyz].js**. If you provide the options your diagram needs in the existing theme files then the theming will work smoothly without hiccups. diff --git a/docs/community/questions-and-suggestions.md b/docs/community/questions-and-suggestions.md new file mode 100644 index 000000000..8dbfae008 --- /dev/null +++ b/docs/community/questions-and-suggestions.md @@ -0,0 +1,25 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/questions-and-suggestions.md](../../packages/mermaid/src/docs/community/questions-and-suggestions.md). + +# Questions or Suggestions? + +## Search for Existing Issue + +First search to see if someone has already asked (and hopefully been answered) or suggested the same thing. + +- [Search in Discussions](https://github.com/orgs/mermaid-js/discussions) +- [Search in Issues (Open & Closed)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue) + +If you find an open issue or discussion thread that is similar to your question but isn't answered, you can let us know that you are also interested in it. +Use the GitHub reactions to add a thumbs-up to the issue or discussion thread, or append to the issue if needed. + +This helps the team know the relative interest in something and helps them set priorities and assignments. + +## Add a new Issue + +You have not found anything that already addresses your request, or maybe you have come up with the new idea? Feel free to open a new issue or discussion. + +Log in to [GitHub.com](https://www.github.com), and use [GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues). Press \[] issue, select the appropriate template and describe your problem. diff --git a/docs/community/security.md b/docs/community/security.md new file mode 100644 index 000000000..e456adcd7 --- /dev/null +++ b/docs/community/security.md @@ -0,0 +1,29 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/community/security.md](../../packages/mermaid/src/docs/community/security.md). + +# Security + +The Mermaid team takes the security of Mermaid and the applications that use Mermaid seriously. This page describes how to report any vulnerabilities you may find, and lists best practices to minimize the risk of introducing a vulnerability. + +## Reporting vulnerabilities + +To report a vulnerability, please e-mail with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue. + +We aim to reply within three working days, probably much sooner. + +You should expect a close collaboration as we work to resolve the issue you have reported. Please reach out to again if you do not receive prompt attention and regular updates. + +You may also reach out to the team via our public Discord chat channels; however, please make sure to e-mail when reporting an issue, and avoid revealing information about vulnerabilities in public as that could that could put users at risk. + +## Best practices + +Keep current with the latest Mermaid releases. We regularly update Mermaid, and these updates may fix security defects discovered in previous versions. Check the Mermaid release notes for security-related updates. + +Keep your application’s dependencies up to date. Make sure you upgrade your package dependencies to keep the dependencies up to date. Avoid pinning to specific versions for your dependencies and, if you do, make sure you check periodically to see if your dependencies have had security updates, and update the pin accordingly. + +## Configuring DomPurify + +By default Mermaid uses a baseline [DOMPurify](https://github.com/cure53/DOMPurify) config. It is possible to override the options passed to DOMPurify by adding a `dompurifyConfig` key to the Mermaid options. This could potentially break the output of Mermaid so use this with caution. diff --git a/docs/config/8.6.0_docs.md b/docs/config/8.6.0_docs.md new file mode 100644 index 000000000..0b1d64112 --- /dev/null +++ b/docs/config/8.6.0_docs.md @@ -0,0 +1,222 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/8.6.0_docs.md](../../packages/mermaid/src/docs/config/8.6.0_docs.md). + +# Version 8.6.0 Changes + +## [New Mermaid Live-Editor Beta](https://mermaid-js.github.io/docs/mermaid-live-editor-beta/#/edit/eyJjb2RlIjoiJSV7aW5pdDoge1widGhlbWVcIjogXCJmb3Jlc3RcIiwgXCJsb2dMZXZlbFwiOiAxIH19JSVcbmdyYXBoIFREXG4gIEFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgQyAtLT58T25lfCBEW0xhcHRvcF1cbiAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cblx0XHQiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGFyayJ9fQ) + +## [CDN](https://www.jsdelivr.com/package/npm/mermaid) + +With version 8.6.0 comes the release of directives for mermaid, a new system for modifying configurations, with the aim of establishing centralized, sane defaults and simple implementation. + +`directives` allow for a single-use overwriting of `config`, as it has been discussed in [Configurations](../config/configuration.md). +This allows site Diagram Authors to instantiate temporary modifications to `config` through the use of [Directives](directives.md), which are parsed before rendering diagram definitions. This allows the Diagram Authors to alter the appearance of the diagrams. + +**A likely application for this is in the creation of diagrams/charts inside company/organizational webpages, that rely on mermaid for diagram and chart rendering.** + +the `init` directive is the main method of configuration for Site and Current Levels. + +The three levels of are Configuration, Global, Site and Current. + +| Level of Configuration | Description | +| ---------------------- | ----------------------------------- | +| Global Configuration | Default Mermaid Configurations | +| Site Configuration | Configurations made by site owner | +| Current Configuration | Configurations made by Implementors | + +# Limits to Modifying Configurations + +**secure Array** + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------------------------------ | ----- | -------- | -------------- | +| secure | Array of parameters excluded from init directive | Array | Required | Any parameters | + +The modifiable parts of the Configuration are limited by the secure array, which is an array of immutable parameters, this array can be expanded by site owners. + +**Notes**: secure arrays work like nesting dolls, with the Global Configurations’ secure array holding the default and immutable list of immutable parameters, or the smallest doll, to which site owners may add to, but implementors may not modify it. + +# Secure Arrays + +Site owners can add to the **secure** array using this command: +mermaidAPI.initialize( { startOnLoad: true, secure: \['parameter1', 'parameter2'] } ); + +Default values for the `secure array` consists of: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']. These default values are immutable. + +Implementors can only modify configurations using directives, and cannot change the `secure` array. + +# Modifying Configurations and directives: + +The Two types of directives: are `init` (or `initialize`) and `wrap`. + +> **Note** +> All directives are enclosed in `%%{ }%%` + +Older versions of mermaid will not parse directives because `%%` will comment out the directive. This makes the update backwards-compatible. + +# Init + +`init`, or `initialize`: this directive gives the user the ability to overwrite and change the values for any configuration parameters not set in the secure array. + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------- | --------- | -------- | ----------------------------------------------- | +| init | modifies configurations | Directive | Optional | Any parameters not included in the secure array | + +> **Note** +> init would be an argument-directive: `%%{init: { **insert argument here**}}%%` +> +> The json object that is passed as {**argument** } must be valid, quoted json or it will be ignored. +> **for example**: +> +> `%%{init: {"theme": "default", "logLevel": 1 }}%%` +> +> Configurations that are passed through init cannot change the parameters in a secure array at a higher level. In the event of a collision, mermaid will give priority to secure arrays and parse the request without changing the values of those parameters in conflict. +> +> When deployed within code, init is called before the graph/diagram description. + +**for example**: + +```mermaid-example +%%{init: {"theme": "default", "logLevel": 1 }}%% + graph LR + a-->b + b-->c + c-->d + d-->e + e-->f + f-->g + g--> +``` + +```mermaid +%%{init: {"theme": "default", "logLevel": 1 }}%% + graph LR + a-->b + b-->c + c-->d + d-->e + e-->f + f-->g + g--> +``` + +# Wrap + +| Parameter | Description | Type | Required | Values | +| --------- | ----------------------------- | --------- | -------- | ---------- | +| wrap | a callable text-wrap function | Directive | Optional | %%{wrap}%% | + +> **Note** +> Wrap is a function that is currently only deployable for sequence diagrams. +> +> `Wrap respects a manually added
, so if the user wants to break up their text, they have full control over line breaks by adding
tags.` +> +> It is a non-argument directive and can be executed thusly: +> +> `%%{wrap}%%` . + +**An example of text wrapping in a sequence diagram**: + +!\[Image showing wrapped text]\(img/wrapped text.png) + +# Resetting Configurations: + +There are two more functions in the mermaidAPI that can be called by site owners: **reset** and **globalReset**. + +**reset**: resets the configuration to whatever the last configuration was. This can be done to undo more recent changes set from the last mermaidAPI.initialize({...}) configuration. + +**globalReset** will reset both the current configuration AND the site configuration back to the global defaults. + +**Notes**: Both `reset` and `globalReset` are only available to site owners, and as such implementors have to edit their configs using `init`. + +# Additional Utils to mermaid + +• **memoize**: simple caching for computationally expensive functions, reducing rendering time by about 90%. + +• **assignWithDepth** - an improvement on previous functions with config.js and `Object.assign`. The purpose of this function is to provide a sane mechanism for merging objects, similar to `object.assign`, but with depth. + +Example of **assignWithDepth**: + +![Image showing assignWithDepth](img/assignWithDepth.png) + +Example of **object.Assign**: + +!\[Image showing object.assign without depth]\(img/object.assign without depth.png) + +• **calculateTextDimensions**, **calculateTextWidth**, and **calculateTextHeight** - for measuring text dimensions, width and height. + +**Notes**: For more information on usage, parameters, and return info for these new functions take a look at the jsdocs for them in the utils package. + +# New API Requests Introduced in Version 8.6.0 + +## setSiteConfig + +| Function | Description | Type | Values | Parameters | Returns | +| --------------- | ------------------------------------- | ----------- | --------------------------------------- | ---------- | ---------- | +| `setSiteConfig` | Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array | conf | siteConfig | + +> **Note** +> Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset +> the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig +> to the defaultConfig +> Note: currentConfig is set in this function。 +> Default value: will mirror Global Config + +## getSiteConfig + +| Function | Description | Type | Values | +| --------------- | --------------------------------------------------- | ----------- | ---------------------------------- | +| `getSiteConfig` | Returns the current `siteConfig` base configuration | Get Request | Returns Any Values in `siteConfig` | + +> **Note** +> Returns any values in siteConfig. + +## setConfig + +| Function | Description | Type | Values | Parameters | Returns | +| ----------- | ------------------------------------------ | ----------- | --------------------------------- | ---------- | ---------------------------------------------- | +| `setConfig` | Sets the `currentConfig` to desired values | Put Request | Any Values, those in secure array | conf | `currentConfig` merged with the sanitized conf | + +> **Note** +> Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any +> values found in conf with key found in siteConfig.secure will be replaced with the corresponding +> siteConfig value. + +## getConfig + +| Function | Description | Type | Return Values | +| ----------- | --------------------------- | ----------- | ------------------------------- | +| `getConfig` | Obtains the `currentConfig` | Get Request | Any Values from `currentConfig` | + +> **Note** +> Returns any values in currentConfig. + +## sanitize + +| Function | Description | Type | Values | +| ---------- | ---------------------------------------- | -------------- | ------ | +| `sanitize` | Sets the `siteConfig` to desired values. | Put Request(?) | None | + +> **Note** +> modifies options in-place +> Ensures options parameter does not attempt to override siteConfig secure keys. + +## reset + +| Function | Description | Type | Required | Values | Parameter | +| -------- | ------------------------------ | ----------- | -------- | ------ | --------- | +| `reset` | Resets `currentConfig` to conf | Put Request | Required | None | conf | + +## conf + +| Parameter | Description | Type | Required | Values | +| --------- | ------------------------------------------------------------ | ---------- | -------- | -------------------------------------------- | +| `conf` | base set of values, which `currentConfig` could be reset to. | Dictionary | Required | Any Values, with respect to the secure Array | + +> **Note** +> default: current siteConfig (optional, default `getSiteConfig()`) + +## For more information, read [Setup](./setup/README.md). diff --git a/docs/config/accessibility.md b/docs/config/accessibility.md new file mode 100644 index 000000000..c7ca26ede --- /dev/null +++ b/docs/config/accessibility.md @@ -0,0 +1,436 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/accessibility.md](../../packages/mermaid/src/docs/config/accessibility.md). + +# Accessibility Options + +## Accessibility + +Now with Mermaid library in much wider use, we have started to work towards more accessible features, based on the feedback from the community. + +Adding accessibility means that the rich information communicated by visual diagrams can be made available to those using assistive technologies (and of course to search engines). +[Read more about Accessible Rich Internet Applications and the W3 standards.](https://www.w3.org/WAI/standards-guidelines/aria/) + +Mermaid will automatically insert the [aria-roledescription](#aria-roledescription) and, if provided in the diagram text by the diagram author, the [accessible title and description.](#accessible-title-and-description) + +### aria-roledescription + +The [aria-roledescription](https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription) for the SVG HTML element is set to the diagram type key. (Note this may be slightly different than the keyword used for the diagram in the diagram text.) + +For example: The diagram type key for a state diagram is "stateDiagram". Here (a part of) the HTML of the SVG tag that shows the automatically inserted aria-roledescription set to "stateDiagram". _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_ + +```html + +``` + +### Accessible Title and Description + +Support for accessible titles and descriptions is available for all diagrams/chart types. We have tried to keep the same keywords and format for all diagrams so that it is easy to understand and maintain. + +The accessible title and description will add `` and `<desc>` elements within the SVG element and the [aria-labelledby](https://www.w3.org/TR/wai-aria/#aria-labelledby) and [aria-describedby](https://www.w3.org/TR/wai-aria/#aria-describedby) attributes in the SVG tag. + +Here is HTML that is generated, showing that the SVG element is labelled by the accessible title (id = `chart-title-mermaid-1668725057758`) +and described by the accessible description (id = `chart-desc-mermaid-1668725057758` ); +and the accessible title element (text = "This is the accessible title") +and the accessible description element (text = "This is an accessible description"). + +_(Note that some of the SVG attributes and the SVG contents are omitted for clarity.)_ + +```html +<svg + aria-labelledby="chart-title-mermaid-1668725057758" + aria-describedby="chart-desc-mermaid-1668725057758" + xmlns="http://www.w3.org/2000/svg" + width="100%" + id="mermaid-1668725057758" +> + <title id="chart-title-mermaid-1668725057758">This is the accessible title + This is an accessible description + +``` + +Details for the syntax follow. + +#### accessible title + +The **accessible title** is specified with the **accTitle** _keyword_, followed by a colon (`:`), and the string value for the title. +The string value ends at the end of the line. (It can only be a single line.) + +Ex: `accTitle: This is a single line title` + +See [the accTitle and accDescr usage examples](#acctitle-and-accdescr-usage-examples) for how this can be used in a diagram and the resulting HTML generated. + +#### accessible description + +An accessible description can be 1 line long (a single line) or many lines long. + +The **single line accessible description** is specified with the **accDescr** _keyword_, followed by a colon (`:`), followed by the string value for the description. + +Ex: `accDescr: This is a single line description.` + +A **multiple line accessible description** _does not have a colon (`:`) after the accDescr keyword_ and is surrounded by curly brackets (`{}`). + +Ex: + +```markdown +accDescr { +This is a multiple line accessible description. +It does not have a colon and is surrounded by curly brackets. +} +``` + +See [the accTitle and accDescr usage examples](#acctitle-and-accdescr-usage-examples) for how this can be used in a diagram and the resulting HTML generated. + +#### accTitle and accDescr Usage Examples + +- Flowchart with the accessible title "Big Decisions" and the single-line accessible description "Bob's Burgers process for making big decisions" + +```mermaid-example + graph LR + accTitle: Big Decisions + accDescr: Bob's Burgers process for making big decisions + A[Identify Big Decision] --> B{Make Big Decision} + B --> D[Be done] +``` + +```mermaid + graph LR + accTitle: Big Decisions + accDescr: Bob's Burgers process for making big decisions + A[Identify Big Decision] --> B{Make Big Decision} + B --> D[Be done] +``` + +Here is the HTML generated for the SVG element: _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_ + +```html + + Big decisions + Bob's Burgers process for making big decisions + +``` + +- Flowchart with the accessible title "Bob's Burger's Making Big Decisions" and the multiple line accessible description "The official Bob's Burgers corporate processes that are used + for making very, very big decisions. + This is actually a very simple flow: identify the big decision and then make the big decision." + +```mermaid-example + graph LR + accTitle: Bob's Burger's Making Big Decisions + accDescr { + The official Bob's Burgers corporate processes that are used + for making very, very big decisions. + This is actually a very simple flow: identify the big decision and then make the big decision. + } + A[Identify Big Decision] --> B{Make Big Decision} + B --> D[Be done] +``` + +```mermaid + graph LR + accTitle: Bob's Burger's Making Big Decisions + accDescr { + The official Bob's Burgers corporate processes that are used + for making very, very big decisions. + This is actually a very simple flow: identify the big decision and then make the big decision. + } + A[Identify Big Decision] --> B{Make Big Decision} + B --> D[Be done] +``` + +Here is the HTML generated for the SVG element: _(Note that some of the SVG attributes and the SVG contents are omitted for clarity.):_ + +```html + + Big decisions + + The official Bob's Burgers corporate processes that are used for making very, very big + decisions. This is actually a very simple flow: identify the big decision and then make the big + decision. + + +``` + +#### Sample Code Snippets for other diagram types + +##### Class Diagram + +```mermaid-example + classDiagram + accTitle: My Class Diagram + accDescr: My Class Diagram Description + + Vehicle <|-- Car +``` + +```mermaid + classDiagram + accTitle: My Class Diagram + accDescr: My Class Diagram Description + + Vehicle <|-- Car +``` + +##### Entity Relationship Diagram + +```mermaid-example + erDiagram + accTitle: My Entity Relationship Diagram + accDescr: My Entity Relationship Diagram Description + + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +```mermaid + erDiagram + accTitle: My Entity Relationship Diagram + accDescr: My Entity Relationship Diagram Description + + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses + +``` + +##### Gantt Chart + +```mermaid-example + gantt + accTitle: My Gantt Chart Accessibility Title + accDescr: My Gantt Chart Accessibility Description + + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +```mermaid + gantt + accTitle: My Gantt Chart Accessibility Title + accDescr: My Gantt Chart Accessibility Description + + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d + +``` + +##### Gitgraph + +```mermaid-example + gitGraph + accTitle: My Gitgraph Accessibility Title + accDescr: My Gitgraph Accessibility Description + + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit + +``` + +```mermaid + gitGraph + accTitle: My Gitgraph Accessibility Title + accDescr: My Gitgraph Accessibility Description + + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit + +``` + +##### Pie Chart + +```mermaid-example + pie + accTitle: My Pie Chart Accessibility Title + accDescr: My Pie Chart Accessibility Description + + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 + +``` + +```mermaid + pie + accTitle: My Pie Chart Accessibility Title + accDescr: My Pie Chart Accessibility Description + + title Key elements in Product X + "Calcium" : 42.96 + "Potassium" : 50.05 + "Magnesium" : 10.01 + "Iron" : 5 + +``` + +##### Requirement Diagram + +```mermaid-example + requirementDiagram + accTitle: My Requirement Diagram + accDescr: My Requirement Diagram Description + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req + +``` + +```mermaid + requirementDiagram + accTitle: My Requirement Diagram + accDescr: My Requirement Diagram Description + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req + +``` + +##### Sequence Diagram + +```mermaid-example + sequenceDiagram + accTitle: My Sequence Diagram + accDescr: My Sequence Diagram Description + + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +```mermaid + sequenceDiagram + accTitle: My Sequence Diagram + accDescr: My Sequence Diagram Description + + Alice->>John: Hello John, how are you? + John-->>Alice: Great! + Alice-)John: See you later! +``` + +##### State Diagram + +```mermaid-example + stateDiagram + accTitle: My State Diagram + accDescr: My State Diagram Description + + s1 --> s2 + +``` + +```mermaid + stateDiagram + accTitle: My State Diagram + accDescr: My State Diagram Description + + s1 --> s2 + +``` + +##### User Journey Diagram + +```mermaid-example + journey + accTitle: My User Journey Diagram + accDescr: My User Journey Diagram Description + + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me + +``` + +```mermaid + journey + accTitle: My User Journey Diagram + accDescr: My User Journey Diagram Description + + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me + +``` diff --git a/docs/config/configuration.md b/docs/config/configuration.md new file mode 100644 index 000000000..05fcd9d46 --- /dev/null +++ b/docs/config/configuration.md @@ -0,0 +1,72 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/configuration.md](../../packages/mermaid/src/docs/config/configuration.md). + +# Configuration + +When mermaid starts, configuration is extracted to determine a configuration to be used for a diagram. There are 3 sources for configuration: + +- The default configuration +- Overrides at the site level are set by the initialize call, and will be applied to all diagrams in the site/app. The term for this is the **siteConfig**. +- Frontmatter (v10.5.0+) - diagram authors can update selected configuration parameters in the frontmatter of the diagram. These are applied to the render config. +- Directives (Deprecated by Frontmatter) - diagram authors can update selected configuration parameters directly in the diagram code via directives. These are applied to the render config. + +**The render config** is configuration that is used when rendering by applying these configurations. + +## Frontmatter config + +The entire mermaid configuration (except the secure configs) can be overridden by the diagram author in the frontmatter of the diagram. The frontmatter is a YAML block at the top of the diagram. + +```mermaid-example +--- +title: Hello Title +config: + theme: base + themeVariables: + primaryColor: "#00ff00" +--- +flowchart + Hello --> World + +``` + +```mermaid +--- +title: Hello Title +config: + theme: base + themeVariables: + primaryColor: "#00ff00" +--- +flowchart + Hello --> World + +``` + +## Theme configuration + +## Starting mermaid + +```mermaid-example +sequenceDiagram + Site->>mermaid: initialize + Site->>mermaid: content loaded + mermaid->>mermaidAPI: init +``` + +```mermaid +sequenceDiagram + Site->>mermaid: initialize + Site->>mermaid: content loaded + mermaid->>mermaidAPI: init +``` + +## Initialize + +The initialize call is applied **only once**. It is called by the site integrator in order to override the default configuration at a site level. + +## configApi.reset + +This method resets the configuration for a diagram to the overall site configuration, which is the configuration provided by the site integrator. Before each rendering of a diagram, reset is called at the very beginning. diff --git a/docs/config/directives.md b/docs/config/directives.md new file mode 100644 index 000000000..13a663133 --- /dev/null +++ b/docs/config/directives.md @@ -0,0 +1,338 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/directives.md](../../packages/mermaid/src/docs/config/directives.md). + +# Directives + +> **Warning** +> Directives are deprecated from v10.5.0. Please use the `config` key in frontmatter to pass configuration. See [Configuration](./configuration.md) for more details. + +## Directives + +Directives give a diagram author the capability to alter the appearance of a diagram before rendering by changing the applied configuration. + +The significance of having directives is that you have them available while writing the diagram, and can modify the default global and diagram-specific configurations. So, directives are applied on top of the default configuration. The beauty of directives is that you can use them to alter configuration settings for a specific diagram, i.e. at an individual level. + +While directives allow you to change most of the default configuration settings, there are some that are not available, for security reasons. Also, you have the _option to define the set of configurations_ that you wish to allow diagram authors to override with directives. + +## Types of Directives options + +Mermaid basically supports two types of configuration options to be overridden by directives. + +1. _General/Top Level configurations_ : These are the configurations that are available and applied to all the diagram. **Some of the most important top-level** configurations are: + + - theme + - fontFamily + - logLevel + - securityLevel + - startOnLoad + - secure + +2. _Diagram-specific configurations_ : These are the configurations that are available and applied to a specific diagram. For each diagram there are specific configuration that will alter how that particular diagram looks and behaves. + For example, `mirrorActors` is a configuration that is specific to the `SequenceDiagram` and alters whether the actors are mirrored or not. So this config is available only for the `SequenceDiagram` type. + +**NOTE:** Not all configuration options are listed here. To get hold of all the configuration options, please refer to the [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. + +> **Note** +> We plan to publish a complete list of top-level configurations & diagram-specific configurations with their possible values in the docs soon. + +## Declaring directives + +Now that we have defined the types of configurations that are available, we can learn how to declare directives. +A directive always starts and ends with `%%` signs with directive text in between, like `%% {directive_text} %%`. + +Here the structure of a directive text is like a nested key-value pair map or a JSON object with root being _init_. Where all the general configurations are defined in the top level, and all the diagram specific configurations are defined one level deeper with diagram type as key/root for that section. + +The following code snippet shows the structure of a directive: + +``` +%%{ + init: { + "theme": "dark", + "fontFamily": "monospace", + "logLevel": "info", + "flowchart": { + "htmlLabels": true, + "curve": "linear" + }, + "sequence": { + "mirrorActors": true + } + } +}%% +``` + +You can also define the directives in a single line, like this: + +``` +%%{init: { **insert configuration options here** } }%% +``` + +For example, the following code snippet: + +``` +%%{init: { "sequence": { "mirrorActors":false }}}%% +``` + +**Notes:** +The JSON object that is passed as {**argument**} must be valid key value pairs and encased in quotation marks or it will be ignored. +Valid Key Value pairs can be found in config. + +Example with a simple graph: + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% +graph LR +A-->B +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%% +graph LR +A-->B +``` + +Here the directive declaration will set the `logLevel` to `debug` and the `theme` to `dark` for a rendered mermaid diagram, changing the appearance of the diagram itself. + +Note: You can use 'init' or 'initialize' as both are acceptable as init directives. Also note that `%%init%%` and `%%initialize%%` directives will be grouped together after they are parsed. + +```mermaid-example +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% +%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% +... +``` + +```mermaid +%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% +%%{initialize: { 'logLevel': 'fatal', "theme":'dark', 'startOnLoad': true } }%% +... +``` + +For example, parsing the above generates a single `%%init%%` JSON object below, combining the two directives and carrying over the last value given for `loglevel`: + +```json +{ + "logLevel": "fatal", + "theme": "dark", + "startOnLoad": true +} +``` + +This will then be sent to `mermaid.initialize(...)` for rendering. + +## Directive Examples + +Now that the concept of directives has been explained, let us see some more examples of directive usage: + +### Changing theme via directive + +The following code snippet changes `theme` to `forest`: + +`%%{init: { "theme": "forest" } }%%` + +Possible theme values are: `default`, `base`, `dark`, `forest` and `neutral`. +Default Value is `default`. + +Example: + +```mermaid-example +%%{init: { "theme": "forest" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +```mermaid +%%{init: { "theme": "forest" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +### Changing fontFamily via directive + +The following code snippet changes fontFamily to Trebuchet MS, Verdana, Arial, Sans-Serif: + +`%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%%` + +Example: + +```mermaid-example +%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +```mermaid +%%{init: { "fontFamily": "Trebuchet MS, Verdana, Arial, Sans-Serif" } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end + +``` + +### Changing logLevel via directive + +The following code snippet changes `logLevel` to `2`: + +`%%{init: { "logLevel": 2 } }%%` + +Possible `logLevel` values are: + +- `1` for _debug_, +- `2` for _info_ +- `3` for _warn_ +- `4` for _error_ +- `5` for _only fatal errors_ + +Default Value is `5`. + +Example: + +```mermaid-example +%%{init: { "logLevel": 2 } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +```mermaid +%%{init: { "logLevel": 2 } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing flowchart config via directive + +Some common flowchart configurations are: + +- _htmlLabels_: true/false +- _curve_: linear/curve +- _diagramPadding_: number +- _useMaxWidth_: number + +For a complete list of flowchart configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. +_Soon we plan to publish a complete list of all diagram-specific configurations updated in the docs._ + +The following code snippet changes flowchart config: + +`%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%%` + +Here we are overriding only the flowchart config, and not the general config, setting `htmlLabels` to `true` and `curve` to `linear`. + +```mermaid-example +%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +```mermaid +%%{init: { "flowchart": { "htmlLabels": true, "curve": "linear" } } }%% +graph TD +A(Forest) --> B[/Another/] +A --> C[End] + subgraph section + B + C + end +``` + +### Changing Sequence diagram config via directive + +Some common sequence diagram configurations are: + +- _width_: number +- _height_: number +- _messageAlign_: left, center, right +- _mirrorActors_: boolean +- _useMaxWidth_: boolean +- _rightAngles_: boolean +- _showSequenceNumbers_: boolean +- _wrap_: boolean + +For a complete list of sequence diagram configurations, see [defaultConfig.ts](https://github.com/mermaid-js/mermaid/blob/develop/packages/mermaid/src/defaultConfig.ts) in the source code. +_Soon we plan to publish a complete list of all diagram-specific configurations updated in the docs._ + +So, `wrap` by default has a value of `false` for sequence diagrams. + +Let us see an example: + +```mermaid-example +sequenceDiagram + +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, how did your mother like the book I suggested? And did you catch the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +```mermaid +sequenceDiagram + +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, how did your mother like the book I suggested? And did you catch the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +Now let us enable wrap for sequence diagrams. + +The following code snippet changes sequence diagram config for `wrap` to `true`: + +`%%{init: { "sequence": { "wrap": true} } }%%` + +By applying that snippet to the diagram above, `wrap` will be enabled: + +```mermaid-example +%%{init: { "sequence": { "wrap": true, "width":300 } } }%% +sequenceDiagram +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, how did your mother like the book I suggested? And did you catch the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` + +```mermaid +%%{init: { "sequence": { "wrap": true, "width":300 } } }%% +sequenceDiagram +Alice->Bob: Hello Bob, how are you? +Bob->Alice: Fine, how did your mother like the book I suggested? And did you catch the new book about alien invasion? +Alice->Bob: Good. +Bob->Alice: Cool +``` diff --git a/docs/config/faq.md b/docs/config/faq.md new file mode 100644 index 000000000..c7ed6f210 --- /dev/null +++ b/docs/config/faq.md @@ -0,0 +1,17 @@ +> **Warning** +> +> ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. +> +> ## Please edit the corresponding file in [/packages/mermaid/src/docs/config/faq.md](../../packages/mermaid/src/docs/config/faq.md). + +# Frequently Asked Questions + +1. [How to add title to flowchart?](https://github.com/knsv/mermaid/issues/556#issuecomment-363182217) +2. [How to specify custom CSS file?](https://github.com/mermaidjs/mermaid.cli/pull/24#issuecomment-373402785) +3. [How to fix tooltip misplacement issue?](https://github.com/knsv/mermaid/issues/542#issuecomment-3343564621) +4. [How to specify gantt diagram xAxis format?](https://github.com/knsv/mermaid/issues/269#issuecomment-373229136) +5. [How to bind an event?](https://github.com/knsv/mermaid/issues/372) +6. [How to add newline in the text?](https://github.com/knsv/mermaid/issues/384#issuecomment-281339381) +7. [How to have special characters in link text?](https://github.com/knsv/mermaid/issues/407#issuecomment-329944735) +8. [How to change Flowchart curve style?](https://github.com/knsv/mermaid/issues/580#issuecomment-373929046) +9. [How to create a Flowchart end-Node that says "End"](https://github.com/mermaid-js/mermaid/issues/1444#issuecomment-639528897) diff --git a/docs/config/img/accessibility-div-example-2.png b/docs/config/img/accessibility-div-example-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b257edbd03f5270e5ccd3bf52878b9e7030913ee GIT binary patch literal 122847 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 z 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 QBjBF^uP6_g>&y551BwyAjsO4v literal 0 HcmV?d00001 diff --git a/docs/config/img/accessibility-div-example.png b/docs/config/img/accessibility-div-example.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3478f0bd4ab650690d736c4e9dbe3cddf3d7ed GIT binary patch literal 122202 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