giscusとは
GithubのDiscussion機能を用いたコメントシステムです。Githubのアカウントがあれば簡単に使えてコメントも出来るようになります。
Next.jsで使ってみる
Next.jsで作成したサイトやブログに導入することがあると思います。
実際にNext.jsで使ってみたので、その手順を紹介します。
Demo
1. giscusの設定
- リポジトリを作成します。
- 作成したリポジトリにgiscusをインストールします。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F403148%2F73c2f199-914b-1574-c828-2bb9c9620b66.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=baa0933c5ee3d795aad66f514bb23554)
- リポジトリのSettingsからDiscussionsを有効にします。
2. Next.jsで使う
App Routerで構築されたNext.jsのページにgiscusを埋め込みます。
全体のコードはこのリポジトリにあります。
app/giscus.tsx
export const Giscus = () => {
return (
<>
<div className="giscus"></div>
<script
src="https://giscus.app/client.js"
data-repo="EveSquare/giscus-test"
// ...(1.)で作成したscriptタグを貼り付けます。
></script>
</>
);
};
3. 動作確認
そのままコンポーネントを表示するとHydration Error
が発生するので、Dynamic Importを使ってコンポーネントを読み込むようにします。
pages.tsx
import dynamic from "next/dynamic";
const Giscus = dynamic(() => import("@/app/giscus").then((m) => m.Giscus), {
ssr: false,
});
export default function Home() {
return (
<main>
<Giscus />
</main>
);
}
ローカルでコメントをしたら....
Github Discussionsの方でも反映されています✨
まとめ
Next.jsでgiscusを使う手順を紹介しました。
簡単にコメント機能を追加できるので、ぜひ使ってみてください。