From ee8c725d8ed43853eaa93850753c0afca49c0c0c Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Sun, 1 Feb 2026 21:02:21 +0800 Subject: [PATCH] feat: Add community discussions page with Giscus integration and update support links. --- .env.example | 7 +++++ src/app/support/discussions/page.tsx | 39 ++++++++++++++++++++++++++ src/app/support/page.tsx | 2 +- src/components/support/Discussions.tsx | 30 ++++++++++++++++++++ src/i18n/translations.ts | 8 +++--- 5 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 src/app/support/discussions/page.tsx create mode 100644 src/components/support/Discussions.tsx diff --git a/.env.example b/.env.example index 1f8e221..9da11da 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,10 @@ # Moltbot Service URL # Defaults to https://moltbot.svc.plus if not set MOLTBOT_SERVICE_URL=https://moltbot.svc.plus + +# Giscus Configuration (GitHub Discussions Integration) +# See https://giscus.app to generate these values +NEXT_PUBLIC_GISCUS_REPO=cloud-neutral-toolkit/console.svc.plus +NEXT_PUBLIC_GISCUS_REPO_ID=R_kgDOQoiZ_g +NEXT_PUBLIC_GISCUS_CATEGORY=General +NEXT_PUBLIC_GISCUS_CATEGORY_ID=DIC_kwDOQoiZ_s4Clj_q diff --git a/src/app/support/discussions/page.tsx b/src/app/support/discussions/page.tsx new file mode 100644 index 0000000..6578824 --- /dev/null +++ b/src/app/support/discussions/page.tsx @@ -0,0 +1,39 @@ +"use client"; + +import React from "react"; +import UnifiedNavigation from "../../../components/UnifiedNavigation"; +import Footer from "../../../components/Footer"; +import Discussions from "../../../components/support/Discussions"; +import { useLanguage } from "../../../i18n/LanguageProvider"; + +export default function DiscussionsPage() { + const { language } = useLanguage(); + const isChinese = language === "zh"; + + return ( +
+ + +
+
+
+

+ {isChinese ? "社区讨论" : "Community Discussions"} +

+

+ {isChinese + ? "欢迎来到 Cloud-Neutral Toolkit 社区!这里是分享想法、提出问题和与其他开发者交流的地方。" + : "Welcome to the Cloud-Neutral Toolkit community! This is the place to share ideas, ask questions, and connect with other developers."} +

+
+ +
+ +
+
+
+ +
+
+ ); +} diff --git a/src/app/support/page.tsx b/src/app/support/page.tsx index 553d03a..4d3cf03 100644 --- a/src/app/support/page.tsx +++ b/src/app/support/page.tsx @@ -32,7 +32,7 @@ export default function SupportPage() { description: isChinese ? "与其他开发者交流,分享经验和解决问题。" : "Connect with other developers, share experiences, and solve problems.", - link: "https://github.com/Cloud-Neutral-Toolkit/console.svc.plus/discussions", + link: "https://github.com/orgs/cloud-neutral-toolkit/discussions", linkText: isChinese ? "加入讨论" : "Join Discussions" }, { diff --git a/src/components/support/Discussions.tsx b/src/components/support/Discussions.tsx new file mode 100644 index 0000000..fe1a29c --- /dev/null +++ b/src/components/support/Discussions.tsx @@ -0,0 +1,30 @@ +'use client'; + +import Giscus from '@giscus/react'; +import { useThemeStore } from '../theme'; +import { useLanguage } from '../../i18n/LanguageProvider'; + +export default function Discussions() { + const isDark = useThemeStore((state) => state.isDark); + const { language } = useLanguage(); + + return ( +
+ +
+ ); +} diff --git a/src/i18n/translations.ts b/src/i18n/translations.ts index 5bcbedd..336ae42 100644 --- a/src/i18n/translations.ts +++ b/src/i18n/translations.ts @@ -1736,11 +1736,11 @@ export const translations: Record<'en' | 'zh', Translation> = { successTitle: '认证器绑定成功', successBody: '以后登录时将需要动态验证码,账号更安全。', guide: { - step1Title: '1 请在手机端下载阿里云 APP 或 Google Authenticator 身份验证器', + step1Title: '1 请在手机端下载 Google Authenticator 身份验证器', step1Description: '下载并安装验证器应用,准备开始绑定流程。', - step1Ios: '苹果:在 App Store 搜索 “Google Authenticator” 或 “阿里云 身份验证器” 并安装。', - step1Android: '安卓:在应用商店搜索 “Google Authenticator” 或 “阿里云 身份验证器” 并安装。', - step2Title: '2 使用阿里云或 Google Authenticator 身份验证器获取验证码', + step1Ios: '苹果:在 App Store 搜索 “Google Authenticator” 并安装。', + step1Android: '安卓:在应用商店搜索 “Google Authenticator” 并安装。', + step2Title: '2 使用 Google Authenticator 身份验证器获取验证码', step2Description: '打开验证器扫描下方二维码,如无法扫描可手动输入密钥。', step3Title: '3 输入验证码完成绑定', step3Description: '在验证器中查看 6 位验证码并输入完成绑定。',