Markdown 文档 (.md)

CommonMark Tiêu chuẩn

Markdown (MD) là ngôn ngữ đánh dấu dạng nhẹ phổ biến nhất thế giới, được thiết kế bởi John Gruber nhằm giúp việc đọc và viết dưới dạng văn bản thuần túy trở nên dễ dàng nhất có thể, đồng thời chuyển đổi mượt mà thành HTML có cấu trúc.

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp Markdown bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp Markdown bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

23 20 / 2D 2D 2D

BIỂU DIỄN ASCII: # / ---

Tiêu chuẩn hóa: CommonMark Specification / GitHub Flavored Markdown (GFM)

Thông số kỹ thuật

Kiến trúc ContainerPlain UTF-8 text file utilizing lightweight punctuation formatting (headings, lists, bold, italics, code blocks)
NénUncompressed text (readily compressed with Gzip or Brotli)
Thứ tự byte EndiannessUTF-8 / Unicode text stream
Không gian màuN/A (Plaintext Markup)
Kênh & Cấu trúcHeadings, blockquotes, unordered/ordered lists, code fences, hyperlinks, images, and tables
Kích thước tối đaUnbounded text document length
Độ trong suốtNone (pure text)
Truyền phát & Tăng dầnStreaming line-by-line block and inline tokenization

Ma trận so sánh kỹ thuật: Markdown so với các đối thủ

Thuộc tính kỹ thuậtMarkdown (Hiện tại)HTMLTXTPDF
Độ đơn giản khi soạn thảoGõ văn bản thuần túy cực kỳ nhanhCú pháp thẻ dài dòng (<p>, <div>)Gõ nhanh (không định dạng)Yêu cầu trình chỉnh sửa bố cục đồ họa
Khả năng đọc (Thô)Khả năng đọc văn bản tự nhiên nguyên sơBị rối mắt bởi các thẻ và dấu ngoặcKhả năng đọc văn bản nguyên sơDữ liệu thô nhị phân không thể đọc được
Chuyển đổi HTMLĐầu ra tất định 1-1 trực tiếpNgôn ngữ web gốcYêu cầu định dạng thủ côngĐầu ra đồ họa cố định
Công cụ cho nhà phát triểnPhổ biến trong Git, GitHub, DocsPhổ biến trong Phát triển WebLưu trữ cơ bản phổ biếnPhân phối tài liệu

Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex

Các khối mã hiển thị dưới dạng đoạn văn bình thường hoặc các tiêu đề không định dạng được.

Nguyên nhân gốc rễ: Thiếu khoảng trắng sau ký tự '#' của tiêu đề hoặc các dấu huyền ba (```) mở đầu khối mã chưa được đóng.

Khắc phục: Xác thực và định dạng lại cú pháp Markdown bằng File2File Markdown Linter.

Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp

Các bộ chuyển đổi Markdown thường cho phép HTML nội dòng thô theo mặc định, điều này có thể dẫn đến lỗ hổng Cross-Site Scripting (XSS) nếu không được làm sạch đúng cách.

Các Véc-tơ Tấn công Đã biết

  • Tiêm mã XSS thông qua các phần tử HTML thô (ví dụ: '<script>' hoặc '<img onerror=...>') được nhúng bên trong văn bản Markdown.
  • Từ chối dịch vụ thông qua các cấu trúc trích dẫn khối hoặc danh sách lồng nhau sâu trong các bộ phân tích cú pháp không tuân thủ chuẩn.
  • Các lược đồ siêu liên kết độc hại ('javascript:') bên trong cú pháp liên kết Markdown.

Thực tiễn Tốt nhất về Phòng thủ:

Nguồn gốc lịch sử & Các cột mốc

2017GitHub Flavored Markdown (GFM) được chuẩn hóa dựa trên đặc tả CommonMark chính thức.
2014Sáng kiến CommonMark được khởi động bởi Jeff Atwood và John MacFarlane nhằm chuẩn hóa các trường hợp biên mơ hồ của Markdown.
2004John Gruber và Aaron Swartz phát hành đặc tả Markdown 1.0 gốc và tập lệnh chuyển đổi Perl.

Ưu điểm & Lợi ích chính

  • Khả năng đọc hiểu của con người đạt mức tối đa: văn bản được định dạng trông sạch sẽ và tự nhiên ngay cả khi xem trong terminal cơ bản hoặc trình soạn thảo văn bản thuần túy.
  • Tiêu chuẩn công nghiệp phần mềm phổ biến toàn cầu: hỗ trợ tệp README trên GitHub, tin nhắn Discord, bình luận Reddit, tài liệu (Obsidian, Notion), và các trình tạo trang tĩnh.
  • Không bị khóa chặt vào nhà cung cấp (vendor lock-in): các tệp văn bản thuần túy sẽ vẫn đọc được trong nhiều thế kỷ mà không cần phần mềm xem độc quyền.

Hạn chế & Nhược điểm kỹ thuật

  • Đặc tả gốc năm 2004 có các quy tắc phân tích cú pháp mơ hồ, dẫn đến sự phân mảnh phương ngữ tinh vi (CommonMark so với GFM so với Kramdown).
  • Không hỗ trợ gốc cho các tính năng bố cục trang phức tạp như bố cục tạp chí nhiều cột, ngắt dòng văn bản hoặc số trang.
  • Hình ảnh được nhúng bằng cách liên kết bên ngoài thay vì lưu trữ bên trong tệp tài liệu.

Thông tin kỹ thuật thú vị

  • Aaron Swartz, người đồng phát triển Markdown với John Gruber khi mới 17 tuổi, cũng đồng sáng lập Reddit và xây dựng RSS 1.0.
  • Mọi kho lưu trữ GitHub trên thế giới đều sử dụng tệp 'README.md' để giới thiệu cơ sở mã nguồn của mình cho các nhà phát triển.
  • Triết lý thiết kế của Markdown nêu rõ: 'Mục tiêu thiết kế hàng đầu cho cú pháp định dạng của Markdown là làm cho nó dễ đọc nhất có thể.'

Các câu hỏi kỹ thuật thường gặp

Markdown được dùng để làm gì?

Markdown được sử dụng để viết tài liệu, tệp README trên GitHub, bài đăng blog, ghi chú trong các ứng dụng như Obsidian và Notion, cũng như soạn thảo tin nhắn trên các nền tảng như Discord và Slack.

Làm thế nào để chuyển đổi Markdown sang PDF hoặc HTML?

Bạn có thể chuyển đổi các tệp Markdown (.md) thành tài liệu PDF có định dạng hoặc mã HTML sạch sẽ chỉ bằng một cú nhấp chuột thông qua File2File.app trực tiếp trong trình duyệt web của bạn.

GitHub Flavored Markdown (GFM) là gì?

GFM là phiên bản Markdown mở rộng của GitHub, hỗ trợ thêm bảng, danh sách công việc có hộp kiểm ([x]), văn bản gạch ngang (~~text~~), và các khối mã được tô sáng cú pháp.