浏览器中引用mermaid.js

浏览器中引用mermaid

1.引入mermaid.js

本文引用的为最新版本10.6.1
https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js
其他版本参考
https://www.jsdelivr.com/package/npm/mermaid

2.加载mermaid

window.οnlοad=mermaid.initialize();

<html>
    <head>
        <meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
        <title>useage of mermaid for browser</title>
        <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
        <script>
            window.onload=mermaid.initialize();
        </script>
        <link href="./static/css/mermaid-diagram.css" rel="stylesheet">
    </head>
</html>

注意:mermaid默认对class="meramid"有效,如果你的class是其他的,比如为class=“language-mermaid”, 需指定选择器。

<script>
    window.onload=function(){
        mermaid.initialize({ startOnLoad: false });
        await mermaid.run({
        	querySelector: '.language-mermaid',
        });
    };
</script>

还可以使用getElementById,querySelectorAll等选择器。

<script>
    mermaid.initialize({ startOnLoad: false });
    await mermaid.run({
      nodes: [document.getElementById('someId'), document.getElementById('anotherId')],
    });
    await mermaid.run({
      nodes: document.querySelectorAll('.yetAnotherClass'),
    });
</script>

3.render

通过mermaid.render方法对指定的元素进行渲染

<script type="module">
  mermaid.initialize({ startOnLoad: false });

  // Example of using the render function
  const drawDiagram = async function () {
    element = document.querySelector('#graphDiv');
    const graphDefinition = 'graph TB\na-->b';
    const { svg } = await mermaid.render('graphDiv', graphDefinition);
    element.innerHTML = svg;
  };

  await drawDiagram();
</script>

更多用法详见官网

4.initialize参数

我们上面使用的不带参数,mermaid提供了很多参数,常用参数如下:
更多参数详见https://mermaid.js.org/config/schema-docs/config.html

  • theme: 主题,目前支持default, forest, dark 和 neutral
  • flowchart: 流程图参数
  • gantt:甘特图参数
mermaid.initialize({ 
      "theme": 'forest',//default, forest, dark or neutral
      // themeCSS: '.node rect { fill: red; }',
      "logLevel": 3,
      "flowchart": {  curve: 'linear' },
      "gantt": {  axisFormat: '%m/%d/%Y' },
      "sequence": {  actorMargin: 50 },
      // sequenceDiagram: { actorMargin: 300 } // deprecated
    });

5.mermaid示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
    <script>
    	window.onload=mermaid.initialize({"theme": "forest"});
    </script>
</head>
<body>
    <div class="mermaid">
        sequenceDiagram 
        	A->> B: request!
        	B ->> A: response!
    </div>
</body>
</html>

效果图如下
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值