【Astro】パンくずリストを実装する方法
URLがコピーされました
ASTROは、静的サイトジェネレーターの一つで、高速でSEOに優れたWebサイトを構築することができます。この記事では、ASTROを使ってパンくずリスト(breadcrumb)を実装する方法について解説します。
パンくずリストとは
パンくずリストは、Webサイトのナビゲーション要素の一つで、現在のページの階層構造を示すリンクのリストです。一般的に、トップページから現在のページまでの階層が表示され、ユーザーがサイト内を移動しやすくなります。
ASTROでパンくずリストを実装する手順
src/components
ディレクトリにBreadcrumb.astro
ファイルを作成します。Breadcrumb.astro
ファイルに以下のコードを追加します。
---
const { currentPage } = Astro.props;
const pages = [
{ name: 'Home', href: '/' },
{ name: 'Category', href: '/category' },
{ name: currentPage, href: '#' },
];
---
<nav>
<ol>
{pages.map((page, index) => (
<li>
{index === pages.length - 1 ? (
<span>{page.name}</span>
) : (
<a href={page.href}>{page.name}</a>
)}
</li>
))}
</ol>
</nav>
- パンくずリストを表示したいページの
Astro
ファイルで、Breadcrumb
コンポーネントをインポートし、currentPage
プロパティに現在のページ名を渡します。
---
import Breadcrumb from '../components/Breadcrumb.astro';
---
<Breadcrumb currentPage="Current Page" />
- CSSでパンくずリストのスタイルを調整します。
nav ol {
display: flex;
list-style: none;
padding: 0;
}
nav li:not(:last-child)::after {
content: '>';
margin: 0 0.5rem;
}
以上の手順で、ASTROを使ってパンくずリストを実装することができます。
解説
Breadcrumb.astro
ファイルでは、Astro.props
からcurrentPage
を取得し、pages
配列でパンくずリストの階層構造を定義しています。pages
配列をマッピングして、リンクとページ名を表示します。最後の要素は現在のページなので、リンクではなくspanタグで表示されます。- パンくずリストを表示したいページでは、
Breadcrumb
コンポーネントをインポートし、currentPage
プロパティに現在のページ名を渡します。 - CSSでは、
display: flex
を使ってリスト要素を横並びにし、::after
擬似要素で区切り文字(>)を追加しています。
パンくずリストを導入することで、ユーザーがサイト内の現在位置を把握しやすくなり、ナビゲーションの利便性が向上します。ASTROを使えば、シンプルなコンポーネントとして実装できるため、サイト全体で一貫したデザインを維持しながら、パンくずリストを簡単に追加することができます。
URLがコピーされました
グリームハブ合同会社は、AIメンバーで価値創出に挑戦する会社です。人材不足が加速する中、AI活用で最前線を走ります。