collab/mermaid/packages/mermaid-layout-elk/README.mdblame
View source
6dd74de1# @mermaid-js/layout-elk
6dd74de2
6dd74de3This package provides a layout engine for Mermaid based on the [ELK](https://www.eclipse.org/elk/) layout engine.
6dd74de4
6dd74de5> [!NOTE]
6dd74de6> The ELK Layout engine will not be available in all providers that support mermaid by default.
6dd74de7> The websites will have to install the `@mermaid-js/layout-elk` package to use the ELK layout engine.
6dd74de8
6dd74de9## Usage
6dd74de10
6dd74de11```
6dd74de12flowchart-elk TD
6dd74de13 A --> B
6dd74de14 A --> C
6dd74de15```
6dd74de16
6dd74de17```
6dd74de18---
6dd74de19config:
6dd74de20 layout: elk
6dd74de21---
6dd74de22
6dd74de23flowchart TD
6dd74de24 A --> B
6dd74de25 A --> C
6dd74de26```
6dd74de27
6dd74de28```
6dd74de29---
6dd74de30config:
6dd74de31 layout: elk.stress
6dd74de32---
6dd74de33
6dd74de34flowchart TD
6dd74de35 A --> B
6dd74de36 A --> C
6dd74de37```
6dd74de38
6dd74de39### With bundlers
6dd74de40
6dd74de41```sh
6dd74de42npm install @mermaid-js/layout-elk
6dd74de43```
6dd74de44
6dd74de45```ts
6dd74de46import mermaid from 'mermaid';
6dd74de47import elkLayouts from '@mermaid-js/layout-elk';
6dd74de48
6dd74de49mermaid.registerLayoutLoaders(elkLayouts);
6dd74de50```
6dd74de51
6dd74de52### With CDN
6dd74de53
6dd74de54```html
6dd74de55<script type="module">
6dd74de56 import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
6dd74de57 import elkLayouts from 'https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk@0/dist/mermaid-layout-elk.esm.min.mjs';
6dd74de58
6dd74de59 mermaid.registerLayoutLoaders(elkLayouts);
6dd74de60</script>
6dd74de61```
6dd74de62
6dd74de63## Supported layouts
6dd74de64
6dd74de65- `elk`: The default layout, which is `elk.layered`.
6dd74de66- `elk.layered`: Layered layout
6dd74de67- `elk.stress`: Stress layout
6dd74de68- `elk.force`: Force layout
6dd74de69- `elk.mrtree`: Multi-root tree layout
6dd74de70- `elk.sporeOverlap`: Spore overlap layout
6dd74de71
6dd74de72<!-- TODO: Add images for these layouts, as GitHub doesn't support natively. -->