お待ちください...

小波Note

四川 · 成都市11 ℃
日本語

Nuxt で GitHub Discussions を利用したコメントシステム

成都 (cheng du)2024/9/11 13:16:182.05k見積もり読書時間 6 分
QRコード
お気に入りCtrl + D / ⌘ + D
cover
IT FB(up 主)
バックエンド開発エンジニア
記事の要約
Github Copilot

記事の要約を読み込んでいます...

仕組み

giscus が読み込まれると、GitHub Discussions 検索 API を使用して、選択されたマッピング方法(例:URL、pathname、title など)に基づいて現在のページに関連するディスカッションを検索します。一致するディスカッションが見つからない場合、giscus bot は誰かが初めてコメントやリアクションを残したときに自動的にディスカッションを作成します。

訪問者がコメントを残すには、GitHub OAuth フローを通じて giscus アプリに代理投稿を許可するか、GitHub Discussion で直接コメントする必要があります。コメントは GitHub 上で管理できます。

GitHub Discussions の有効化

  1. 公開リポジトリを作成し、リポジトリの Settings -> Options -> Features で Discussions 機能を有効にします。

discussion

  1. リポジトリの Discussions ページでコメントを保存する新しいカテゴリを作成します。

discussion edit

discussion category

GitHub Apps に Giscus をインストール

リンク giscus app にアクセスし、Install をクリックしてリポジトリを選択し、Giscus アプリをインストールします。

Giscus の設定

giscus config website で設定します。

以下の情報を順に入力します:

  • リポジトリ名
  • ページとコメントのマッピング方法(私は多言語なので、pathnameを選択できません。そうでないと、/xxx、/en/xxx、/ja/xxxなど、複数のコメントテーマが表示されます)
  • リポジトリカテゴリ

giscus config

次に、このコードをコピーします。

giscus code

nuxt にインストール

bash
        npm install @giscus/vue

    
package.json
        "devDependencies": {
    "@giscus/vue": "^3.0.0"
}

    
xxx.vue
        <script setup lang="ts">
import Giscus from '@giscus/vue'
import 'giscus';
</script>

<template>
    <Giscus
        id="comments"
        repo="it-fb/it-fb-comment"
        repoid="xxx"
        category="Comment"
        categoryid="xxx"
        mapping="specific"
        :term="blog"
        reactionsenabled="1"
        emitmetadata="0"
        inputposition="top"
        :theme="color.value"
        :lang="locale === 'zh' ? 'zh-CN' : locale"
        loading="lazy"
    />
</template>

    
星空