【MarkDown】CSDN Markdown之思维导图mindmap详解

news2024/12/26 1:01:20

文章目录

  • 思维导图(Mindmap)
    • 一个思维导图的例子
    • 语法
    • 形状
      • 矩形
      • 圆角矩形
      • 圆形
      • 爆炸
      • 云朵
      • 六边形
      • 默认
    • 图标和类
      • 图标
    • 不清晰的缩进
    • Markdown字符串
    • 与库或网站资源集成

思维导图(Mindmap)

Mindmap现在是一个实验性的图表类型。语法和特性可能会在未来版本中更改,除了图标集成部分是实验性的外,语法是稳定的。

“思维导图是一种将思维形象化的方法。我们知道放射性思考是人类大脑的自然思考方式,每一种进入大脑的资料,不论是感觉、记忆或是想法——包括文字、数字、符码、香气、食物、线条、颜色、意象、节奏、音符等,都可以成为一个思考中心,并由此中心向外发散出成千上万的关节点。” – 百度百科

以下所有例子都是在 mermaid v10.2.3 进行测试,CSDN 当前使用 mermaid v8.14.0 不支持此语法

一个思维导图的例子

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
  mindmap
  root((思维导图))
    起源
      悠久的历史
      ::icon(fa fa-book)
      普及
        英国流行心理学作家托尼·布赞
    研究
      关于有效性<br/>和功能
      论自动创造
        用途
          创造性技术
          战略规划
          参数映射
    工具
      笔和纸
      Mermaid
  </pre>
      <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
    </body>
  </html>

在这里插入图片描述

语法

创建Mindmaps的语法很简单,依赖缩进来设置层级结构。

在下面的示例中,您可以看到有3个不同的层级。一个从文本的左侧开始,另一个层级有两行从同一列开始,定义了节点第一级别。最后还有一个层级,节点第二级别 1第二级别 2的文本缩进比的前几行更深。
代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      根节点
          第一级别
              第二级别 1
              第二级别 2
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

简而言之,这是一个简单的文本轮廓,在根级别有一个名为根节点的节点,它有一个子节点第一级别。然后第一级别又有两个子节点第二级别 1第二级别 2。下面是我们渲染的思维导图。

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      根节点
          第一级别
              第二级别 1
              第二级别 2
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

通过这种方式,我们可以使用文本轮廓来生成分层思维导图。

形状

Mermaid思维导图可以使用不同的形状显示节点。当为节点指定形状时,语法与流程图节点类似,使用标识符后跟形状定义,并将文本放在形状分隔符内。在可能的情况下,我们尝试保持与流程图相同的形状,即使它们并非从一开始就全部支持。

Mindmap可以显示以下形状:

矩形

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id[矩形]
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

圆角矩形

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id(圆角矩形)
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

圆形

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id((圆形))
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

爆炸

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id))爆炸((
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

云朵

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id)云朵(
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

六边形

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id{{六边形}}
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

默认

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      默认形状
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

将添加更多形状,从流程图中可用的形状开始。

图标和类

图标

与流程图一样,您可以向节点添加图标,但语法已更新。基于字体的图标的样式是在集成期间添加的,因此它们可用于网页。这不是图表作者可以做的事情,而必须由站点管理员或集成者完成。一旦图标字体就位,您可以使用::icon语法将它们添加到思维导图节点中。将图标的类放置在括号内,如下面的示例所示,其中显示了materialdesignicons.min.cssfont-awesome.min.css的图标。意图是该方法应该用于支持图标的所有图表。

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <link rel="preload stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
      as="style">
    <link rel="preload stylesheet"
      href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
      as="style">
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      根节点
          第一级
          ::icon(fa fa-book)
          第一级(二)
          ::icon(mdi mdi-skull-outline)
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

添加类的语法类似于流程图。你可以使用三个冒号来添加类,后面跟随由空格分隔的一些css类。在下面的例子中,其中一个节点附加了两个自定义类,urgent使背景变红并将文本变为白色和大号字体,从而增加了字体大小:

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>

    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
    <style type="text/css">
      .urgent .node-rect {
          fill: hsl(0deg 100% 50%);;
      }

      .large .text-inner-tspan {
        font-size: large;
        fill: white;
       }
   </style>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      根节点
          A[节点1]
          :::urgent large
          B(节点2)
          节点3
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

这些类需要由网站管理员提供。

不清晰的缩进

实际缩进并不是很重要,只需要与前面的行进行比较即可。如果我们拿上一个例子稍微打乱一下,我们就可以看到计算是如何进行的。让我们从将C放置在B但大于A的缩进较小的位置开始。

mindmap
    根节点
        第一级
            第二级1
          第二级2

这个大纲结构看着不是很清晰,因为第二级1显然是第一级的子节点,但当我们跳转到第二级2时,清晰度就丢失了。第二级2既不是具有更高缩进的第二级1的子节点,也不具有与第二级1相同的缩进。唯一清楚的是,第一个缩进较小的节点,表示父节点是第一级。然后Mermaid依赖于这个已知的真相,并对不清晰的缩进进行补偿并选择第一级作为第二级2的父节点,导致第二级1第二级2成为兄弟节点的相同图表。

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <link rel="preload stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
      as="style">
    <link rel="preload stylesheet"
      href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
      as="style">
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      根节点
          第一级
              第二级1
            第二级2
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

Markdown字符串

“Markdown字符串”功能通过提供更多样化的字符串类型来增强思维导图,它支持文本格式设置选项,如加粗和斜体,并自动在标签内部包装文本。

代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mermaid 思维导图</title>
    <link rel="preload stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
      as="style">
    <link rel="preload stylesheet"
      href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
      as="style">
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js"></script>
  </head>
  <body>
    <pre class="mermaid">
      mindmap
      id1["`**根节点**
  第二行
  使用Unicode: 🤓`"]
        id2["`狗**骑**猪身上... *很长很长的文本* 自动换行到新的一行`"]
        id3[常规标签仍然有效]
    </pre>
    <script>
  const config = {
    startOnLoad: false,
    securityLevel: 'loose',
  };
  mermaid.initialize(config);
</script>
  </body>
</html>

在这里插入图片描述

格式:

  • 要使用粗体文本,请在文本前后使用双星号**。
  • 要使用斜体,请在文本前后使用单个星号*。

在传统的字符串中,你需要添加标签,以使文本包裹在节点中。但是,Markdown字符串在文本过长时会自动换行,并允许你通过简单地使用换行符而不是标签来开始新行。

与库或网站资源集成

Mindmap使用实验性的懒加载和异步渲染功能,这些功能在未来可能会发生变化。从9.4.0版本开始,该图表已被包含在mermaid中,但使用懒加载以保持mermaid的大小。这是非常重要的,以便能够添加更多的图表。

你仍然可以使用9.4.0版本之前的方法将mermaidmindmaps添加到网页中:

<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9.3.0/dist/mermaid.esm.min.mjs';
  import mindmap from 'https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-mindmap@9.3.0/dist/mermaid-mindmap.esm.min.mjs';
  await mermaid.registerExternalDiagrams([mindmap]);
</script>
从9.4.0版本开始,你可以将这段代码简化为:
<script type="module">
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
</script>

你还可以参考这里的实现来查看如何进行异步加载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【UE 从零开始制作坦克】9-坦克瞄准

效果 步骤 1. 将下载的图片资源导入 2. 再新建一个控件蓝图&#xff0c;命名为“WBP_Aim” 打开“WBP_Aim”&#xff0c;拖入图像控件 选择图像控件的锚点如下 偏移全部置0 图像选择刚导入的“miaozhunjing” 3. 打开骨骼“SKEL_West_Tank_M1A1Abrams” 可以看到在炮管上有一个…

房屋装修选择自装,如何寻找选购系统门窗,比价并施工(门窗阶段)

环境&#xff1a; 地点&#xff1a;杭州 装修类型&#xff1a;自装 面积&#xff1a;建面135平方 进度&#xff1a;选购安装铝合金门窗阶段 问题描述&#xff1a; 房屋装修选择自装&#xff0c;如何寻找选购系统门窗&#xff0c;比价并施工 解决方案&#xff1a; 一、了…

暑期托管班招生海报模板 一键就能完成设计

即将到来的暑期&#xff0c;许多的兴趣班也将迎来暑期招生热&#xff0c;那么兴趣班如何设计一幅招生用的招生易拉宝&#xff1f;可以一键生成内容&#xff0c;自定义填写兴趣班的报名方式&#xff0c;课程内容以及联系方式等内容的招生海报制作工具&#xff01;跟着教程一起使…

Rust之泛型、特性和生命期(三):Traits:定义共同的行为

开发环境 Windows 10Rust 1.70.0 VS Code 1.79.2 项目工程 这里继续沿用上次工程rust-demo Traits&#xff1a;定义共同的行为 Trait定义了一个特定类型所具有的功能&#xff0c;并且可以与其他类型共享。我们可以使用特质以抽象的方式来定义共享行为。我们可以使用特质的界…

低学历又如何?我这样的程序员照样可以逆袭

今天分享的这个主题&#xff0c;很可能会带来争议&#xff0c;因为目前优秀毕业生0年就可以拿到 20K 的待遇&#xff0c;这里暂且抛开硕士&#xff0c;985&#xff0c;211的 Top 前几高学校本科生。 毕竟今天的主题的初衷是地点低的程序员如何才能 2-3 年实现 20K 的目的&…

mysql根据一个表的数据更新另一个表数据的SQL写法

目录 问题描述解决办法&#xff08;推荐第三种&#xff09; 问题描述 概述&#xff1a;用一个表中的字段去更新另外一个表中的字段&#xff0c; MySQL 中有相应的 update 语句来支持&#xff0c;不过这个 update 语法有些特殊。看一个例子就明白了。 解决办法&#xff08;推…

机器学习笔记 - 基于MobileNetV2的迁移学习训练关键点检测器

一、下载数据集 StanfordExtra数据集包含12000张狗的图像以及关键点和分割图图。 GitHub - benjiebob/StanfordExtra:12k标记的野外狗实例,带有2D关键点和分割。我们的 ECCV 2020 论文发布的数据集:谁把狗排除在外?3D 动物重建,循环中期望最大化。https://github.com/benj…

驱动模块和printk函数

目录 1. 驱动模板 1.1. 在源码工程路径下创建.c文件 1.2. 编写驱动模板 1.3. 将模板放到ubuntu上 1.4. 书写Makefile 1.5. 编译和安装 2. printk 2.1. Source Insight查找命令 2.2. printk讲解 2.2.1. 分析函数 2.2.2. 编写代码 2.3. 拓展 2.3.1. 关于printk函数测…

《人工智能.一种现代方法》原版精读思维导读-第一章

目录 书籍 前言部分 封面故事 完整目录 1. Intruduction简介 Whats AI The Foundations of AI The History of AI The State of the Art Risks and Benefits of AI Summary 2. Intelligent Agents 书籍 人工智能.一种现代方法 Artificial Intelligence. The Moder…

ArcGis系列-坐标系转换

Arcgis的工程项目可以添加各种类型的空间资源&#xff0c;比如数据库空间表、shp文件&#xff0c;每张空间表的坐标系可能都会有差异&#xff0c;把他们放到一个工程里时可以统一设置坐标系。 本文将介绍ArcGis三个需要坐标转换的场景&#xff1a; Arcgis Pro设置项目坐标GP分…

WPy64的Python开发环境中安装pinyin库方法举例和应用

WPy64的Python开发环境中安装拼音库&#xff08;pypinyin&#xff09;方法举例和应用 在Python开发环境中安装拼音库后&#xff0c;我们就可以实现对汉字的注音显示。下面以WPy64为例子&#xff0c;讲解pypinyin库的安装方法。 步骤&#xff1a; 一、找到WPy64所安装的目录中…

Vue中如何进行分布式事务管理与分布式事务解决方案

Vue中如何进行分布式事务管理与分布式事务解决方案 在分布式系统中&#xff0c;事务管理是一个非常重要的问题。如果没有良好的事务管理&#xff0c;分布式系统可能会导致数据不一致的问题。本文将介绍Vue中如何进行分布式事务管理以及分布式事务解决方案。 什么是分布式事务&…

二叉搜索树(Binary Search Tree)的模拟实现

前言 为什么要学习二叉搜索树呢&#xff1f;因为set 和 map的底层实际上就是一颗二叉搜索树&#xff0c;只不过是被进行了一些特殊的处理&#xff0c;所有了解二叉搜索树的底层实现有利于我们更好的理解的map和set的原理。二叉搜索树又叫二叉排序树&#xff0c;它或者是一颗空树…

数据库系统概述——第二章 关系数据库(知识点复习+练习题)

&#x1f31f;博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;离散数学考前复习&#xff08;知识点题&#xff09; &#x1f353;专栏&#xff1a;概率论期末速成&#xff08;一套卷&#xff09; &#x1f433;专栏&#xff1a;数字电路考前复习 &#x1f99a;专栏&am…

SpringBoots利用redis实现防止接口幂等性重复提交

目录 什么是幂等性&#xff1f; 应用场景分析 解决办法 实际使用 什么是幂等性&#xff1f; 接口的幂等性就是用户对于同一个操作发起的一次请求或者多次请求的结果都是一致的&#xff0c;不会因为多次点击而产生副作用&#xff0c;比如说经典的支付场景&#xff1a;用户购…

一款超级给力的弱网测试神器—Qnet(上)

一、APP弱网测试背景 App在使用的过程中&#xff0c;难免会遇到不同的弱网络环境&#xff0c;像在公车上、在地铁、地下车库等。在这种情况下&#xff0c;手机常常会出现网络抖动、上行或下行超时&#xff0c;导致APP应用中出现丢包延迟&#xff0c;从而影响用户体验。 作为软…

推荐10款测试员常用的单元测试工具

前言 随着DevOp的不断流行&#xff0c;自动化测试慢慢成为Java开发者的关注点。因此&#xff0c;本文将分享10款优秀的单元测试框架和库&#xff0c;它们可以帮助Java开发人员在其Java项目上编写单元测试和集成测试。 1. JUnit 我绝对JUnit不需要太多的介绍了。即使您是Java…

Spring Security OAuth2.0认证授权 --- 高级篇

六、OAuth2.0 6.1、OAuth2.0介绍 OAuth&#xff08;开放授权&#xff09;是一个开放标准&#xff0c;允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息&#xff0c;而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth协议的延续…

基于Python接口自动化测试框架(初级篇)附源码

目录 引言 框架设计思路 框架结构 运行程序 总结 总结&#xff1a; 引言 很多人都知道&#xff0c;目前市场上很多自动化测试工具&#xff0c;比如&#xff1a;Jmeter&#xff0c;Postman&#xff0c;TestLink等&#xff0c;还有一些自动化测试平台&#xff0c;那为啥还要…

【Unity Shader】从入门到感慨万千(2)用C#画一个立方体

文章目录 一、构成一个立方需要多少个顶点?二、定义三角面的索引数组:三、定义UV坐标数组:四、最后构建Mesh:五、完整代码:一、构成一个立方需要多少个顶点? 这个问题是面试经常被问到的题。如上图,我们知道在几何中立方体有6个面,8个顶点。但在图形学中,顶点指的是模…