Раздвајач твит-нити
Налепите дугачку објаву и раздвојите је у праву X/Twitter нит користећи стварна правила за пондерисано бројање карактера — сваки URL се рачуна као фиксних 23 карактера и емоџи из астралне равни се броје исправно — са паметним границама пасуса/реченица/речи и нумерацијом нити која резервише сопствени простор.
🔒 У потпуности се обрађује у вашем претраживачу — ништа што овде унесете се никада не отпрема.
Резултат
Ограничење од 280 карактера по твиту није једноставна провера `text.length`, и већина наивних бројача карактера греши на начине који су битни. Овај алат примењује стварни X/Twitter алгоритам пондерисане дужине: свака кодна тачка се проверава према истој табели пондерисаних опсега коју користи twitter-text библиотека платформе, при чему већина латиничних, ћириличних, грчких и уобичајених интерпункцијских знакова броји 1 карактер, али све изван тих опсега — CJK идеограми, већина емоџија, многи симболи — броје 2. Једнако важно, пролазак кроз текст по стварним Unicode кодним тачкама (не по сировим UTF-16 јединицама) значи да се емоџи из астралне равни попут лица или заставе са сурогат-паром исправно броји једном, а не случајно дупло као што би наивна провера `.length` урадила.
Још једно лако превидљиво стварно правило које овај алат поштено примењује: сваки http(s):// или www. URL у вашем тексту рачуна се као тачно 23 карактера, без обзира на то да ли је дословни линк дуг 20 или 200 карактера. То је стварна t.co-скраћена дужина коју X замењује за сваки линк, а то значи да у твиту препуном дугачког URL-а за праћење остаје далеко више места за праве речи него што би наивно бројање сугерисало — алат ово узима у обзир када одлучује где се твит завршава.
Раздвајање дугачке објаве у нит је више од пуког пресецања на сваких 280 карактера. Алат ради кроз три нивоа граница по редоследу приоритета: прво покушава да задржи читаве пасусе на окупу, затим прибегава хеуристици стварних граница реченица када је пасус предуг (алгоритам заснован на регуларним изразима који разликује тачку на крају реченице од оне у скраћеници попут „др” или „нпр.” или у децималном броју попут „3,14”), а само у крајњем случају дели на појединачним речима када чак и једна реченица прелази лимит — на сваком нивоу, URL се третира као једна недељива целина и никада се не пресеца на пола.
Нумерација нити („1/7”, „2/7”...) има заиста лако превидљив гранични случај: сам текст нумерације троши карактере у твиту на који је додат, а ширина те нумерације зависи од укупног броја твитова, што се не зна док се раздвајање не заврши. Овај алат то решава итеративним поновним раздвајањем, резервишући стварну пондерисану дужину нумерације пре сваког пролаза, све док резервисани буџет не одговара стварном резултујућем броју твитова. Подразумевано се користи стандардно ограничење од 280 карактера уз искрену напомену да X Premium претплатници добијају знатно већи лимит за дугачке објаве (до око 25.000 карактера) за постове који не морају да функционишу као јавна нит — опција вам омогућава да пређете на произвољни лимит ако је то оно што циљате.