新浪科技

再不用怕Markdown中的绘图了,GitHub官方支持Mermaid图表绘制工具

机器之心Pro

关注

开发人员已能够在 GitHub 中使用 Mermaid 图表工具

Mermaid 作为图表绘制工具越来越多的受到开发人员的欢迎。它基于 Javascript ,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改,可以使用这个工具来进行包括流程图,时序图等图表的绘制。可以将其看做是 Markdown 的一个插件。

截至目前,用户想要在 GitHub 上的 Markdown 文件中包含图片 / 图表,唯一的做法是通过嵌入图像来实现。目前 Mermaid 由 Knut Sveidqvist 进行维护。

新的一年,GitHub 开发者关系总监 Martin Woodward 在官方博客表示,从现在开始,用户可以通过 GitHub 体验到一项原生功能 —— 支持基于 JavaScript 的 Mermaid 图表和流程图生成工具。

现在用户通过使用 Mermaid 语法就可以创建内联图,例如:

Mermaid 如何工作?

当代码遇到标记为 mermaid 的代码块时,会生成一个 iframe,iframe 采用原始 Mermaid 语法并传递给 Mermaid.js,然后将代码转换为本地浏览器中的图表。实现这一过程需要如下两个阶段:

GitHub 的 HTML pipeline;

内部文件渲染服务。

首先,用户向 HTML pipeline 中添加了一个过滤器,该过滤器通过查找具有 mermaid 语言特征的原始 pre 标签,并将其替换为渐进式工作的模板,这样,在非 JavaScript 环境中请求嵌入 Mermaid 内容的客户将看到原始的 Markdown 代码。

接下来,假设用户是在支持 JavaScript 的环境中查看内容,此时会将 iframe 添加到页面,将 src 属性指向 Viewscreen 服务。这样做具有以下优点:

将库 offload 到外部服务时,可以减少 JavaScript 有效负荷;

异步渲染图表有助于消除开销;

用户提供的内容被锁定在 iframe 中,这样不会在加载图表的 GitHub 页面上造成破坏。

Mermaid pipeline

下面是 Mermaid pipeline 可视化路径图:用户可以得到一个快速的、易于编辑的和基于矢量的图,它会出现在文档中需要的地方。

想了解更多有关 Mermaid 语法的信息,请参考:http://mermaid-js.github.io/mermaid/#/

【贾恩谈论自动驾驶保险业务】伯克希尔保险业务的副董事长阿吉特・贾恩称“目前大多数买卖的保险都围绕着驾驶员操作失误以及这些失误发生的频率。” 如果自动驾驶汽车更安全,那么针对人为失误的保险需求会减少,但产品责任险可能会增加。当自动驾驶发生的时候,我们随时会进行保险机制上的转变,目前为止还是根据驾驶人的错误率进行承保的机制。与此同时,贾恩指出,由于汽车中嵌入了更多的技术,这些汽车的维修成本将大幅增加。

【伊朗谴责以色列对叙利亚的新一轮袭击】当地时间5月3日,伊朗外交部发言人巴加埃发表声明,强烈谴责以色列对叙利亚大马士革、哈马等多个地区发动军事袭击的行为。(央视新闻)

【巴菲特:今年到目前为止我们尚未进行股票回购】巴菲特在伯克希尔・哈撒韦股东大会上表示,今年到目前为止,我们没有做任何股票的回购,我们公司的回购机制会比较保守。公司回购自身股票将产生高昂的税费,“这确实会让回购的吸引力略有下降,” 巴菲特说道,并补充称,如果公司认为其股票几乎肯定被低估了,就会进行股票回购。

【贾恩谈论自动驾驶保险业务】伯克希尔保险业务的副董事长阿吉特・贾恩称“目前大多数买卖的保险都围绕着驾驶员操作失误以及这些失误发生的频率。” 如果自动驾驶汽车更安全,那么针对人为失误的保险需求会减少,但产品责任险可能会增加。当自动驾驶发生的时候,我们随时会进行保险机制上的转变,目前为止还是根据驾驶人的错误率进行承保的机制。与此同时,贾恩指出,由于汽车中嵌入了更多的技术,这些汽车的维修成本将大幅增加。

【伊朗谴责以色列对叙利亚的新一轮袭击】当地时间5月3日,伊朗外交部发言人巴加埃发表声明,强烈谴责以色列对叙利亚大马士革、哈马等多个地区发动军事袭击的行为。(央视新闻)

请输入评论内容

举报成功

举报

请您选择举报的原因

说说你的看法

意见/建议 反馈入口
  • TOKEN
  • 标题/昵称
  • 反馈内容

已反馈成功~