Skip to content
Go back

Excalidraw 白板:在博客中嵌入手绘风格图表

学习如何在博客文章中集成 Excalidraw 手绘风格白板,包括嵌入方式、场景 URL 及最佳实践。

Excalidraw 是一个虚拟白板工具,可以生成手绘风格的图表。它非常适合技术插图、架构图和可视化解释,给人一种亲切自然的感觉。


什么是 Excalidraw?

Excalidraw 是一个开源虚拟白板,具有以下核心特性:

它被广泛用于技术博客、文档和架构设计中。


集成方式

在本博客中有两种方式嵌入 Excalidraw:

方式一:Markdown 指令(推荐)

使用 :::excalidraw 指令直接在任何 Markdown 文件中嵌入:

:::excalidraw{src="https://excalidraw.com/#json=..." height="500px"}
markdown

此指令会自动处理响应式尺寸、深色模式和加载状态。无需导入——在 .md.mdx 文件中均可使用。

方式二:iframe 嵌入(备选)

当指令不可用时,直接使用 HTML iframe:

<iframe
  src="https://excalidraw.com/#json=YOUR_SCENE_DATA"
  width="100%"
  height="500"
  style="border: none; border-radius: 8px;"
  title="Excalidraw 图表"
></iframe>
html

使用 Excalidraw 指令

:::excalidraw 指令提供最丰富的集成体验。完整 API 如下:

:::excalidraw{src="https://excalidraw.com/#json=..." height="500px"}
markdown

指令属性

属性类型默认值说明
srcstring必填Excalidraw 场景 URL
heightstring"400px"嵌入容器的高度

如何获取场景 URL

  1. 访问 excalidraw.com
  2. 创建你的图表
  3. 点击 分享 按钮(或使用 Ctrl+Shift+E
  4. 选择 可分享链接
  5. 复制 URL — 完整的场景数据编码在 URL 的哈希片段中

URL 格式如下:

https://excalidraw.com/#json=eyJlbGVtZW50cyI6W...
plaintext

实时演示

以下是使用指令嵌入的 Excalidraw 白板:

Tip

指令会自动处理懒加载和响应式尺寸,无需手动添加 loading="lazy"width 属性。


创建可分享的场景

分步指南

  1. 打开 Excalidraw — 访问 excalidraw.com
  2. 绘制图表 — 使用工具栏添加形状、箭头、文字
  3. 导出为链接 — 点击分享图标,选择”可分享链接”
  4. 复制 URL — 场景数据编码在 URL 哈希中
  5. 粘贴到文章中 — 使用 :::excalidraw 指令并传入场景 URL

场景数据格式

Excalidraw 将场景数据编码为 JSON 格式放在 URL 哈希中。一个最小场景如下:

此 JSON 会经过 Base64 编码后作为哈希片段附加到 URL 中。


示例场景

场景 1:简单架构图

一个典型的 Web 应用架构,包含客户端、服务器和数据库层:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   浏览器     │────▶│   服务器     │────▶│   数据库     │
│  (React/Vue) │◀────│  (Node.js)  │◀────│ (PostgreSQL)│
└─────────────┘     └─────────────┘     └─────────────┘
       │                    │
       ▼                    ▼
┌─────────────┐     ┌─────────────┐
│    CDN      │     │    缓存     │
│ (Cloudflare)│     │   (Redis)   │
└─────────────┘     └─────────────┘
plaintext

在 Excalidraw 中,这些会用手绘风格的矩形和箭头绘制,呈现出友好的白板效果。

场景 2:数据流图

用户输入 ──▶ 数据校验 ──▶ 业务处理 ──▶ 数据存储
   │            │            │           │
   ▼            ▼            ▼           ▼
 UI 表单     Schema 检查   数据转换     数据库
                │            │
                ▼            ▼
           错误提示      事件队列 ──▶ 消息通知
plaintext

场景 3:组件层级

            App
          /  |  \
     Header Main Footer
       |     |      |
     Nav   Content  Links
    / | \    |
  Logo 菜单 搜索
           / | \
      文章 标签 分类
plaintext

这些 ASCII 图示展示了你在 Excalidraw 中可以创建的图表类型。手绘风格使它们非常适合在博客中解释概念,而不像正式的 UML 图那样生硬。


技巧与最佳实践

设计技巧

性能技巧

无障碍技巧

Note

通过 URL 分享的 Excalidraw 场景是端到端加密的。只有拥有准确链接的人才能查看内容。服务器永远看不到未加密的场景数据。


延伸阅读



上一篇
Asciinema 终端回放
下一篇
Markdown 基础:完整语法指南

评论区

文明评论,共建和谐社区