MoreKitsでオンラインにテキストを比較する方法
2つのテキストやコードの間で、行・単語・構造の変更をサーバーへアップロードせずに特定するためのシナリオ駆動ガイドです。

なぜ重要か
金曜の17:48。オンコールのエンジニアから連絡が入りました。本番が突然HTTP 502を返している。デプロイしたNginx設定を先週火曜に動いていた良品とdiffすると、proxy_read_timeout 5;が1行余分にあるのがすぐわかります。その5秒が障害です。ツーペインのテキスト比較ツールがあると、30分かかっていた調査が30秒で済みます。
同じことが、差分入り契約をレビューする法務、CMSの書き出しとステージングを突き合わせるコンテンツ担当、2つのレポートCSVを検証するアナリストにも当てはまります。「何が変わったのか」を正確に・プライバシーを守りつつ・実際のファイル形式横跨で答えるのが、このガイドで紹介するMoreKitsのテキスト比較です。
実際の3つのシーン
staging.envとproduction.envを比較し、LOG_LEVEL=debugがprodに混入してログパイプラインを逼迫していないか確認します。
障害回避
v2とv3の契約を並べて貼り付けます。インラインdiffが移動したカンマや「shall」→「must」の置換のみを強調するので、弁護士は差分だけを見れば済みます。
短時間で承認判断
旧版と再生成されたロケールファイルをドロップします。トリム・小文字化・空白無視により、実際の訳変更以外はノイズとして消えます。
デグレを出さない
実入力・出力付きウォークスルー
ツールは/content-tools/text-compareです。新しいタブで開き、順に試してください。
左にオリジナルを貼る
信頼している版をOriginalペインに入れます。プレーンJSON、YAML、コード、Markdown、CSVに対応します。長さ上限は実務上問題になりにくく、メガバイト級でもWebワーカー上で比較が動きます。
右に候補を貼る
新しい版をModifiedへ。両方に中身があると自動でdiffが描画されます。各側のガターは追加を緑、削除を赤で示し、行内編集は文字単位でハイライトします。
正規化トグルでノイズを抑える
ツールバーで末尾空白無視、改行コードの統一、比較前の小文字化などが使えます。多くの「偽」の差分(CRLF対LF、タブ対スペース)は1トグルで消えます。
変更箇所へジャンプ
変更レールの上下矢印(またはツールヒントにあるショートカット)ですべてのhunkへ移動できます。長いファイルではスクロールより速いです。
diffをエクスポート
Copy as unified diffで、チケットやPR説明に貼れる形式を取得できます。
---/+++のパッチ構文で、git applyが理解するのと同じです。
Input
{
"logLevel": "info",
"retries": 3,
"endpoints": ["https://api.example.com"]
}Output
{
- "logLevel": "info",
- "retries": 3,
+ "logLevel": "debug",
+ "retries": 5,
"endpoints": ["https://api.example.com"]
}v2条項
The Supplier shall deliver the Goods within thirty (30) days of receipt of the purchase order.
v3条項
The Supplier must deliver the Goods within forty-five (45) days of receipt of the purchase order.

実践テクノ
- どちらかのペインにファイルをドラッグ&ドロップして読み込めます。
.envや.yaml、.csvに便利です。 - diffする前にJSONフォーマッターでJSONを整形すると、両側の形状が揃い、ホワイトスペースの見た目差ではなく実データの差だけが残ります。
- 隠しテキストウォーターマークと組み合わせると、どのコピーが漏れたか追跡用の見えないマーカーが、多くのコピペフローを経てもdiffではっきりします。
- よく使う比較用にハッシュ付きURLをブックマークすると(例:
#case=ignore)、次回からトグルが最初からオンになります。 - チームで末尾の改行だけ競合することが多ければTrim Linesを使います。401行目だけ空、というような差分が消えます。
よくある落とし穴
よくある誤り
diffが「ほぼ全部赤」— ほとんどの行が変わって見える
改行コード(CRLF対LF)か末尾空白のばかり違っている可能性が高いです。Ignore line endingsとTrim trailing spacesをオンにすると、実質的な変更だけに絞れることがほとんどです。
よくある誤り
JSONとYAMLが「見た目違う」がデータは同じ
キー順やクォートの違いです。まず両方をコードフォーマッターに通してください。canonicalな形が揃うと残るdiffが意味のある差分になります。
よくある誤り
巨大ログで体感が重い
最悪ケースではdiffアルゴリズムがO(N×M)になります。数MB級のログは、まず該当時間帯だけ切り出すか、grepでリクエストIDを抽出してから貼ってください。そのうえでは数万行でも素早く扱えます。
向いていない用途
テキスト比較は非構造〜半構造テキストに強みがあります。次のような場合は別ツールへ。
- 見た目の差(UIのスクショ、デザイン書き出し)。知覚的画像diffを使います。
- Gitで履歴まで含めて監査する場合。
git log -pやコードレビュー基盤向きです。 - 大きなバイナリ(コンパイル成果物、PDF)。まずテキスト表現にするかバイナリdiffを使います。
- ID列など行の同一性が明確な表データ。スプレッドシートの
VLOOKUPやSQLのEXCEPTの方が整理しやすいです。
FAQ
テキストはどこかにアップロードされますか?
いいえ。比較はWebワーカー内でブラウザだけで完結します。MoreKitsへのfetchや、貼り付け内容のテレメトリはありません。一度訪問すればオフラインでも動きます。
チームメイトと比較結果を共有できますか?
ツール側はサーバーに何も保存しません。統一diffをコピーしてチケットやPRへ貼るのが王道です。描画済みビューを共有したいときはdiffペインのスクリーンショットを使います。
右から左への文字も扱えますか?
はい。インライン強調はグラフメ単位です。アラビア語・ヘブライ語・ウルドゥ語でも結合が壊れず文字レベルの差が分かります。
比較できる最大長は?
硬性の上限はありませんがアルゴリズムは超線形なので、〜25万行を超えると一瞬止まって見えることがあります。それ以上は問題のセグメントに事前フィルタしてください。
次のステップ
変更箇所が分かったら、次が自然です。
- 変更したペイロードをコードフォーマッターで美しく/ミニファイします。
- HTMLやJSONへ埋め込む前はエスケープ/アンエスケープで特別な文字を整えます。
- Markdown上のdiffなら、Markdown to HTMLコンバーターで表示が意図通りか確認します。
準備ができたらテキスト比較を開いて貼り付けから始めてください。