入力と文字枠の設定および制約計算
本ツールは指定された条件に従ってテキストを分割するブラウザ完結型の処理機能を提供します.1ブロックの文字制限は10〜10000の範囲で指定可能で,JavaScript標準のUTF-16コードユニット長(String.prototype.length)で計測されます.
連番付与時は最大インデックス表記(例: (100/100))と区切り空白を含めた最大必要幅を動的に算出して本文枠を確保します.この連番予約幅は必要桁数の増加に伴って拡大のみ行われ,必要幅が予約幅以下に達した時点で確定します.境界の変化に伴い総ブロック数が変動する場合もありますが,出力される全ブロックは連番を含めて上限文字数以下に収まります.
次の1文字(絵文字等のサロゲートペアを含む完全な1コードポイント)を収める本文枠すら残らない極端な設定では,不正な出力を防止するため全結果を空にしてエラーを表示します.プレビュー表示では各ブロックの長さが「上限 - 10」を超えた(len > limit - 10)段階で警告色に切り替わります.
結果の一括コピー時は二重改行で連結されますが,各部のトリム処理により元の空白が完全一致で復元されるわけではありません. 実際の操作画面は左側に入力エリア(直接入力または貼り付け),右側にリアルタイムプレビューを配置した2カラム構成です.分割基準は「指定文字数」「文単位」「段落単位」の3種類,連番形式は「なし」を含む計5種類から即座に切り替え可能で,全設定変更と計算はブラウザ内部でローカルに完結し,外部SNSへの直接自動投稿は一切行われません.
なお初期値の140文字は単なる既定の上限値であり,特定プラットフォームの特殊な重み付け計算を代行するものではありません.
指定文字数モードにおける境界補正アルゴリズム
分割単位に「指定文字数」を選択した場合,機械的な等分割ではなく末尾検索による境界補正が適用されます.システムは連番予約幅を差し引いた有効本文枠を算出し,その末尾25%を検索リージョンとして走査します.この領域内を左から右へ順方向走査し,最初(最も左側)に見つかった句読点(`。.
!?.!?)や改行の直後を分割境界に決定します.文字数モードでは文単位のような約物グルーピングは行われないため,... や !?` などの連続約物がリージョン内に現れた場合は先頭の記号直後で分割され,残りの約物は脱落せず次ブロック先頭へ送られます.句読点や改行がない場合は領域内の末尾の半角空白を探し,その直後を境界とします.
いずれの候補も存在しない場合に限り本文枠満杯の位置で切断します.サロゲートペアの途中に境界が重なる場合は1ユニット手前に後退して正常なペアの分断を防ぎますが,結合絵文字などの書記素全体の保持は保証しません.ブロック端の余白はトリムされますが,内部の連続空白は保持されます.
例えば連番なし・本文枠10の条件で「12345678.?abc」を処理すると,末尾25%領域で最初に見つかるピリオド直後で切断され,先頭は「12345678.」,次ブロックは「?abc」となります.文字数モードでは約物のグループ化を行わないため疑問符は次へ送られますが,文字自体が消失することはありません.
また半角英字9文字+絵文字1文字+英字1文字(計12ユニット)の場合,絵文字は2ユニットのサロゲートペアであるため,9文字目の直後で分割されて絵文字と後続英字は次ブロックへ退避されます.視覚的な見た目の文字数とUTF-16ユニット数は異なり,サロゲートペアは保護されても合成文字やZWJ等の書記素は分断され得る点に留意が必要です.
文単位・段落単位モードの分割と再結合処理
「文単位」または「段落単位」を選択した場合,テキスト構造を優先した結合処理が行われます.文単位では句読点(。.!?.!?)を基準に連続約物を保持して文を抽出し,段落単位では連続改行で分割します.候補となる文や段落が全体の本文枠に収まるものの,処理中ブロックの残余枠に収まらない場合は,現在のブロックを確定して新しいブロックへその文や段落を丸ごと配置します.
指定文字数分割へのフォールバックは,単一のトリム済み単位そのものが全体の本文枠を超過している場合にのみ限定して発生します.ブロック内では文同士は半角空白1つ,段落同士は二重改行(\n\n)で連結されますが,上限超過により分割された同一単位の断片同士の間に新たな空白が挿入されることはありません.
この貪欲法による結合は整然としたパッキングを行いますが,数理的な最適充填を保証するものではありません. 具体例として,連番なし・本文枠10で「aaaaaa」と「bbbbbb」という各6文字の段落を処理する場合,段落結合に必要な二重改行(2文字)を含めると計14文字となって制限を超えるため,それぞれ欠損のない独立したブロックとして出力されます.
一方,12文字の単一単位「aaaaaaaaaaaa」が存在する場合は文字数フォールバックにより「aaaaaaaaaa」(10文字)と「aa」(2文字)に機械分割されます.この分割された同一単位の断片同士の間に余計な区切り文字が挿入されることはありませんが,分割末尾の断片「aa」の後ろに残余枠が存在し別の短い単位が収まるなら,規定の区切り記号を挟んで同一ブロック内に結合可能です.
なお文単位の判定は句点やピリオド等の記号を基準とした機械的走査であり,英語の略語表記(「e.g.」や「Mr.」など)の意味解析や高度な文法判定は行いません.抽出された独立トークン間には規則通りの半角空白が配置されます.
スレッド連番形式の適用と文字数超過の視覚フィードバック
テキスト分割後,「スレッド連番形式」の設定に従ってインデックスが付与されます.形式は「なし」「先頭 (1/3)」「末尾 (1/3)」「先頭 1/」「末尾 1/」から選択でき,連番と本文の間の区切り空白も1文字として計算されます.連番予約は常に最大インデックス(例: (100/100))の長さを基準に行われ,必要幅が予約幅以下となるまで拡大量が調整されます.
境界調整によりブロック数が減少することもあり,厳密な固定点への収束や極大充填を保証するものではありませんが,連番を含めた全出力ブロックが確実に指定上限以下に制限されます.次の1コードポイントを配置する本文余白が存在しない場合は出力を破棄してエラーを通知します.
プレビュー画面ではブロック長が len > limit - 10 の条件を満たすと警告色で強調されます.一括コピー時は二重改行で連結されますが,トリム処理のため元の空白の完全保持は保証されません. UI上では5種類の連番形式を選択でき,末尾形式「 (10/10)」では区切り半角空白を含めて8ユニットのUTF-16長が消費されます.
上限値を極端に小さい10に設定した場合,連番予約後の有効本文枠はわずか2ユニットとなり,長い文字や絵文字の配置で枠不足エラーを起こしやすくなりますが,連番形式を「なし」に切り替えることで本文枠を10文字分フルに活用してエラーを回避できる場合があります.プレビュー表示の黄色警告(len > limit - 10)は上限接近を視覚的に知らせるための目安であり,特定プラットフォームのバリデーション結果ではありません.
結果の取得はブロックごとの個別コピーと,二重改行で連結する一括コピーから選択可能ですが,いずれもクリップボードへの転送のみであり外部SNSへの自動投稿機能はありません.またアルゴリズムは常に最小ブロック数での出力を約束するものではありません.
UTF-16コードユニットに基づく計測とサロゲートペア制御
本ツールの文字数および境界計算は,JavaScript標準のUTF-16コードユニット長に基づきます.基本多言語面の文字は1ユニット,絵文字などのサロゲートペアは2ユニットとして算出されます.正常な入力に含まれるサロゲートペアを分断しない保護処理を備えていますが,入力自体に含まれる不正な孤立サロゲートの修復・検証は行いません.
また,ゼロ幅接合子(ZWJ)による複合絵文字や国旗シーケンス,結合文字列を1書記素として一体保護する保証はありません.さらに,外部SNSが個別に設けている独自の文字数計算規則や,UTF-8バイト数,LLMのトークン数とは算出基準が異なります.ブラウザ環境に依存しない普遍的な高速動作を保証するものではないため,投稿先の仕様を確認の上で上限値を調整してください.
具体的な文字数計算の例として,半角英字「A」や漢字「日」は1ユニットですが,絵文字「😀」はサロゲートペアとして2ユニット消費されるため,「A😀B」の文字列は合計4ユニットとしてカウントされます.さらに結合文字列である基底文字「e」と結合アクセント記号(ウムラウトや濁点など)の組み合わせは,見た目が1文字であっても2ユニットを要し,分割境界の配置によっては文字と記号が分離してしまう可能性があります.
また家族や職業などを表すZWJ(ゼロ幅接合子)複合絵文字は,単一の絵文字として描画される場合でも複数のコードポイントと結合子から成るため,1グリフで10ユニット以上を消費することがあります.本ツールが実施する保護処理はあくまで正常なサロゲートペアの途中で切断しないことに限定されており,入力データに含まれる孤立サロゲート等の不正コードユニットを自動修復するものではありません.
加えて,フォントの表示幅や全角半角の視覚的面積,UTF-8のバイト長,LLMのトークン数などを測る仕組みも備えていません.すべての見た目の1文字が1ユニットとして扱われるわけではないため,利用先プラットフォームの制限仕様に合わせて余裕を持った上限値を設定し,プレビューの測定値と照らし合わせて活用することが推奨されます.
クリップボード出力仕様と原文フォーマットの非可逆性
プレビューボード上で確認した分割テキストは,2種類のクリップボードAPIを通じてユーザーの端末へエクスポートされます.個別のブロックをコピーする「個別コピー」ボタンは,該当するインデックスのテキストのみを抽出し,ワンクリックでクリップボードへ書き込みます.コピー成功時にはチェックマークのアイコンが2秒間点灯し,操作の完了を視覚的に通知します.
一方,「全コピー」機能は,分割されたすべてのチャンクを二重改行(\n\n)で結合し,一つの巨大なテキストストリームとして一括エクスポートします.これらの出力機能を利用する際,元の入力テキストの改行構造や連続する空白文字のフォーマットが完全に復元可能ではない(非可逆的である)ことを理解しておく必要があります.
本ツールの処理パイプラインでは,各ブロックの境界補正や文・段落の分解プロセスにおいて前後のトリム処理が強制的に実行されます.これにより,意図的な字下げやデザイン目的の空白,装飾的な改行の連続は削除され,最終出力ではシステムが定義した半角スペースや二重改行へと置換されます.
また,ダミーのアバターやプロファイル接続線を用いてSNS投稿風のUIを描画していますが,これはあくまでユーザー体験を向上させるためのモックアップであり,ツール自体に外部サービスへの直接投稿機能やAPI連携機能は一切実装されていません.入力データの一連の変換プロセスはお使いのブラウザ環境内で実行されます.
変換後に出力されたテキストをどのように管理し配信するかは,ユーザー自身のクリップボードを通じた手動操作に委ねられています.