Files
goodbuddy/sites/index.html
T

603 lines
29 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="GoodBuddy 是面向国产化与信创环境的开源桌面 AI 工作空间,内置集成 OpenCode、Continue 与 DeepSeek Harness(预览),支持 AI 编程、知识引用、笔记和定时计划。"
/>
<link rel="canonical" href="https://mesalogo.github.io/goodbuddy/" />
<link rel="alternate" hreflang="zh-CN" href="https://mesalogo.github.io/goodbuddy/" />
<link rel="alternate" hreflang="en" href="https://mesalogo.github.io/goodbuddy/en.html" />
<link rel="alternate" hreflang="x-default" href="https://mesalogo.github.io/goodbuddy/en.html" />
<meta name="theme-color" content="#f6f8fb" />
<title>GoodBuddy|面向国产化与信创环境的桌面 AI 工作空间</title>
<link
rel="icon"
href="./assets/goodbuddy-light.png"
type="image/png"
media="(prefers-color-scheme: light)"
/>
<link
rel="icon"
href="./assets/goodbuddy-dark.png"
type="image/png"
media="(prefers-color-scheme: dark)"
/>
<link rel="stylesheet" href="./styles.css" />
<script src="./language.js"></script>
<script>
(() => {
try {
const savedTheme = localStorage.getItem("goodbuddy-site-theme");
const systemDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
document.documentElement.dataset.theme =
savedTheme === "light" || savedTheme === "dark"
? savedTheme
: systemDark
? "dark"
: "light";
} catch {
document.documentElement.dataset.theme = "light";
}
})();
</script>
</head>
<body>
<a class="skip-link" href="#main-content">跳到主要内容</a>
<header class="site-header" data-site-header>
<div class="header-inner">
<a class="brand" href="#home" aria-label="GoodBuddy 首页">
<span class="brand-icon" aria-hidden="true">
<img class="brand-icon__image brand-icon__image--light" src="./assets/goodbuddy-light.png" alt="" />
<img class="brand-icon__image brand-icon__image--dark" src="./assets/goodbuddy-dark.png" alt="" />
</span>
<span>GoodBuddy</span>
</a>
<button
class="icon-button menu-toggle"
type="button"
aria-label="打开导航"
aria-expanded="false"
aria-controls="site-navigation"
data-menu-toggle
>
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 7h16M4 12h16M4 17h16" />
</svg>
</button>
<nav class="site-navigation" id="site-navigation" aria-label="主导航" data-navigation>
<a href="#download">下载</a>
<a href="#workflows">场景</a>
<a href="#features">功能</a>
<a href="#assistant">助手</a>
<a href="./docs-dist/zh/">用户手册</a>
<a href="#faq">FAQ</a>
</nav>
<div class="header-actions">
<a
class="language-link"
href="./en.html?lang=en"
lang="en"
hreflang="en"
aria-label="Switch to English"
data-language-link
>
EN
</a>
<button class="icon-button" type="button" aria-label="切换为深色主题" data-theme-toggle>
<svg class="theme-icon theme-icon--sun" viewBox="0 0 24 24" aria-hidden="true">
<circle cx="12" cy="12" r="4" />
<path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4" />
</svg>
<svg class="theme-icon theme-icon--moon" viewBox="0 0 24 24" aria-hidden="true">
<path d="M20.4 14.6A8.5 8.5 0 0 1 9.4 3.6a8.5 8.5 0 1 0 11 11Z" />
</svg>
</button>
<a
class="button button--quiet header-github"
href="https://github.com/mesalogo/goodbuddy"
target="_blank"
rel="noreferrer"
>
GitHub
<span class="sr-only">(在新窗口打开)</span>
</a>
</div>
</div>
</header>
<div class="menu-backdrop" aria-hidden="true" data-menu-backdrop></div>
<main id="main-content">
<section class="hero section" id="home" aria-labelledby="hero-title">
<div class="section-inner hero-grid">
<div class="hero-copy">
<div class="eyebrow">
<span class="status-dot" aria-hidden="true"></span>
Windows · macOS · Linux · 龙芯预览版
</div>
<h1 id="hero-title">
面向国产化<br />
与信创环境的<br />
<span>桌面 AI 工作空间。</span>
</h1>
<p class="hero-lead">
在 GoodBuddy 中写代码、查资料、记笔记,安排日常任务。
内置集成 OpenCode、Continue 与 DeepSeek Harness(预览)三种编程 Agent,
也支持直连模型对话。
</p>
<div class="hero-actions">
<a class="button button--primary" href="#download">立即下载</a>
<a class="button button--secondary" href="#workflows">查看使用场景</a>
</div>
<ul class="hero-facts hero-facts--aligned" aria-label="产品特性概览">
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
3 大桌面系统,x64 / arm64
</li>
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
龙芯 LoongArch 独立编译预览版
</li>
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
内置编程 Agent,按需配置模型
</li>
<li>
<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m5 10 3 3 7-7" /></svg>
无需注册 GoodBuddy 账号
</li>
</ul>
</div>
<div
class="product-stage"
role="img"
aria-label="GoodBuddy 编程工作区:使用 Continue 修复搜索问题,查看文件变更与测试结果"
data-tilt-stage
>
<div class="stage-glow stage-glow--one"></div>
<div class="stage-glow stage-glow--two"></div>
<div class="app-window" data-tilt-card>
<div class="window-bar">
<div class="window-dots" aria-hidden="true"><span></span><span></span><span></span></div>
<div class="window-title">GoodBuddy</div>
<div class="window-status"><span></span> Agent 已连接</div>
</div>
<div class="app-layout">
<aside class="app-sidebar" aria-hidden="true">
<div class="mini-brand">
<span class="brand-icon" aria-hidden="true">
<img class="brand-icon__image brand-icon__image--light" src="./assets/goodbuddy-light.png" alt="" />
<img class="brand-icon__image brand-icon__image--dark" src="./assets/goodbuddy-dark.png" alt="" />
</span>
</div>
<div class="side-item is-active"><span></span>对话</div>
<div class="side-item"><span></span>知识库</div>
<div class="side-item"><span></span>魔法笔记</div>
<div class="side-item"><span></span>智能心跳</div>
<div class="side-item"><span></span>运行记录</div>
<div class="sidebar-spacer"></div>
<div class="side-item"><span></span>设置</div>
</aside>
<div class="app-content">
<div class="app-content-header">
<div>
<strong>修复搜索空结果</strong>
<span>项目:知识检索</span>
</div>
<div class="runtime-pill">Continue</div>
</div>
<div class="message-area">
<div class="message message--user">搜索词带空格时没有结果,请修复并补充测试。</div>
<div class="message message--assistant">
<div class="assistant-label">
<span class="assistant-avatar" aria-hidden="true">
<span class="brand-icon">
<img class="brand-icon__image brand-icon__image--light" src="./assets/goodbuddy-light.png" alt="" />
<img class="brand-icon__image brand-icon__image--dark" src="./assets/goodbuddy-dark.png" alt="" />
</span>
</span>
<strong>GoodBuddy</strong>
</div>
<p>已去除查询词首尾的空格,无匹配时仍显示空状态提示。</p>
<div class="tool-card">
<div class="tool-icon">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 6h16M4 12h10M4 18h7" /></svg>
</div>
<div><strong>文件变更</strong><span>search.ts · search.test.ts</span></div>
<span class="tool-state">已修改</span>
</div>
<div class="demo-result"><code>query.trim()</code><span>测试通过:空格输入、无匹配结果</span></div>
</div>
</div>
<div class="composer">
<span>描述你想完成的编程任务…</span>
<div class="composer-actions"><span>Continue</span><b>↑</b></div>
</div>
</div>
</div>
</div>
<div class="floating-card floating-card--agents">
<span class="floating-icon">
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="m8 7-5 5 5 5M16 7l5 5-5 5M14 4l-4 16" /></svg>
</span>
<span><strong>内置编程 Agent</strong><small>OpenCode · Continue · DeepSeek Harness(预览)</small></span>
</div>
<div class="floating-card floating-card--scope">
<span class="scope-dot"></span>
<span><strong>跨平台可用</strong><small>Windows · macOS · Linux</small></span>
</div>
</div>
</div>
</section>
<section class="section download-section" id="download" aria-label="跨平台下载">
<div class="section-inner">
<div class="download-grid">
<article class="download-card">
<div class="platform-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="m3 5 8-1v8H3V5Zm10-1.3L21 3v9h-8V3.7ZM3 14h8v8l-8-1v-7Zm10 0h8v9l-8-1v-8Z" />
</svg>
</div>
<div><h3>Windows</h3><p>x64 / arm64 · 安装版 / 便携版</p></div>
<div class="download-options" data-download-card="windows">
<label>
<span>处理器</span>
<select data-download-arch aria-label="Windows 处理器架构">
<option value="x64">x64(Intel / AMD)</option>
<option value="arm64">ARM64</option>
</select>
</label>
<label>
<span>类型</span>
<select data-download-format aria-label="Windows 安装包类型">
<option value="nsis">安装版(推荐)</option>
<option value="portable">便携版 ZIP</option>
</select>
</label>
</div>
<a
class="button button--download is-disabled"
data-release-link
aria-disabled="true"
tabindex="-1"
>正在获取 Windows 下载信息…<span class="sr-only">(在新窗口打开)</span></a>
<p class="download-meta" data-download-meta aria-live="polite">
正在从 OSS 获取最新版本。
</p>
</article>
<article class="download-card">
<div class="platform-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M16.8 12.7c0-2.7 2.2-4 2.3-4.1A5 5 0 0 0 15.2 6c-1.7-.2-3.2 1-4.1 1-.9 0-2.2-1-3.6-1-1.8 0-3.5 1.1-4.5 2.7-2 3.5-.5 8.7 1.4 11.5.9 1.4 2 2.8 3.5 2.7 1.4 0 1.9-.9 3.7-.9 1.7 0 2.2.9 3.7.9s2.5-1.4 3.4-2.7a10 10 0 0 0 1.6-3.3 4.6 4.6 0 0 1-3.5-4.2ZM14.1 4.3A4.7 4.7 0 0 0 15.2 1a4.8 4.8 0 0 0-3.1 1.6A4.4 4.4 0 0 0 11 5.8c1.2.1 2.3-.5 3.1-1.5Z" />
</svg>
</div>
<div><h3>macOS</h3><p>Apple 芯片 / Intel · DMG</p></div>
<div class="download-options" data-download-card="macos">
<label>
<span>处理器</span>
<select data-download-arch aria-label="macOS 处理器架构">
<option value="arm64">Apple 芯片(推荐)</option>
<option value="x64">Intel</option>
</select>
</label>
<label>
<span>类型</span>
<select data-download-format aria-label="macOS 安装包类型">
<option value="dmg">DMG(推荐)</option>
</select>
</label>
</div>
<a
class="button button--download is-disabled"
data-release-link
aria-disabled="true"
tabindex="-1"
>正在获取 macOS 下载信息…<span class="sr-only">(在新窗口打开)</span></a>
<p class="download-meta" data-download-meta aria-live="polite">
正在从 OSS 获取最新版本。
</p>
</article>
<article class="download-card">
<div class="platform-icon">
<img src="./assets/linux-plain.svg" alt="" />
</div>
<div><h3>Linux</h3><p>x64 / arm64 · AppImage / DEB / RPM</p></div>
<div class="download-options" data-download-card="linux">
<label>
<span>处理器</span>
<select data-download-arch aria-label="Linux 处理器架构">
<option value="x64">x64(Intel / AMD)</option>
<option value="arm64">ARM64</option>
<option value="loong64">龙芯 LoongArch(实验预览)</option>
</select>
</label>
<label>
<span>类型</span>
<select data-download-format aria-label="Linux 安装包类型">
<option value="AppImage">AppImage(推荐)</option>
<option value="deb">DEB</option>
<option value="rpm">RPM</option>
</select>
</label>
</div>
<a
class="button button--download is-disabled"
data-release-link
aria-disabled="true"
tabindex="-1"
>正在获取 Linux 下载信息…<span class="sr-only">(在新窗口打开)</span></a>
<p class="download-meta" data-download-meta aria-live="polite">
正在从 OSS 获取最新版本。
</p>
</article>
</div>
<aside class="domestic-support" aria-labelledby="domestic-support-title">
<div>
<p class="kicker">信创软硬件支持</p>
<h3 id="domestic-support-title">桌面版本覆盖国产 x64、ARM64 和龙芯 LoongArch</h3>
<p>
正式下载覆盖国产 x64 与 ARM64;龙芯 LoongArch 使用独立编译的
loong64 预览版。请按系统与处理器架构选择安装包,具体兼容和认证范围见下方常见问题。
</p>
</div>
<div class="domestic-support__items">
<div><span>国产系统</span><strong>统信 UOS · 银河麒麟</strong></div>
<div>
<span>国产 CPU</span>
<strong>
海光 · 兆芯(x64)<br />
鲲鹏 · 飞腾(ARM64)<br />
龙芯(loong64 预览版)
</strong>
</div>
</div>
</aside>
</div>
</section>
<section id="workflows" class="section workflows-section" aria-labelledby="workflows-title">
<div class="section-inner">
<div class="section-heading">
<div><p class="kicker">使用场景</p><h2 id="workflows-title">从查资料到跟进工作</h2></div>
<p>查询项目资料,保存讨论结论,为待办安排提醒。</p>
</div>
<div class="workflow-grid">
<article class="workflow-card">
<div class="workflow-copy">
<p class="kicker">知识检索</p>
<h3>答案附带资料出处</h3>
<p>向本地资料或组织知识库提问,在回答中查看引用,找到对应原文。</p>
</div>
<div class="workflow-demo">
<div class="demo-bar">知识问答</div>
<p class="demo-question">测试环境发布前需要检查什么?</p>
<p class="demo-answer">需要核对配置、执行回归测试,并确认回滚包可用。[1]</p>
<div class="demo-source">[1] 《发布手册》 · 发布前检查</div>
</div>
</article>
<article class="workflow-card">
<div class="workflow-copy">
<p class="kicker">笔记与定时计划</p>
<h3>记录待办,安排下一次跟进</h3>
<p>用魔法笔记保存讨论结论,把需要跟进的事项设为定时任务。</p>
</div>
<div class="workflow-demo">
<div class="demo-bar">项目跟进</div>
<p class="demo-question">记录本次讨论,下周一提醒我检查发布准备。</p>
<p class="demo-answer">已记录:搜索修复待复核,发布前检查回归结果。</p>
<ul class="demo-checklist"><li>待办:复核搜索修复</li><li>定时计划:下周一 09:00 检查发布准备</li></ul>
<div class="demo-source">魔法笔记 · 发布准备</div>
</div>
</article>
</div>
</div>
</section>
<section class="section features-section" id="features" aria-labelledby="features-title">
<div class="section-inner">
<div class="section-heading">
<div>
<p class="kicker">产品亮点</p>
<h2 id="features-title">项目、知识与编程 Agent</h2>
</div>
<p>
选择适合任务的 Agent,连接项目与知识来源,并查看工具调用和运行结果。
</p>
</div>
<div class="feature-grid">
<article class="feature-card feature-card--wide feature-card--accent">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<circle cx="12" cy="12" r="3" />
<path d="M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M18.4 5.6l-2.1 2.1M7.7 16.3l-2.1 2.1" />
</svg>
</div>
<span class="feature-number">01</span>
<h3>内置 OpenCode、Continue 与 DeepSeek Harness</h3>
<p>在图形界面中选择编程 Agent、配置模型,直接向项目发起任务。DeepSeek Harness 为预览功能,也支持直连模型对话。</p>
<div class="provider-pills" aria-label="支持的 Agent Runtime">
<span>直连模型</span><span>OpenCode</span><span>Continue</span><span>DeepSeek Harness(预览)</span>
</div>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 5h16v14H4zM8 22h8M12 19v3" />
<path d="M7 9h2M11 9h2M15 9h2M7 13h10" />
</svg>
</div>
<span class="feature-number">02</span>
<h3>本地项目与 SSH 远端项目</h3>
<p>处理电脑上的代码,也可通过 OpenCode、Continue 连接 SSH 远端项目。远端运行配套的 GoodBuddy Agent。</p>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M5 4h14v16H5zM8 8h8M8 12h5" />
<path d="m14 16 2 2 3-4" />
</svg>
</div>
<span class="feature-number">03</span>
<h3>接入已有知识服务</h3>
<p>使用本地知识库,或配置 Dify、FastGPT、RAGFlow 连接,将已有资料用于检索与问答。</p>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M12 3 5 6v5c0 4.5 2.8 8.6 7 10 4.2-1.4 7-5.5 7-10V6l-7-3Z" />
<path d="M9 12h6M12 9v6" />
</svg>
</div>
<span class="feature-number">04</span>
<h3>直接提问或交付任务</h3>
<p>可用工具由所选 Runtime 和已启用能力决定。你可以在设置中管理 MCP 服务及其 Runtime 分配,操作使用当前账号权限,工具调用保留在运行记录中。</p>
</article>
<article class="feature-card">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 6.5C4 5.1 5.1 4 6.5 4H10l2 2h5.5C18.9 6 20 7.1 20 8.5v9c0 1.4-1.1 2.5-2.5 2.5h-11A2.5 2.5 0 0 1 4 17.5v-11Z" />
<path d="M8 11h8M8 15h5" />
</svg>
</div>
<span class="feature-number">05</span>
<h3>Skills 与 MCP 工具扩展</h3>
<p>导入 Skills,连接 MCP 服务,为所选 Agent 配置工作中需要的工具。</p>
</article>
<article class="feature-card feature-card--wide">
<div class="feature-icon">
<svg viewBox="0 0 24 24" aria-hidden="true">
<path d="M4 13h3l2-6 4 12 2-6h5" />
<path d="M4 4h16v16H4z" />
</svg>
</div>
<span class="feature-number">06</span>
<h3>运行记录与 Token 用量</h3>
<p>查看工具调用、取消、超时、Token 用量和历史记录。</p>
</article>
</div>
</div>
</section>
<section class="section assistant-section" id="assistant" aria-labelledby="assistant-title">
<div class="section-inner assistant-grid">
<div class="assistant-intro">
<div class="assistant-mark" aria-hidden="true">
<span class="brand-icon">
<img class="brand-icon__image brand-icon__image--light" src="./assets/goodbuddy-light.png" alt="" />
<img class="brand-icon__image brand-icon__image--dark" src="./assets/goodbuddy-dark.png" alt="" />
</span>
</div>
<p class="kicker">桌面助手</p>
<h2 id="assistant-title">桌面上的资料与日常工作</h2>
<p>
资料、笔记和待办集中管理,对话时选择需要的项目与文件。
不同 Agent 支持的上下文和工具见配置说明。
</p>
<a
class="text-link"
href="#download"
>
选择你的桌面版本
<span aria-hidden="true">↓</span>
</a>
<a class="text-link" href="./docs-dist/zh/">阅读用户手册 <span aria-hidden="true">→</span></a>
</div>
<div class="assistant-list">
<article>
<span class="assistant-number">01</span>
<div><h3>检索文件与网页</h3><p>导入文件、目录和网页,配置全文与向量检索。启用知识图谱后,还可查看资料之间的关系。</p></div>
</article>
<article>
<span class="assistant-number">02</span>
<div><h3>笔记与工作回顾</h3><p>魔法笔记记录灵感与待办,智能心跳按设定周期回顾工作。定时任务和心跳需要桌面应用保持运行。</p></div>
</article>
<article>
<span class="assistant-number">03</span>
<div><h3>直接理解你的桌面</h3><p>按需加入文件、截图、应用窗口、剪贴板和离线语音,不用来回搬运内容。</p></div>
</article>
<article>
<span class="assistant-number">04</span>
<div><h3>从微信或钉钉发送任务</h3><p>连接微信、企业微信或钉钉,用独立会话联系桌面助手。使用时保持电脑在线、消息渠道已连接。</p></div>
</article>
</div>
</div>
</section>
<section id="faq" class="section faq-section" aria-labelledby="faq-title">
<div class="section-inner">
<div class="section-heading">
<div><p class="kicker">开始之前</p><h2 id="faq-title">常见问题</h2></div>
<p>安装与连接步骤见 <a class="text-link" href="https://github.com/mesalogo/goodbuddy/blob/main/README.zh-CN.md">README 入门指南</a>。</p>
</div>
<div class="faq-list">
<details>
<summary>需要注册账号或支付模型费用吗?</summary>
<p>无需注册 GoodBuddy 账号。外部模型服务可能需要账号或 API 密钥,费用按服务商定价收取。使用本地模型时,需准备相应的运行环境。</p>
</details>
<details>
<summary>我的资料会发送到哪里?</summary>
<p>对话记录与笔记保存在本机。使用模型、知识服务、MCP 工具或消息渠道时,相关内容会发送到你配置的服务。模型请求可能包含检索到的资料片段和附件。</p>
</details>
<details>
<summary>第一次使用编程 Agent,需要配置什么?</summary>
<p>选择 Agent,配置模型连接并打开项目;根据所选 Agent 和系统准备或下载运行组件。DeepSeek Harness 为预览功能,安装步骤见入门指南。</p>
</details>
<details>
<summary>支持哪些平台和信创环境?</summary>
<p>Windows、macOS、Linux 提供 x64 与 ARM64 版本,国产环境覆盖相应架构;龙芯 LoongArch 提供独立实验预览版。统信 UOS、银河麒麟等环境需按系统、架构和安装包选择,兼容性说明不等同于整机或厂商认证。</p>
</details>
<details>
<summary>使用 SSH 远端项目需要准备什么?</summary>
<p>OpenCode、Continue 的远端项目需要可用的 SSH 连接,并在远端准备与桌面版本配套的 gbagent 及所需运行环境。操作使用远端登录账号权限;具体配置见 README 入门指南。</p>
</details>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="section-inner footer-inner">
<a class="brand brand--footer" href="#home" aria-label="返回 GoodBuddy 首页">
<span class="brand-icon" aria-hidden="true">
<img class="brand-icon__image brand-icon__image--light" src="./assets/goodbuddy-light.png" alt="" />
<img class="brand-icon__image brand-icon__image--dark" src="./assets/goodbuddy-dark.png" alt="" />
</span>
<span>GoodBuddy</span>
</a>
<p>面向国产化与信创环境的开源桌面 AI 工作空间</p>
<div class="footer-links">
<a href="#download">下载</a>
<a href="#workflows">场景</a>
<a href="#features">功能</a>
<a href="./docs-dist/zh/">用户手册</a>
<a href="#faq">FAQ</a>
<a href="https://github.com/mesalogo/goodbuddy/blob/main/README.zh-CN.md">入门指南</a>
<a href="https://github.com/mesalogo/goodbuddy" target="_blank" rel="noreferrer">
GitHub<span class="sr-only">(在新窗口打开)</span>
</a>
</div>
<small>© <span data-current-year></span> GoodBuddy. 本站不使用第三方统计脚本。</small>
</div>
</footer>
<script src="./release-index.js"></script>
<script src="./app.js"></script>
</body>
</html>