🤔

Zennのスラッグ(slug)とは

commits1 min read 13

slug(スラッグ)は、記事や本のユニークなIDのような文字列です。例えばslugがexample-articleの記事のURLは

https://zenn.dev/ユーザー名/articles/example-article

となります。

slugの指定

ウェブ上で記事や本を作成する場合、slugはランダムで作成されます。

コンテンツのGitHubリポジトリ管理を行っている場合は、slugを任意に指定できます。

  • 記事の場合はmarkdownファイル名をarticles/[slug].mdという形式にします
  • 本の場合はディレクトリ名をbooks/[:slug]という形式にします

Zenn CLIを使うとファイルの作成時にslugを指定することができます。たとえばwhat-is-slugというslugの記事を作成したい場合は以下のようなコマンドを実行します。

$ npx zenn new:article --slug what-is-slug
# => articles/what-is-slug.md`が作成される

詳しくはZenn CLIを使ったファイルの作成方法をご覧ください。

slug指定時の注意点

  1. slugはサイト全体で(記事や本などのコンテンツの種類ごとに)ユニークにする必要があります。
  2. slugは半角英小文字(a-z)、半角数字(0-9)、ハイフン(-)、アンダースコア(_)の12〜50字の組み合わせにする必要があります。
  3. slugは一度zenn.dev上で作成されたら変更できません(slugを変えると別の投稿として作成されます)。
GitHubで編集を提案

Discussion

質問です。
なぜ slug は12〜50字が必要ですか?

slugが重複する可能性を低くするためです。

slugに大文字を含んでいると

不正なファイル名のマークダウンファイルのデプロイはスキップされました。slugは半角英数字(a-z0-9)とハイフン(-)の12〜50字の組み合わせにする必要があります

とエラーになったのですが、slugは小文字のみという制約があるのでしょうか?

はい、slugには小文字の半角英数字のみ([a-z0-9_])を利用できます。

了解しました。注意点に「小文字の」を追加してもらえると助かります。

すいません、「注意点」ではなく「エラーメッセージ」でした。

わかりづらくてすみません。承知しました!

アンダースコア(_)を含んだslugで記事を公開できてしまったのですが、意図した仕様でしょうか?

指定した slug が短いときに、ランダムに付け足して12字以上にしてくれる機能があると嬉しいな。
例えば --slug 'erc20-*' と指定できる、とか。
自分の検索容易性のため、先頭部分は好きなのを付けたい

slugの具体的な指定方法をこのページに記載しておいていただきたいです。

追記しました。

コンテンツのGitHubリポジトリ管理を行っている場合はslugを任意に指定できます。例えば、GitHubリポジトリから/articles/what-is-slug.mdという名前のファイルをデプロイすると、その記事のURLは以下のようになります。

https://zenn.dev/ユーザー名/articles/what-is-slug

早速対応頂きありがとうございます。私のコメントの意図が不明瞭で申し訳ございません。私のコメントは、

npx zenn new:article --slug what-is-slug

のようにslugを指定できることがこのページに記載されていたほうがよいのでないか、というものでした。
「zenn slug 指定」と検索するとこのページがトップにヒットするため、
このページだけでslugの具体的な指定方法がわかるようになっているとよいと思います。

たしかにその通りですね。追記しました。

ログインするとコメントできます