Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
3b398cc
add treeView diagram
Vikrantpalle Jul 25, 2024
99dde50
change text regex match
Vikrantpalle Jul 25, 2024
bd8242c
move parser to langium
Vikrantpalle Jul 26, 2024
f7ebf29
change TreeViewDb to TreeViewDB
Vikrantpalle Jul 26, 2024
18f206e
use ImperativeState
Vikrantpalle Jul 26, 2024
99406da
remove fontFamily style
Vikrantpalle Jul 26, 2024
8591460
add integration test
Vikrantpalle Jul 26, 2024
7bae205
add diagram to tests
Vikrantpalle Jul 26, 2024
353a208
add docs
Vikrantpalle Jul 26, 2024
34f8099
Merge branch 'develop' of github.com:lee-treehouse/mermaid into 2645_…
lee-treehouse Feb 16, 2026
c1ec573
fix typo introduced when addressing merge conflicts
lee-treehouse Feb 16, 2026
c8c664e
fix more typos introduced while addressing merge conflict
lee-treehouse Feb 16, 2026
48ea9c7
fix demo index
lee-treehouse Feb 16, 2026
4135ff3
change order of docs in nav bar so new diagram is at the bottom
lee-treehouse Feb 16, 2026
caf340c
add an example
lee-treehouse Feb 16, 2026
387baff
use example from issue to improve examples
lee-treehouse Feb 16, 2026
a2acdde
make treeview demo page consistent with treemap demo page (it's fancier)
lee-treehouse Feb 16, 2026
c6139b7
add changeset
lee-treehouse Feb 16, 2026
4947e57
fix examples failing test
lee-treehouse Feb 16, 2026
781da8c
add failing parser tests for treeview
lee-treehouse Feb 16, 2026
613e1d3
wip understanding parser
lee-treehouse Feb 16, 2026
adf46fb
parser WIP
lee-treehouse Feb 16, 2026
4aa705f
Merge branch 'develop' into 2645_add_tree_view_diagram_update
lee-treehouse Feb 16, 2026
251d440
fix naming conflict
lee-treehouse Feb 17, 2026
2093999
handle null case
lee-treehouse Feb 17, 2026
fa86fa6
add indent tests
lee-treehouse Feb 17, 2026
a525538
adjust indent test (affected by whitespace handling?)
lee-treehouse Feb 17, 2026
0cfe0d3
indent tests behave differently locally to pipeline. comment out to c…
lee-treehouse Feb 17, 2026
b85199f
possible option is to return indent length instead of actual indent (…
lee-treehouse Feb 17, 2026
209d262
Revert "possible option is to return indent length instead of actual …
lee-treehouse Feb 17, 2026
ae6806a
test
lee-treehouse Feb 17, 2026
c11c2eb
Revert "Revert "possible option is to return indent length instead of…
lee-treehouse Feb 17, 2026
ec4cc57
try this again in pipeline
lee-treehouse Feb 17, 2026
6eb0eb7
this reordering made a difference locally
lee-treehouse Feb 17, 2026
293b319
issue with treeview accessibility test is because of fragility with w…
lee-treehouse Feb 17, 2026
b075223
restore comment ignoring, and comment
lee-treehouse Feb 17, 2026
397e942
Merge branch 'develop' of github.com:lee-treehouse/mermaid into 2645_…
lee-treehouse Mar 7, 2026
f57ac0d
update parser to require spaces around content
lee-treehouse Mar 7, 2026
73bb82e
fix formatting
lee-treehouse Mar 7, 2026
48362a0
generate new changeset (minor)
lee-treehouse Mar 7, 2026
e7aca8c
support customising text colour and line colour separately - still ne…
lee-treehouse Mar 7, 2026
8949ef1
update cypress
lee-treehouse Mar 7, 2026
375bfd3
reviewing other examples, it seems more consistent to refer to label …
lee-treehouse Mar 7, 2026
81cec51
fix missed examples
lee-treehouse Mar 7, 2026
b26af6f
regenerate changeset
lee-treehouse Mar 7, 2026
12a3c15
make custom formatting examples more exaggerated to convey meaning mo…
lee-treehouse Mar 7, 2026
714c7dd
new changeset
lee-treehouse Mar 7, 2026
e37f4cd
remove redundant change sets
lee-treehouse Mar 7, 2026
08db651
Merge branch 'develop' of github.com:lee-treehouse/mermaid into 2645_…
lee-treehouse Mar 11, 2026
dbce824
Merge branch 'develop' into 2645_add_tree_view_diagram_update
lee-treehouse Mar 12, 2026
cba0761
add spec
lee-treehouse Mar 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .build/jsonSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ const MERMAID_CONFIG_DIAGRAM_KEYS = [
'sankey',
'block',
'packet',
'treeView',
'architecture',
'radar',
'venn',
Expand Down
7 changes: 7 additions & 0 deletions .changeset/weak-tools-pay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@mermaid-js/examples': minor
'mermaid': minor
'@mermaid-js/parser': minor
---

add new TreeView diagram
75 changes: 75 additions & 0 deletions cypress/integration/rendering/treeView.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { imgSnapshotTest } from '../../helpers/util';

describe('TreeView Diagram', () => {
it('should render a simple treeView diagram', () => {
imgSnapshotTest(
`treeView-beta
"file1.ts"`
);
});

it('should render a complex treeView diagram', () => {
imgSnapshotTest(
`treeView-beta
"root"
"folder1"
"file1.js"
"file2.ts"
"folder2"
"file3.spec.ts"
"folder3"
"file4.ts"
"file5.ts"
"folder4"
"file6.ts"
"file7.ts"`
);
});

it('should render a complex treeView diagram with multiple roots', () => {
imgSnapshotTest(
`treeView-beta
"folder1"
"file1.js"
"file2.ts"
"folder2"
"file3.spec.ts"
"folder3"
"file4.ts"
"file5.ts"
"folder4"
"file6.ts"
"file7.ts"`
);
});

it('should render a treeView diagram with custom config', () => {
imgSnapshotTest(
`
---
config:
treeView:
rowIndent: 80
lineThickness: 3
themeVariables:
treeView:
labelFontSize: '20px'
labelColor: '#FF0000'
lineColor: '#00FF00'
---
treeView-beta
"folder1"
"file1.js"
"file2.ts"
"folder2"
"file3.spec.ts"
"folder3"
"file4.ts"
"file5.ts"
"folder4"
"file6.ts"
"file7.ts"
`
);
});
});
213 changes: 108 additions & 105 deletions demos/index.html
Original file line number Diff line number Diff line change
@@ -1,105 +1,108 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>

<body>
<h1>Mermaid quick test and demo pages</h1>
<p>
Some of these pages have duplicates; some are slow to load because they have so many graphs.
</p>
<p>You can test custom code in the <a href="./dev/example.html">development page</a>.</p>
<p>
If you'd like to clean up one of the pages, please feel free to
<a href="https://github.com/mermaid-js/mermaid/pulls">submit a pull request (PR).</a>
</p>

<ul>
<li>
<h2><a href="./c4context.html">C4 Context</a></h2>
</li>
<li>
<h2><a href="./classchart.html">Class diagrams</a></h2>
</li>
<li>
<h2><a href="./dataflowchart.html">Data flow charts</a></h2>
</li>
<li>
<h2><a href="./er.html">Entity Relation diagram</a></h2>
</li>
<li>
<h2><a href="./flowchart.html">Flow charts</a></h2>
</li>
<li>
<h2><a href="./gantt.html">Gantt</a></h2>
</li>
<li>
<h2><a href="./git.html">Git</a></h2>
</li>
<li>
<h2><a href="./info.html">Info</a></h2>
</li>
<li>
<h2><a href="./journey.html">Journey</a></h2>
</li>
<li>
<h2><a href="./mindmap.html">Mindmap</a></h2>
</li>
<li>
<h2><a href="./ishikawa.html">Ishikawa</a></h2>
</li>
<li>
<h2><a href="./pie.html">Pie</a></h2>
</li>
<li>
<h2><a href="./quadrantchart.html">Quadrant charts</a></h2>
</li>
<li>
<h2><a href="./xychart.html">XY charts</a></h2>
</li>
<li>
<h2><a href="./requirements.html">Requirements</a></h2>
</li>
<li>
<h2><a href="./sequence.html">Sequence</a></h2>
</li>
<li>
<h2><a href="./state.html">State</a></h2>
</li>
<li>
<h2><a href="./timeline.html">Timeline</a></h2>
</li>
<li>
<h2><a href="./zenuml.html">ZenUML</a></h2>
</li>
<li>
<h2><a href="./sankey.html">Sankey</a></h2>
</li>
<li>
<h2><a href="./packet.html">Packet</a></h2>
</li>
<li>
<h2><a href="./block.html">Layered Blocks</a></h2>
</li>
<li>
<h2><a href="./architecture.html">Architecture</a></h2>
</li>
<li>
<h2><a href="./radar.html">Radar</a></h2>
</li>
<li>
<h2><a href="./venn.html">Venn diagram</a></h2>
</li>
</ul>
</body>
</html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>

<body>
<h1>Mermaid quick test and demo pages</h1>
<p>
Some of these pages have duplicates; some are slow to load because they have so many graphs.
</p>
<p>You can test custom code in the <a href="./dev/example.html">development page</a>.</p>
<p>
If you'd like to clean up one of the pages, please feel free to
<a href="https://github.com/mermaid-js/mermaid/pulls">submit a pull request (PR).</a>
</p>

<ul>
<li>
<h2><a href="./c4context.html">C4 Context</a></h2>
</li>
<li>
<h2><a href="./classchart.html">Class diagrams</a></h2>
</li>
<li>
<h2><a href="./dataflowchart.html">Data flow charts</a></h2>
</li>
<li>
<h2><a href="./er.html">Entity Relation diagram</a></h2>
</li>
<li>
<h2><a href="./flowchart.html">Flow charts</a></h2>
</li>
<li>
<h2><a href="./gantt.html">Gantt</a></h2>
</li>
<li>
<h2><a href="./git.html">Git</a></h2>
</li>
<li>
<h2><a href="./info.html">Info</a></h2>
</li>
<li>
<h2><a href="./journey.html">Journey</a></h2>
</li>
<li>
<h2><a href="./mindmap.html">Mindmap</a></h2>
</li>
<li>
<h2><a href="./ishikawa.html">Ishikawa</a></h2>
</li>
<li>
<h2><a href="./pie.html">Pie</a></h2>
</li>
<li>
<h2><a href="./quadrantchart.html">Quadrant charts</a></h2>
</li>
<li>
<h2><a href="./xychart.html">XY charts</a></h2>
</li>
<li>
<h2><a href="./requirements.html">Requirements</a></h2>
</li>
<li>
<h2><a href="./sequence.html">Sequence</a></h2>
</li>
<li>
<h2><a href="./state.html">State</a></h2>
</li>
<li>
<h2><a href="./timeline.html">Timeline</a></h2>
</li>
<li>
<h2><a href="./zenuml.html">ZenUML</a></h2>
</li>
<li>
<h2><a href="./sankey.html">Sankey</a></h2>
</li>
<li>
<h2><a href="./packet.html">Packet</a></h2>
</li>
<li>
<h2><a href="./block.html">Layered Blocks</a></h2>
</li>
<li>
<h2><a href="./architecture.html">Architecture</a></h2>
</li>
<li>
<h2><a href="./radar.html">Radar</a></h2>
</li>
<li>
<h2><a href="./venn.html">Venn diagram</a></h2>
</li>
<li>
<h2><a href="./treeView.html">TreeView</a></h2>
</li>
</ul>
</body>
</html>
75 changes: 75 additions & 0 deletions demos/treeView.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Mermaid TreeView Diagram Demo</title>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
body {
font-family: 'Montserrat', sans-serif;
margin: 0 auto;
max-width: 900px;
padding: 20px;
}
.mermaid {
margin: 30px 0;
}
h1,
h2 {
color: #333;
}
pre {
background-color: #f5f5f5;
padding: 15px;
border-radius: 5px;
}
</style>
</head>
<body>
<h1>TreeView Diagram Demo</h1>

<h2>Basic TreeView Example</h2>
<pre class="mermaid">
treeView-beta
"docs"
"build"
"make.bat"
"Makefile"
"out"
"source"
"build"
"static"
"_templates"
"div. Files"
</pre>

<h2>TreeView Config Example</h2>
<pre class="mermaid">
---
config:
treeView:
rowIndent: 80
lineThickness: 3
themeVariables:
treeView:
labelFontSize: '20px'
labelColor: '#FF0000'
lineColor: '#00FF00'
---
treeView-beta
"packages"
"mermaid"
"src"
"parser"
</pre>

<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
logLevel: 1,
securityLevel: 'loose',
});
</script>
</body>
</html>
2 changes: 1 addition & 1 deletion docs/config/setup/defaultConfig/variables/configKeys.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@

> `const` **configKeys**: `Set`<`string`>

Defined in: [packages/mermaid/src/defaultConfig.ts:298](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L298)
Defined in: [packages/mermaid/src/defaultConfig.ts:302](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L302)
Loading
Loading