Tweetnij rozdzielacz wątków
Wklej długi post i podziel go na prawdziwy wątek X/Twitter, korzystając z rzeczywistych zasad liczenia znaków ważonych — każdy adres URL liczy się jako stałe 23 znaki, a emoji płaszczyzny astralnej są liczone poprawnie — z inteligentnymi granicami akapitów/zdań/słów i numeracją wątków, która rezerwuje własne miejsce.
Wynik
Limit 280 znaków w tweecie nie jest prostym sprawdzeniem „długości tekstu” i większość naiwnych liczników znaków błędnie to sprawdza w istotny sposób. To narzędzie implementuje prawdziwy algorytm ważonej długości X/Twittera: każdy punkt kodowy jest porównywany z tą samą tabelą ważonych zakresów, z której korzysta własna biblioteka tekstowa platformy na Twitterze, gdzie większość znaków łacińskich, cyrylicy, greckich i powszechnych znaków interpunkcyjnych liczy się jako 1 znak, ale wszystko poza tymi zakresami — ideogramy CJK, większość emoji, wiele symboli — liczy się jako 2. Co równie ważne, iteracja tekstu według prawdziwego punktu kodowego Unicode (nie surowego) jednostek UTF-16) oznacza, że emoji płaszczyzny astralnej, takie jak twarz lub flaga pary zastępczej, jest poprawnie liczone raz, a nie przypadkowo liczone podwójnie, jak zrobiłoby to naiwne sprawdzenie „.długości”.
Inną, którą łatwo przeoczyć, jest uczciwa zasada, którą to narzędzie realizuje: każdy http(s):// lub www. Adres URL w tekście jest liczony jako dokładnie 23 znaki, niezależnie od tego, czy dosłowny link ma 20 czy 200 znaków. Jest to rzeczywista długość X skrócona do t.co zastępuje dowolny link i oznacza, że tweet wypełniony długim linkiem monitorującym pozostawia znacznie więcej miejsca na rzeczywiste słowa, niż sugerowałaby naiwna liczba znaków — rozdzielacz bierze to pod uwagę przy podejmowaniu decyzji, gdzie kończy się tweet.
Podział długiego postu na wątek to coś więcej niż tylko wycięcie co 280 znaków. To narzędzie działa na trzech poziomach granic w preferowanej kolejności: najpierw próbuje połączyć całe akapity razem, następnie powraca do prawdziwej heurystyki granicy zdania, gdy akapit jest za długi (rozdzielacz oparty na wyrażeniach regularnych, który zna różnicę między kropką kończącą zdanie a kropką wewnątrz skrótu, np. „Dr.”, „np.” lub liczby dziesiętnej, np. „3,14”), a pojedyncze słowa rozdziela tylko w ostateczności, gdy choćby jedno zdanie przekracza limit — na każdym poziomie adres URL jest traktowany jako jeden niepodzielny token i nigdy nie jest dzielony pośrodku.
Numeracja wątków („1/7”, „2/7”…) ma naprawdę łatwy do przeoczenia przypadek Edge: sam tekst numeracji zużywa znaki w tweecie, do którego jest dołączony, a szerokość tej numeracji zależy od całkowitej liczby tweetów, której nie znasz, dopóki nie zostanie wykonany podział. To narzędzie rozwiązuje ten problem poprzez ponowne dzielenie iteracyjnie, rezerwując rzeczywistą ważoną długość numeracji przed każdym przebiegiem, aż zarezerwowany budżet będzie odpowiadał rzeczywistej wynikowej liczbie tweetów. Domyślnie używany jest standardowy limit 280 znaków, z zaznaczeniem, że subskrybenci X Premium otrzymują znacznie wyższy limit długich formularzy (do około 25 000 znaków) w przypadku postów, które nie muszą działać jako wątek publiczny — przełącznik umożliwia przełączenie na limit niestandardowy, jeśli taki jest cel.