BBCode sang HTML

5 trên 2 xếp hạng

BBCode sang HTML là công cụ miễn phí giúp chuyển các đoạn BBCode thành HTML thô để dùng bên ngoài trình soạn thảo của diễn đàn.

Chuyển đổi BBCode giải quyết vấn đề gì?

Việc chuyển đổi BBCode biến cú pháp đánh dấu kiểu diễn đàn thành HTML mà trình duyệt, hệ thống quản lý nội dung và mẫu web có thể hiểu được. BBCode dùng các thẻ trong ngoặc vuông như [b], [i] và [url] thay cho phần tử HTML.

Tính năng này hữu ích khi chuyển bài viết từ diễn đàn, gỡ lỗi nội dung do API của bên thứ ba trả về hoặc chuẩn bị một kho kiến thức cũ cho nền tảng chấp nhận HTML nhưng không hỗ trợ BBCode. Công cụ cũng giúp bạn kiểm tra riêng nội dung đã nhập trước khi triển khai, thay vì phải xem xét cùng với mã của ứng dụng.

BBCode không phải là một ngôn ngữ có tiêu chuẩn chính thức duy nhất. Mỗi phần mềm diễn đàn và trình cắm có thể tự định nghĩa thẻ, thuộc tính và quy tắc lồng thẻ. Vì vậy, kết quả chuyển đổi đúng với các kiểu định dạng phổ biến vẫn có thể cần điều chỉnh nếu nội dung nguồn dùng cấu trúc riêng của nền tảng, chẳng hạn như hộp nội dung ẩn, tham chiếu tệp đính kèm hoặc thẻ phương tiện tùy chỉnh.

Làm thế nào để chuyển BBCode sang HTML?

Nhập hoặc dán mã nguồn vào trường BBCode, sau đó xem mã đã chuyển đổi trong trường HTML. Chỉ sao chép HTML đó sang nơi cần dùng sau khi kiểm tra các phần tử và liên kết có đúng với nội dung dự kiến hay không.

  1. Sao chép toàn bộ đoạn BBCode, bao gồm cả thẻ mở và thẻ đóng.
  2. Dán đoạn mã vào trường BBCode và giữ nguyên các dấu ngoặc vuông.
  3. Kiểm tra kết quả thô trong trường HTML.
  4. Đối chiếu liên kết, hình ảnh, danh sách và định dạng lồng nhau với bài viết gốc.
  5. Làm sạch kết quả không đáng tin cậy trước khi hiển thị trên trang công khai.

Quá trình chuyển đổi diễn ra trên máy chủ. Dữ liệu bạn nhập được truyền đến máy chủ qua HTTPS và không được lưu trữ.

Đọc mã HTML trả về như thế nào?

Hãy đọc kết quả dưới dạng mã nguồn, không phải bản xem trước trực quan. HTML trả về phải chứa các phần tử thể hiện cấu trúc và định dạng được mô tả trong BBCode nguồn.

Ví dụ đơn giản về mặt khái niệm:

BBCode đầu vào: [b]Release note[/b]

HTML đầu ra: một phần tử HTML in đậm hoặc nhấn mạnh, chứa văn bản "Release note".

Một mẫu thường gặp khác:

BBCode đầu vào: [url=https://example.org/docs]Read the docs[/url]

HTML đầu ra: một phần tử liên kết có đích đến là https://example.org/docs và văn bản hiển thị là "Read the docs".

Tên phần tử cụ thể có thể khác nhau giữa các trình chuyển đổi vì các biến thể BBCode không được chuẩn hóa. Chẳng hạn, chữ đậm có thể được biểu diễn bằng phần tử b, dùng để thu hút sự chú ý nhưng không hàm ý mức độ quan trọng cao hơn, hoặc phần tử strong, dùng để thể hiện tầm quan trọng nổi bật. Hãy kiểm tra giá trị thực tế trong trường HTML thay vì mặc định rằng công cụ sẽ dùng một cách ánh xạ cụ thể.

Đây là công cụ chuyển đổi, không thay thế trình xác thực HTML hoặc công cụ làm sạch bảo mật. BBCode còn nguyên ngoài dự kiến, nội dung bị thiếu hoặc phần tử lồng nhau bất thường đều có thể cho thấy mã nguồn sai cú pháp hoặc không được hỗ trợ. Các lỗi nguồn phổ biến gồm thẻ chưa đóng, thẻ đóng sai thứ tự, thuộc tính không hợp lệ và thẻ riêng của diễn đàn không có phần tử HTML tương đương dùng chung.

Đầu vào phức tạp và khác biệt giữa các biến thể BBCode

Khoảng trắng, dấu câu, chữ số, ký tự có dấu và chữ viết không dùng bảng chữ cái Latin đều là văn bản thông thường, trừ khi chúng xuất hiện trong cú pháp thẻ hoặc thuộc tính. Chúng phải được giữ lại như nội dung, không biến thành cú pháp đánh dấu riêng. URL cần được xử lý cẩn thận hơn: các ký tự thuộc URL, chẳng hạn như khoảng trắng, có thể cần mã hóa phần trăm, còn ký tự mang ý nghĩa đặc biệt trong cú pháp thuộc tính HTML bao quanh, như dấu và và dấu ngoặc kép, có thể cần được thoát theo HTML.

  • Lồng thẻ sai: [b][i]Text[/b][/i] đóng các thẻ không đúng thứ tự. Với cú pháp lồng đúng, thẻ bên trong phải được đóng trước.
  • Thiếu thẻ đóng: [quote]Text không có thẻ đóng tương ứng nếu thẻ cuối bị bỏ qua.
  • Thẻ tùy chỉnh: [spoiler], [video] và các thẻ tệp đính kèm có thể mang ý nghĩa khác nhau tùy phần mềm diễn đàn.
  • HTML có sẵn: HTML trộn trong BBCode có thể được thoát, giữ nguyên hoặc coi là văn bản, tùy vào trình phân tích cú pháp. Hãy kiểm tra cẩn thận thay vì cho rằng có một quy tắc áp dụng cho mọi trường hợp.
  • Đầu vào rất dài: với dữ liệu cần chuyển số lượng lớn, xử lý theo từng lô thường dễ hơn vì có thể xác định và sửa các bản ghi bị lỗi.

Đầu vào trống không có cấu trúc định dạng để chuyển đổi. Nếu nguồn chỉ là văn bản thuần túy và không có thẻ BBCode, việc chuyển đổi có thể không mang lại nhiều giá trị. Tuy vậy, bước xử lý HTML tiếp theo vẫn có thể cần thoát các ký tự như <, > và &.

Khi nào không nên chuyển đổi?

Không cần chuyển đổi nếu nội dung chỉ được đọc bởi một hệ thống vốn đã hiểu biến thể BBCode ban đầu. Việc đổi định dạng tạo thêm một bước biến đổi và có thể làm mất hành vi tùy chỉnh của diễn đàn.

Bạn cũng không cần chuyển đổi khi hệ thống lưu nguyên BBCode để sau này kết xuất bằng chính bộ máy diễn đàn đó. Tương tự, việc làm đẹp hoặc sắp xếp lại HTML được tạo ra theo cách thủ công không đem lại nhiều lợi ích nếu chỉ có máy đọc mã, trừ khi cần định dạng để xem xét thay đổi trong hệ thống quản lý phiên bản hoặc để gỡ lỗi.

Với quá trình di chuyển hàng loạt, trình phân tích cú pháp chạy bằng tập lệnh có thể phù hợp hơn vì nó áp dụng cùng một bộ quy tắc biến thể cho mọi bản ghi và ghi nhật ký lỗi. Chỉ dùng biểu thức chính quy sẽ tiềm ẩn rủi ro với cú pháp đánh dấu lồng nhau. Hãy dùng trình phân tích hiểu được cách lồng thẻ, thuộc tính và đầu vào sai cú pháp, sau đó xác thực và làm sạch riêng phần HTML tạo ra. Nếu nội dung đã chuyển đổi chứa cấu hình JSON nhúng, Trình xác thực & làm đẹp JSON có thể giúp xem xét dữ liệu đó, nhưng không xác thực phần HTML bao quanh.

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

BBCode sau khi chuyển đổi có thể đăng trực tiếp không?

Không. HTML được tạo từ các bài viết diễn đàn không đáng tin cậy phải được xử lý bằng công cụ làm sạch HTML theo danh sách cho phép trước khi hiển thị. Điều này đặc biệt quan trọng với liên kết, hình ảnh, nội dung nhúng và mọi nguồn có thể đã chứa văn bản giống HTML.

Ngắt dòng có được chuyển thành đoạn văn HTML không?

Cách xử lý ngắt dòng phụ thuộc vào trình phân tích BBCode và quy tắc của nền tảng nguồn. Một số hệ thống coi dòng trống là đoạn văn, trong khi hệ thống khác chèn phần tử ngắt dòng hoặc giữ nguyên khoảng trắng. Trước khi di chuyển một lượng lớn nội dung, hãy đối chiếu một mẫu nhiều dòng với cách bài viết gốc hiển thị trên diễn đàn.

BBCode có hỗ trợ ký tự Unicode không?

BBCode có thể chứa văn bản Unicode, bao gồm ký tự có dấu, emoji và hệ chữ không dùng bảng chữ cái Latin, vì các ký tự đó là nội dung chứ không phải cú pháp thẻ. Trang đích cũng phải dùng bảng mã ký tự phù hợp, thường là UTF-8, nếu không văn bản có thể hiển thị sai sau khi chuyển đổi.

Có thể chuyển BBCode trong tệp CSV hoặc dữ liệu xuất từ cơ sở dữ liệu không?

Hãy chuyển đổi giá trị của từng trường, không xử lý toàn bộ tệp xuất. Dấu ngoặc kép trong CSV, dấu phân cách và chuỗi thoát của cơ sở dữ liệu thuộc về định dạng vùng chứa, nên có thể bị hỏng nếu được đưa qua trình chuyển đổi cú pháp đánh dấu. Giữ một bản sao lưu nguyên vẹn và xử lý thử một lô nhỏ trước khi áp dụng chuyển đổi cho mọi hàng.

Cần kiểm tra gì trước khi nhập HTML?

Hãy kiểm tra một mẫu có định dạng lồng nhau, liên kết, danh sách, tham chiếu hình ảnh và mọi thẻ tùy chỉnh mà diễn đàn nguồn sử dụng. Xác nhận rằng hệ thống đích chấp nhận các phần tử và thuộc tính HTML đó, sau đó thực hiện bước làm sạch hoặc xác thực bắt buộc trước khi nhập toàn bộ dữ liệu.

Công cụ phổ biến