用 Markdown 画图 #
Typora 支持一些用于图表的 Markdown 扩展。
当导出为 HTML、PDF、epub、docx 时,那些渲染过的图表也会被包括在内,但在当前版本中,当把 markdown 导出为其他文件格式时,不支持图表功能。此外,你也应该注意到,标准的 Markdown、CommonMark 或 GFM 都不支持图表。因此,我们仍然建议你插入这些图表的图像,而不是直接在 Markdown 中写它们。
序列图(Sequence Diagrams) #
这个功能使用 js-sequence (opens new window) ,它把下面的代码块渲染成一个图表。
```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
```
更多细节,请参见语法解释 (opens new window)。
序列图选项 #
你可以改变CSS变量--sequence-theme
来设置序列图的主题,支持的值是simple
(默认)和hand
。
流程图(Flowcharts) #
这个功能使用flowchart.js (opens new window),它将以下代码块变成了一个渲染的图表。
```flow
st=>start: Start
op=>operation: Your Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
```
Mermaid #
Typora 还与mermaid (opens new window)集成,它支持顺序图、流程图、甘特图、类图和状态图以及饼图。
序列图 #
更多细节见这些说明 (opens new window)。
```mermaid
%% Example of sequence diagram
sequenceDiagram
Alice->>Bob: Hello Bob, how are you?
alt is sick
Bob->>Alice: Not so good :(
else is well
Bob->>Alice: Feeling fresh like a daisy
end
opt Extra response
Bob->>Alice: Thanks for asking
end
```
流程图 #
更多细节见这些说明 (opens new window)。
```mermaid
graph LR
A[Hard edge] -->B(Round edge)
B --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
```
甘特图 #
更多细节见这些说明 (opens new window)。
```mermaid
%% Example with selection of syntaxes
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
```
类图 #
更多细节见这些说明 (opens new window)。
```mermaid
classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
```
状态图 #
更多细节见这些说明 (opens new window)。
```mermaid
stateDiagram
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
```
饼图 #
```mermaid
pie
title Pie Chart
"Dogs" : 386
"Cats" : 85
"Rats" : 150
```
需求图(Requirement Diagram) #
需求图提供了需求及其相互之间以及其他已记录元素之间的连接的可视化。建模规范遵循SysML v1.6定义的规范。
更多细节见这些说明 (opens new window)。
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
Git 图(Gitgraph Diagrams) #
Git 图是 git 提交和 git 操作(命令)在各个分支上的图形表示。
更多细节见这些说明 (opens new window)。
gitGraph
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
C4 图(plantUML 兼容) #
Mermaid 的 c4 图语法与 plantUML 兼容。
更多细节见这些说明 (opens new window)。
思维导图 #
(此功能需要 Typora ≥ 1.5.0)思维导图是一种图表,用于将信息直观地组织成层次结构,显示整体各部分之间的关系。它通常是围绕一个单一的概念创建的,在空白页的中心绘制为图像,并向其中添加相关的想法表示,例如图像、文字和部分文字。主要思想直接与中心概念相关,其他思想从这些主要思想中分支出来。
更多细节见这些说明 (opens new window)。
mindmap
root((mindmap))
Origins
Long history
::icon(fa fa-book)
Popularisation
British popular psychology author Tony Buzan
Research
On effectiveness<br/>and features
On Automatic creation
Uses
Creative techniques
Strategic planning
Argument mapping
Tools
Pen and paper
Mermaid
全局选项 #
概述 #
你可以通过添加自定义CSS (opens new window)来改变Mermaid选项,支持的选项包括。
:root {
--mermaid-theme: default; /*or base, dark, forest, neutral, night */ --mermaid-font-family:"trebuchet ms", verdana, arial, sans-serif; --mermaid-sequence-numbers: off; /* or "on", see https://mermaid-js.github.io/mermaid/#/sequenceDiagram?id=sequencenumbers*/ --mermaid-flowchart-curve: linear /* or "basis", see https://github.com/typora/typora-issues/issues/1632*/; --mermaid-gantt-left-padding:75; /* see https://github.com/typora/typora-issues/issues/1665*/
}
请注意,如果你用其他主题导出文件,而不是当前使用的主题,一些美人鱼选项将不应用于导出的 HTML/ PDF/ 图片。例如,如果你目前使用的是 Github,但在导出 PDF 时,你为 PDF 导出设置了主题 YYY,而 YYY.css 定义了 --mermaid-sequence-numbers: on
,那么 --mermaid-sequence-numbers: on
将不会应用于导出的 PDF。
主题 #
增加了 --mermaid-theme
css 变量,可以快速定义适合你的主题的美人鱼主题,数值可以是 base
, default
, dark
, forest
, neutral
, night
(夜间主题中使用的那个),例如。
:root {--mermaid-theme:dark;}
.
:root {--mermaid-theme:neutral;}
.
:root {--mermaid-theme:forest;}
.
自动编号 #
Custom CSS (opens new window) 在 --mermaid-sequence-numbers: on;
,将启用 mermaid 中的序列自动编号。
流程图曲线 #
添加 --mermaid-flowchart-curve: basis
,以获得其他类型的曲线。
Gantt Padding #