Mấy ngày trước, tôi đã chuyển blog của mình sang nền tảng Bitcron và phát hiện ra rằng cách xử lý việc xuống dòng trong đoạn văn khi render Markdown trên Bitcron khác với phiên bản gốc của Markdown:
- Phiên bản Bitcron: Xử lý xuống dòng trực tiếp thành thẻ
<br />
, được gọi là xuống dòng cứng. - Phiên bản gốc Markdown: Khi xuống dòng trong đoạn văn, nó sẽ 2bet được coi như một dấu cách, được gọi là xuống dòng mềm. Để thực hiện xuống dòng cứng, bạn cần nổ hũ 90 sử dụng
khoảng trắng + khoảng trắng + xuống dòng
để nhận được<br />
.
Hình 1: Dòng mềm theo phiên bản gốc, file md có hiệu ứng xuống dòng nhưng kết quả render không xuống dòng. Hình 2: Dòng cứng theo phiên bản gốc, dùng khoảng trắng + khoảng trắng + xuống dòng để thực hiện dòng cứng. Hình 3: Dòng cứng trên Bitcron.
Trong ba bức hình trên, ta có thể thấy hiệu ứng xuống dòng của phiên bản gốc Markdown và Bitcron. Các hình ảnh bên trái là file nguồn Markdown, còn bên phải là kiểu hiển thị sau khi render theo các quy tắc khác nhau. Trong Hình 2, dựa trên quy tắc gốc của Markdown, để thực hiện dòng cứng trong đoạn văn, hai khoảng trắng đã được thêm vào cuối câu (chú ý vị trí con trỏ).
Về vấn đề xuống dòng, từ khi bắt đầu làm quen với Markdown, tôi đã chú ý đến điều này nhưng không quá bận tâm vì hầu hết các trình soạn thảo Markdown đều hỗ trợ phiên bản gốc. Do đó, tôi luôn sử dụng phương pháp khoảng trắng + khoảng trắng + xuống dòng
để thực hiện dòng cứng trong đoạn văn. Tuy nhiên, dưới quy tắc của Bitcron, cách viết này sẽ biến dòng xuống thành phân đoạn riêng biệt, giống như hình dưới đây:
Hình 4: Hiệu ứng render theo quy tắc gốc của Markdown trên Bitcron.
Từ đó, tôi bắt đầu lưỡng lự liệu trong tương lai có nên tiếp tục gõ hai khoảng trắng khi xuống dòng hay không.
Đối với cách viết thêm khoảng trắng của phiên bản gốc, tôi tìm thấy một tài liệu tham khảo phổ biến về cú pháp Markdown 1, trong đó có nhắc đến:
Nếu bạn thực sự muốn sử dụng Markdown để chèn thẻ
<br />
, hãy nhấn hai khoảng trắng hoặc nhiều hơn trước khi enter. Thật vậy, cần phải mất công thêm khoảng trắng để tạo ra<br />
, nhưng phương pháp đơn giản “chuyển mỗi dòng xuống thành<br />
” không phù hợp trong Markdown. Việc sử dụng xuống dòng để định dạng trong khối trích dẫn kiểu email và danh sách đa đoạn trong Markdown không chỉ hữu ích hơn mà còn dễ đọc hơn.
Tuy nhiên, đối với việc sử dụng quy tắc này trong khối trích dẫn và danh sách, tôi vẫn chưa hiểu rõ và cũng chưa từng áp dụng.
Nếu xem xét kỹ hơn, tôi cảm thấy quy tắc gốc không thực sự hợp lý.
Thứ nhất, dựa trên kinh nghiệm của mình, tôi chưa bao giờ sử dụng dòng mềm vì ít trường hợp cần thiết. Ngược lại, tôi thường xuyên sử dụng dòng cứng trong đoạn văn (tất nhiên, điều này có liên quan đến thói quen cá nhân).
Thứ hai, triết lý thiết kế của Markdown là “dễ đọc, dễ viết”. Cách thiết kế này rõ ràng không dễ viết. Về mặt dễ đọc, nó nên giúp người dùng dễ dàng nhận diện các phần tử khác nhau và hiệu ứng sau khi render từ file nguồn. Ví dụ, >
được sử dụng để định nghĩa khối trích kèo bóng đá dẫn.
Thứ ba, hiệu ứng cuối cùng của dòng mềm là trở thành một khoảng trắng, đây là thiết kế đặc thù cho tiếng Anh và không phù hợp với tiếng Việt.
Để cải thiện, việc xuống dòng nên được xử lý trực tiếp thành dòng cứng vì trường hợp này xuất hiện nhiều hơn. Nếu thực sự cần dòng mềm, chúng ta có thể bổ sung quy tắc mới, ví dụ như sử dụng ký tự \
để nối dòng, tương tự như trong một số ngôn ngữ lập trình.
Hầu hết các trình soạn thảo đều cung cấp tùy chọn để xử lý xuống dòng trực tiếp thành <br />
, thậm chí các nền tảng như Jianshu và GitHub mặc định hoạt động theo cách này. Vì vậy, khi sử dụng Markdown, bạn hoàn toàn có thể bỏ qua hai khoảng trắng khi xuống dòng.
Chú thích:
- Tài liệu giải thích cú pháp Markdown (phiên bản tiếng Trung giản thể) ↩
Sửa đổi lần cuối vào 2025-01-04