Telegram metin biçimlendirici: kalın, spoiler, MarkdownV2
Kalın, italik, altı çizili, üstü çizili, spoiler, kod, bağlantı ve alıntıyla yazın, önizlemenin değişmesini izleyin, sonra metni Telegram'ın istediği biçimde kopyalayın: her simgesi kaçışlanmış MarkdownV2, HTML ya da UTF-16 konumlu entities.
İşaretleme: **kalın**, __italik__, ++altı çizili++, ~~üstü çizili~~, ||spoiler||, `kod`, kod bloğu için kendi satırında ``` çiti, [metin](url), alıntı için > ile ve açılır alıntı için >> ile başlayan satır. Ters eğik çizgi simgeyi olduğu gibi bırakır. Ctrl ya da Cmd ile B, I ve U da çalışır.
Önizleme
Pazartesiden itibaren tüm dünyaya gönderiyoruz.
Botlar ve Bot API için
*Lansman günü\.* Yeni _koleksiyon_ satışta: ~49~ 29 USD, ilk 50 siparişte kargo bedava\. ||İndirim kodu: FIRST50|| Ayrıntılar: [mağazada](https://example.com/shop) >Pazartesiden itibaren tüm dünyaya gönderiyoruz\.
parse_mode=MarkdownV2 ile gönderin. Her özel karakter zaten kaçışlanmış.
<b>Lansman günü.</b> Yeni <i>koleksiyon</i> satışta: <s>49</s> 29 USD, ilk 50 siparişte kargo bedava. <tg-spoiler>İndirim kodu: FIRST50</tg-spoiler> Ayrıntılar: <a href="https://example.com/shop">mağazada</a> <blockquote>Pazartesiden itibaren tüm dünyaya gönderiyoruz.</blockquote>
parse_mode=HTML ile gönderin. Metninizdeki <, > ve & zaten değiştirildi.
[
{
"type": "bold",
"offset": 0,
"length": 13
},
{
"type": "italic",
"offset": 19,
"length": 10
},
{
"type": "strikethrough",
"offset": 39,
"length": 2
},
{
"type": "spoiler",
"offset": 81,
"length": 21
},
{
"type": "text_link",
"offset": 115,
"length": 8,
"url": "https://example.com/shop"
},
{
"type": "blockquote",
"offset": 124,
"length": 47
}
]Düz metni text, bu diziyi entities olarak, parse_mode olmadan gönderin. Konum ve uzunluklar UTF-16 birimindedir.
Sınırlar işaretleme çıkarıldıktan sonraki metin üzerinden sayılır: mesajda 4.096, açıklamada 1.024 karakter. Sayım nasıl yapılıyor
Telegram’da biçimlendirme tipografi değil, veridir. Kalın bir sözcük bir entity’dir: düz metne iliştirilmiş bir tür, bir konum ve bir uzunluk. Uygulamalar onu çizer, botlar onu gönderir ve biçimlendirilmiş bir mesajda ters giden her şey, metnin entity’lere dönüştüğü noktada ters gider.
On stil, tek işaretleme
Yukarıdaki alan küçük bir işaretleme alır ve siz yazdıkça entity’lere çevirir: **kalın**, __italik__, ++altı çizili++, ~~üstü çizili~~, ||spoiler||, satır içi kod için bir çift ters tırnak, kod bloğu için kendi satırında ``` çiti (dili açılış çitinin arkasına yazın), bağlantı için [metin](url), alıntı için > ile ya da açılır alıntı için >> ile başlayan satır. Bu simgelerin önündeki ters eğik çizgi onları metin olarak bırakır. Stiller iç içe geçer; bir bağlantı kalının içinde, kalın da alıntının içinde durabilir; kod hiçbir şey içermez, alıntı ise ne başka bir alıntı ne de kod bloğu içerir. Bu, sayfanın kısıtı değil, Telegram’ın uyguladığı iç içe geçme kurallarının ta kendisidir.
Önizleme, entity’lerin anlamını gösterir; herhangi bir uygulamanın piksel piksel nasıl çizdiğini değil. Spoiler’lar siz dokunana kadar gizli kalır. Alanın altındaki sayaç metni işaretlemesiz ölçer, çünkü Telegram’ın ölçtüğü metin odur.
MarkdownV2: botları bozan kaçışlama
parse_mode=MarkdownV2, çoğu rehberin gösterdiği ve çoğu «can’t parse entities» hatasının arkasındaki biçimdir. Kural kısa ve acımasızdır: kodun dışında _ * [ ] ( ) ~ ` > # + - = | { } . ! karakterlerinin her birinin önüne ters eğik çizgi gelmelidir, ters eğik çizginin kendisinin önüne de. Cümle sonundaki kaçışlanmamış tek bir nokta, API’nin bütün mesajı reddetmesine yeter. code ve pre içinde yalnızca ters tırnak ile ters eğik çizgi kaçışlanır; bağlantının adres kısmındaysa yalnızca kapanış parantezi ile ters eğik çizgi.
Bir tuzak daha var. İki alt çizgi her zaman altı çizili olarak, soldan sağa açgözlülükle okunur; bu yüzden tam altı çizilinin bittiği yerde biten bir italik düz yazılamaz. Belgelenmiş çözüm: italiği kapatın, ayırıcı olarak boş bir kalın entity ** koyun, altı çiziliyi ancak ondan sonra kapatın. Yukarıdaki MarkdownV2 çıktısı bunların hepsini ayırıcı dahil kendisi yapar; yeniden yazmak yerine kopyalamaya değmesinin sebebi budur.
HTML: kaçışlanacak üç karakter
parse_mode=HTML daha sakin seçenektir. Telegram sabit bir etiket listesi destekler: b, i, u, s, tg-spoiler, a, code, pre (dili belirtmek için içinde code class="language-…" ile) ve düz ya da expandable olan blockquote. Metninizde yalnızca üç karakter dikkat ister: <, > ve &; bunlar <, > ve & ile değiştirilir. Geri kalan her şey, MarkdownV2’yi kırılgan yapan nokta ve tireler dahil, olduğu gibi gider. AdminHub gönderi yayınlarken bu biçimi kullanır ve sıfırdan yazılan her bot için de seçilmesi gereken budur.
Entities, hiç kaçışlamak istemiyorsanız
Üçüncü çıktı entities dizisidir. Düz metinle birlikte ve parse_mode olmadan gönderin; kaçışlanacak bir şey kalmaz, çünkü hiçbir şey ayrıştırılmaz. Bilinmesi gereken tek şey birimdir: konum ve uzunluklar UTF-16 biriminde sayılır, dolayısıyla bir emoji ya da Temel Çok Dilli Düzlem dışındaki herhangi bir karakter iki sayılır. Sayacın bu sayıyı ayrıca göstermesinin nedeni tam olarak budur.
Bir mesaj ne kadar uzun olabilir
Bir mesaj 4.096, medya açıklaması 1.024 karakter alır; ikisi de «entity’ler ayrıştırıldıktan sonra»: işaretleme, etiketler ve kaçış çizgileri sayılmaz, yalnızca okuyanın gördüğü metin sayılır. Sınırlar karakter olarak verilir ve Telegram’ın istemci yapılandırması bunları kod noktası olarak sayar; bu yüzden kalın bir emoji, entity’si iki birim uzun olsa da sınıra karşı tek karakterdir. Yukarıdaki sayaç bu kuralı izler ve iki sınır arasında geçiş yapar; yazı tipi üreteci aynı ayrımı stilize Unicode harfleri için anlatır.
Bu aracın yapmadıkları
Özel emojiler ve tg-time tarih entity’leri belirli haklara sahip bir bot gerektirir ve kapsam dışıdır. Eski Markdown modu bilerek dışarıda bırakıldı: iç içe geçemez, altı çizili, üstü çizili, spoiler ya da alıntı ifade edemez ve Telegram’ın kendi belgeleri MarkdownV2’yi işaret eder. Başlık, tablo ve listeler de sıradan mesaj biçimlendirmesinin parçası değildir: Telegram bunları Temmuz 2026’da Premium kullanıcılara özel ayrı bir zengin metin editörü olarak tanıttı; botlar için ise bunlar Bot API 10.1’in zengin mesajlarıdır, AdminHub gönderi editörünün ürettiği şey de budur. Bu sayfadaki stilleri her Telegram istemcisi aynı şekilde gösterir.
Kaynaklar, Eylül 2026’da kontrol edildi: MarkdownV2 kaçış kuralları, HTML etiket listesi, iç içe geçme kuralları ve «entity’ler ayrıştırıldıktan sonra» sınırları için Bot API, Formatting options; UTF-16 birimindeki konum ve uzunluklar için Bot API, MessageEntity; istemcilerin entity uzunluklarını nasıl saydığı için Styled text with message entities; zengin metin editörü ve yalnızca Premium’a açık olması için Telegram blogu, 14 Temmuz 2026.
Genelde sorulanlar
- Telegram'da metni nasıl kalın yaparım?
- Burada çift yıldız arasına yazın ya da seçip Kalın'a basın, sonra sonucu ihtiyacınız olan biçimde kopyalayın. Bot için metni parse_mode=HTML ile <b>kalın</b> olarak ya da parse_mode=MarkdownV2 ile *kalın* olarak gönderin; ikincisinde diğer tüm özel karakterler kaçışlanmalıdır. Bu sayfa her uygulamanın düğmelerini değil, Bot API'nin belgelediğini anlatır.
- Botum neden can't parse entities hatası alıyor?
- Çünkü mesaj parse_mode=MarkdownV2 ile gönderildi ve kaçışlanmamış bir özel karakter içeriyor, çoğunlukla nokta, tire, ünlem ya da parantez, ya da açılıp hiç kapanmamış bir stil var. HTML'de aynı hata kapanmamış veya desteklenmeyen bir etiketten ya da metindeki çıplak < veya & işaretinden gelir. Metni buraya yapıştırıp MarkdownV2 ya da HTML çıktısını kopyalayın: kaçışlama ve kapatma yapılmış olur.
- Bot için HTML mi MarkdownV2 mi?
- Aksini gerektiren bir sebep yoksa HTML. On sekiz yerine üç karakter kaçışlar, altı çizili ile italik arasında belirsizlik yaşamaz ve AdminHub her biçimlendirilmiş gönderiyi Telegram'a bu biçimde gönderir. MarkdownV2, kütüphaneniz sizin için üretiyorsa ya da bunun gibi bir araçtan kopyalıyorsanız sorun çıkarmaz.
- Metni spoiler arkasına nasıl saklarım?
- Çift dikey çizgi arasına alın, ||böyle||, ya da seçip Spoiler'a basın. MarkdownV2'de spoiler aynı şekilde yazılır, HTML'de tg-spoiler etiketidir, entity olarak da türü spoiler'dır. Okuyan kişi dokunana kadar bulanık bir blok görür.
- Telegram mesajında başlık, tablo ya da liste kullanabilir miyim?
- Sıradan mesaj biçimlendirmesiyle hayır, bu araç da üretmez. Telegram başlık, tablo ve listeleri Temmuz 2026'da yalnızca Premium kullanıcılara açık ayrı bir zengin metin editörü olarak ekledi; botlar içinse bunlar Bot API 10.1'in zengin mesajlarına aittir ve AdminHub gönderi editörü onları bu şekilde gönderir. Bu sayfadaki her stil her sohbette çalışır.
- Biçimlendirilmiş bir mesaj ne kadar uzun olabilir?
- Mesajda 4.096, medya açıklamasında 1.024 karakter; işaretleme çıkarıldıktan sonraki metin üzerinden sayılır, etiketler, yıldızlar ve kaçış çizgileri sayılmaz. Alanın altındaki sayaç aynı kuralı uygular ve iki sınır arasında geçiş yapar.
- Entity uzunluğu karakter sayısından neden farklı?
- Entity konum ve uzunlukları UTF-16 biriminde sayılır; bu yüzden bir emoji ya da temel düzlem dışındaki herhangi bir karakter iki sayılırken mesaj sınırı karakter olarak sayılır. Sayaç iki sayıyı da gösterir: ilki mesajın sığıp sığmadığını belirler, ikincisi entities dizisine girer.