Giải thích Markdown trong 5 phút
Bạn có lẽ đã sử dụng Markdown mà không biết. Đã bao giờ gõ **in đậm** trong tin nhắn Slack? Viết README trên GitHub? Định dạng bài đăng Reddit? Đó chính là Markdown.
Markdown là cách nhẹ nhàng để định dạng văn bản thuần bằng các ký hiệu đơn giản. Thay vì nhấp nút thanh công cụ cho in đậm, in nghiêng, tiêu đề và danh sách, bạn gõ vài ký tự chỉ định định dạng muốn dùng. Nó được tạo năm 2004 bởi John Gruber và Aaron Swartz, và kể từ đó đã trở thành ngôn ngữ định dạng mặc định cho lập trình viên, nhà văn và bất kỳ ai làm việc với văn bản trên web.
Tại sao Markdown tồn tại
Trước Markdown, định dạng văn bản cho web có nghĩa là viết HTML. Để in đậm một từ, bạn gõ <strong>in đậm</strong>. Để tạo danh sách, cần <ul><li>mục</li></ul>. HTML mạnh mẽ nhưng dài dòng và khó đọc ở dạng thô.
Markdown giải quyết vấn đề này bằng cách cung cấp cách viết tắt dễ đọc. Văn bản thô dễ đọc ngay cả trước khi được hiển thị. Đầu ra định dạng sạch và chuyên nghiệp. Bạn có được tốt nhất của cả hai: văn bản nguồn dễ đọc và đầu ra bóng bẩy.
Bạn có biết? Triết lý thiết kế của Markdown là văn bản thô nên "có thể xuất bản nguyên trạng, dạng văn bản thuần, mà không trông như bị đánh dấu bằng thẻ hoặc hướng dẫn định dạng." Đây là lý do cú pháp Markdown sử dụng các ký tự gợi nhớ trực quan đến định dạng chúng tạo ra.
Cú pháp thiết yếu
Đây là mọi thứ bạn cần biết để bắt đầu sử dụng Markdown hiệu quả.
Tiêu đề
Dùng ký hiệu thăng (#) để tạo tiêu đề. Nhiều thăng hơn nghĩa là tiêu đề nhỏ hơn.
# Tiêu đề 1 (lớn nhất)
## Tiêu đề 2
### Tiêu đề 3
#### Tiêu đề 4
In đậm và in nghiêng
Bọc văn bản trong dấu hoa thị hoặc gạch dưới:
**chữ in đậm**
*chữ in nghiêng*
***in đậm và in nghiêng***
Danh sách
Danh sách không thứ tự dùng dấu gạch ngang, hoa thị hoặc dấu cộng. Danh sách có thứ tự dùng số.
- Mục đầu tiên
- Mục thứ hai
- Mục thứ ba
1. Bước đầu tiên
2. Bước thứ hai
3. Bước thứ ba
Liên kết
Ngoặc vuông cho chữ, ngoặc tròn cho URL:
[Nhấp vào đây](https://example.com)
Hình ảnh
Giống liên kết, nhưng có dấu chấm than phía trước:

Trích dẫn
Dùng ký hiệu lớn hơn:
> Đây là trích dẫn. Nó sẽ được thụt lề và định dạng khác biệt.
Code
Dấu backtick cho code nội dòng, ba backtick cho khối code:
Dùng hàm `print()` để xuất văn bản.
Cho khối code nhiều dòng, dùng ba backtick với định danh ngôn ngữ tùy chọn:
```python
def hello():
print("Xin chào, thế giới!")
```
Đường ngang
Ba hoặc nhiều dấu gạch ngang, hoa thị hoặc gạch dưới:
---
Bảng
Dùng ống và gạch ngang:
| Tên | Vai trò | Vị trí |
| --- | --- | --- |
| Alice | Lập trình viên | Berlin |
| Bob | Thiết kế | London |
Markdown được dùng ở đâu
Markdown có mặt ở khắp nơi:
Phát triển phần mềm
- GitHub, GitLab, Bitbucket: README, issue, pull request và tài liệu đều viết bằng Markdown.
- Stack Overflow: Câu hỏi và câu trả lời dùng định dạng Markdown.
- Tài liệu code: Nhiều trình tạo tài liệu (Docusaurus, MkDocs, Jekyll) dùng Markdown làm định dạng nguồn.
Giao tiếp
- Slack: Hỗ trợ tập con Markdown cho định dạng tin nhắn.
- Discord: Dùng Markdown cho in đậm, in nghiêng, khối code và nhiều hơn.
- Reddit: Bài đăng và bình luận được định dạng bằng Markdown.
Viết lách và xuất bản
- Blog: Nhiều trình tạo trang tĩnh dùng tệp Markdown làm nguồn nội dung.
- Sách: Nhiều công cụ xuất bản chấp nhận bản thảo Markdown.
- Ghi chú: Ứng dụng như Obsidian, Notion, Bear và Typora được xây dựng xung quanh Markdown.
Tài liệu
- Tài liệu kỹ thuật: Tài liệu API, hướng dẫn sử dụng và wiki thường dùng Markdown.
- Cơ sở kiến thức nội bộ: Nhiều nhóm sử dụng wiki dựa trên Markdown.
Mẹo Bạn có thể xem trước và thực hành Markdown ngay bây giờ, miễn phí, trong trình duyệt: Viết bằng Markdown. Xem đầu ra định dạng theo thời gian thực khi bạn gõ.
Các phiên bản Markdown
Một điều cần biết: có các "phiên bản" Markdown khác nhau. Cú pháp cốt lõi giống nhau ở mọi nơi, nhưng một số nền tảng thêm phần mở rộng:
| Phiên bản | Tính năng bổ sung | Sử dụng bởi |
|---|---|---|
| CommonMark | Đặc tả nghiêm ngặt | Tiêu chuẩn chung |
| GitHub Flavored Markdown (GFM) | Danh sách công việc, bảng, gạch ngang, tự động liên kết | GitHub |
| MultiMarkdown | Chú thích cuối trang, trích dẫn, siêu dữ liệu | Viết học thuật |
| R Markdown | Code R nhúng, phân tích dữ liệu | Khoa học dữ liệu |
Sự khác biệt chủ yếu ở tính năng nâng cao. Cơ bản (tiêu đề, in đậm, in nghiêng, danh sách, liên kết, hình ảnh, code) hoạt động giống nhau ở mọi nơi.
Lỗi thường gặp
Quên dòng trống
Markdown yêu cầu dòng trống trước và sau nhiều phần tử. Tiêu đề cần dòng trống trước. Danh sách cần dòng trống trước và sau. Quên các dòng trống này là nguồn lỗi hiển thị phổ biến nhất.
Ký hiệu danh sách không nhất quán
Trộn -, * và + trong cùng danh sách có thể gây hiển thị không mong muốn. Chọn một và dùng nhất quán.
Khoảng trắng sau ký hiệu
Một số trình xử lý Markdown yêu cầu khoảng trắng sau # trong tiêu đề và sau - trong danh sách. Luôn thêm khoảng trắng cho an toàn.
# Tiêu đề đúng
#Tiêu đề sai
- Mục danh sách đúng
-Mục danh sách sai
Cảnh báo Markdown không hỗ trợ mọi nhu cầu định dạng. Nếu bạn cần bố cục phức tạp, chữ màu, typography chính xác hoặc tài liệu sẵn sàng in, bạn có thể cần HTML, LaTeX hoặc trình soạn thảo văn bản. Markdown tốt nhất cho nội dung có cấu trúc, tập trung vào văn bản.
Tại sao Markdown đáng học
Markdown mất năm phút để học và tiết kiệm hàng giờ theo thời gian. Khi bạn biết nó, bạn có thể:
- Viết tài liệu hiển thị đẹp trên GitHub
- Định dạng tin nhắn trong Slack và Discord mà không cần chạm chuột
- Ghi chú có cấu trúc, portable giữa các ứng dụng
- Tạo bài blog và nội dung web từ tệp văn bản thuần
- Cộng tác trên tài liệu dạng chữ mà không gặp vấn đề tương thích định dạng
Tỷ lệ đầu tư-lợi ích là một trong những tốt nhất trong toàn bộ thế giới công nghệ.
Bắt đầu viết Markdown ngay:
Miễn phí, trong trình duyệt, với xem trước thời gian thực khi bạn gõ.