当前位置: 首页 > java >正文

一图胜千言:Typora中Mermaid图表语法全解析

目录

一、Mermaid简介与Typora配置

1.1 什么是Mermaid?

1.2 Typora配置

二、6大核心图表语法详解

2.1 流程图(Flowchart)

2.2 时序图(Sequence Diagram)

2.3 类图(Class Diagram)

2.4 甘特图(Gantt)

2.5 状态图(State Diagram)

2.6 饼图(Pie Chart)

三、Typora专属技巧

3.1 实时预览优化

3.2 导出配置

四、常见问题解决方案

五、Mermaid进阶技巧

5.1 自定义样式

5.2 子图嵌套

六、学习资源推荐


一、Mermaid简介与Typora配置

1.1 什么是Mermaid?

        Mermaid是一种基于文本的图表绘制语言,通过简单的语法即可生成流程图时序图甘特图等专业图表,完美兼容Markdown编辑器。

1.2 Typora配置

  1. 版本要求:Typora ≥ 0.9.9(建议升级到最新版)

  2. 启用方式设置 → Markdown → 勾选Mermaid

  3. 渲染模式:实时预览,导出时自动转换为SVG

 


二、6大核心图表语法详解

2.1 流程图(Flowchart)

graph TDA[开始] --> B{条件判断}B -->|是| C[执行操作]B -->|否| D[结束]C --> D

语法说明

  • graph TD:从上到下布局(TB/BT/RL/LR)

  • A[文本]:矩形节点

  • B{文本}:菱形判断节点

  • -->:连接线,可添加|文字|描述


2.2 时序图(Sequence Diagram)

sequenceDiagramparticipant 客户端participant 服务端客户端->>服务端: HTTP请求服务端-->>客户端: JSON响应loop 重试机制客户端->服务端: 失败重试end

语法要点

  • participant:定义参与者

  • ->>:实线箭头,-->>虚线箭头

  • loop:循环区块

  • alt/else:条件分支

 


2.3 类图(Class Diagram)

classDiagramAnimal <|-- Duck : 继承Animal <|-- FishAnimal : +String nameAnimal : +void eat()class Duck{+void swim()}class Fish{+int depth+void dive()}

关键语法

  • <|--:继承关系

  • +:public成员

  • -:private成员

  • #:protected成员

所有关联关系:

classDiagram
classA <|-- classB
classC *-- classD
classE o-- classF
classG <-- classH
classI -- classJ
classK <.. classL
classM <|.. classN
classO .. classP

classA <|-- classB继承关系
classC *-- classD   组合关系
classE o-- classF 聚合关系
classG <-- classH 单向关联关系
classI -- classJ双向关联关系
classK <.. classL依赖关系
classM <|.. classN 实现关系
classO .. classP 关联关系


2.4 甘特图(Gantt)

gantttitle 项目计划dateFormat YYYY-MM-DDsection 设计需求分析 :a1, 2023-08-01, 7d原型设计 : after a1, 5dsection 开发前端开发 :2023-08-10, 10d后端开发 :5d

 

参数说明

  • dateFormat:日期格式

  • section:任务分组

  • after:任务依赖关系

  • 时间单位:d(天)、w(周)、m(月)

 


2.5 状态图(State Diagram)

stateDiagram-v2[*] --> 待机待机 --> 运行 : 启动命令运行 --> 待机 : 停止命令运行 --> 故障 : 异常发生故障 --> [*] : 系统复位

---
title: Simple sample
---
stateDiagram-v2[*] --> StillStill --> [*]Still --> MovingMoving --> StillMoving --> CrashCrash --> [*]

高级特性

  • [*]:初始/终止状态

  • -->:状态转换

  • : 文本:转换条件

  • 支持嵌套状态

 


2.6 饼图(Pie Chart)

pietitle 编程语言使用率"Java" : 42"Python" : 30"JavaScript" : 20"其他" : 8

参数说明

  • 数值自动计算百分比

  • 支持小数:"Java": 42.5

  • 颜色自定义(需CSS支持)

 


三、Typora专属技巧

3.1 实时预览优化

  • 快捷键Ctrl+/切换源码模式

  • 主题适配:自动匹配Typora深色/浅色主题

  • 缩放调整:右键图表 → 缩放级别

3.2 导出配置

# Typora导出PDF设置
mermaid:theme: default # 可选dark/forest/neutralfontFamily: "Microsoft YaHei"sequence:diagramMarginX: 50diagramMarginY: 10
 

四、常见问题解决方案

问题解决方案
图表不渲染检查是否启用Mermaid插件
中文显示乱码添加%%{init: {'theme': 'base', 'themeVariables': { 'fontFamily': '微软雅黑'}}%%
连线文字位置偏移使用--- 文字 ---替代`
导出PDF缺失图表安装pandoc并配置环境变量

五、Mermaid进阶技巧

5.1 自定义样式

graph LRA[黑色背景-红色边框-白色字体] --> B{绿色背景-黑色边框-红色字体}
style A fill: #000000
style A stroke:#FF0000
style A color:#FFFFFF
style B stroke:#000000
style B fill: #008000
style B color:#FF0000

5.2 子图嵌套

flowchart TBsubgraph 子系统AA1 --> A2endsubgraph 子系统BB1 --> B2endA2 --> B1

 


六、学习资源推荐

  1. 官方文档:Mermaid Live Editor

  2. 速查手册:Mermaid Cheatsheet 或是 Mermaid.js指南

  3. Typora教程:官方Mermaid指南

  4. online网站:mermaidchart  或是 中文Mermaid

http://www.xdnf.cn/news/8176.html

相关文章:

  • Qwen3技术报告笔记
  • 《数据结构笔记二》:顺序表
  • 【技术追踪】ADDP:通过交替去噪扩散过程学习用于图像识别和生成的通用表示(ICLR-2024)
  • Java中static关键字深度解析:从入门到高阶实战
  • 碰一碰发视频源码搭建定制化开发详解,支持OEM
  • One-shot和Zero-shot的区别以及使用场景
  • 嵌入式STM32学习——串口USART 2.3(串口发送数据控制LED灯)
  • 一文读懂GRPC
  • Django的请求和响应+template模板
  • CentOS7/Ubuntu SSH配置允许ROOT密码登录
  • LeRobot的机器人控制系统(上)
  • 无人机避障——深蓝学院浙大栅格地图以及ESDF地图内容
  • BlazeMeter录制jmeter脚本
  • 2025年系统架构师---综合知识卷
  • FreeBSD14.2因为爆内存而导致Xfce4视窗被卡,桌面变黑色,只能看到鼠标在窗体中心,鼠标无反应,键盘无反应
  • 03_基础篇-NumPy(下):深度学习中的常用操作
  • deepseek调用
  • QT ui控件setEnabled(false) 作用
  • SpringBoot系列之OpenAI API 创建智能博客评论助手
  • 人工智能培训:解锁未来职场竞争力的核心路径与课程内容解析
  • 【JAVA基础】什么情况下可以直接使用类名.方法名调用方法?
  • 【VLNs篇】05:TGS-在无地图室外环境中使用视觉语言模型进行轨迹生成和选择
  • python实现web请求与响应
  • Java中创建线程的几种方式
  • 【C++/控制台】简易五子棋游戏
  • LeetCode 257. 二叉树所有路径求解:回溯算法的深度解析与实践
  • 力扣热题——罗马数字转整数
  • 降低诊断消息转发延迟与缓冲区内存占用优化方案
  • Ubuntu 通过指令远程命令行配置WiFi连接
  • StickyNotes,简单便签超实用