Gatsby Theme Aoi でメニューを設定する

2022-01-29

Gatsby Theme Aoi でメニューを設定する

post by cieloazul310

Gatsby Theme Aoi の Aoi レイアウト内にサイトコンテンツのメニューを設定する方法を説明します。Gatsby テーマShadowing という機能を使いますが、今はまだ Shadowing を理解する必要はありません。

Menu ファイルを作成

Gatsby プロジェクトの src ディレクトリに、@cieloazul310/gatsby-theme-aoi-layout というディレクトリを作成し、menu.tsx を作成します。Gatsby Theme Aoi のスターターを使っている場合は既にファイルが存在しているはずです。

mkdir -p src/@cieloazul310/gatsby-theme-aoi-layout
touch src/@cieloazul310/gatsby-theme-aoi-layout/menu.tsx

Gatsby プロジェクトは以下のような構成になります。

.
├── gatsby-config.js
├── package.json
└── src
    ├── @cieloazul310
    │   └── gatsby-theme-aoi-layout
    │       └── menu.tsx
    └── pages
        ├── 404.tsx
        ├── index.tsx
        └── page-2.tsx

Menu ファイルの中身

以下は作成した ./src/@cieloazul310/gatsby-theme-aoi-layout/menu.tsx の例です。

embed:ExampleCode-1.tsx

これは実際にこのサイトで使われている menu.tsx です。 title, path, icon というプロパティを持つオブジェクトの配列を作成し、デフォルトエクスポートすることで、Aoi レイアウト内のメニューコンポーネントに反映することができます。

Shadowing 第一歩

これは Gatsby テーマの Shadowing という機能を使っています。 Shadowing とは、node_modules にインストールされている特定のパッケージの src ディレクトリに含まれるファイルを独自の実装に置き換えることです。

今回の例では、
./src/@cieloazul310/gatsby-theme-aoi-layout/menu.tsx
というファイルが、
./node_modules/@cieloazul310/gatsby-theme-aoi-layout/src/menu.tsx
として機能しています。

@cieloazul310/gatsby-theme-aoi-layout というパッケージは、@cieloazul310/gatsby-theme-aoi に含まれている

Gatsby Theme Aoi でメニューを設定する

Date: 2022-01-29

Post by cieloazul310

Categories: Gatsby Theme Aoi

0

Gatsby Theme Aoi Blog

© 2023 @cieloazul310 All rights reserved. Built with Gatsby