はじめに
今のブログにコメントシステムを導入したかったので、giscus
というコメントシステムを入れてみた。
環境
Hugo 0.131.0
Stack(Hugoテーマ)
giscusとは
giscus
は、GitHub Discussions
を利用したオープンソースのコメントシステム
ウェブサイトに訪問者がコメントを残す際に、GitHub
アカウントを使ってログインし、コメントはGitHub Discussions
に保存される。
そのため、外部のデータベースを必要としない。
特徴
- プライバシーを重視し、広告やトラッキングはなし
- カスタムテーマや多言語対応が可能で、日本語もサポートされている。
- 設定は簡単で、ウェブサイトにスクリプトを追加するだけで動作する。
GitHub
のAPIを利用しているため、リアクション機能やスレッド形式のコメントがサポートされている。- セルフホスティングが可能
他のコメントシステム
Disqus
https://disqus.com/Commento
https://commento.io/Remark42
https://remark42.com/utterances
https://utteranc.es/
今回ははじめてなので、特にこだわりもなく giscus
とした。
一応理由としては下記となる。
- リアクションでの反応ができる
GitHub
のアカウントがないとコメントができない- 簡単に導入できそう
- HugoのStackテーマで導入のための設定があること
giscusの導入
前提として以下を実施していること
- すでにGitHubのアカウントが作成済みであること
リポジトリの作成
GitHubでpublic
なリポジトリを作成する。
このリポジトリにコメントが蓄積される。
今回は、https://github.com/katsuobushiFPGA/blog-hugo-commentとして作成した。
giscusアプリのインストール
giscus
アプリをインストールする。
https://github.com/apps/giscus から Install
を行う。
Install
を選択する。
Organization
も選択できるが、今回はユーザ(ここではkatsuobushiFPGA
)を選択する。
Only select repositories
を選択し、先ほど作成したリポジトリを選択し、Install
を押す。
Okay, giscus was installed on the @xxxxxx account.
と出てくれば Install
は完了。
Discussions機能を有効化する
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/enabling-or-disabling-github-discussions-for-a-repository
を参考に Discussions
機能を有効化する。
GitHub で、リポジトリのメイン ページに移動する。
ここでは、https://github.com/katsuobushiFPGA/blog-hugo-comment に移動する。「Settings」に移動する。
General
→Features
のDiscussions
のチェックを有効化する。
giscusの設定の生成
https://giscus.app/ja のページの「設定」から生成する。
項目 | 設定値 |
---|---|
リポジトリ | katsuobushiFPGA/blog-hugo-comment |
ページとDiscussions連携設定 | Discussionのタイトルにページのpathnameを利用する |
Discussionで使用するカテゴリ | Announcements |
このカテゴリのみを検索します | 有効化 |
機能 | |
記事へのリアクションを有効にする | 有効化 |
コメントのロードを遅延させる | 有効化 |
テーマ | GitHub Dark |
giscus
を有効にするにスクリプトが出力されているので確認をする。
Hugo+Stackの設定ファイルの修正
comments:
enabled: true
provider: giscus
...
giscus:
repo: katsuobushiFPGA/blog-hugo-comment
repoID: "data-repo-idの値"
category: "data-categoryの値"
categoryID: "data-category-idの値"
mapping: "data-mappingの値"
lightTheme: light
darkTheme: dark
reactionsEnabled: 1
emitMetadata: 0
とした。
また、記事ごとに comments: false
となっていると無効になるのでテンプレートを修正した。
-comments: false
+comments: true
参考
- giscus
https://giscus.app/ja
おわりに
記事に誤りや問題があったら、コメントに気軽に書いてもらえるようにしてほしかったので導入してみた。
あとは、コメントではなくリアクションで記事に反応を残せるのは面白いし、良いと思ったので、もしよかったらリアクションを残していただけると嬉しいです。