BBCode HTML Dönüştürücü

BBCode, forum döneminin hafif işaretleme diliydi, [b]kalın[/b], [url], [quote], [code]. Her phpBB, vBulletin, XenForo ve SMF forumu bunu kullandı; bu platformlarda milyonlarca gönderi hâlâ duruyor. Bu dönüştürücü BBCode’u parse eder ve modern bir CMS’e, statik siteye veya forum etiketlerini anlamayan bir Markdown-to-HTML hattına yapıştırabileceğiniz temiz, geçerli HTML üretir.

BBCode nasıl dönüştürülür

  1. 1

    BBCode'unuzu yapıştırın

    Tam gönderiler veya kısa parçalar. İç içe etiketler işlenir.

  2. 2

    Parser açılış ve kapanış etiketlerini tokenlara ayırır

    Eşleşen `[tag]...[/tag]` çiftleri karşılık gelen HTML elementini üretir.

  3. 3

    Etiket öznitelikleri eşlenir

    `[color=red]`, `[size=18]` veya `[url=https://...]` gibi şeyler inline style ya da `href` özniteliklerine dönüşür.

  4. 4

    HTML'i kopyalayın

    Blog yazısı, dokümantasyon sayfası veya forum geçişi için hazırdır.

Desteklenen etiketler

BBCode HTML çıktısı
[b]text[/b] <strong>text</strong>
[i]text[/i] <em>text</em>
[u]text[/u] <u>text</u>
[s]text[/s] <del>text</del>
[url]link[/url] <a href="link">link</a>
[url=link]text[/url] <a href="link">text</a>
[img]link[/img] <img src="link">
[quote]q[/quote] <blockquote>q</blockquote>
[code]c[/code] <pre><code>c</code></pre>
[list][*]a[*]b[/list] <ul><li>a</li><li>b</li></ul>
[color=red]t[/color] <span style="color:red">t</span>
[size=18]t[/size] <span style="font-size:18px">t</span>

Güvenlik notları

BBCode tasarım gereği güvenlidir; HTML değildir. Kullanıcı tarafından gönderilen BBCode’u HTML’e dönüştürmek, 2005’te bir forumun XSS açığı tanıttığı klasik andır. Dönüştürülmüş çıktıyı yayımlıyorsanız:

  • BBCode etiketleri içindeki ham metni escape edin.
  • Dönüştürücünüzün ürettiği etiketleri allowlist’e alın, bilinmeyen etiketleri ham HTML olarak iletmeyin.
  • javascript: ve data: şemalarını engellemek için [url] ve [img] içindeki URL’leri doğrulayın.

Bu araç girdiğiniz URL’leri yeniden yazmaz; bu yüzden dönüştürülen çıktıyı yayımlamadan önce bunları kontrol edin.

Bütün bir forumu taşımak

Binlerce gönderiyi taşırken dönüştürücüyü bir pipeline gibi çalıştırın: gönderileri BBCode olarak dışa aktarın → bu dönüştürücüden geçirin → HTML’i içe aktarın. Olağan dışı iç içe kullanımlar veya standart etiket setinde bulunmayabilecek özel emoji kodları içeren birkaç düzine gönderiyi örnek kontrol edin.

BBCode’un temiz eşleşmediği durumlar

  • Özel forum ifadeleri (:D ve :)), olduğu gibi bırakıp CSS ile render edin veya ayrıca ön işleme alın.
  • Eklentiye özgü etiketler ([spoiler], [youtube] gibi) tanınmaz, bu yüzden literal metin olarak çıkarılır.
  • Kapanmamış etiketler literal metin olarak kalır: parser bunları kapatmaya ya da onarmaya çalışmaz.

Sık Sorulan Sorular

Evet: Steam topluluk gönderileri, vBulletin ve XenForo forumları, bazı wikiler ve birçok eski phpBB kurulumu. Ayrıca birkaç oyun sunucusu kontrol panelinde alttaki işaretleme olarak yaşamaya devam eder.

Bu araç değil, HTML’den BBCode’a dönüştürücü kullanın. Geri dönüş daha kayıplıdır çünkü HTML, BBCode’dan çok daha ifade gücü yüksek bir dildir.

Bilinmeyen etiketler literal metin şeklinde geçer, çünkü dönüştürücü yalnızca yukarıdaki tabloda listelenen etiketleri tanır.

İç içelik, etiketler farklı olduğunda çalışır; örneğin [quote] içindeki [b] gibi. Kendi içine yerleşen bir etiket (alıntı içinde alıntı gibi) ilk kapanış etiketinde kapatılır ve geri kalanı metin olarak kalır; bu yüzden bu tür gönderileri dönüştürmeden önce düzleştirin.

İlgili Araçlar

Araç diğer dillerde mevcuttur