MARKDOWN LÀ GÌ?

MARKDOWN LÀ GÌ?

Viết văn bản có định dạng chỉ với vài ký hiệu quen thuộc


Bạn đã từng thấy những tệp có đuôi .md trên GitHub, hay để ý rằng khi gõ **chữ** trong Notion hoặc Discord thì chữ tự động in đậm? Đó chính là Markdown, một cách định dạng văn bản đơn giản đến mức có thể học xong phần cơ bản trong khoảng mười lăm phút, nhưng hữu ích suốt cả quá trình học tập và làm việc. Nói ngắn gọn, Markdown là quy ước dùng vài ký hiệu quen thuộc như #, *, -, > ngay trong văn bản thuần để đánh dấu tiêu đề, chữ đậm, danh sách hay trích dẫn; một phần mềm sau đó đọc các ký hiệu ấy và hiển thị văn bản thành trang có định dạng.

Trong thời đại AI, Markdown càng quan trọng hơn. Các trợ lý như ChatGPT, Claude hay Gemini thường trả lời bằng Markdown: những tiêu đề, gạch đầu dòng và bảng bạn thấy trong khung chat chính là Markdown đã được hiển thị. Theo chiều ngược lại, một câu lệnh (prompt) được chia mục bằng tiêu đề và gạch đầu dòng giúp AI nhận ra cấu trúc yêu cầu rõ hơn một khối chữ liền. Biết Markdown vì vậy vừa giúp bạn viết nhanh, vừa giúp bạn làm việc với AI hiệu quả hơn.

Bài viết gồm tám mục. Mục 1 giải thích Markdown là gì và nó ra đời thế nào. Mục 2 nêu sáu lý do nên dùng Markdown, còn mục 3 so sánh Markdown với HTML. Mục 4 là phần dài nhất, trình bày mười hai nhóm cú pháp cơ bản kèm ví dụ. Mục 5 là bảng tra nhanh, mục 6 tổng hợp các mẹo viết không lỗi, mục 7 cho thấy cách dùng Markdown khi làm việc với AI, và mục 8 gợi ý công cụ để bắt đầu.

1. Markdown là gì?

Markdown là một ngôn ngữ đánh dấu nhẹ (lightweight markup language) do John Gruber tạo ra năm 2004, với sự góp sức của Aaron Swartz (Gruber, 2004). Ý tưởng cốt lõi rất đơn giản: viết văn bản thuần (plain text) với vài ký hiệu quen thuộc để đánh dấu cấu trúc, rồi để một chương trình xử lý (Markdown processor) chuyển văn bản đó thành HTML hoặc một định dạng khác để hiển thị (Hình 1).

Một tệp Markdown là văn bản thuần, đi qua bộ xử lý để thành trang web, PDF, Word, slide hay sách điện tử Hình 1. Một tệp Markdown, nhiều đầu ra.

Điểm hay nhất của Markdown nằm ở mục tiêu thiết kế mà Gruber đặt ra: ngay cả khi chưa được chuyển đổi, tệp Markdown vẫn phải dễ đọc như một văn bản bình thường (Gruber, 2004). Bạn không cần phần mềm đặc biệt; Notepad hay TextEdit cũng mở được. Một người chưa từng nghe đến Markdown vẫn hiểu dòng - Nộp báo cáo quý là một gạch đầu dòng, và **cao nhất** là chữ được nhấn mạnh.

Vì Gruber chỉ mô tả cú pháp bằng lời và một chương trình mẫu, các ứng dụng về sau hiểu một số trường hợp khó theo những cách hơi khác nhau. Năm 2014, nhóm CommonMark, do John MacFarlane khởi xướng, công bố một đặc tả chặt chẽ để mọi ứng dụng xử lý Markdown giống nhau (MacFarlane, 2024). GitHub dựa trên CommonMark và bổ sung vài phần mở rộng như bảng, danh sách việc cần làm và chữ gạch ngang, gọi là GitHub Flavored Markdown (GitHub, 2019). Khi gặp chữ "Markdown" ở các ứng dụng hiện nay, bạn có thể hiểu đó là phần cú pháp cơ bản trong bài này cộng một ít phần mở rộng tùy ứng dụng.

2. Tại sao nên dùng Markdown?

Có sáu lý do khiến Markdown được dùng rộng rãi, từ lập trình viên đến người viết blog và sinh viên.

  1. Dễ học, dễ viết. Chỉ cần nhớ khoảng mười ký hiệu là bạn đã định dạng được phần lớn nhu cầu hằng ngày. Tay không cần rời bàn phím để bấm nút B, I, U trên thanh công cụ.
  2. Tập trung vào nội dung. Bạn lo phần viết, còn chuyện trình bày là việc của phần mềm hiển thị. Không còn cảnh loay hoay chỉnh phông, chỉnh khoảng cách giữa chừng.
  3. Linh hoạt, dùng được ở khắp nơi. Cùng một tệp Markdown có thể xuất ra trang web, PDF, Word, slide thuyết trình hay sách điện tử, chẳng hạn bằng công cụ chuyển đổi Pandoc (MacFarlane, n.d.).
  4. Bền vững, không phụ thuộc phần mềm. Tệp .md là văn bản thuần, mười hay hai mươi năm nữa vẫn mở được. Bạn không bị "khóa" vào Word, Google Docs hay bất kỳ ứng dụng nào.
  5. Nhẹ và dễ quản lý phiên bản. Tệp rất nhỏ, dễ đồng bộ, dễ so sánh thay đổi giữa hai phiên bản bằng Git. Đó là lý do lập trình viên dùng Markdown cho tệp README và tài liệu kỹ thuật.
  6. Là ngôn ngữ chung khi làm việc với AI. Các trợ lý AI đọc và trả lời bằng Markdown. Biết Markdown giúp bạn viết câu lệnh rõ ràng hơn và đưa câu trả lời của AI sang Notion hay Obsidian mà vẫn giữ nguyên định dạng.

Bạn có thể gặp Markdown ở GitHub, Notion, Obsidian, Discord, Reddit, Jupyter Notebook, các nền tảng blog như Ghost, Hugo, Jekyll, và rất nhiều ứng dụng ghi chú khác. Một số ứng dụng nhắn tin như Slack dùng một biến thể riêng, nên vài ký hiệu có thể khác đôi chút.

3. Markdown khác gì HTML?

Thực ra, Markdown sinh ra để viết HTML nhanh hơn (Gruber, 2004). Hầu hết cú pháp Markdown tương ứng với một thẻ HTML. Điểm khác là HTML được thiết kế để trình duyệt đọc, còn Markdown được thiết kế để con người đọc và viết. Hãy so sánh cùng một nội dung viết theo hai cách.

Viết bằng HTML:

<h2>Danh sách việc cần làm</h2>
<p>Hôm nay mình cần <strong>hoàn thành</strong> các việc sau:</p>
<ul>
  <li>Viết bài blog</li>
  <li>Trả lời <em>email</em> khách hàng</li>
</ul>

Viết bằng Markdown:

## Danh sách việc cần làm

Hôm nay mình cần **hoàn thành** các việc sau:

- Viết bài blog
- Trả lời *email* khách hàng

Kết quả hiển thị của hai đoạn trên hoàn toàn giống nhau, nhưng bản Markdown ngắn hơn và đọc được ngay cả khi chưa hiển thị. Hình 2 cho thấy cùng một tệp Markdown ở hai trạng thái: lúc bạn gõ và lúc người đọc nhìn thấy. Bảng 1 tóm tắt những khác biệt chính.

Bên trái là văn bản Markdown gốc với các ký hiệu, bên phải là kết quả hiển thị có tiêu đề, chữ đậm, danh sách, trích dẫn và liên kết Hình 2. Cùng một tệp Markdown, hai cách nhìn.

Bảng 1. So sánh Markdown và HTML.

Tiêu chí Markdown HTML
Mục đích Viết nội dung nhanh, dễ đọc Cấu trúc và hiển thị trang web
Độ khó Rất dễ, học phần cơ bản trong khoảng mười lăm phút Cần học nhiều thẻ và thuộc tính
Đọc tệp gốc Đọc như văn bản thường Nhiều thẻ, khó đọc
Khả năng tùy biến Giới hạn ở định dạng cơ bản Gần như không giới hạn khi kết hợp CSS, JavaScript
Phù hợp cho Ghi chú, tài liệu, blog, README, câu lệnh cho AI Thiết kế giao diện, trang web phức tạp
Quan hệ Được chuyển đổi thành HTML Là đích đến khi hiển thị trên web

Tóm lại, Markdown không thay thế HTML mà là "lối tắt" để viết HTML. Khi cần làm điều Markdown không hỗ trợ, như đổi màu chữ hay chỉnh kích thước ảnh, bạn vẫn có thể chèn thẳng thẻ HTML vào tệp Markdown nếu ứng dụng cho phép (xem mục 4.12).

4. Cú pháp Markdown cơ bản

Phần này tổng hợp mười hai nhóm cú pháp cơ bản mà hầu hết ứng dụng Markdown đều hỗ trợ (Cone, n.d.). Mỗi nhóm có một ví dụ; cách học nhanh nhất là gõ lại ví dụ vào một trình soạn thảo có chế độ xem trước và quan sát kết quả.

4.1. Tiêu đề (headings)

Thêm dấu thăng # trước dòng chữ. Số 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

Bạn cũng có thể gạch dưới dòng chữ bằng các dấu === (cấp 1) hoặc --- (cấp 2), nhưng cách dùng # phổ biến hơn. Luôn để một dấu cách giữa # và chữ (viết # Tiêu đề, không viết #Tiêu đề), và để một dòng trống trước và sau tiêu đề để ứng dụng nào cũng hiểu đúng.

4.2. Đoạn văn (paragraphs)

Để tách đoạn, chỉ cần để trống một dòng giữa hai đoạn. Không thụt đầu dòng bằng phím Space hay Tab, vì bốn dấu cách ở đầu dòng có thể bị hiểu thành khối mã (mục 4.7).

Đây là đoạn văn thứ nhất.

Đây là đoạn văn thứ hai.

4.3. Xuống dòng (line breaks)

Muốn xuống dòng nhưng vẫn ở cùng một đoạn, hãy kết thúc dòng bằng hai dấu cách trở lên rồi nhấn Enter. Vì dấu cách ở cuối dòng rất khó nhìn thấy, nhiều người chọn dùng thẻ <br> cho rõ ràng.

Dòng thứ nhất (có hai dấu cách ở cuối)  
Dòng thứ hai

Dòng thứ nhất<br>
Dòng thứ hai

4.4. In đậm, in nghiêng

Bọc chữ trong hai dấu sao để in đậm, một dấu sao để in nghiêng, ba dấu sao để vừa đậm vừa nghiêng (Bảng 2). Dấu gạch dưới _ cũng dùng được, nhưng nên ưu tiên dấu sao, nhất là khi muốn nhấn mạnh một phần ở giữa từ, vì các ứng dụng xử lý dấu _ ở giữa từ không giống nhau.

Bảng 2. Cú pháp in đậm và in nghiêng.

Mục đích Cú pháp Kết quả
In đậm **chữ đậm** hoặc __chữ đậm__ chữ đậm
In nghiêng *chữ nghiêng* hoặc _chữ nghiêng_ chữ nghiêng
Vừa đậm vừa nghiêng ***rất quan trọng*** rất quan trọng

4.5. Trích dẫn (blockquotes)

Thêm dấu > trước đoạn văn. Muốn trích dẫn lồng nhau thì dùng >>. Bên trong trích dẫn vẫn dùng được các định dạng khác như tiêu đề, danh sách, chữ đậm.

> Học, học nữa, học mãi.
>
>> Đây là trích dẫn lồng bên trong.

4.6. Danh sách (lists)

Danh sách có thứ tự dùng số kèm dấu chấm. Điều thú vị là các con số không cần đúng thứ tự, vì Markdown tự đánh số, nhưng nên bắt đầu bằng số 1.

1. Mở máy tính
2. Mở trình soạn thảo
3. Bắt đầu viết

Danh sách không thứ tự dùng dấu -, * hoặc + ở đầu dòng. Thụt vào bốn dấu cách (hoặc một Tab) để tạo danh sách con.

- Trái cây
    - Xoài
    - Sầu riêng
- Rau củ

Trong cùng một danh sách, hãy chọn một loại ký hiệu và dùng nhất quán. Nếu muốn một gạch đầu dòng bắt đầu bằng số và dấu chấm, chẳng hạn năm "1975.", hãy thêm dấu gạch chéo ngược trước dấu chấm: - 1975\. Năm thống nhất đất nước. Muốn chèn đoạn văn, trích dẫn hay hình ảnh vào giữa danh sách mà không làm đứt mạch, hãy thụt phần tử đó vào bốn dấu cách.

4.7. Mã (code)

Mã trong dòng: bọc từ hoặc cụm từ giữa hai dấu backtick (dấu huyền ngược, thường nằm ngay dưới phím Esc). Chẳng hạn, bọc chữ npm install giữa hai dấu backtick sẽ hiển thị thành npm install với phông chữ đơn cách.

Khối mã: thụt mỗi dòng vào ít nhất bốn dấu cách, hoặc phổ biến hơn, đặt khối mã giữa hai dòng chỉ gồm ba dấu backtick. Ghi tên ngôn ngữ ngay sau ba dấu backtick mở đầu, chẳng hạn python, để ứng dụng tô màu cú pháp. Kết quả hiển thị như sau:

print("Xin chào PHUONGACADEMY!")

4.8. Đường kẻ ngang (horizontal rules)

Gõ ba ký tự ***, --- hoặc ___ trên một dòng riêng. Nhớ để dòng trống trước và sau, nếu không --- nằm ngay dưới một dòng chữ có thể bị hiểu thành tiêu đề cấp 2.

Phần trên

---

Phần dưới

4.9. Liên kết (links)

Đặt chữ hiển thị trong ngoặc vuông, đường dẫn trong ngoặc tròn ngay sau đó. Có thể thêm tiêu đề (hiện ra khi rê chuột) trong dấu ngoặc kép. Bọc một địa chỉ web hay email trong dấu < > để biến nó thành liên kết nhanh.

[PHUONGACADEMY](https://phuongacademy.com "Trang chủ PHUONGACADEMY")

<https://www.markdownguide.org>

Với văn bản dài, bạn có thể dùng liên kết tham chiếu để đoạn văn gọn gàng: phần chữ nằm trong bài, còn địa chỉ để riêng ở cuối tệp.

Tham khảo thêm tại [tài liệu gốc][1].

[1]: https://www.markdownguide.org/basic-syntax/

Nếu địa chỉ có dấu cách, hãy thay bằng %20; nếu có dấu ngoặc tròn, thay ( bằng %28 và ) bằng %29.

4.10. Hình ảnh (images)

Cú pháp giống liên kết, chỉ thêm dấu chấm than ! ở đầu. Phần trong ngoặc vuông là văn bản thay thế (alt text): nó hiện ra khi ảnh lỗi, được trình đọc màn hình đọc cho người khiếm thị, và giúp công cụ tìm kiếm hiểu nội dung ảnh.

![Logo PHUONGACADEMY](images/logo.png "Logo")

Muốn bấm vào ảnh để mở một liên kết, bọc toàn bộ cú pháp ảnh trong một liên kết:

[![Logo](images/logo.png)](https://phuongacademy.com)

4.11. Ký tự thoát (escaping)

Khi muốn hiển thị đúng các ký tự như *, #, _ mà không để Markdown hiểu thành định dạng, hãy thêm dấu gạch chéo ngược \ phía trước.

\* Dòng này không biến thành danh sách.

Các ký tự có thể "thoát" gồm dấu gạch chéo ngược, dấu backtick, *, _, { }, [ ], < >, ( ), #, +, -, ., ! và dấu gạch đứng (Cone, n.d.).

4.12. Dùng HTML trong Markdown

Phần lớn ứng dụng cho phép chèn thẻ HTML trực tiếp, hữu ích khi cần đổi màu chữ hay chỉnh kích thước ảnh:

Chữ này **in đậm**, còn chữ này <em>in nghiêng</em> bằng HTML.

Vì lý do bảo mật, một số ứng dụng không hỗ trợ hoặc chỉ hỗ trợ một phần HTML. Các thẻ khối như <div>, <table>, <p> nên tách khỏi phần còn lại bằng dòng trống, và trong đặc tả gốc của Gruber, cú pháp Markdown đặt bên trong các thẻ khối này không được xử lý (Gruber, 2004). Cách an toàn là chỉ dùng HTML khi thật cần, và kiểm tra bản xem trước.

5. Bảng tra nhanh

Bảng 3 gom các cú pháp ở mục 4 vào một chỗ để bạn tra khi cần. Riêng mã trong dòng, hãy nhớ quy tắc ở mục 4.7: bọc chữ giữa hai dấu backtick.

Bảng 3. Bảng tra nhanh cú pháp Markdown cơ bản.

Thành phần Cú pháp Markdown
Tiêu đề # H1, ## H2, ### H3
In đậm **chữ**
In nghiêng *chữ*
Trích dẫn > trích dẫn
Danh sách có thứ tự 1. Mục một
Danh sách không thứ tự - Mục
Khối mã ba dấu backtick ở dòng đầu và dòng cuối
Đường kẻ ngang ---
Liên kết [chữ](https://url.com)
Hình ảnh ![mô tả](anh.png)
Ký tự thoát \*

6. Mẹo viết Markdown chuẩn, không lỗi

Phần lớn lỗi hiển thị Markdown đến từ vài thói quen nhỏ. Bảy mẹo dưới đây giúp tệp của bạn hiển thị đúng ở mọi ứng dụng.

  • Luôn để dòng trống trước và sau tiêu đề, trích dẫn, đường kẻ ngang và khối mã.
  • Có dấu cách sau # khi viết tiêu đề.
  • Ưu tiên dấu * cho in đậm và in nghiêng.
  • Không trộn ký hiệu -, *, + trong cùng một danh sách.
  • Dùng dấu chấm cho danh sách số (1.), tránh 1) vì không phải ứng dụng nào cũng hiểu.
  • Không thụt đầu dòng cho đoạn văn thường.
  • Kiểm tra bản xem trước (preview), vì mỗi ứng dụng có thể hiển thị hơi khác nhau.

7. Markdown khi làm việc với AI

Markdown là cầu nối tự nhiên giữa người và trợ lý AI theo cả hai chiều. Ở chiều đưa vào, một câu lệnh có cấu trúc giúp AI tách bạch vai trò, bối cảnh, nhiệm vụ và yêu cầu đầu ra. Thay vì viết một đoạn dài, bạn có thể viết:

## Vai trò
Bạn là giảng viên môn Digital Technology.

## Nhiệm vụ
Soạn 5 câu hỏi trắc nghiệm về cú pháp Markdown cơ bản.

## Yêu cầu
- Mỗi câu có 4 phương án, đánh dấu đáp án đúng
- Mức độ: sinh viên năm nhất
- Trình bày thành bảng

Các tiêu đề cấp 2 đóng vai trò như những "ngăn kéo" để AI biết phần nào là bối cảnh, phần nào là việc cần làm; gạch đầu dòng giúp từng yêu cầu không bị trộn vào nhau. Cách chia khung câu lệnh thành các thành phần như vậy được trình bày kỹ hơn trong bài Cách viết prompt với khung bốn thành phần và 20 prompt mẫu.

Ở chiều lấy ra, câu trả lời của AI thường đã là Markdown. Khi sao chép sang một ứng dụng hiểu Markdown như Notion hay Obsidian, tiêu đề, danh sách và bảng được giữ nguyên. Nếu cần nộp bài hay gửi báo cáo dưới dạng Word, bạn có thể yêu cầu AI trả lời bằng Markdown thuần, lưu thành tệp .md, rồi dùng Pandoc chuyển sang .docx (MacFarlane, n.d.). Cách làm này giữ được cấu trúc tiêu đề, nhờ đó mục lục tự động trong Word hoạt động ngay.

8. Công cụ gợi ý để bắt đầu

Bảng 4 gợi ý năm nhóm công cụ theo nhu cầu. Tất cả đều có chế độ xem trước hoặc hiển thị trực tiếp, nên bạn thấy kết quả ngay khi gõ.

Bảng 4. Công cụ gợi ý để bắt đầu với Markdown.

Công cụ Phù hợp cho Ghi chú
Obsidian Ghi chú cá nhân, xây dựng kho kiến thức Miễn phí cho cá nhân; tệp lưu ngay trên máy dưới dạng .md
Typora Người mới, muốn soạn "thấy gì được nấy" Có phí bản quyền, có thời gian dùng thử
Visual Studio Code Người làm kỹ thuật Miễn phí, có sẵn chế độ xem trước Markdown
Notion Ghi chú và làm việc nhóm Gõ cú pháp Markdown là tự chuyển thành định dạng
Dillinger, StackEdit Thử nhanh không cần cài đặt Trình soạn Markdown chạy trên trình duyệt

Kết luận

Markdown là một kỹ năng nhỏ nhưng lợi ích lớn: học trong vài phút, dùng được ở khắp nơi, từ ghi chú cá nhân, viết tài liệu, viết blog cho đến làm việc với AI. Giá trị bền vững nhất của nó nằm ở chỗ văn bản của bạn vẫn là văn bản thuần, đọc được bằng mắt, mở được bằng bất kỳ phần mềm nào, và chuyển được sang nhiều định dạng khi cần. Cách học nhanh nhất là thực hành ngay: mở Obsidian, Visual Studio Code hoặc một trình soạn trực tuyến, gõ lại các ví dụ trong bài này và quan sát kết quả. Khi đã quen phần cơ bản, bạn có thể tìm hiểu các phần mở rộng như bảng, danh sách việc cần làm và chú thích cuối trang.

Tài liệu tham khảo

Cone, M. (n.d.). Basic syntax. Markdown Guide. Truy cập ngày 27 tháng 10 năm 2026, từ https://www.markdownguide.org/basic-syntax/

GitHub. (2019). GitHub Flavored Markdown spec (Version 0.29-gfm). https://github.github.com/gfm/

Gruber, J. (2004). Markdown. Daring Fireball. https://daringfireball.net/projects/markdown/

MacFarlane, J. (2024). CommonMark spec (Version 0.31.2). https://spec.commonmark.org/0.31.2/

MacFarlane, J. (n.d.). Pandoc user's guide. Truy cập ngày 27 tháng 10 năm 2026, từ https://pandoc.org/MANUAL.html

Categories