ตัวแบ่งเธรดทวีต
วางข้อความยาวและแบ่งออกเป็นเธรดบน X/Twitter โดยใช้กฎการนับจำนวนตัวอักษรแบบถ่วงน้ำหนักจริง — ทุก URL จะถูกนับเป็นความยาวคงที่ 23 ตัวอักษร และนับอิโมจิ astral-plane ได้อย่างถูกต้อง — ด้วยการแบ่งที่ย่อหน้า/ประโยค/คำอย่างชาญฉลาด และการระบุหมายเลขเธรดที่จองพื้นที่ของตัวเองไว้
🔒 ประมวลผลทั้งหมดในเบราว์เซอร์ของคุณ — ไม่มีการอัปโหลดสิ่งใดที่คุณป้อนที่นี่
ผลลัพธ์
ขีดจำกัด 280 ตัวอักษรของทวีตไม่ใช่การตรวจสอบง่ายๆ ด้วย `text.length` และตัวนับจำนวนอักขระแบบพื้นฐานส่วนใหญ่มักทำพลาดในส่วนที่สำคัญ เครื่องมือนี้ใช้อัลกอริทึมความยาวแบบถ่วงน้ำหนักของ X/Twitter จริง: ทุก code point จะถูกเทียบค่าผ่านตารางช่วงน้ำหนักเดียวกับที่ไลบรารี twitter-text ของแพลตฟอร์มใช้ โดยที่ตัวอักษรละติน, ซีริลลิก, กรีก และเครื่องหมายวรรคตอนทั่วไปส่วนใหญ่นับเป็น 1 ตัวอักษร แต่นอกเหนือจากนั้น — ตัวอักษร CJK, อิโมจิส่วนใหญ่, สัญลักษณ์มากมาย — จะนับเป็น 2 ที่สำคัญไม่แพ้กันคือ การวนอ่านข้อความด้วย Unicode code point จริง (ไม่ใช่หน่วย UTF-16 ดิบ) หมายความว่าอิโมจิ astral-plane เช่น ใบหน้าที่เป็น surrogate pair หรือธง จะถูกนับอย่างถูกต้องเพียงครั้งเดียว ไม่ใช่ถูกนับซ้ำสองครั้งอย่างที่การตรวจสอบ `.length` แบบพื้นๆ จะทำ
กฎจริงอีกข้อที่พลาดได้ง่ายซึ่งเครื่องมือนี้ทำตามอย่างถูกต้อง: ทุก URL ที่ขึ้นต้นด้วย http(s):// หรือ www. ในข้อความของคุณจะถูกนับเป็น 23 ตัวอักษรพอดี โดยไม่สนใจว่าลิงก์จริงนั้นจะยาว 20 หรือ 200 ตัวอักษร นั่นคือความยาวที่ย่อด้วย t.co จริงซึ่ง X แทนที่ให้กับทุกลิงก์ และนั่นหมายความว่าทวีตที่อัดแน่นไปด้วย URL ติดตามผลยาวๆ จะมีพื้นที่เหลือสำหรับข้อความจริงมากกว่าที่การนับจำนวนอักขระแบบพื้นฐานจะบอกได้ — ตัวแบ่งจะนำเรื่องนี้มาพิจารณาเมื่อตัดสินใจว่าทวีตควรจบลงที่ใด
การแบ่งข้อความยาวเป็นเธรดเป็นมากกว่าแค่การตัดทุกๆ 280 ตัวอักษร เครื่องมือนี้ทำงานผ่านขอบเขตสามระดับตามลำดับความชอบ: ขั้นแรกจะพยายามเก็บทั้งย่อหน้าไว้ด้วยกัน หากย่อหน้ายาวเกินไปก็จะใช้การวิเคราะห์พฤติกรรมขอบเขตประโยคจริง (ตัวแบ่งที่ใช้ regex ซึ่งรู้ความแตกต่างระหว่างจุดจบประโยคกับจุดในตัวย่ออย่าง "ดร." หรือ "e.g." หรือตัวเลขทศนิยมอย่าง "3.14") และจะตัดแบ่งเป็นคำๆ เฉพาะเมื่อเป็นทางเลือกสุดท้าย แม้แต่ประโยคเดียวยังยาวเกินขีดจำกัด — ในทุกระดับ URL จะถูกมองเป็น token เดียวที่แบ่งแยกไม่ได้ และจะไม่ถูกตัดกลางคันเด็ดขาด
การระบุหมายเลขเธรด ("1/7", "2/7"...) มีกรณีขอบที่พลาดได้ง่ายมาก: ข้อความหมายเลขนั้นใช้ตัวอักษรในทวีตที่มันสังกัดอยู่ และความกว้างของหมายเลขก็ขึ้นอยู่กับจำนวนทวีตทั้งหมด ซึ่งคุณไม่มีทางรู้จนกว่าการแบ่งจะเสร็จสิ้น เครื่องมือนี้แก้ปัญหาด้วยการแบ่งซ้ำหลายรอบ โดยจองความยาวจริงแบบถ่วงน้ำหนักของหมายเลขก่อนการแบ่งแต่ละรอบ จนกว่างบประมาณที่จองไว้จะตรงกับจำนวนทวีตผลลัพธ์ที่แท้จริง ขีดจำกัด 280 ตัวอักษรมาตรฐานถูกใช้เป็นค่าเริ่มต้น พร้อมหมายเหตุตามจริงว่าสมาชิก X Premium จะมีขีดจำกัดโพสต์ข้อความยาวที่สูงกว่ามาก (สูงสุดประมาณ 25,000 ตัวอักษร) สำหรับโพสต์ที่ไม่จำเป็นต้องทำงานเป็นเธรดสาธารณะ — ตัวเลือกให้คุณเปลี่ยนไปใช้ขีดจำกัดแบบกำหนดเองได้ หากนั่นคือสิ่งที่คุณต้องการ