スラッグ生成
このジェネレーターは、タイトルをクリーンなURLスラグに変換します。UnicodeテキストはNFKDで正規化されアクセントが消え、英数字以外の文字列は区切り文字に置換され、すべて小文字になります。処理はすべてブラウザ内で行われ、区切り文字は自由に選択できます。
スラッグ生成とは
スラグとは、URLの人が読む部分です。URLは人が読んだり、メールに引用されたり、検索エンジンでインデックスされたり、文字列として比較されたりします。小文字、数字、ハイフン区切りは、これらのすべての用途で問題なく機能します。
実際のタイトル—アクセント、句読点、大文字が含まれているもの—からそこに至るまでには、単一の置換処理ではなく、一連の処理が必要です。NFKD Unicode正規化はアクセントを削除、fiのような互換字形を分解し、アポストロフィは削除されてdon'tがdontになります。英数字以外の連続文字は区切り文字に置換され、すべて小文字になり、余分な空白は削除されます。
範囲について正直であることが重要です。正規化は翻訳ではなく、NFKDは分解できる文字—アクセント、合字、全角文字—に作用します。アラビア語、ヘブライ語、中国語など、ラテン文字への分解がないスクリプトは正規化されず、このページは翻訳を創作するのではなく、実際の動作を説明します。すべての処理はブラウザ内で行われます。
スラグの規則では小文字に統一されますが、リンク周りのテキストは他の処理が必要なことがよくあります。たとえば、大文字小文字変換ツールはタイトルケース、キャメルケースなどを処理します。
スラグはエスケープを完全に避けるために存在します。URLが生のUnicodeを含む必要がある場合、URLエンコード・デコードがパーセントエンコードの方法を示しています。
パイプラインの各ステップ
順序は重要です:正規化を小文字化の前に実行し、区切り文字の置換は最後に行います。これにより、文字の正規化によって生成された文字が分割されることはありません。処理の順序は以下の通りです:
- NFKDに正規化――éはeと結合アクセントに、fiはfiに、全角AはAになります。
- 結合アクセント記号(U+0300–U+036Fの範囲)を削除――caféはcafeになります。
- 小文字化――Cafeはcafeになります。
- アポストロフィを削除――don'tはdontになり、余分な区切り文字は残りません。
- 英数字以外の連続文字—スペース、句読点、絵文字、記号—を単一のスペースに置換。
- 両端の余分な空白を削除し、単語を指定した区切り文字で結合――デフォルトではハイフン。
NFKD正規化で処理できることとできないこと
正規化は、ヨーロッパのアクセント付きアルファベットを徹底的に処理します:é、è、üなどは基本文字に変換されます—Ångströmはangstromに、crème brûléeはcreme-bruleeになります。互換文字も分解されます:½は1、分数スラッシュ、2に展開され、スラッシュ—記号なので—区切り文字になり、スラグは1-2と読めます。
正直な境界は、分解できない文字にあります。ドイツ語のßは分解できないため、straßeはstra-eになります—ßが単語の区切り文字として扱われます。驚きかもしれませんが、これはバグではなく、ß→ssは正規化ルールではなく、正書法ルールです。この壁は、すべての非ラテン文字に存在します。
RTLスクリプト、CJK、空のスラグの場合
アラビア語とヘブライ語は右から左に書かれますが、方向が問題ではなく、分解が問題です。これらの文字にはラテン文字へのNFKD分解が存在しないため、ASCIIスラグポリシーでは区切り文字に置換されます。混合タイトルでは、分解可能な単語は保持されますが、完全にアラビア語、中国語、絵文字で構成されるタイトルは空のスラグに変換され、このツールは推測する代わりに空のスラグを返します。
その空の結果は失敗ではなく情報です:ASCIIポリシーではこのタイトルを表現できず、post-123のようなプレースホルダーはそれを隠してしまいます。正当な代替案は、Unicodeを保持するスラグ—現代の標準はURLをIRIとして扱い、ブラウザは非ASCII文字をパーセントエンコードします—または、言語に対応した転写ですが、それは正規化テーブルが提供するものではありません。
区切り文字の選択
ハイフンがデフォルトです。ウェブではハイフンが単語の区切りとして読まれるためです。検索エンジンのガイドラインでは長い間ハイフンが単語の区切りとして扱われ、一方アンダースコアは歴史的に単語を結合していました。アンダースコアとドットは、それらを期待するシステムでも使用可能です。
どちらを選んでも処理は同じです:連続文字は単一の区切り文字に置換され、両端の余分な空白は削除されます。そのため、12 Tips & Tricks!が-12-tips-tricks-になることはありません。
よくある質問
スラグを生成する際にテキストはアップロードされますか?
いいえ。スラグ生成はページ読み込み後に実行される一連の文字列操作—正規化、分解、小文字化、置換、トリム—です。変換中にはリクエストは行われず、DevToolsのネットワークパネルで確認できます。また、サイトのContent-Security-Policyはconnect-src 'self'に設定されているため、スクリプトが試みた送信呼び出しもブロックされます。
なぜ小文字とハイフンなのですか?SEOに影響しますか?
多くのサーバーではパスは大文字と小文字を区別するため、/Guidesと/guidesはリンクとアナリティクスを分割する2つのアドレスになります。小文字化はそれを防ぎます。ハイフンはスペースとして読まれます—検索結果ページをスキャンする人々と検索エンジンの両方にとって—一方、連結されたスラグは1つの単語として読まれます。どちらも単独でのランキング要因ではなく、両方とも一貫性を保つための安価な方法です。
アクセントの正規化は実際にはどのように機能しますか?
NFKD正規化は文字をその構成要素に分解します:éは基本文字eと結合アクセントに分解されます。ジェネレーターは結合記号—固定されたUnicodeの範囲—を削除し、基本文字だけを残します。合字と全角文字も同じように分解されます。これは翻訳ではなく、機械的なアクセントの除去です。
アラビア語、ヘブライ語、中国語、絵文字のタイトルはどうなりますか?
これらの文字はラテン文字に分解されないため、ASCIIポリシーでは他の記号と同様に区切り文字に置換されます。これらの文字だけで構成されるタイトルは空のスラグに変換されます—ツールはポリシーでは表現できないという情報を返します。Unicodeを保持するスラグは正当な代替案です。転写には、このツールが偽造しない言語ルールが必要です。
ハイフンの代わりにアンダースコアやドットを使用できますか?
はい—区切り文字の設定でそれらを受け入れ、パイプラインの他の部分は変更されません。ハイフンがデフォルトである理由は、検索エンジンがそれを単語の区切りとして文書化している一方、アンダースコアが歴史的に単語を結合してきたためです。一貫性が選択よりも重要です。
なぜStraßeはstrasseではなくstra-eになりましたか?
ßにはNFKD分解がないため—Unicodeはそれを独自の文字として扱います—ASCIIポリシーでは単語の途中でも区切り文字に置換されます。ßをssに展開するのは、正規化テーブルに含まれないドイツ語の正書法ルールです。strasseが必要な場合は、タイトルでßを事前にssに置換してください。それ以外の文字は期待通りに正規化されます。