Hexo-Next 主题的图形工具 -- Mermaid
摘要
-
Mermaid 是一个支持在Markdown文档中绘制流程图、甘特图、序列图等图形的工具。它基于JavaScript实现,能够将Markdown中的元素渲染成HTML元素,从而在网页上直观地展示各种图表
-
本文介绍如何在
Hexo-Next
主题中使用Mermaid
配置和使用方法
-
NexT config file 中找到
mermaid
配置,并设置为true
,theme
可以设置浅色和深色背景的样式,共有4个可用选项
1 | mermaid: |
-
使用方法,其中mermaid与endmermaid是固定搭配,type 用于设置图形的种类,如流程图、时序图、甘特图等,下面示例中会介绍
1 | {% mermaid type %} |
-
有些小伙伴喜欢使用代码块的形式,使用时去掉前面的
#
1 | #```mermaid |
-
但是此时需要在 Hexo config file 中找到
highlight
,并添加如下内容,才会使代码块的形式生效
1 | highlight: |
图形示例
-
这里只介绍常用的一些图表,更多图表的使用方法可以参考Mermaid帮助文档
Flowchart
-
用于绘制流程图,支持方向(例如从左到右、从上到下)和节点间关系的定义。
-
type 为
"graph TD"
或者"graph LR"
,分别表示从上到下和从左到右的方向
1 | - 流程图方向: |
-
"graph TD"
:从上到下
1 | {% mermaid graph TD %} |
-
效果
-
说明
1 | graph TD,定义一个从上到下的流程图。 |
-
"graph LR"
:从左到右
1 | {% mermaid graph LR %} |
-
效果
-
说明
1 | graph LR,定义流程图的方向是从左到右(Left to Right)。 |
Sequence Diagram
-
用于绘制时序图,显示多个实体之间的交互关系,包括消息、时间、状态和数据交换。
-
type 为
"sequenceDiagram"
1 | {% mermaid sequenceDiagram %} |
-
效果
-
说明
1 | 基本结构说明 |
Class Diagram
-
用于绘制类图,显示对象之间的关系,包括继承、关联、依赖等。
-
type 为
"classDiagram"
1 | {% mermaid classDiagram %} |
-
效果
-
说明
1 | 基本结构 |
State Diagram
-
用于绘制状态图,显示对象的状态转移和行为。
-
type 为
"stateDiagram"
1 | {% mermaid stateDiagram %} |
-
效果
-
说明
1 | 基本结构 |
Entity Relationship Diagram
-
用于绘制实体关系图,显示实体之间的关系,包括关联、依赖等。
-
type 为
"erDiagram"
1 | {% mermaid erDiagram %} |
-
效果
-
说明
1 | 基本结构 |
Gantt Chart
-
用于绘制甘特图,显示任务计划、进度和资源分配。
-
type 为
"gantt"
1 | {% mermaid gantt %} |
-
效果
-
说明
1 | 基本结构 |
Pie Chart
-
用于绘制饼状图,显示数据分布情况。
-
type 为
"pie"
1 | {% mermaid pie showData %} |
-
效果
-
说明
1 | 基本结构 |
XY Chart
-
用于绘制 XY 轴图(柱状图和折线图),显示数据分布和趋势。
-
type 为
"xychart-beta"
,目前 xychart-beta 还处在改进阶段
1 | {% mermaid xychart-beta %} |
-
效果
-
说明
1 | 代码结构解析 |
Journey Diagram
-
用于绘制旅程图,显示用户的体验流程,包括用户进入系统、操作、退出系统等。
-
type 为
"journey"
1 | {% mermaid journey %} |
-
效果
-
说明
1 | 基本结构 |
Requirement Diagram
-
用于绘制需求图,显示系统的功能需求和依赖关系。
-
type 为
"requirementDiagram"
1 | {% mermaid requirementDiagram %} |
-
效果
-
说明
1 | 基本结构 |
Gitgraph Diagram
-
用于绘制Git图,显示代码仓库的提交历史和分支关系。
-
type 为
"gitgraph"
1 | {% mermaid gitGraph %} |
-
效果
-
说明
1 | 基本结构 |
Mindmap
-
用于绘制思维导图,显示主题和子主题之间的 hierarchical 关系。
-
type 为
"mindmap"
1 | {% mermaid mindmap %} |
-
效果
-
说明
1 | 基本结构 |
QuadrantChart
-
用于绘制象限图,显示不同维度之间的比较关系。
-
type 为
"quadrantChart"
1 | {% mermaid quadrantChart %} |
-
效果
-
说明
1 | 基本结构 |
-
初始化配置
- quadrantChart:自定义象限图的相关参数
参数 描述 默认值 chartHeight 图表的高度 500 chartWidth 图表的宽度 500 pointLabelFontSize 点文本字体大小 12 pointRadius 要绘制的点的半径 5 pointTextPadding 点和下面文本之间的填充 5 quadrantExternalBorderStrokeWidth 象限外边框描边宽度 2 quadrantInternalBorderStrokeWidth 象限内的边框描边宽度 1 quadrantLabelFontSize 象限文本字体大小 16 quadrantPadding 所有象限外的填充 5 quadrantTextTopPadding 当文本绘制在顶部时象限文本顶部填充(那里没有数据点) 5 titlePadding 标题的顶部和底部填充 10 titleFontSize 标题字体大小 20 xAxisLabelPadding x 轴文本的顶部和底部填充 5 xAxisLabelFontSize X 轴文本字体大小 16 xAxisPosition x 轴的位置(顶部、底部)如果有点,则 x 轴将始终渲染在底部 ‘top’ yAxisLabelPadding y 轴文本的左右填充 5 yAxisLabelFontSize Y 轴文本字体大小 16 yAxisPosition y 轴位置(左、右) ‘left’ -
themeVariables: 图表主题配色
参数 描述 quadrant1Fill 右上象限的填充颜色 quadrant2Fill 左上象限的填充颜色 quadrant3Fill 左下象限的填充颜色 quadrant4Fill 右下象限的填充颜色 quadrant1TextFill 右上象限的文本颜色 quadrant2TextFill 左上象限的文本颜色 quadrant3TextFill 左下象限的文本颜色 quadrant4TextFill 右下象限的文本颜色 quadrantPointFill 点填充颜色 quadrantPointTextFill 点文本颜色 quadrantXAxisTextFill X 轴文本颜色 quadrantYAxisTextFill Y 轴文本颜色 quadrantInternalBorderStrokeFill 象限内边框颜色 quadrantExternalBorderStrokeFill 象限外边框颜色 quadrantTitleFill 标题颜色