Bỏ qua, đến nội dung

@digiforce-nc/plugin-block-markdown

Plugin hiển thị và chỉnh sửa nội dung Markdown ngay trong giao diện ứng dụng - sử dụng Vditor editor với hỗ trợ KaTeX, Mermaid, ECharts và Flowchart.

Plugin này làm gì?

Markdown block cho phép người dùng thêm nội dung văn bản phong phú (rich text) vào bất kỳ trang nào - hướng dẫn sử dụng, ghi chú, mô tả quy trình - với trình soạn thảo WYSIWYG mạnh mẽ hỗ trợ cả toán học, biểu đồ và sơ đồ.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Soạn thảo MarkdownEditor WYSIWYG với toolbar, shortcut, preview
2Render nội dung phong phúHỗ trợ KaTeX (toán), Mermaid (sơ đồ), ECharts (biểu đồ)
3Lưu trữ nhẹNội dung markdown lưu trực tiếp trong block schema props

Kiến trúc

Tổng quan

Plugin hoàn toàn client-side - không có server component hay database riêng. Nội dung markdown được lưu trong x-component-props.content của block schema.

Luồng dữ liệu

BướcMô tảLưu trữ
1User viết markdown trong VditorIn-memory
2User click ngoài editor hoặc lưuGhi vào schema props
3Khi mở lại trangĐọc từ schema props, render trong Vditor

Vditor - trình soạn thảo

Vditor là trình soạn thảo Markdown mã nguồn mở được tải qua CDN. Các tính năng nâng cao (KaTeX, Mermaid, ECharts) cũng được tải qua CDN khi cần, giúp giảm bundle size.

CDN ResourceChức năngKhi nào tải
KaTeXRender công thức toán học LaTeXKhi nội dung chứa $...$ hoặc $$...$$
MermaidRender sơ đồ flowchart, sequence, ERKhi nội dung chứa code block mermaid
EChartsRender biểu đồ tương tácKhi nội dung chứa code block echarts
Flowchart.jsRender sơ đồ luồng đơn giảnKhi nội dung chứa code block flowchart

Luồng soạn thảo và lưu

Tính năng

Tính năngMô tả
WYSIWYG editingSoạn thảo trực quan, thấy ngay kết quả
Markdown syntaxHỗ trợ đầy đủ CommonMark + GFM (tables, task lists)
KaTeXCông thức toán học inline và block
Mermaid diagramsFlowchart, sequence, ER, gantt diagram
EChartsBiểu đồ tương tác (bar, line, pie, ...)
Flowchart.jsSơ đồ luồng đơn giản
Code highlightSyntax highlighting cho code blocks
ToolbarBold, italic, heading, list, link, image, table
ExportCopy as markdown hoặc HTML

Ví dụ nội dung

Công thức toán

markdown
Công thức Euler: $e^{i\pi} + 1 = 0$

Mermaid diagram

markdown
```mermaid
flowchart LR
    A --> B --> C
```

ECharts

markdown
```echarts
{"xAxis":{"type":"category","data":["A","B","C"]},"yAxis":{"type":"value"},"series":[{"data":[10,20,30],"type":"bar"}]}
```

Thành phần client

Thành phầnMô tả
MarkdownBlockWidgetWidget chính đăng ký Markdown block vào hệ thống
MarkdownBlockComponent React bọc Vditor editor
MarkdownBlockDesignerDesigner với settings (height, mode)
MarkdownBlockInitializerĐăng ký vào menu "Add block"

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework (peer)
@digiforce-nc/serverServer framework - chỉ dùng khi build (peer)
vditorMarkdown editor (CDN-loaded core + plugins)

Mục lục chi tiết