Markdown中使用plantuml的探索

问题

由于我经常使用Typora写文档,文档中经常需要插入uml图。
这样操作起来并不方便,能否直接在Typora上画uml图呢?

经过查找之后,发现了一些方法记录一下。

解决方案

http://www.gravizo.com/

这个网站提供了解决方案,但Typora中不是所有方法都支持。

经过测试,使用plantuml格式,可以达到如下效果:

流程图

<img src='https://g.gravizo.com/svg?
@startuml;
(*) --> if "Some Test" then;
  -->[true] "activity 1";
  if "" then;
    -> "activity 3" as a3;
  else;
    if "Other test" then;
      -left-> "activity 5";
    else;
      --> "activity 6";
    endif;
  endif;
else;
  ->[false] "activity 2";
endif;
a3 --> if "last test" then;
  --> "activity 7";
else;
  -> "activity 8";
endif;
@enduml
'>

在这里插入图片描述

但是这里 内部的写法和plantuml写法不一致

时序图

<img src='https://g.gravizo.com/svg?
@startuml;
actor User;
participant "First Class" as A;
participant "Second Class" as B;
participant "Last Class" as C;
User -> A: DoWork;
activate A;
A -> B: Create Request;
activate B;
B -> C: DoWork;
activate C;
C --> B: WorkDone;
destroy C;
B --> A: Request Created;
deactivate B;
A --> User: Done;
deactivate A;
@enduml
'>

在这里插入图片描述
但是这里 内部的写法和plantuml写法也不一致

类图

画类图时遇到了点问题

class Dummy {
  {field} A field (despite parentheses)
  {method} Some method
}

可以被解析
在这里插入图片描述

<img src='https://g.gravizo.com/svg?
@startuml;
Object <|-- ArrayList;
Object : equals();
ArrayList : Object[] elementData;
ArrayList : size();
@enduml
'>

不能被解析
在这里插入图片描述

注意

注意:上面的写法中,每个语句后面要接上 ; ,否则会解析失败。报错no @startuml

后来在github上找到了原因:https://github.com/TLmaK0/gravizo/issues/50
这里的;,相当于一个回车断句

目前解决方案

经过上面的探索。

  1. 每行后面都要加;,加完后语句会引起plantuml在其他ide比如idea上的解析失败,也就是不兼容idea上的plantuml插件
  2. 对类图支持不佳(也许是我没找到正确用法)。

综上还是放弃了在typora是直接编辑plantuml的想法。

所以目前做法是:

  • 对于文档
    typora上写文档

  • 对于uml图
    方案一:idea上用plantuml语法画uml图,右键复制并贴至typora里(我装了picgo),还算不是很复杂
    方案二:http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuU9oICrB0J80 中绘制plantuml图,将生成链接贴进md

docsify

这里要提一下docsify这个博客框架,因为它添加了plantuml的支持,通过```plantuml可直接渲染图片,例如

```plantuml
@startmindmap
* 项目开发系统化建设

** 需求管理
*** 需求分析文档
*** 架构/功能设计文档
*** gitlab issue 看板
*** UI设计文档

** 代码开发
*** 代码仓库
**** gitlab
*** 代码协作
**** git
**** gitlab MR

** 代码质量
*** 测试用例
*** bug扫码插件
*** code review

** 产品
*** 持续测试
*** 持续集成
*** 持续发布
*** 产品存档
*** 产品说明文档

** 运维
*** 线上日志
**** 汇总,分类,查询
*** 线上监控
**** 实时业务状态
**** 异常报警

** 文档
*** 需求分析文档
*** 架构/功能设计文档
*** gitlab issue
*** UI设计文档
*** 产品说明文档
@endmindmap

在这里插入图片描述

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: VSCode是一款非常流行的代码编辑器,也支持Markdown语言的编辑。在VSCode,我们可以使用Markdown语言来编写文档、笔记、博客等等。 使用Markdown语言,我们可以使用一些简单的语法来实现文本的格式化、排版、链接、图片等等。例如,使用#来表示标题,使用*或_来表示斜体或加粗,使用[]和()来表示链接等等。 在VSCode,我们可以使用一些插件来增强Markdown的功能,例如Markdown All in One、Markdown Preview Enhanced等等。这些插件可以帮助我们实现更多的功能,例如自动生成目录、实时预览、导出PDF等等。 总之,VSCode是一款非常强大的代码编辑器,也支持Markdown语言的编辑,使用起来非常方便。 ### 回答2: VS Code是一种非常受欢迎的文本编辑器,可以用来编辑不同种类的文件,包括Markdown文件。Markdown是一种轻量级的标记语言,可以帮助用户更快速、更方便地编写文档。 在VS CodeMarkdown文件的扩展名为“.md”,用户可以像编辑其他文本文件一样,使用VS Code来编辑、保存、打开和关闭Markdown文件。用户可以将Markdown文件的文本转换为HTML格式,这样可以在网页上显示Markdown文件。 使用VS Code编辑Markdown文件时,可以使用很多不同的功能,包括: 1. 编辑器的语法突出显示:VS Code会根据Markdown文件的语法,将不同的关键字标记出来,帮助用户更好地理解文件的内容。 2. 预览功能:VS Code内置了Markdown预览功能,可以帮助用户在编辑文件时实时预览Markdown文件的样式和格式。 3. 快捷键操作:VS Code有很多快捷键操作,可以帮助用户更快速地编辑文本,如快速改变字体、粗体、斜体等。 4. 扩展插件的使用:VS Code还有很多Markdown扩展插件,可以帮助用户更好地编写、编辑、制作和管理Markdown文件。 总的来说,VS Code是一种非常优秀的文本编辑器,可以使用户更高效、更方便地编写Markdown文件。无论是想要创建一个博客、编写一份文档、或者是写作一篇文章,VS Code都是非常好的选择。 ### 回答3: 随着近年来Markdown语法的流行,越来越多的人开始在写作工具使用Markdown语法。在编辑Markdown文档时,一款良好的编辑器是非常重要的。VSCode是一款非常流行的代码编辑器,也支持Markdown语法。 使用VSCode编辑Markdown文档有以下几个步骤: 1. 打开VSCode,点击左侧状态栏的“文件夹”图标,选择一个存放Markdown文档的文件夹。 2. 在文件夹内新建一个Markdown文档,可以使用“.md”作为文件名后缀。 3. 在新建的文档使用Markdown语法编辑文本内容。VSCode对Markdown语法有良好的支持,当输入Markdown特定语法时,VSCode会自动帮助补全语法,并提供语法提示。 4. 在文本编辑区域下方的状态栏,可以选择“Markdown”作为文档类型,这样VSCode会为Markdown文档提供更具有针对性的编辑功能。 5. VSCode提供了插件系统,可以通过安装Markdown插件来为Markdown文档提供更多的编辑功能。在VSCode的扩展商店搜索关键字“Markdown”,会出现许多与Markdown相关的插件,根据需要进行安装即可。 6. 在编辑完成Markdown文档后,可以选择使用VSCode的内置预览功能即可实时预览Markdown文档的渲染效果,点击预览窗口右上角的方框图标可以将预览窗口全屏显示。 总的来说,VSCode对Markdown的支持非常优秀,几乎满足了编辑Markdown文档的所有需要。使用VSCode编写Markdown文档能够让编辑过程更加高效、愉悦。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值