Markdown là gì? Hướng dẫn sử dụng Markdown A-Z

Hướng dẫn sử dụng markdown là gì

Hướng dẫn sử dụng markdown là gì

Trong bài viết Hướng dẫn sử dụng Obsidian toàn tập, tôi đã đề cập đến Markdown như là phương thức soạn thảo ghi chú với ứng dụng này, trong bài viết này chúng ta cùng tìm hiểu cách sử dụng Markdown một cách trọn vẹn nhất nhé.

I. Markdown là gì?

Markdown là một dạng ngôn ngữ đánh dấu đơn giản và dễ sử dụng, nó được tạo ra bởi John Gruber vào năm 2004. Hiện nay, markdown là một trong những ngôn ngữ đánh dấu phổ biến nhất thế giới.

Sử dụng Markdown khác với sử dụng trình soạn thảo WYSIWYG (Những gì hiển thị khi bạn soạn thảo chính là kết quả nhận được). Trong Microsoft Word hay Google Docs, bạn nhấp chuột vào các nút trên thanh công cụ để định dạng văn bản, các thay đổi được hiển thị ngay lập tức. Markdown không hoạt động như vậy trừ một số trường hợp đặc biệt như Obsidian. Khi bạn tạo một tệp được định dạng bằng Markdown, bạn thêm cú pháp Markdown vào văn bản để chỉ định từ/đoạn văn bản nào sẽ được định dạng khác biệt với phần còn lại.

Ví dụ, để chỉ định một tiêu đề, bạn thêm một dấu thăng (#) phía trước (ví dụ: # Tiêu đề cấp một). Hoặc để in đậm đoạn văn bản, bạn thêm hai dấu sao (\*\*) trước và sau nó (ví dụ: **văn bản này in đậm**). Có thể bạn sẽ phải mất một thời gian để làm quen và sử dụng thành thục cú pháp Markdown. Khi đã quen thuộc, tôi tin rằng bạn cũng sẽ sớm “nghiện” nó và nhận ra những lợi ích tuyệt vời của nó như tôi vậy.

II. Markdown hoạt động như thế nào?

Markdown file > Ứng dụng hỗ trợ Markdown > HTML > Hiển thị dạng web

Markdown hoạt động như thế nào? | Nguồn: markdownguide.org

Khi soạn thảo văn bản với Markdown, văn bản này được lưu dưới dạng một file văn bản thuần (plain text) với phần mở rộng .md hoặc .markdown.

Để file Markdown được hiển thị dưới dạng HTML hoàn chỉnh, bạn cần một ứng dụng có khả năng xử lý file Markdown (nếu không nó chỉ hiển thị văn bản thuần như khi mở với Notepad trên Windows hoặc Textedit trên macOS). Khi mở bằng phần mềm hỗ trợ Markdown như Obsidian, Visual Studio Code, MarkText, vv thì file markdown được hiển thị dưới dạng HTML (giao diện web). Bạn có thể in hoặc chuyển đổi văn bản này thành các định dạng khác như PDF, docx, vv

III. Tại sao nên sử dụng markdown?

Người dùng phổ thông

  1. Học các cú pháp trình bày nội dung ‘sạch đẹp’ chỉ với văn bản thuần (plain text).
  2. Sử dụng cú pháp markdown để ghi chú/soạn thảo tài liệu nhanh chóng với các ứng dụng phổ biến như Google Docs, Confluence, Notion, Evernote, vv (hầu hết các ứng dụng ghi chú phổ biến đều hỗ trợ, có thể bắt gặp trong phần mềm nhắn tin như Slack, Whatsapp với các cú pháp cơ bản)
  3. Soạn thảo nội dung cho website. Mình sử dụng Obsidian và markdown để soạn bài viết cho blog. Khi đính kèm các hình ảnh hoặc file vào bài viết thì Obsidian tự động copy file này vào thư mục lưu trữ đã được cấu hình sau đó chèn link của file này vào file markdown để hiển thị, hình ảnh hoàn toàn không bị nén. Do đó khi cập nhật bài viết lên web rất nhanh chóng và tiện lợi mà không cần trải qua quá trình xuất file từ file ghi chú (nếu chèn hình vào file như kiểu Microsoft Word) và mở file trong giao diện Obsidian cũng rất nhanh chóng (nhất là dùng phím tắt và lệnh).
  4. Markdown có thể đọc được với bất kỳ ứng dụng soạn thảo văn bản/lập trình (text editor) nào trên tất cả các thiết bị và hệ điều hành. Bạn cũng có thể đổi tên dịnh dạng file thành `*.md` thành `*.txt` nếu cần thiết. Bởi vậy có thể nói không ngoa rằng, các văn bản viết bằng Markdown có thể để lại đến đời con, cháu của bạn cũng không sao. Bởi vì markdown không phụ thuộc vào bất kỳ ứng dụng nào để soạn thảo hay đọc nó, cũng không phải trả tiền bản quyền để sử dụng hay lo phần mềm soạn thảo ra nó dẹp tiệm.
  5. Mở file siêu nhanh, nhẹ do nội dung file chỉ chứa văn bản, và nhẹ hơn các file được tạo ra bởi Microsoft Word hoặc các định dạng văn bản khác (dùng HTML và CSS để định dạng).

Lập trình viên / Chuyên gia dữ liệu

  1. Markdown là ngôn ngữ chính để soạn thảo các file README.md trên Github, được dùng để hiện thị các thông tin chính của một repository trên Github và các công cụ họ nhà git.
  2. Markdown là ngôn ngữ dùng để trình bày các dự án phân tích dữ liệu với Jupyter Notebook (Python, Julia), R Markdown (R)

Người dùng nâng cao

Soạn thảo tài liệu khoa học, bài thuyết trình, viết sách, vv (hầu hết tất cả các định dạng xuất bản) với ứng dụng mã nguồn mở Quarto.

IV. Markdown được dùng ở đâu?

Như đã bật mí ở trên, markdown có thể được dùng ở bất cứ đâu, bất cứ thiết bị và nền tảng hệ điều hành nào hiện có. Dưới đây là một số ví dụ:

  1. Ứng dụng soạn thảo tài liệu: Google Docs, Confluence, vv
  2. Phần mềm ghi chú: Obsidian, Notion, Evernote, Bear, vv
  3. Markdown text editor: MarkText (mã nguồn mở, miễn phí, tôi đang dùng trong 1 số trường hợp, trải nghiệm dùng thú vị)
  4. Viết blog/tạo website: Có thể sử dụng plugin trên WordPress để hiện thị Markdown, sử dụng JekyllGithub page để tạo website tĩnh, vv
  5. Diễn đàn: Reddit
  6. Lập trình: Github, Gitlab và các thể loại git khác, Huggingface, Read the Docs, vv
  7. Phân tích dữ liệu: Jupyter Notebook, Jupyter Lab, Visual studio Code (VSC), Foam (extension trên VSC, quản lý ghú, tương tự Obsidian)
  8. ChatGPT, Bing Chat, Google Bard: Tất cả các mô hình ngôn ngữ AI hiện tại đều cho phép yêu cầu sử dụng markdown để định dạng câu trả lời.

V. Các phiên bản markdown

Markdown có nhiều phiên bản khác nhau, được gọi là “markdown flavours”. Mỗi phiên bản có cú pháp và tính năng khác nhau, nhưng chúng đều dựa trên cú pháp gốc của Markdown.

Dưới đây là một số phiên bản phổ biến của Markdown:

  1. CommonMark: Phiên bản chuẩn của Markdown, được thiết kế để đảm bảo tính di động và tương thích giữa các nền tảng
  2. [GitHub Flavored Markdown (GFM)](GitHub Flavored Markdown Spec): Phiên bản của Markdown được sử dụng trên GitHub.com và GitHub Enterprise. Nó cung cấp một số tính năng mở rộng so với CommonMark, bao gồm các bảng, gạch ngang chữ (strikethrough), liên kết tự động và danh sách công việc (task list).
  3. Markdown Extra: Phiên bản của Markdown được phát triển bởi Michel Fortin. Nó cung cấp một số tính năng mở rộng so với CommonMark, bao gồm chú thích chân trang (footnotes) và tiêu đề tự động .
  4. MultiMarkdown: Phiên bản của Markdown được phát triển bởi Fletcher T. Penney. Nó cung cấp nhiều tính năng mở rộng so với CommonMark, bao gồm các chú thích chân trang, tiêu đề tự động, và hỗ trợ cho các công thức toán học.

Ngoài ra, những năm gần đây việc sử dụng Obsidian dần trở nên phổ biến và những người dùng tiếp cận công cụ ghi chú toàn năng này cũng được một phen làm quen thêm một hệ cú pháp markdown đặc biệt nữa là Obsidian Markdown. Về cơ bản, Obsidian hỗ trợ các cú pháp markdown thông dụng, ngoài ra nó bổ sung thêm một số cú pháp markdown đặc biệt mà chỉ sử dụng trong Obsidan là wiklinks (siêu liên kết), callout (chú thích), comment, diagram (biểu đồ), embed (nhúng), vv nhưng cũng đồng thời lược bỏ bớt một số cú pháp. Bạn có thể xem bảng tham chiếu từ Markdown guide để hiểu hơn sự khác biệt cụ thể tại đây.

VI. Bắt đầu sử dụng markdown như thế nào?

  • Markdownguide là một trang web mã nguồn mở giúp hướng dẫn sử dụng markdown một cách trực quan và dễ dàng để bạn có thể làm quen ngôn ngữ đánh dấu này.
  • Github markdown syntax: Tài liệu hướng dẫn sử dụng cú pháp markdown để định dạng văn bản trên Github
  • Obsidian markdown: Hướng dẫn định dạng ghi chú với Obsidian sử dụng markdown syntax.

VII. Cú pháp markdown cơ bản

Trong phần này, bạn sẽ được hướng dẫn cách sử dụng cú pháp markdown trên Obsidian nhưng cũng có thể áp dụng với các ứng dụng hỗ trợ markdown thông dụng (universal) khác. Ở phần tiếp theo tôi sẽ hướng dẫn chi tiết về các cú pháp Markdown dành riêng cho Obsidian. Đối với các ứng dụng hỗ trợ Markdown khác, bạn có thể tự tìm hiểu thêm chi tiết theo từng tường hợp cụ thể.

Trích dẫn (Blockquote)

> Mỗi khi bạn ghi chú, hãy tự hỏi: "Làm thế nào để ghi chú này hữu ích nhất cho mình trong tương lai?" Câu hỏi này dẫn tới việc bạn đánh dấu các từ và cụm từ để giải thích tại sao bạn lưu giữ ghi chú đó, suy nghĩ của bạn và điều gì đã thu hút sự chú ý của bạn.
\- Tiago Forte - Building a second brain

Mỗi khi bạn ghi chú, hãy tự hỏi: “Làm thế nào để ghi chú này hữu ích nhất cho mình trong tương lai?” Câu hỏi này dẫn tới việc bạn đánh dấu các từ và cụm từ để giải thích tại sao bạn lưu giữ ghi chú đó, suy nghĩ của bạn và điều gì đã thu hút sự chú ý của bạn.
– Tiago Forte – Building a second brain

 

Đoạn mã (Code block)

Tô màu cú pháp theo ngôn ngữ lập trình được hỗ trợ khi bạn đặt các đoạn mã vào sau các dấu backtick đầu tiên ( ` – phím ngay bên dưới phím Esc). Obsidian sử dụng prismjs cho cú pháp tô màu, danh sách các ngôn ngữ được hỗ trợ có thể được tìm thấy tại trang web của prismjs.

```python
import pandas as pd
df = pd.read_csv(‘path_to_file.csv’
print(df)
```

Sẽ được hiển thị như sau:

Obsidian markdown – Đoạn mã (code block)

Còn nữa…

VIII. Cú pháp Obsidian markdown

Để học các cú pháp markdown trong Obsidian cho việc ghi chú nhanh nhất, bạn có thể mở Sandbox Vault trong Obsidian để xem các ghi chú demo. Tuy các ghi chú này viết bằng tiếng Anh nhưng khá dễ hiểu và trực quan. 

Demo cú pháp markdown Obsidian trong Sandbox Vault

Liên kết nội bộ (Internal Link)

Đặt tên của một ghi chú bất kỳ vào cặp dấu [[]] để chèn liên kết đến ghi chú đó.

Liên kết đến một ghi chú khác [[Tên ghi chú]]

Kết quả dạng HTML sẽ trông thế này: Liên kết đến một ghi chú khác Tên ghi chú

Khi bạn muốn hiển thị nội dung của ghi chú được nhúng vào ghi chú đang tạo, hãy thêm dấu ! trước cặp dấu ngoặc vuông:

Nhúng (embed) nội dung từ ghi chú khác vào. Nội dung ghi chú được nhúng sẽ hiển thị ở đây. ![[../../Ghi chú mẫu]].
Obsidian markdown – Liên kết nội bộ (Internal Link)

Chú thích (Callout)

Từ phiên bản v0.14.0, Obsidian hỗ trợ các Chú thích (Callout). Cú pháp của Callout được lấy cảm hứng từ cú pháp “alert” của Microsoft Docs.

Để sử dụng Callout, bạn có thể sử dụng cú pháp > [!NOTE]

> [!NOTE]+ Trích dẫn 
> Một khu vườn xinh đẹp nhờ có những hạt giống tốt lành, vì vậy hãy bắt đầu bằng cách gieo trồng những ý tưởng thú vị, sáng suốt và hữu ích nhất mà chúng ta có thể tìm thấy vào khu vườn tri thức của mình. 
> \- Tiago Forte | Building a second brain

Kết quả nhận được như sau:

Sử dụng markdown trong Obsidian – Callout (chú thích)
 

Hiện tại, Obsidian hỗ trợ 12 loại Callout theo mặc định, mỗi loại có thể được gọi bằng tên khác nhau (alias). Mỗi loại được hiển thị với một màu nền và biểu tượng khác nhau.

Để sử dụng các Callout mặc định này, hãy thay thế NOTE trong ví dụ trên với bất kỳ cái tên nào trong danh sách dưới đây. Bất kỳ cái tên nào không được hệ thống nhận diện sẽ được hiển thị theo loại mặc định là “note”, trừ khi chúng được tuỳ chỉnh bằng CSS. Bạn có thể viết tên của Callout bằng chữ hoa hay thường đều được.

  • note
  • abstract, summary, tldr
  • info, todo
  • tip, hint, important
  • success, check, done
  • question, help, faq
  • warning, caution, attention
  • failure, fail, missing
  • danger, error
  • bug
  • example
  • quote, cite
 

Tiêu đề và nội dung

Bạn có thể đặt tiêu đề của Callout hoặc tạo ra một callout mà không có nội dung (chỉ có tiêu đề).

> [!TIP] Các callout có thể có tiêu đề tùy chỉnh, và luôn hỗ trợ **markdown**!"
 

Ẩn và hiện

Ngoài ra, bạn có thể tạo ra một callout có thể thu gọn/mở rộng nội dung bằng cách thêm - (thu gọn) hoặc + (mở rộng) nội dung ngay sau phần đánh dấu Callout. Ví dụ:

[!FAQ]- Các callout có thể thu gọn được không?
Có! Callout có thể được thu gọn, khi đó nội dung chính sẽ bị ẩn cho đến khi bạn click vào để mở rộng.`
 
Obsidian markdown – Thu gọn và mở rộng Callout (chú thích)
 

Bình luận (Comment)

Đặt nội dung bình luận trong 2 cặp dấu %% sẽ khiến chúng được hiểu như cú pháp Markdown nhưng không hiển thị trong bản xem trước (preview – hiển thị định dạng nội dung web).

Đây là một số bình luận trong cùng một dòng: %%Bạn không thể nhìn thấy văn bản này%% (Không nhìn thấy nó) Đây là một khối bình luận: %% Nó có thể kéo dài trong nhiều dòng %%

Đây là một số bình luận trong cùng một dòng: (không thấy trong bản xem trước)

Còn nữa…

Rate this post
Exit mobile version