Markdown là một ngôn ngữ đánh dấu nhẹ được John Gruber tạo ra vào năm 2004. Mục tiêu cốt lõi của Markdown là cho phép người dùng soạn thảo nội dung bằng định dạng văn bản thuần túy nhưng vẫn dễ dàng chuyển đổi sang các cấu trúc HTML phức tạp hoặc các định dạng tài liệu khác.
Ưu điểm nổi bật của Markdown
Sự đơn giản: Cú pháp Markdown rất trực quan, giúp người viết tập trung tối đa vào nội dung thay vì phải bận tâm đến việc định dạng thủ công. Khả năng đọc tốt: Ngay cả khi chưa được render, tệp Markdown vẫn rất rõ ràng và dễ hiểu đối với mắt người. Tính tương thích: Hầu hết các nền tảng kỹ thuật hiện nay như GitHub, GitLab, Stack Overflow hay các trình soạn thảo mã nguồn (VS Code, IntelliJ) đều hỗ trợ mặc định Markdown. Quản lý phiên bản: Vì là văn bản thuần túy (plain text), các tệp .md cực kỳ phù hợp khi làm việc với Git để theo dõi lịch sử thay đổi.
Cú pháp cơ bản
- Tiêu đề (Headers) Sử dụng ký tự # để bắt đầu một dòng tiêu đề. Số lượng dấu # tương ứng với cấp độ tiêu đề từ 1 đến 6.
Tiêu đề cấp 1
Tiêu đề cấp 2
Tiêu đề cấp 3
Tiêu đề cấp 4
Tiêu đề cấp 5
Tiêu đề cấp 6
- Định dạng văn bản Bạn có thể nhấn mạnh nội dung bằng các ký hiệu sao (*) hoặc gạch dưới (_):
In nghiêng: Nội dung hoặc Nội dung
In đậm: Nội dung hoặc Nội dung
In đậm và nghiêng: Nội dung
Gạch ngang: Nội dung bị gạch
- Danh sách (Lists) Markdown hỗ trợ cả danh sách có thứ tự và không thứ tự.
- Danh sách không thứ tự (Dùng -, +, hoặc *)
- Mục con cấp 1
- Mục con cấp 2
-
Danh sách có thứ tự
-
Mục thứ hai
-
Mục thứ ba
-
Khối trích dẫn (Blockquotes) Để tạo một khối trích dẫn, hãy sử dụng dấu > ở đầu dòng. > Đây là một đoạn trích dẫn quan trọng cần lưu ý.
-
Mã nguồn (Code) Đối với mã trên cùng một dòng, hãy bao quanh bằng dấu backtick (`). Đối với các khối mã lớn, hãy sử dụng ba dấu backtick (```). Ví dụ về hàm Python:
def verify_user(username):
if username == "admin":
return "Truy cập thành công"
return "Từ chối truy cập"
- Liên kết và Hình ảnh
Cú pháp của hai loại này khá tương đồng, hình ảnh chỉ khác là có thêm dấu chấm than ở phía trước.
Tên liên kết

Cú pháp nâng cao
-
Bảng (Tables) Sử dụng các dấu gạch đứng | để phân tách cột và dấu gạch ngang - để phân tách hàng tiêu đề. | Ngôn ngữ | Thư viện phổ biến | Mục đích | | :--- | :---: | ---: | | Python | Pandas | Khoa học dữ liệu | | JavaScript | React | Phát triển Web | | Java | Spring Boot | Backend |
-
Danh sách công việc (Task Lists) Sử dụng cú pháp - [ ] cho việc chưa hoàn thành và - [x] cho việc đã xong.
- Thiết kế database
- Viết API endpoint
- Triển khai lên server
-
Công thức toán học Markdown hỗ trợ LaTeX để hiển thị các công thức toán học phức tạp. Công thức trên dòng: $E = mc^2$ Khối công thức riêng biệt: $$ \frac{n!}{k!(n-k)!} = \binom{n}{k} $$
-
Sơ đồ Mermaid Một số trình thông dịch Markdown hiện đại cho phép vẽ sơ đồ trực tiếp từ mã nguồn.
graph LR
A[Bắt đầu] --> B{Kiểm tra}
B --> C[Đúng]
B --> D[Sai]
- Chú thích chân trang (Footnotes) Để tạo chú thích cho một thuật ngữ hoặc câu văn: Đây là một câu cần chú thích[^1].
[^1]: Đây là nội dung của chú thích nằm ở cuối trang.
- Ký tự thoát (Escaping Characters) Nếu bạn muốn hiển thị các ký tự đặc biệt vốn được dùng làm cú pháp Markdown, hãy thêm dấu gạch chéo ngược \ phía trước. * Đây sẽ hiển thị dấu sao thay vì định dạng danh sách.