Tích hợp Mermaid vào Draw.io: Hướng dẫn cài đặt và sử dụng plugin đồ họa mã nguồn mở

Draw.io — công cụ vẽ sơ đồ trực quan mạnh mẽ — trở nên linh hoạt hơn bao giờ hết khi kết hợp với ngôn ngữ biểu đồ dạng văn bản Mermaid. Plugin drawio-mermaid-plugin cho phép người dùng tạo tự động các sơ đồ kỹ thuật chuyên sâu chỉ bằng vài dòng mã, mà không cần thao tác kéo-thả thủ công.

Tại sao nên dùng Mermaid thay vì vẽ thủ công?

Khi làm việc với kiến trúc hệ thống, tài liệu thiết kế hoặc báo cáo dự án, việc duy trì tính nhất quán và khả năng cập nhật nhanh là ưu tiên hàng đầu. Mermaid giải quyết điều này qua mô hình "mã = biểu đồ": mỗi đoạn mã tương ứng một sơ đồ có thể tái sử dụng, kiểm soát phiên bản, và render tức thì. Ưu điểm nổi bật:

  • Thời gian triển khai giảm 70%: Không cần căn chỉnh node, đường nối hay khoảng cách thủ công.
  • Hợp tác hiệu quả: Mã Mermaid dễ review trong PR, tích hợp mượt với Git.
  • Tương thích đa nền tảng: Cùng một đoạn mã hoạt động trên Draw.io Desktop, GitHub, GitLab và nhiều trình soạn thảo hỗ trợ Mermaid.

Cài đặt plugin trong 3 bước

1. Clone và chuẩn bị môi trường

Mở terminal và thực hiện:

git clone https://gitcode.com/gh_mirrors/dr/drawio_mermaid_plugin.git
cd drawio_mermaid_plugin/drawio_desktop

2. Xây dựng tệp plugin

Chạy lệnh để biên dịch gói:

npm ci
npm run build

Sau khi hoàn tất, tệp dist/mermaid-plugin.webpack.js sẽ sẵn sàng để cài đặt.

3. Kích hoạt trong Draw.io Desktop

  1. Mở Draw.io → chọn Extras > Plugins...
  2. Nhấn Add, sau đó chọn Select File...
  3. Duyệt đến dist/mermaid-plugin.webpack.js và xác nhận
  4. Nhấn Apply, rồi khởi động lại ứng dụng

Tạo sơ đồ đầu tiên: Flowchart cơ bản

Sau khi khởi động lại, bạn sẽ thấy tab Mermaid mới ở thanh công cụ trái. Thử tạo sơ đồ quy trình đơn giản:

  1. Kéo mẫu Flowchart TD vào vùng vẽ
  2. Nhấp đúp để mở trình soạn thảo nội dung
  3. Nhập đoạn mã sau:
flowchart TD
    A[Khởi tạo] --> B[Xử lý dữ liệu]
    B --> C{Kiểm tra lỗi?}
    C -- Yes --> D[Log lỗi]
    C -- No --> E[Trả kết quả]

Di chuyển con trỏ ra ngoài ô soạn thảo — sơ đồ sẽ được render tự động.

Hỗ trợ đa dạng loại sơ đồ

Plugin cung cấp hơn 10 kiểu biểu đồ, mỗi loại phục vụ mục đích riêng:

Sequence Diagram (tương tác theo thời gian)

Phù hợp mô tả luồng gọi giữa các thành phần trong hệ thống phân tán:

sequenceDiagram
    participant C as Client
    participant S as Server
    C->>S: HTTP POST /api/v1/users
    S-->>C: 201 Created + ID

Class Diagram (mô hình hướng đối tượng)

Thể hiện cấu trúc lớp, thuộc tính và quan hệ kế thừa/tương tác:

classDiagram
    Animal <|--- Dog
    Animal <|--- Cat
    class Animal {
        +String name
        +void breathe()
    }

Gantt Chart (lịch trình dự án)

Quản lý tiến độ công việc theo mốc thời gian rõ ràng:

gantt
    title Dự án Hệ thống Báo cáo
    dateFormat YYYY-MM-DD
    section Backend
    API Integration :done, des1, 2024-06-01, 7d
    section Frontend
    Dashboard UI :active, des2, 2024-06-10, 10d

Tùy chỉnh nâng cao

Sau khi render, sơ đồ vẫn giữ nguyên tính tương tác như các đối tượng Draw.io gốc:

  • Chọn node → điều chỉnh màu nền, viền, font qua Format Panel bên phải
  • Kết hợp với shape tiêu chuẩn (ví dụ: thêm chú thích bằng text box, đánh dấu cảnh báo bằng icon)
  • Sử dụng %%{init: { 'theme': 'forest' }}%% để đổi chủ đề toàn cục

Xử lý sự cố thường gặp

Vấn đềCách khắc phục
Không xuất hiện tab Mermaid sau cài đặtKiểm tra lại đường dẫn tệp plugin, đảm bảo đã chạy npm run build và khởi động lại Draw.io
Sơ đồ không hiển thị hoặc lỗi cú phápDán mã vào Mermaid Live Editor để kiểm tra và sửa lỗi trước khi đưa vào Draw.io
Cần cập nhật phiên bản mới nhấtChạy git pull && npm run build trong thư mục dự án, sau đó thay thế tệp plugin cũ

Chiến lược sử dụng hiệu quả

  • Lưu trữ file .mmd trong thư mục /docs/diagrams/ của dự án để đồng bộ cùng source code
  • Tạo thư viện mẫu riêng: templates/ chứa các sơ đồ phổ biến như CI/CD pipeline, microservice mesh, DB schema…
  • Tự động hóa: Dùng script Python hoặc GitHub Actions để sinh PDF/SVG từ file Mermaid trong quy trình CI

Thẻ: drawio mermaid diagram-as-code visual-programming open-source-tools

Đăng vào ngày 20 tháng 5 lúc 22:21