Skip to content

Giới thiệu Markdown

Markdown là một ngôn ngữ đánh dấu nhẹ cho phép bạn viết bằng định dạng văn bản thuần túy dễ đọc và dễ viết, sau đó có thể chuyển đổi thành HTML hợp lệ (và nhiều định dạng khác). Được tạo bởi John Gruber vào năm 2004, Markdown đã trở thành một trong những ngôn ngữ đánh dấu phổ biến nhất trên web.

Markdown là gì?

Markdown làcú pháp định dạng văn bản thuần túy cho phép bạn thêm các phần tử định dạng vào tài liệu văn bản thuần túy. Không giống như các ngôn ngữ đánh dấu phức tạp như HTML hoặc XML, Markdown sử dụng dấu câu đơn giản để tạo tài liệu có cấu trúc.

Đặc điểm chính:

  • Con người có thể đọc: Tệp Markdown dễ đọc ở dạng gốc
  • Không phụ thuộc nền tảng: Hoạt động trên các hệ điều hành và ứng dụng khác nhau
  • Có thể chuyển đổi: Có thể chuyển đổi thành HTML, PDF, tài liệu Word và các định dạng khác
  • Thân thiện với kiểm soát phiên bản: Tệp văn bản thuần túy hoạt động tốt với Git và các hệ thống kiểm soát phiên bản khác
  • Viết nhanh: Cú pháp tối thiểu có nghĩa là viết và chỉnh sửa nhanh hơn

Ví dụ cú pháp cơ bản:

markdown
# Tiêu đề 1
## Tiêu đề 2
### Tiêu đề 3

**Văn bản đậm***văn bản nghiêng*

- Mục danh sách không có thứ tự
- Mục khác

1. Mục danh sách có thứ tự
2. Mục khác

[Văn bản liên kết](https://www.markdownlang.com)

`Mã nội tuyến` và khối mã:

```javascript
function hello() {
  console.log("Hello, World!");
}

## Tại sao sử dụng Markdown?

### 1. **Đơn giản và tốc độ**
- Viết nhanh hơn với cú pháp tối thiểu
- Không cần nhớ các thẻ HTML phức tạp
- Tập trung vào nội dung, không phải định dạng

### 2. **Tương thích phổ quát**
- Có mặt ở khắp mọi nơi: GitHub, GitLab, Reddit, Stack Overflow
- Hầu hết các trình soạn thảo văn bản và IDE hiện đại đều hỗ trợ
- Có thể chuyển đổi sang bất kỳ định dạng nào bạn cần

### 3. **Tích hợp kiểm soát phiên bản**
- Tệp văn bản thuần túy hoạt động hoàn hảo với Git
- Dễ dàng theo dõi thay đổi và cộng tác
- Không có xung đột tệp nhị phân

### 4. **Hướng tới tương lai**
- Văn bản thuần túy sẽ không bao giờ lỗi thời
- Không phụ thuộc vào định dạng độc quyền
- Dễ dàng di chuyển giữa các nền tảng

### 5. **Đường cong học tập**
- Học nhanh (có thể nắm vững kiến thức cơ bản trong 30 phút)
- Cú pháp nhất quán trên các nền tảng
- Không có yêu cầu phần mềm phức tạp

## Markdown phù hợp với điều gì?

### 📝 **Viết tài liệu**
- **Tài liệu kỹ thuật**: Tài liệu API, hướng dẫn người dùng, tệp README
- **Tài liệu phần mềm**: Nhận xét mã, tài liệu dự án
- **Kho kiến thức**: Wiki, hệ thống trợ giúp, tài liệu nội bộ

### ✍️ **Sáng tạo nội dung**
- **Bài viết blog**: Blog cá nhân, blog công ty, bài viết kỹ thuật
- **Viết học thuật**: Bài báo nghiên cứu, luận án, báo cáo
- **Sách và sách điện tử**: Sách kỹ thuật, tiểu thuyết, nội dung giáo dục

### 💼 **Ứng dụng kinh doanh**
- **Quản lý dự án**: Danh sách việc cần làm, ghi chú dự án, biên bản cuộc họp
- **Email**: Email văn bản phong phú, không cần HTML phức tạp
- **Bản trình bày**: Chuyển đổi sang định dạng slide
- **Báo cáo**: Báo cáo kinh doanh, cập nhật trạng thái, tóm tắt

### 🌐 **Phát triển web**
- **Trình tạo trang web tĩnh**: Jekyll, Hugo, Gatsby, VitePress
- **Nội dung CMS**: WordPress, Ghost, Contentful
- **Trang web tài liệu**: GitBook, Docusaurus, MkDocs

### 📚 **Giáo dục**
- **Tài liệu khóa học**: Bài giảng, bài tập, chương trình giảng dạy
- **Bài tập sinh viên**: Bài luận, bài báo nghiên cứu, báo cáo thí nghiệm
- **Học tập hợp tác**: Nhóm học tập, đánh giá đồng nghiệp

### 🔧 **Viết kỹ thuật**
- **Tài liệu mã**: Nhận xét nội tuyến, tệp README
- **Tài liệu API**: Mô tả điểm cuối, ví dụ
- **Hướng dẫn**: Hướng dẫn từng bước, bài viết cách làm

## Cách sử dụng Markdown

### 1. **Chọn trình soạn thảo của bạn**

**Trình soạn thảo trực tuyến:**
- [Xem trước Markdown thời gian thực](https://www.markdownlang.com/editor/)
- [HTML sang Markdown](https://www.markdownlang.com/html-to-markdown/)
- [Markdown sang HTML](https://www.markdownlang.com/markdown-to-html/)
- [URL sang Markdown](https://www.markdownlang.com/url-to-markdown/)

**Ứng dụng máy tính để bàn:**
- **Typora**: Trình soạn thảo Markdown WYSIWYG thực sự
- **Mark Text**: Trình soạn thảo xem trước thời gian thực
- **Obsidian**: Ứng dụng ghi chú hỗ trợ Markdown
- **Notion**: Không gian làm việc tích hợp hỗ trợ Markdown

**Trình soạn thảo mã:**
- **VS Code**: Với phần mở rộng Markdown
- **Sublime Text**: Với gói Markdown
- **Atom**: Xem trước Markdown tích hợp sẵn
- **Vim/Neovim**: Với plugin Markdown

### 2. **Học cú pháp**

#### Tiêu đề
```markdown
# Tiêu đề H1
## Tiêu đề H2
### Tiêu đề H3
#### Tiêu đề H4
##### Tiêu đề H5
###### Tiêu đề H6

Định dạng văn bản

markdown
**Văn bản đậm**
*Văn bản nghiêng*
***Đậm và nghiêng***
~~Gạch ngang~~
`Mã nội tuyến`

Danh sách

markdown
- Mục danh sách không có thứ tự
- Mục khác
  - Mục lồng nhau
  - Mục lồng nhau khác

1. Mục danh sách có thứ tự
2. Mục khác
   1. Mục có thứ tự lồng nhau
   2. Mục lồng nhau khác

Liên kết và hình ảnh

markdown
[Markdown Lang](https://www.markdownlang.com/)
[Markdown Lang với tiêu đề](https://www.markdownlang.com/ "Markdown Lang")

![Văn bản thay thế](image-url.jpg)
![Hình ảnh với tiêu đề](image-url.jpg "Tiêu đề hình ảnh")

Khối mã

markdown
```javascript
function hello() {
  console.log("Hello, World!");
}
```

```python
def hello():
    print("Hello, World!")
```

Bảng

markdown
| Cột 1 | Cột 2 | Cột 3 |
|------|------|------|
| Hàng 1 | Dữ liệu 1 | Dữ liệu 2 |
| Hàng 2 | Dữ liệu 3 | Dữ liệu 4 |

Khối trích dẫn

markdown
> Đây là một khối trích dẫn
> 
> Nó có thể kéo dài nhiều dòng
> 
> > Và có thể lồng nhau

3. Thực hành và thử nghiệm

  • Bắt đầu với tài liệu đơn giản
  • Sử dụng trình soạn thảo trực tuyến để xem trước thời gian thực
  • Thực hành các phần tử cú pháp khác nhau
  • Thử chuyển đổi sang các định dạng khác nhau

Nó hoạt động như thế nào?

1. Quá trình phân tích

Markdown hoạt động quaquy trình hai bước:

  1. Phân tích: Trình phân tích Markdown đọc văn bản thuần túy và nhận dạng cú pháp định dạng
  2. Kết xuất: Trình phân tích chuyển đổi cú pháp thành HTML (hoặc định dạng đích khác)

2. Thành phần trình phân tích

Trình phân tích từ vựng (Tokenization)

  • Chia nhỏ văn bản thành các token
  • Nhận dạng các phần tử cú pháp khác nhau
  • Xử lý các ký tự đặc biệt và chuỗi thoát

Trình phân tích (Tạo AST)

  • Tạo Cây cú pháp trừu tượng (AST)
  • Biểu diễn cấu trúc tài liệu
  • Xử lý lồng nhau và mối quan hệ giữa các phần tử

Trình kết xuất (Tạo đầu ra)

  • Chuyển đổi AST sang định dạng đích (HTML, PDF, v.v.)
  • Áp dụng các quy tắc kiểu và định dạng
  • Xử lý các trường hợp biên và định dạng đặc biệt

3. Trình phân tích phổ biến

JavaScript

  • marked: Trình phân tích nhanh, nhẹ
  • markdown-it: Trình phân tích có thể cắm, hỗ trợ mở rộng
  • remark: Một phần của hệ sinh thái thống nhất

Python

  • markdown: Triển khai Python đầy đủ tính năng
  • mistune: Nhanh và nhẹ
  • marko: Có thể mở rộng và nhanh

Ngôn ngữ khác

  • PHP: Parsedown, CommonMark
  • Ruby: Redcarpet, Kramdown
  • Go: goldmark, blackfriday

4. Hệ thống mở rộng

Hầu hết các trình phân tích Markdown hỗ trợ mở rộng:

GitHub Flavored Markdown (GFM)

  • Bảng
  • Gạch ngang
  • Danh sách công việc
  • Liên kết tự động
  • Khối mã có hàng rào

CommonMark

  • Tiêu chuẩn được tiêu chuẩn hóa
  • Khả năng tương thích tốt hơn giữa các trình phân tích
  • Hành vi dự đoán được hơn

Mở rộng tùy chỉnh

  • Phương trình toán học (KaTeX, MathJax)
  • Sơ đồ (Mermaid, PlantUML)
  • Chú thích
  • Danh sách định nghĩa
  • Mục lục

5. Quy trình chuyển đổi

mermaid
graph LR
    A[Văn bản Markdown] --> B[Trình phân tích]
    B --> C[AST]
    C --> D[Trình kết xuất]
    D --> E[HTML/PDF/DOCX]
    
    F[Mở rộng] --> B
    G[Cấu hình] --> B
    H[Plugin] --> D

6. Ví dụ thực tế

Khi bạn viết:

markdown
# Hello World

Đây là văn bản**đậm***nghiêng*

- Mục 1
- Mục 2

Trình phân tích chuyển đổi thành:

html
<h1>Hello World</h1>
<p>Đây là văn bản <strong>đậm</strong> và <em>nghiêng</em></p>
<ul>
<li>Mục 1</li>
<li>Mục 2</li>
</ul>

Bắt đầu

Bạn đã sẵn sàng để bắt đầu sử dụng Markdown chưa? Dưới đây là một số bước tiếp theo:

  1. Chọn một trình soạn thảo phù hợp với quy trình làm việc của bạn
  2. Thực hành cú pháp cơ bản với tài liệu đơn giản
  3. Khám phá các mở rộng, chẳng hạn như các tính năng nâng cao của GFM
  4. Thử các trình phân tích khác nhau để tìm cái phù hợp nhất với nhu cầu của bạn
  5. Tích hợp vào quy trình làm việc của bạn - cho viết tài liệu, blog hoặc ghi chú

Sự đơn giản và sức mạnh của Markdown làm cho nó trở thành một lựa chọn tuyệt vời cho bất kỳ ai thường xuyên viết, cho dù đó là tài liệu kỹ thuật, viết sáng tạo hay ghi chú hàng ngày. Bắt đầu từ những điều cơ bản, thực hành thường xuyên và bạn sẽ nhanh chóng thấy Markdown trở thành phần quan trọng trong bộ công cụ viết của mình.

Được xây dựng bởi www.markdownlang.com