【语法】【Plantuml】思维导图基础语法

思维导图简介

基本语法与结构

PlantUML 思维导图的基本结构由 @startmindmap@endmindmap 标记定义。节点层级则通过星号 * 的数量来表示。

plantuml 复制代码
@startmindmap
* 中心主题
** 一级分支1
*** 二级分支1.1
*** 二级分支1.2
** 一级分支2
*** 二级分支2.1
@endmindmap

你也可以使用 +- 来创建新分支,符号的数量表示层级关系。

思维导图样式定制

为了让思维导图更美观,PlantUML 提供了丰富的样式定制选项。

颜色设置

为整个节点或特定节点设置颜色:

plantuml 复制代码
@startmindmap
*[#Orange] 中心主题
**[#lightgreen] 一级分支1
***[#FFBBCC] 二级分支1.1
***[#lightblue] 二级分支1.2
**[#lightgreen] 一级分支2
@endmindmap

样式块定义

通过 <style> 块,你可以定义更精细和可复用的样式:

plantuml 复制代码
@startmindmap
<style>
mindmapDiagram {
  FontName "SimHei, Microsoft YaHei, WenQuanYi Micro Hei"  /* 设置字体 */
  RoundCorner 10  /* 圆角 */
  shadowing 2.0   /* 阴影 */
}
rootNode {
  FontSize 20
  FontColor #FFFFFF
  BackgroundColor #DC143C  /* 中心主题颜色 */
}
firstlevel>node {
  BackgroundColor #FFEBEE  /* 一级分支背景色 */
}
secondlevel>node {
  BackgroundColor #FFFFFF  /* 二级分支背景色 */
}
</style>
* 中心主题
** 一级分支
*** 二级分支
@endmindmap

去除节点外边框

在节点文本前加上下划线 _ 可以去除该节点的外边框:

plantuml 复制代码
@startmindmap
* 中心主题
** 一级分支
***_ 无边框的子节点
@endmindmap

思维导图高级功能

多行内容表示

对于需要多行文本的节点,可以使用 : 开始,; 结束。注意,目前若要使用 :; 本身作为内容,只能用 * 新建分支。

plantuml 复制代码
@startmindmap
* 多行内容示例
**: 这是一个多行节点;
   这是第二行内容;
   这是第三行内容;
@endmindmap

添加图标

PlantUML 支持使用语法 <&ICON_NAME> 在节点中添加图标。

plantuml 复制代码
@startmindmap
* 图标示例
** <&heart> 带爱心的节点
** <&star> 带星星的节点
@endmindmap

使用列表

你可以在节点中创建列表:

plantuml 复制代码
@startmindmap
* 列表示例
**:
*** 无序列表
** * 项目一
** * 项目二
**:
*** 有序列表
** # 第一项
** # 第二项
;
@endmindmap

生成思维导图

编写好 PlantUML 代码后,你可以通过以下方式生成思维导图图片:

  1. 在线生成:访问 http://www.plantuml.com/plantuml/,将代码粘贴到文本框,图片会自动生成。
  2. 本地生成
    • 安装 Visual Studio Code。
    • 在 VS Code 的扩展商店中搜索并安装 "PlantUML" 插件。
    • 新建一个 .puml.wsd 文件,粘贴代码。
    • 按下 Alt + D (Windows/Linux) 或 Opt + D (macOS) 即可预览。

思维导图实践建议

  • 先规划结构:在开始编写代码前,最好先规划好思维导图的整体结构和层级,这能让你更高效地编写 PlantUML 代码。
  • 保持简洁:尽量避免过于复杂的嵌套,确保思维导图的清晰度和可读性。
  • 样式复用:对于一系列风格统一的思维导图,可以定义通用的样式块,方便复用和维护。
  • 版本控制:由于 PlantUML 文件是纯文本,非常适合用 Git 等版本控制系统进行管理,可以追踪思维导图的变更历史。

--

相关推荐
我先去打把游戏先35 分钟前
ESP32学习笔记(基于IDF):ESP32连接MQTT服务器
服务器·笔记·单片机·嵌入式硬件·学习·esp32
deng-c-f4 小时前
Linux C/C++ 学习日记(29):IO密集型与CPU密集型、CPU的调度与线程切换
linux·学习·线程·cpu·io密集·cpu密集
四谎真好看5 小时前
Java 黑马程序员学习笔记(进阶篇18)
java·笔记·学习·学习笔记
洋洋的笔记5 小时前
银行测试学习计划
学习
Allan_20256 小时前
数据库学习
数据库·学习
报错小能手6 小时前
linux学习笔记(43)网络编程——HTTPS (补充)
linux·网络·学习
报错小能手6 小时前
linux学习笔记(45)git详解
linux·笔记·学习
百锦再7 小时前
Vue Scoped样式混淆问题详解与解决方案
java·前端·javascript·数据库·vue.js·学习·.net
Larry_Yanan7 小时前
QML学习笔记(四十四)QML与C++交互:对QML对象设置objectName
开发语言·c++·笔记·qt·学习·ui·交互
Jeled8 小时前
AI: 生成Android自我学习路线规划与实战
android·学习·面试·kotlin