Trình soạn thảo Markdown miễn phí

Viết Markdown với xem trước HTML trực tiếp.

Không có dữ liệu nào rời khỏi thiết bị của bạn
Markdown đầu vào
Xem trước HTML
0
Từ
0
Ký tự
0
Dòng

Cách sử dụng

  1. Gõ hoặc dán văn bản Markdown vào ô bên trái. Ô bên phải hiển thị xem trước HTML trực tiếp.
  2. Sử dụng các nút thanh công cụ để nhanh chóng chèn định dạng (đậm, nghiêng, tiêu đề, liên kết, v.v.).
  3. Xem số từ, ký tự và dòng bên dưới trình soạn thảo.
  4. Tải xuống Markdown của bạn dưới dạng tệp .md hoặc sao chép đầu ra HTML.

Câu hỏi thường gặp

Trình soạn thảo này có hỗ trợ cú pháp Markdown tiêu chuẩn không?

Có. Nó hỗ trợ tiêu đề, đậm, nghiêng, liên kết, hình ảnh, khối mã, danh sách, trích dẫn và đường ngang. Một trình phân tích Markdown đơn giản thực hiện kết xuất sang HTML theo thời gian thực.

Tôi có thể lưu công việc của mình không?

Trình soạn thảo tự động lưu văn bản của bạn trong bộ nhớ trình duyệt khi bạn chỉnh sửa. Sử dụng Tải xuống .md để lưu thành tệp trên máy tính của bạn.

Làm thế nào để chèn liên kết hoặc hình ảnh?

Sử dụng các nút thanh công cụ. Với liên kết, gõ [văn bản](url). Với hình ảnh, dùng ![alt](url). Xem trước cập nhật tức thì.

Lịch sử ngắn của Markdown

Markdown được tạo ra vào tháng 3 năm 2004 bởi John Gruber, tác giả đứng sau Daring Fireball, với sự cộng tác quan trọng từ Aaron Swartz (nhà đa tài người sau đó đồng sáng lập Reddit và đồng tác giả đặc tả RSS 1.0). Mục tiêu thiết kế đã nêu (được viết vào trang cú pháp gốc) là «to make it as readable as possible.» Gruber muốn một định dạng văn bản thuần túy có thể xuất bản ngay lập tức, trông tự nhiên trong terminal hoặc trình soạn thảo văn bản thuần túy mà không cần kết xuất gì cả. Định dạng này chính thức hóa những gì mọi người đã làm trong email văn bản thuần túy và các bài đăng Usenet: *asterisks for emphasis*, > for quoted text, dòng trống giữa các đoạn văn.

Tên là sự chơi chữ với «markup language», Markdown nhẹ đến mức nó «marks down» thay vì marking up. Triết lý cốt lõi phân biệt nó với HTML: nguồn của HTML dành cho máy móc, nguồn của Markdown dành cho con người. File .md phải thoải mái để đọc trong terminal mà không cần kết xuất gì.

Trang cú pháp gốc của Gruber để lại nhiều trường hợp biên không rõ ràng, và trong cuối những năm 2000, mọi dự án cần một Markdown parser đều tự viết riêng, đưa ra các quyết định khác nhau về các phần chưa được chỉ định. Đến đầu những năm 2010, cùng một file .md kết xuất khác nhau rõ rệt trên Reddit, GitHub, Stack Overflow và một blog Jekyll. Năm 2014, một nhóm công tác gồm Jeff Atwood (Stack Overflow, Discourse), John MacFarlane (Pandoc), và các kỹ sư từ GitHub, Reddit và Meteor đã tạo ra một đặc tả chặt chẽ, ban đầu gọi là «Standard Markdown», đổi tên thành CommonMark sau khi Gruber phản đối. CommonMark công bố cả văn xuôi dễ đọc và bộ kiểm tra có thể đọc bằng máy với 600+ bài test trường hợp biên; phiên bản hiện tại là 0.31.2 (tháng 1 năm 2024). GitHub, GitLab, Reddit, Stack Overflow, Discourse và hàng chục ngôn ngữ lập trình hiện tuyên bố tuân thủ.

Cú pháp phổ biến

Đây là cú pháp hoạt động trong gần như mọi variant Markdown, nền tảng thực tế mà trình soạn thảo này hỗ trợ.

Bạn muốn gìCách viết
Tiêu đề# H1 đến ###### H6
Đậm / nghiêng**bold** · *italic* · ***both***
Code nội tuyến`code`
Khối codeRào bằng ba dấu backtick; tag ngôn ngữ tùy chọn để tô sáng cú pháp
Danh sách không thứ tự- item (hoặc * hoặc +)
Danh sách có thứ tự1. first: số thực tế thường không quan trọng
Liên kết[text](https://example.com)
Ảnh![alt text](image.jpg): alt text quan trọng cho accessibility
Blockquote> quoted text
Đường kẻ ngang--- trên một dòng riêng

Hai bẫy phổ biến: một dấu xuống dòng đơn không tạo ra ngắt dòng: bạn cần một dòng trống cho đoạn văn mới, hoặc hai dấu cách ở cuối dòng trước dấu xuống dòng (hoặc trong GFM, một dấu gạch chéo ngược) cho ngắt dòng ép trong đoạn văn. Và Markdown là một superset của HTML: bất kỳ thẻ HTML nội tuyến nào đều đi qua đầu ra kết xuất, điều này đôi khi hữu ích và đôi khi là rủi ro bảo mật.

GitHub Flavored Markdown và các variant khác

GFM là superset của CommonMark của GitHub. Nó bổ sung bảng (các hàng phân tách bằng pipe với hàng phân cách gạch ngang), task list item (- [ ] chưa đánh dấu, - [x] đã đánh dấu), gạch ngang (~~text~~), tự động phát hiện URL, và bộ lọc «disallowed raw HTML» loại bỏ các thẻ nguy hiểm. Bản thân GitHub cũng kết xuất một số tính năng ngoài đặc tả, emoji shortcode (:tada:), @mentions, autolink issue #123, alert callout (> [!NOTE]), các phần <details> có thể thu gọn, nhưng đây là các tính năng render của GitHub chứ không phải phần của đặc tả GFM.

Các variant khác bạn sẽ gặp:

Markdown tồn tại ở đâu

Hầu hết ở khắp nơi các nhà phát triển viết văn bản:

Markdown cũng là một loại phương tiện IETF đã đăng ký (text/markdown, RFC 7763, tháng 3 năm 2016) với tham số variant (GFM, CommonMark, MultiMarkdown, v.v.) để người nhận biết variant nào cần áp dụng. Phần mở rộng file phổ biến: .md cho đến nay phổ biến nhất, cộng thêm .markdown, .mdown, .mkdn, .mkd.

Lưu ý về parser của trình soạn thảo này

Trang này dùng một parser Markdown đơn giản hóa bao gồm tập con phổ biến trên, tiêu đề, đậm và nghiêng, liên kết, ảnh, code có hàng rào, danh sách, blockquote và đường kẻ ngang. Đây không phải triển khai CommonMark hay GFM đầy đủ và có thể không xử lý mọi trường hợp biên (danh sách lồng nhau sâu với bullet hỗn hợp, tiếp nối dòng lười biếng, định nghĩa tham chiếu liên kết trên toàn tài liệu). Để tuân thủ CommonMark quan trọng, một parser chuyên dụng như marked.js, markdown-it, hoặc commonmark.js là lựa chọn đúng, và để kết xuất production của Markdown không tin cậy, hãy lọc đầu ra của parser qua một bộ khử trùng như DOMPurify để ngăn XSS qua HTML nội tuyến.

Khi nào bạn dùng công cụ này

Câu hỏi thêm

Tại sao một dấu xuống dòng đơn không tạo dòng mới?

Theo thiết kế. Markdown gộp các dấu xuống dòng đơn thành đoạn văn tiếp tục vì định dạng được thiết kế để trông tự nhiên như văn bản thuần túy, người đọc xuống dòng ở các chiều rộng tùy ý trong trình soạn thảo mà không phá vỡ đầu ra kết xuất. Để ép ngắt dòng trong một đoạn văn, hãy kết thúc dòng bằng hai dấu cách ở cuối (quy ước Markdown gốc) hoặc, trong GFM, một dấu gạch chéo ngược. Để tạo đoạn văn mới, để một dòng trống giữa hai đoạn.

Tôi có thể dùng HTML bên trong Markdown không?

Có, Markdown là superset của HTML. Các thẻ nội tuyến như <span>, <a>, <sub><sup> đi qua đầu ra kết xuất, và cú pháp Markdown bên trong chúng vẫn được nhận biết. HTML cấp block (<div>, <table>) cần được phân tách khỏi Markdown xung quanh bằng các dòng trống, và Markdown không được xử lý bên trong block. Dùng điều này cho những thứ Markdown không thể diễn đạt tự nhiên: kích thước ảnh (<img width="…">), chip bàn phím (<kbd>), hoặc các phần có thể thu gọn (<details>).

Còn bảng, chú thích và task list thì sao?

Cả ba đều là extension GFM, không phải phần của đặc tả Markdown gốc. Bảng dùng các hàng phân tách bằng pipe với hàng phân cách gạch ngang bên dưới; parser đơn giản hóa trên trang này có thể kết xuất chúng thành văn bản thuần túy. Chú thích (tham chiếu [^1] và định nghĩa [^1]: definition) là tính năng render của GitHub nằm ngoài đặc tả GFM chính thức. Task list (- [ ]- [x]) có trong GFM. Để bao phủ đầy đủ các tính năng này, hãy dán file của bạn vào renderer tuân thủ CommonMark+GFM như chính xem trước GitHub.

Tại sao alt text bắt buộc cho ảnh?

Vì alt text là thứ screen reader thông báo khi gặp ảnh, đây là móc accessibility chính cho người đọc khiếm thị. ![image1.png](url) hợp lệ về mặt kỹ thuật trong Markdown nhưng vô dụng với screen reader; ![Annual revenue chart, 2020 to 2025](url) thực sự mô tả. Bỏ qua alt text hoặc điền tên file là một trong những lỗi accessibility phổ biến nhất trên nội dung web.

Có dữ liệu nào được gửi lên máy chủ không?

Không. Trình soạn thảo phân tích Markdown sang HTML trong trình duyệt, bản xem trước trực tiếp được cập nhật cục bộ, và tự động lưu dùng localStorage của trình duyệt: một kho lưu trữ riêng tư nhỏ trên thiết bị của bạn. Không có gì rời khỏi trang. Trình soạn thảo hoạt động ngoại tuyến sau khi đã tải.

Công cụ liên quan

Trình Chuyển Đổi Markdown Sang HTML Công cụ Xem Trước Markdown Trực Tuyến Miễn Phí Trình Tạo Bảng Markdown