typora不支持mermaid 问题记录

注意:

  • 使用不了最新版本js,目前我测的最高版本9.3,有些复杂的图表不能用,不过已经满足我使用的需求了。知足了
  • 本文只做记录,如有问题请联系删除!!!感谢大佬的馈赠

转载:Typora不支持最新Mermaid语法的解决办法 - 郄郄私语 (qzy.im)

Typora是一款Markdown编辑器,可以用来写文章,同时还集成了Mermaid库,可以很方便地画一些基础的图表,例如流程图、甘特图、饼图等。但是由于Typora和Mermaid是不同的项目,独立维护,因此Typora中集成的Mermaid可能不是最新的版本,同时也不支持最新的图表和特性。因此,我们就需要通过一些修改来让Typora支持最新版本的Mermaid。

问题场景示例

假设我们使用的是 0.9.89 版本的Typora,我们在编辑器内通过以下Markdown代码创建一个ER图:

erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses

其中,第1行中 mermaid 表示该代码块是一个Mermaid图表,第2行中 erDiagram 表示该图表是一个ER图(这是截至文章编辑时,Mermaid最新版本 8.5.1 中所支持的一种图表),第3到5行定义了该ER图的具体内容。

但是,插入以上Markdown代码后,Typora中却无法正确地展示该ER图,并且还会报以下错误信息(在 0.9.86 及以前版本的Typora中,只展示空白图表,没有错误信息):

上面的报错是因为Mermaid语法解析失败,这就是由于其中集成的Mermaid版本太低导致的,我们可以在编辑器内通过以下代码来查看Typora所集成的Mermaid版本:

​```mermaid
info
​```

插入以上Markdown代码后,编辑器展示如下:

可见,我们当前用的Typora集成的是 8.4.0 版本的Mermaid,而这一版本还未支持ER图。那么,接下来我们就通过一个简单的修改,来让Typora集成最新版本的Mermaid。

处理办法(Windows)

下载Mermaid最新版本的js文件

由于Typora本质是一个js实现的Markdown编辑器,Mermaid也是一个js实现的图表库,Typora通过js引用的方式集成了Mermaid。因此,为了集成最新版本的Mermaid,我们首先需要下载Mermaid最新版本的js文件:

  1. 在Mermaid官方文档中找到CDN地址
  2. 下载最新版本的 mermaid.min.js 文件到本地(例如 8.5.1 版本地址:https://unpkg.com/mermaid@8.5.1/dist/mermaid.min.js)

除了官方提供的CDN下载方式,通过其他渠道下载也可以。

打开Typora的window.html文件

假设我们Typora的安装目录在 D:/Typora,那么在其中的 resources/app 目录下可以找到一个 window.html 文件,打开这个文件。

引用Mermaid的js文件

window.html 文件中的 </body> 前插入以下代码并保存:

<script>
const interval = setInterval(() => {
console.log('check mermaid...');
if (window.editor &&
window.editor.diagrams &&
window.mermaidAPI) {
$.getScript('file:///<本地js文件存储的位置>')
.then(() => {
mermaidAPI = mermaid.mermaidAPI;
editor.diagrams.refreshDiagram(editor);
clearInterval(interval);
});
}
}, 100);
</script>

上面代码会在Typora窗口打开后定时检查自带的Mermaid是否已集成,如果已集成,那么就通过jQuery从本地加载我们前面下载的js文件。第7行需要将<>及其中的内容替换成实际的js文件存储位置,例如我之前把js文件下载到了 D:/Typora/mermaid.min.js 位置,那么替换以后的代码就如下:

重新打开Typora

修改并保存 window.html 文件后,我们重新打开Typora,就发现问题场景示例中的ER图已经可以成功展示了:

查看Mermaid的版本,也可以看到已经成功替换成了最新版:

typora不支持mermaid 问题记录的更多相关文章

  1. centos使用jexus支持php小记录

    安装php(文章参考http://linuxdot.net/bbsfile-3132) yum install php 1)修改“/etc/php.ini”文件(有的位置在/etc/php5/cgi/ ...

  2. 用c++ 给易语言写支持库学习记录

    废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...

  3. mongoose pushall不支持的错误记录

    该错误发生两次,第一次解决以后第二次碰到又没有想起来怎么解决. 因为采用mongoose+node的后端项目.有两个表实现多对多关系,再中间表不做关联,只在两个主表做了 testlist: [{ ty ...

  4. 如何在DBGrid中能支持多项记录的选择

    When you add [dgMultiSelect] to the Options property of a DBGrid, you give yourself the ability to s ...

  5. 好用的Markdown编辑器安利-Typora

    Typora,一款还用极简优秀的免费开源Markdown编辑器,非常值得每一位爱好Markdown的朋友学习和使用.我个人是深深被它吸引了,不论是写博客还是记笔记,Typora都是我十足的好帮手.Ty ...

  6. Markdown - Typora 10分钟入门 - 精简归纳

    Markdown - Typora 10分钟入门 - 精简归纳 JERRY_Z. ~ 2020 / 8 / 22 转载请注明出处! 目录 Markdown - Typora 10分钟入门 - 精简归纳 ...

  7. MarkDown及Typora文本编辑器

    文章介绍主要介绍MarkDown语法和与之能够配套使用的文本编辑器Typora的下载使用 1. MarkDown简介 MarkDown是一种纯文本标记语言,其书写与txt.word文档类似: 所有网站 ...

  8. 解放双手,markdown文章神器,Typora+PicGo+七牛云图床实现自动上传图片

    本文主要分享使用Typora作为Markdown编辑器,PicGo为上传图片工具,使用七牛云做存储来解放双手实现图片的自动化上传与管理.提高写作效率,提升逼格.用过 Markdown 的朋友一定会深深 ...

  9. Typora+PicGo+Gitee打造图床

    前言 ​ 自己一直使用的是Typora来写博客,但比较麻烦的是图片粘贴上去后都是存储到了本地,写好了之后放到博客园等地,图片不能直接访问,但如今Typora已经支持图片上传,所以搞了一波图片上传到Gi ...

  10. 使用Typora编写Markdown你真的会了吗

    目录 Typora 介绍 使用 常用快捷键 概述 标题 一级标题 二级标题 方式(推荐) 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 段落 粗体斜体删除线 下划线 注释 分割线 脚注 ...

随机推荐

  1. #斐波那契#洛谷 3424 [POI2005] SUM-Fibonacci Sums

    题目 已知\(x,y\)的斐波那契表示,求\(x+y\)的斐波那契表示 分析 显然得到两条性质: \(f_{i+1}=f_{i-1}+f_i\) \(2f_i=f_{i+1}+f_{i-2}\) 那么 ...

  2. 使用OHOS SDK构建filament

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从gitee下载源码. 执行如下命令: git clone https://gitee.com/oh-graphics/filament.git ...

  3. 使用IDEA直接连接数据库报错:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

    错误详情:使用IDEA直接连接数据库报错:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' ...

  4. 分析即服务(AaaS)是什么?终于有人讲清楚了

    随着世界数据领域的地位和规模的不断扩大,大数据.人工智能和云计算正在结合起来,以分析即服务的形式为企业提供急需的喘息机会 . 让我们简要回顾一下 2010 年以来发生的事情. 这十年来我们见证了许多技 ...

  5. js 如何实现管道或者说组合

    前言 概念:管道是从左往右函数执行,组合是从右往左执行. 实现 原理与作用后续补齐. function compose(...funcs) { return function(x) { funcs.r ...

  6. 重新整理.net core 计1400篇[九] (.net core 中的依赖注入的服务的消费)

    前言 包含服务注册信息IServiceCollection 集合最终被用来创建作为依赖注入容器的IServiceProvider 对象. 当需要创建某个服务实例的时候(服务消费),我们通过指定服务类型 ...

  7. 重新整理 mysql 基础篇—————表锁和全局锁[六]

    前言 锁从大的方面可以分为: 1.全局锁 2.表锁 3.行锁 正文 全局锁 全局锁就是对整个数据加上读锁. 在mysql 中,加入全局锁的命令就是: Flush tables with read lo ...

  8. 云原生之在kubernetes集群下部署mysql应用

    一.Mysql介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.MySQL是一种开源的关系型数据库管理系统,可将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内,从而 ...

  9. MyBatis 核心配置讲解(上)

    大家好,我是王有志,一个分享硬核 Java 技术的互金摸鱼侠. 前两篇的文章中我们分别介绍了 MyBatis 和 MyBaits 的应用组成,到这里基础篇的内容就结束了. 从今天开始,我们正式进入 M ...

  10. SQL Server实战一:创建、分离、附加、删除、备份数据库

      本文介绍基于Microsoft SQL Server软件,实现数据库创建.分离.附加.删除与备份的方法. 目录 1 交互式创建数据库 2 Transact-SQL指定参数创建数据库 3 交互式分离 ...