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> veya <ins>
[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>
[list=1][*]a[/list] <ol><li>a</li></ol>
[color=red]t[/color] <span style="color:red">t</span>
[size=18]t[/size] <span style="font-size:18px">t</span>
[table]...[/table] <table>...</table>

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ç, dönüştürme sırasında script benzeri URL’leri temizler veya etkisizleştirir.

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) — özel etiketler panelinde listelenir; aksi halde literal metin olarak çıkarılır.
  • Birleşmiş veya kapanmamış etiketler — parser kendi kendine kapatmaya çalışır, fakat aşırı bozuk girdiler biçimlendirmeyi kaybedebilir.

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 varsayılan olarak literal metin şeklinde geçer. Garantili temiz çıktı istiyorsanız “strict” mod bunları tamamen kaldırır.

Evet. [quote], [list] ve [code] keyfi derinlikte iç içe olabilir. Parser etiket stack’lerini takip eder ve doğru kapatır.

İlgili Araçlar