カスタムSlugのテスト
カスタムSlugのテスト
この記事は、frontmatterで slug: "my-custom-url" を指定しているため、ファイル名(custom-slug-example.md)ではなく、カスタムURLでアクセスできます。
アクセスURL
この記事には以下のURLでアクセスできます:
- ✅
/posts/my-custom-url(カスタムslug) - ❌
/posts/custom-slug-example(ファイル名では404)
カスタムSlugの使い道
1. SEO最適化
ファイル名よりもわかりやすく、SEOに適したURLを設定できます:
---
slug: "cloudflare-workers-blog-tutorial"
---
2. 日本語ファイル名の回避
Markdownファイルを日本語で管理しつつ、URLは英語にできます:
---
title: "Cloudflare Workersでブログを作る方法"
slug: "how-to-create-blog-with-cloudflare-workers"
---
ファイル名: CloudflareWorkersでブログを作る方法.md
アクセスURL: /posts/how-to-create-blog-with-cloudflare-workers
3. URL構造の統一
複数の記事で一貫性のあるURL命名規則を適用できます:
---
slug: "tutorial-01-introduction"
---
---
slug: "tutorial-02-setup"
---
---
slug: "tutorial-03-deployment"
---
4. リンクの変更を防ぐ
ファイル名を変更してもURLは変わらないため、外部からのリンクが切れません:
# ファイル名を変更しても...
old-name.md → new-better-name.md
# slugを指定しておけばURLは維持される
slug: "permanent-url"
Slugの命名規則
カスタムslugを設定する際は、以下のガイドラインに従うことをお勧めします:
✅ 推奨
- 小文字の英数字を使用
- 単語の区切りにハイフン(
-)を使用 - 簡潔で意味のあるURL
- SEOを意識したキーワードの使用
例:
getting-startedapi-referencetutorial-part-12025-year-in-review
❌ 非推奨
- 日本語やその他のマルチバイト文字(URLエンコードされて読みにくくなる)
- スペース(
%20にエンコードされる) - 特殊文字(
?, &, =, /など) - 大文字(一貫性のため小文字推奨)
実装の仕組み
scripts/generate-content.mjs では、以下のロジックでslugが決定されます:
const slug = frontmatter.slug ||
path.basename(file, '.md');
- frontmatterに
slugが指定されていれば、それを使用 - 指定されていなければ、ファイル名(拡張子なし)を使用
重複の回避
注意: 複数のMarkdownファイルで同じslugを指定すると、後から処理されたファイルが上書きされます。slugの重複には注意してください。
# ファイル1: article-a.md
slug: "duplicate" # ❌
# ファイル2: article-b.md
slug: "duplicate" # ❌ ファイル1を上書きしてしまう
まとめ
カスタムslugを使用することで、より柔軟で保守性の高いURL設計が可能になります。SEO最適化や日本語ファイル名の回避など、様々な用途に活用できます。
この記事自体が /posts/my-custom-url でアクセスできることを確認してみてください!