HTML sẽ được dùng ở đâu
Markdown dễ chịu khi viết, nhưng nhiều nơi chỉ nhận HTML: chế độ xem mã nguồn của trình soạn thảo CMS, mẫu email, ô mô tả sản phẩm trong cửa hàng online, cổng tài liệu không hỗ trợ Markdown, hoặc một trang tĩnh bạn đang tự tay ghép. Chuyển đổi ở đây cho bạn phần mã đánh dấu để dán vào bất kỳ nơi nào trong số đó, và bản xem trước cho phép bạn kiểm tra kết quả trước khi đưa lên.
Việc chuyển đổi dùng phương ngữ GitHub Flavored Markdown, nên văn bản viết cho README, mô tả pull request hay ứng dụng ghi chú như Obsidian hoạt động ở đây giống như ở đó.
Đầu ra trông như thế nào
Công cụ tạo ra một đoạn nội dung body: chính các phần tử, không có <html>, <head> hay style. Vài chi tiết đáng biết trước khi bạn dán nó vào đâu đó:
- Tiêu đề không có thuộc tính
id.## Pricingtrở thành<h2>Pricing</h2>. Nếu bạn cần liên kết neo cho mục lục, hãy tự thêm id. - Khối mã mang class ngôn ngữ. Một hàng rào mở bằng
`pythontạo ra<pre><code class="language-python">, mà các bộ tô sáng như Prism và highlight.js tự động nhận diện. Ký tự như<và&bên trong mã được thoát. - Danh sách công việc trở thành mục danh sách có ô đánh dấu bị vô hiệu hóa, giống cách GitHub hiển thị.
- Bảng trở thành mã
<table>thuần với<thead>và<tbody>. Căn lề cột đặt bằng dấu hai chấm trong hàng phân cách được ghi thành thuộc tínhalign. - Không kèm style nào. Bản xem trước áp dụng một stylesheet nhẹ để bạn đọc được, nhưng HTML được sao chép sẽ kế thừa CSS của trang đích.
Tệp tải về bọc đoạn nội dung trong một trang độc lập tối giản: một tài liệu <!doctype html> với <meta charset="utf-8"> và <title> lấy từ tiêu đề đầu tiên, nên chữ có dấu và văn bản không phải ASCII khác hiển thị đúng khi tệp được mở từ ổ đĩa. Nó không thêm style, nên trang dùng mặc định của trình duyệt.
Ngắt dòng và những bất ngờ khác
Phần lớn nhầm lẫn với Markdown đến từ một số ít quy tắc khác với trình soạn thảo văn bản:
- Một lần xuống dòng không phải là dòng mới. Hai dòng viết dòng này dưới dòng kia sẽ nhập thành một đoạn. Để trống một dòng để bắt đầu đoạn mới, hoặc kết thúc dòng bằng hai dấu cách hay một dấu gạch chéo ngược để ép một
<br>. Một số trình soạn thảo, kể cả bình luận trên GitHub, coi một lần xuống dòng là ngắt dòng; công cụ này theo hành vi chuẩn dùng trong tệp README của GitHub và phần lớn trình tạo trang tĩnh. - Front matter không được nhận diện. Một khối YAML giữa các dòng
---ở đầu tệp được hiển thị thành một đường kẻ ngang theo sau là văn bản, và dấu---đóng có thể biến dòng phía trên nó thành tiêu đề. Hãy xóa front matter trước khi chuyển đổi. - Chú thích, công thức toán và sơ đồ không thuộc phương ngữ này.
$x^2$vẫn là văn bản nguyên văn và một khối Mermaid trở thành khối mã thường. Cú pháp chú thích còn tệ hơn bị bỏ qua: một định nghĩa như[^1]: noteđược đọc là tham chiếu liên kết, nên dấu đánh chú thích biến thành liên kết trỏ đến từnote. - Dấu nháy vẫn thẳng. Dấu nháy cong và gạch dài kiểu in ấn không được chèn vào; bạn gõ gì thì nhận nấy.
- Danh sách đánh số không bắt đầu từ 1 không thể bắt đầu ngay dưới một đoạn văn. Các dòng như
3. threebị nhập vào văn bản của đoạn trừ khi có một dòng trống ngăn cách. Danh sách gạch đầu dòng và danh sách bắt đầu từ 1 không gặp vấn đề này.
HTML thô và an toàn
Markdown cho phép HTML thô, và công cụ này chuyển nó qua nguyên vẹn. Một khối <details> hay <span style> bạn tự viết sẽ xuất hiện trong đầu ra đúng như đã viết. Điều đó hữu ích, nhưng cũng có nghĩa đầu ra không được làm sạch: thẻ <script> hay thuộc tính onerror trong nguồn sẽ có mặt trong HTML được sao chép.
Bản thân bản xem trước chạy trong một khung sandbox với script bị vô hiệu hóa, nên xem Markdown không đáng tin cậy ở đây là an toàn. Dán HTML kết quả vào trang web của chính bạn lại là chuyện khác. Nếu Markdown đến từ người dùng hoặc nguồn không đáng tin cậy khác, hãy đưa HTML qua một bộ làm sạch ở phía bạn trước khi xuất bản.
Các chuyển đổi liên quan
Để đi theo chiều ngược lại, từ trang web hoặc bản xuất CMS trở về Markdown, hãy dùng chuyển HTML sang Markdown. Với tài liệu Word, chuyển đổi DOCX sang Markdown tạo ra Markdown mà bạn có thể xem trước và chuyển đổi ở đây. Mọi thứ chạy trong trình duyệt ngay khi bạn gõ, nên bản nháp và tài liệu nội bộ không bao giờ được gửi đến máy chủ.