Docsify画图建模Mermaid插件支持

先上图

引入 Mermaid

head 中加入 css:

<link rel="stylesheet" href="//unpkg.com/mermaid/dist/mermaid.min.css" />

在 底部 引用 js:

<script type="text/javascript" src="//unpkg.com/mermaid/dist/mermaid.min.js"></script>

配置文件修改

window.$docsify = {
  // ...
  plugins: [
    function (hook, vm) {
      hook.ready(function () {
        mermaid.initialize({ startOnLoad: false });
      });
      hook.doneEach(function () {
        mermaid.init(undefined, '.mermaid');
      });
    }
  ],
  markdown: {
    renderer: {
      code: function (code, lang) {
        var html = '';
        if (code.match(/^sequenceDiagram/) || code.match(/^graph/) || code.match(/^gantt/)) {
          html = '<div class="mermaid">' + code + '</div>';
        }
        var hl = Prism.highlight(code, Prism.languages[lang] || Prism.languages.markup);
        return html + '<pre v-pre data-lang="' + lang + '"><code class="lang-' + lang + '">' + hl + '</code></pre>';
      }
    }
  }
};

解释一下,两个关键步骤:

markdown 代码解析器

markdown: {
  renderer: {
    code: function(code, lang) {
    var html = '';
    // 搜索 mermaid 代码
    if(code.match(/^sequenceDiagram/) || code.match(/^graph/) || code.match(/^gantt/)){
      // 生成一个 mermaid 图表的容器
      html = '<div class="mermaid">' + code + '</div>';
    }
    // 源码自带的 Prism 高亮插件
    var hl = Prism.highlight(code, Prism.languages[lang] || Prism.languages.markup)
    // 将图表的容器添加到代码之前
    return html + '<pre v-pre data-lang="' + lang + '"><code class="lang-' + lang + '">' + hl + '</code></pre>'
    }
  }
}

自定义插件

plugins: [
  function (hook, vm) {
    hook.ready(function () {
      // 类似 jQuery.ready 初始化 mermaid, 禁用自动渲染
      mermaid.initialize({ startOnLoad: false });
    });
    hook.doneEach(function () {
      // 每个页面渲染完成后手动渲染 mermaid 图表
      mermaid.init(undefined, '.mermaid');
    });
  }
];

最后再补一张甘特图:

在这里插入图片描述

Mermaid 支持:

  • 流程图
  • 序列图
  • 甘特图

而且语法结构非常简单,值得推荐.

其实,正文才刚刚开始.

流程图

开始/结束
开始/结束
过程
过程
输入/输出
输入/输出
判断
判断
连接线
A
B
自定义样式
Start
Stop
示例
校验失败
校验成功
开始
输入参数
判断参数合法性
结束
处理业务
子图
强调
校验失败
校验成功
判断参数合法性
输入参数
开始
结束
处理业务

时序图

参与者
客户端 接口服务器 数据库 客户端 接口服务器 数据库
消息
消息格式
[参与者][箭头][参与者]:消息内容

支持的箭头有:

类型说明
->无箭头实线
–>无箭头虚线
->>箭头实线
–>>箭头虚线
-x箭头实线带 x(异步)
–x箭头虚线带 x(异步)
Alice John Hello John, how are you? Great! Alice John
激活

+/- 符号

Alice John Hello John, how are you? John, can yoy hear me? Hi Alice, I can hear you! I feel great! Alice John

甘特图

Mon 06 Mon 13 Mon 20 Completed task Active task Future task Future task2 Completed task in the critical line Implement parser and jison Create tests for parser Future task in critical line Create tests for renderer Add to mermaid Describe gantt syntax Add gantt diagram to demo page Add another diagram to demo page Describe gantt syntax Add gantt diagram to demo page Add another diagram to demo page A section Critical tasks Documentation Last section Adding GANTT diagram functionality to mermaid

在线编辑器

https://knsv.github.io/mermaid/live_editor/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willin 老王带你躺平养老

感谢你这么好看还这么慷慨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值