0

0

在HTML文件中嵌入Mermaid图表:完整教程

碧海醫心

碧海醫心

发布时间:2025-12-12 15:06:41

|

985人浏览过

|

来源于php中文网

原创

在html文件中嵌入mermaid图表:完整教程

本教程详细介绍了如何在HTML文件中直接嵌入Mermaid图表。通过引入Mermaid JavaScript库并进行简单的初始化配置,用户可以利用文本语法在网页中渲染出各种精美图表,如流程图、序列图、甘特图等,实现动态且易于维护的文档可视化。

引言:Mermaid与HTML集成的重要性

Mermaid是一个基于JavaScript的图表和流程图工具,它使用类似Markdown的文本语法来创建各种图表,如流程图、序列图、类图、甘特图、状态图等。与传统的图形化工具不同,Mermaid允许用户通过代码来定义图表,这使得图表版本控制、协作和自动化生成变得更加容易。

虽然Mermaid常与Markdown编辑器(如Sublime Text与MarkdownPreview)结合使用,但在许多场景下,我们可能需要将这些图表直接嵌入到HTML页面中,例如在静态网站、在线文档或Web应用程序中。直接在HTML中嵌入Mermaid图表,可以实现更灵活的布局控制、更丰富的交互性,并且无需依赖外部渲染工具即可在浏览器中直接显示。

核心步骤:引入Mermaid库与初始化

要在HTML文件中嵌入Mermaid图表,主要涉及两个步骤:引入Mermaid JavaScript库,以及初始化Mermaid。

立即学习前端免费学习笔记(深入)”;

  1. 引入Mermaid JavaScript库: Mermaid库可以通过CDN(内容分发网络)方便地引入到HTML文件中。通常,我们使用ESM(ECMAScript Modules)版本,因为它提供了更好的模块化和性能。将以下<script>标签放置在HTML文件的<head>或<body>标签的末尾,确保在Mermaid图表内容之前加载。

    <script type="module">
      import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
      // 确保在渲染图表前初始化Mermaid
      mermaid.initialize({ startOnLoad: true });
    </script>

    请注意,CDN链接中的版本号(例如@10)可能会更新,建议使用最新稳定版本。

  2. 初始化Mermaid:mermaid.initialize({ startOnLoad: true })是关键的初始化调用。

    灵云AI开放平台
    灵云AI开放平台

    灵云AI开放平台

    下载
    • mermaid.initialize():这是Mermaid库提供的初始化函数,用于配置Mermaid的行为。
    • startOnLoad: true:这个配置项告诉Mermaid在页面加载完成后自动扫描HTML文档中的Mermaid图表定义,并将其渲染成SVG图形。如果设置为false,则需要手动调用mermaid.render()方法来渲染图表。

编写和渲染Mermaid图表

一旦Mermaid库被引入并初始化,您就可以在HTML文档中编写Mermaid图表语法了。Mermaid会自动查找并渲染这些图表。

Mermaid图表语法通常放置在一个具有特定类名的HTML元素中,例如<pre class="mermaid">或<div class="mermaid">。Mermaid会识别这些元素中的文本内容作为图表定义。

以下是一个完整的HTML文件示例,展示了如何嵌入一个简单的流程图和一个C4组件图:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML中嵌入Mermaid图表示例</title>
    <!-- 引入Mermaid样式,可选,但可以提供更好的默认渲染效果 -->
    <style>
        .mermaid {
            margin: 20px 0;
            text-align: center;
        }
    </style>
</head>
<body>

    <h1>Mermaid图表示例</h1>

    <h2>流程图</h2>
    <pre class="mermaid">
        graph TD
            A[开始] --> B{判断};
            B -- 是 --> C[执行操作1];
            B -- 否 --> D[执行操作2];
            C --> E[结束];
            D --> E;
    </pre>

    <h2>C4组件图</h2>
    <pre class="mermaid">
        C4Component
            title 用户认证组件图
            Component(AuthService, "认证服务", "处理用户登录、注册、授权")
            Component(UserRepository, "用户仓库", "管理用户数据")
            Component(TokenService, "令牌服务", "生成和验证JWT令牌")

            Rel(AuthService, UserRepository, "使用", "查询/保存用户")
            Rel(AuthService, TokenService, "使用", "生成/验证令牌")
    </pre>

    <!-- 引入Mermaid库并初始化,放置在body结束标签前以确保DOM加载完成 -->
    <script type="module">
        import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
        // 初始化Mermaid,使其在页面加载时自动查找并渲染图表
        mermaid.initialize({ startOnLoad: true });
    </script>

</body>
</html>

将上述代码保存为.html文件并在浏览器中打开,您将看到渲染出的流程图和C4组件图。

注意事项与最佳实践

  1. Mermaid版本: 始终关注Mermaid的最新稳定版本。CDN链接中的版本号(如@10)应与您希望使用的版本匹配。新版本可能引入新功能或修复bug。
  2. startOnLoad配置: startOnLoad: true是大多数情况下的便利选项。如果您需要在页面加载后动态添加或修改Mermaid图表,或者需要更精细的控制渲染时机,可以将其设置为false,然后手动调用mermaid.render(id, graphDefinition)方法来渲染特定的图表。
  3. 图表容器: 推荐使用<pre class="mermaid">或<div class="mermaid">作为Mermaid图表的容器。pre标签可以保留图表定义的格式,而div标签则更通用。Mermaid会自动识别这些类名。
  4. 错误处理: 如果Mermaid图表语法有误,Mermaid可能会在控制台输出错误信息,并且图表可能无法正确渲染。检查浏览器的开发者工具(F12)控制台是调试Mermaid图表的常用方法。
  5. 自定义配置: mermaid.initialize()方法接受一个配置对象,允许您自定义Mermaid的行为和外观,例如:
    • theme: 设置图表主题(如default, forest, dark, neutral)。
    • fontFamily: 指定图表使用的字体。
    • securityLevel: 控制图表中的JavaScript和HTML的安全性。
    • flowchart, sequence, gantt等:针对特定图表类型的配置。
      mermaid.initialize({
      startOnLoad: true,
      theme: 'forest', // 使用森林主题
      flowchart: {
          curve: 'basis' // 流程图曲线样式
      }
      });
  6. 本地安装: 对于大型项目或离线环境,您可以选择通过npm安装Mermaid并将其打包到您的项目中,而不是使用CDN。

总结

通过本教程,您应该已经掌握了在HTML文件中直接嵌入Mermaid图表的方法。这种方式不仅简化了图表在Web页面中的集成,还利用了Mermaid的文本定义优势,使得图表维护和更新变得高效。无论是构建技术文档、项目报告还是个人博客,Mermaid与HTML的结合都能为您的内容增添专业的视觉表现力。

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

911

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

32

2025.12.06

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

237

2023.12.07

c语言编程软件有哪些
c语言编程软件有哪些

c语言编程软件有GCC、Clang、Microsoft Visual Studio、Eclipse、NetBeans、Dev-C++、Code::Blocks、KDevelop、Sublime Text和Atom。更多关于c语言编程软件的问题详情请看本专题的文章。php中文网欢迎大家前来学习。

625

2023.11.02

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

67

2025.12.13

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

69

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

109

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

326

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

62

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6.1万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号