Hướng dẫn đầy đủ về sơ đồ Mermaid

Học cách tạo sơ đồ chuyên nghiệp với cú pháp văn bản đơn giản

Quảng cáo

Mermaid là gì?

Mermaid là công cụ vẽ sơ đồ và biểu đồ dựa trên JavaScript, sử dụng các định nghĩa văn bản lấy cảm hứng từ Markdown để tạo và chỉnh sửa sơ đồ một cách động. Đây là một dự án mã nguồn mở cho phép bạn tạo sơ đồ từ các mô tả văn bản đơn giản.

Thay vì dùng công cụ vẽ phức tạp, bạn viết cú pháp giống mã để mô tả sơ đồ, và Mermaid sẽ kết xuất nó thành sơ đồ trực quan. Cách tiếp cận này giúp sơ đồ có thể quản lý phiên bản, dễ cập nhật và rất phù hợp cho tài liệu.

Mermaid tích hợp liền mạch với các nền tảng tài liệu, wiki và tệp Markdown, nên được các nhà phát triển và người viết kỹ thuật ưa chuộng.

Vì sao nên dùng Mermaid?

  • Kiểm soát phiên bản: sơ đồ là tệp văn bản nên có thể theo dõi trong Git cùng với mã
  • Cập nhật nhanh: thay đổi vài dòng văn bản thay vì vẽ lại toàn bộ sơ đồ
  • Tính nhất quán: Mermaid tự động xử lý bố cục và kiểu dáng để đảm bảo sơ đồ nhất quán
  • Không cần công cụ thiết kế: không cần Visio, Lucidchart hay các công cụ đắt tiền khác
  • Tài liệu như mã: giữ sơ đồ trong cùng kho với tài liệu của bạn
  • Đa nền tảng: chạy trên trình duyệt và Node.js, tích hợp với nhiều nền tảng
  • Miễn phí và mã nguồn mở: không chi phí giấy phép, cộng đồng năng động
  • Nhiều loại sơ đồ: hỗ trợ lưu đồ, sơ đồ tuần tự, sơ đồ lớp và hơn nữa
Quảng cáo

Các loại sơ đồ được hỗ trợ

Mermaid hỗ trợ nhiều loại sơ đồ để đáp ứng các nhu cầu tài liệu khác nhau:

Lưu đồ

Trực quan hóa quy trình làm việc, quy trình và cây quyết định bằng các nút và cạnh.

flowchart TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process]
    B -->|No| D[Alternative]
    C --> E[End]
    D --> E

Trường hợp sử dụng: Luồng quy trình, thuật toán, logic quyết định

Sơ đồ tuần tự

Thể hiện tương tác giữa các tác nhân hoặc hệ thống theo thời gian.

sequenceDiagram
    participant User
    participant API
    participant DB
    User->>API: Request data
    API->>DB: Query
    DB-->>API: Results
    API-->>User: Response

Trường hợp sử dụng: Tương tác API, giao tiếp hệ thống, luồng người dùng

Sơ đồ lớp

Mô hình hóa hệ thống hướng đối tượng với lớp, thuộc tính và quan hệ.

classDiagram
    class Animal {
        +String name
        +int age
        +makeSound()
    }
    class Dog {
        +bark()
    }
    Animal <|-- Dog

Trường hợp sử dụng: Kiến trúc phần mềm, thiết kế OOP, lược đồ cơ sở dữ liệu

Sơ đồ trạng thái

Biểu diễn các trạng thái và chuyển tiếp trong một hệ thống hoặc quy trình.

stateDiagram-v2
    [*] --> Idle
    Idle --> Loading: Start
    Loading --> Success: Complete
    Loading --> Error: Fail
    Success --> [*]
    Error --> Idle: Retry

Trường hợp sử dụng: Máy trạng thái, quản lý vòng đời, trạng thái UI

Sơ đồ ER

Mô hình hóa cấu trúc cơ sở dữ liệu và quan hệ giữa các thực thể.

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE_ITEM : contains
    CUSTOMER {
        int id
        string name
        string email
    }

Trường hợp sử dụng: Thiết kế cơ sở dữ liệu, mô hình dữ liệu, kiến trúc hệ thống

Biểu đồ Gantt

Lập kế hoạch và trực quan hóa lịch trình và dòng thời gian dự án.

gantt
    title Project Timeline
    dateFormat YYYY-MM-DD
    section Phase 1
    Design :a1, 2024-01-01, 30d
    Development :a2, after a1, 45d

Trường hợp sử dụng: Lập kế hoạch dự án, timeline sprint, roadmap

Biểu đồ tròn

Hiển thị dữ liệu tỷ lệ và phần trăm một cách trực quan.

pie title Distribution
    "Category A" : 42
    "Category B" : 30
    "Category C" : 28

Trường hợp sử dụng: Kết quả khảo sát, thị phần, phân bổ nguồn lực

Đồ thị Git

Trực quan hóa chiến lược nhánh Git và lịch sử commit.

gitGraph
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop

Trường hợp sử dụng: Tài liệu quy trình Git, chiến lược nhánh

Quảng cáo

Bắt đầu với Mermaid

1

Chọn loại sơ đồ

Bắt đầu bằng việc quyết định loại sơ đồ nào phù hợp nhất với điều bạn muốn thể hiện. Mỗi loại bắt đầu bằng một từ khóa cụ thể như 'flowchart', 'sequenceDiagram' hoặc 'classDiagram'.

2

Viết cú pháp văn bản

Sử dụng cú pháp đơn giản của Mermaid để mô tả sơ đồ. Cú pháp trực quan và gần như đọc như ngôn ngữ tự nhiên. Ví dụ, 'A --> B' tạo một mũi tên từ A đến B.

3

Xem trước sơ đồ

Dùng trình xem online của chúng tôi hoặc bất kỳ công cụ tương thích Mermaid nào để xem sơ đồ được kết xuất theo thời gian thực. Điều chỉnh khi cần cho đến khi bạn hài lòng.

4

Xuất và chia sẻ

Xuất sơ đồ của bạn dưới dạng SVG hoặc PNG để dùng trong thuyết trình, hoặc chia sẻ URL với đội của bạn. Bạn cũng có thể nhúng Mermaid trực tiếp vào tệp Markdown.

Thực hành tốt nhất

  • Giữ sơ đồ tập trung vào một khái niệm hoặc quy trình duy nhất
  • Sử dụng nhãn có ý nghĩa phản ánh logic nghiệp vụ thực tế
  • Chia sơ đồ phức tạp thành các sơ đồ nhỏ hơn, liên kết với nhau
  • Thêm chú thích bằng %% để giải thích các phần phức tạp
  • Sử dụng quy ước đặt tên nhất quán trong sơ đồ
  • Kiểm thử sơ đồ trong môi trường mục tiêu trước khi hoàn thiện
  • Thêm gợi ý hướng (TD, LR) để kiểm soát bố cục khi cần
  • Dùng subgraph để nhóm các nút liên quan trong lưu đồ
  • Sử dụng tùy chọn tạo kiểu một cách tiết chế để giữ khả năng đọc
  • Quản lý phiên bản các tệp nguồn sơ đồ cùng với mã

Các trường hợp sử dụng phổ biến

Tài liệu phần mềm

Tài liệu hóa kiến trúc hệ thống, luồng API và tương tác thành phần cùng với mã.

Lập kế hoạch dự án

Tạo biểu đồ Gantt cho lập kế hoạch sprint, timeline dự án và phân bổ nguồn lực.

Đề xuất kỹ thuật

Trực quan hóa các giải pháp đề xuất, thiết kế hệ thống và quyết định kiến trúc.

Hành trình người dùng

Lập bản đồ luồng người dùng, trải nghiệm khách hàng và mẫu tương tác.

Thiết kế cơ sở dữ liệu

Mô hình hóa quan hệ thực thể, cấu trúc schema và phụ thuộc dữ liệu.

Tài liệu quy trình

Tài liệu hóa quy trình kinh doanh, workflow và quy trình vận hành tiêu chuẩn.

Tài liệu giáo dục

Tạo sơ đồ rõ ràng, có kiểm soát phiên bản cho hướng dẫn và khóa học kỹ thuật.

Tài liệu API

Minh họa luồng yêu cầu/phản hồi, chuỗi xác thực và tương tác endpoint.

Tài nguyên bổ sung

Câu hỏi thường gặp

Các câu hỏi phổ biến về cách sử dụng Mermaid Viewer và tạo sơ đồ

Trình chỉnh sửa Mermaid này có thực sự miễn phí không?
Có, hoàn toàn miễn phí. Bạn có thể tạo không giới hạn sơ đồ, xuất SVG/PNG, chia sẻ qua URL và dùng mọi tính năng mà không cần đăng ký hay thanh toán. Công cụ được hỗ trợ bởi quảng cáo không gây khó chịu.
Tôi có cần cài đặt gì không?
Không cần cài đặt gì cả. Đây là công cụ web chạy hoàn toàn trong trình duyệt. Chỉ cần mở trang là có thể bắt đầu ngay trên desktop, tablet hoặc điện thoại.
Làm sao để lưu sơ đồ?
Bạn có thể lưu theo nhiều cách: 1) xuất SVG hoặc PNG, 2) chia sẻ qua URL (mã sơ đồ được mã hóa trong URL), 3) sao chép mã Mermaid vào tệp của bạn, 4) tải lên/tải xuống tệp .mmd hoặc .mermaid.
Tôi có thể dùng sơ đồ trong tài liệu không?
Hoàn toàn được. Hãy xuất sơ đồ dưới dạng SVG (co giãn) hoặc PNG để dùng trong tài liệu, thuyết trình hoặc website. Bạn cũng có thể nhúng trực tiếp mã Mermaid vào các nền tảng như GitHub, GitLab hoặc Notion.
SVG và PNG khác nhau thế nào?
SVG là định dạng vector nên giữ chất lượng ở mọi kích thước, rất phù hợp cho web và tài liệu. PNG là ảnh raster, tiện để chia sẻ nhanh nhưng giảm chất lượng khi đổi kích thước.
Vì sao sơ đồ không render?
Hãy kiểm tra lỗi cú pháp trong mã Mermaid. Lỗi thường gặp gồm: thiếu dấu đóng ngoặc kép, thiếu dấu hai chấm/chấm phẩy, sai ID node hoặc dùng cú pháp không được hỗ trợ. Hãy đơn giản hóa sơ đồ để tìm nguyên nhân.
Tôi có thể cộng tác với người khác không?
Không có cộng tác thời gian thực tích hợp sẵn, nhưng bạn có thể chia sẻ sơ đồ qua URL rất dễ. Người khác có thể mở, sửa rồi chia sẻ lại phiên bản của họ. Vì Mermaid là dạng văn bản nên cũng rất hợp với Git.
Có dùng offline được không?
Lần tải đầu tiên cần kết nối internet. Sau khi tải xong, các chức năng chỉnh sửa cơ bản thường vẫn dùng được offline. Tuy nhiên một số tính năng như xuất file có thể cần kết nối.
Làm sao học cú pháp Mermaid?
Hãy bắt đầu với Mermaid Guide đầy đủ của chúng tôi, bao gồm ví dụ cho mọi loại sơ đồ. Dùng Templates để khởi đầu nhanh và tham khảo thêm tài liệu chính thức tại mermaid.js.org.
Tôi có thể tùy chỉnh giao diện không?
Có. Sơ đồ đi theo giao diện của trang: chuyển giữa sáng và tối bằng nút Chủ đề trên thanh trên cùng, sơ đồ sẽ được vẽ lại với theme Mermaid tương ứng. Với tùy biến nâng cao, dùng chỉ thị %%{init:...}%% để cấu hình màu sắc, font và các thuộc tính hiển thị khác.
Hỗ trợ những loại sơ đồ nào?
Trình soạn thảo này hỗ trợ các loại sơ đồ Mermaid chính: Flowchart, Sequence Diagram, Class Diagram, State Diagram, ER Diagram, Gantt Chart, Pie Chart, Git Graph, User Journey và nhiều loại khác.
Dữ liệu sơ đồ của tôi có riêng tư không?
Mã sơ đồ của bạn không được gửi lên máy chủ của chúng tôi. Toàn bộ quá trình render diễn ra trong trình duyệt. Khi chia sẻ qua URL, mã nằm ngay trong URL; chúng tôi không lưu hay theo dõi nội dung sơ đồ của bạn.
Vì sao nên dùng sơ đồ dạng văn bản?
Sơ đồ dạng văn bản có nhiều ưu điểm: quản lý phiên bản (rất hợp với Git), cập nhật nhanh, phong cách nhất quán, dễ tìm kiếm, nhẹ, và có thể tạo tự động bằng mã. Việc review trong pull request cũng dễ hơn.
Có thể nhúng Mermaid vào website không?
Có. Bạn chỉ cần thêm thư viện Mermaid JavaScript vào website và chèn các khối mã Mermaid. Nhiều nền tảng đã hỗ trợ Mermaid sẵn như GitHub, GitLab, Notion và Obsidian.
Kích thước sơ đồ tối đa khuyến nghị là bao nhiêu?
Không có giới hạn cứng, nhưng sơ đồ rất lớn (hơn khoảng 100 node) có thể render chậm tùy thiết bị. Với hệ thống phức tạp, nên chia thành nhiều sơ đồ nhỏ và tập trung hơn.

Sẵn sàng tạo sơ đồ đầu tiên của bạn?

Hãy thử trình xem Mermaid trực tuyến miễn phí của chúng tôi và bắt đầu tạo sơ đồ chuyên nghiệp trong vài phút.

Mở Mermaid Viewer