画像やドキュメントのバッチを、Webサイトやコンテンツ管理システム(CMS)、静的サイトジェネレーターにアップロードしようとしています。ファイル名は「Product Photo (Final) 2.jpg」や「Blog Header — Draft.png」といった具合です。このままアップロードすると、スペースや特殊文字がエンコードされた汚いURLになってしまいますし、最悪の場合、サポートされていない文字のせいでCMSがアップロードそのものを拒否してしまいます。
本当に必要なのは「スラッグ」— 小文字、ハイフン区切り、特殊文字なしの「product-photo-final-2.jpg」のような形式です。数件程度であれば手作業での変換も何とかなりますが、新しいサイトに入れる50枚の画像バッチともなると現実的ではありません。
Finderでファイル名をスラッグ化できない理由
スラッグ化には、小文字への変換、かっこやダッシュなどの句読点の除去、スペースをハイフンに変換するといった複数の変換が同時に必要です。Finderのリネームツールにできるのは、そのうちの完全一致テキスト置換1つだけであり、テキストを小文字化したり、さまざまな特殊文字を1回の処理で取り除いたりすることはできません。手作業で何度もリネームを繰り返す必要がありますし、それでもFinderは大文字・小文字にはまったく手を出せません。
パイプラインでバッチをスラッグ化する
Renymは、大文字・小文字の変換、文字の削除、スペースからハイフンへの置換という必要なステップを連結することで、スラッグ化を実現します。これらすべてを1つのパイプラインとして、バッチ全体に適用できます。
ステップ1: 特殊文字を削除する
正規表現を使って、URLに含まれるべきではないかっこやダッシュなどの句読点を取り除きます。アルファベット、数字、スペース、ハイフン以外のすべてにマッチするパターンを使えば、1ステップでクリアにできます。
ステップ2: スペースをハイフンに変換する
すべてのスペースを検索してハイフンに置換し、一般的なWebスラッグの慣習に合わせます。
ステップ3: すべてを小文字にする
最後のステップとして小文字への変換を適用すれば、「Product-Photo-Final-2.jpg」は「product-photo-final-2.jpg」になります。すっきりしていて、予測可能で、どんなURL構造にも安全に使えます。
このパイプラインを一度作っておけば、今後アップロードするすべてのアセットのバッチで再利用できます。