feat(website): 更新官网至 v0.7.12 并去 AI 味改版

- 版本号/下载链接模板化(VERSION 单点维护),changelog 增 v0.7.12 条目
- 数据修正:模型库 5910 → 7495 / 供应商 212,JSON-LD softwareVersion 同步
- 文案重写:清除一键/开箱即用/一目了然等八股措辞(中英 ~50 处),
  改为具体可验证的说法;英文标题 sentence case
- 视觉降 AI 感:删网格底纹与光晕、主色降饱和、Download 三等宽卡改
  Windows 主推不对称布局、Privacy 改单面板、Features 双列错落
- gh-pages 已随本次改动重新部署
This commit is contained in:
KimiSwitch Dev committed 2026-09-03 10:53:09 +08:00
1 parent 5138a295e0
commit 4de13ad353
12 files changed
+210 -193

No files matched your search

+36 -20
View File
@@ -8,27 +8,30 @@ const icons: Record<string, Icon> = {
linux: LinuxLogo,
};
const VERSION = "0.7.4";
const VERSION = "0.7.12";
const GITHUB = "https://github.com/billowliu2/KimiSwitch";
const MIRROR_RELEASES = "https://git.codingplan.site/admin/KimiCodeSwitch/releases";
const dl = (file: string) => `${GITHUB}/releases/download/v${VERSION}/${file}`;
/** Per-platform download assets for the current release (names match the CI
* release workflow exactly — verified against the published v0.7.4 assets:
* tauri-bundler on CI produces `Kimi.Switch_…` (dots) on every platform). */
* release workflow exactly — verified against the published v0.7.12 assets:
* tauri-bundler on CI produces `Kimi.Switch_…` (dots) on every platform,
* except the rpm which uses `Kimi.Switch-<version>-1` (hyphens).
* Filenames interpolate VERSION, so a release bump only changes the
* constant above. */
const assets: Record<string, { label: string; href: string }[]> = {
windows: [
{ label: "MSI", href: dl("Kimi.Switch_0.7.4_x64_en-US.msi") },
{ label: "MSI", href: dl(`Kimi.Switch_${VERSION}_x64_en-US.msi`) },
{ label: "镜像", href: MIRROR_RELEASES },
],
macos: [
{ label: "Apple Silicon (.dmg)", href: dl("Kimi.Switch_0.7.4_aarch64.dmg") },
{ label: "Apple Silicon (.dmg)", href: dl(`Kimi.Switch_${VERSION}_aarch64.dmg`) },
{ label: "安装脚本", href: dl("install-macos.sh") },
],
linux: [
{ label: ".deb", href: dl("Kimi.Switch_0.7.4_amd64.deb") },
{ label: ".AppImage", href: dl("Kimi.Switch_0.7.4_amd64.AppImage") },
{ label: ".rpm", href: dl("Kimi.Switch-0.7.4-1.x86_64.rpm") },
{ label: ".deb", href: dl(`Kimi.Switch_${VERSION}_amd64.deb`) },
{ label: ".AppImage", href: dl(`Kimi.Switch_${VERSION}_amd64.AppImage`) },
{ label: ".rpm", href: dl(`Kimi.Switch-${VERSION}-1.x86_64.rpm`) },
],
};
@@ -40,23 +43,36 @@ export default function Download() {
title={t.download.title}
subtitle={t.download.subtitle}
>
<div className="grid grid-cols-1 gap-4 md:grid-cols-3">
{/* 不对称:Windows 为主推平台,横跨整行;macOS / Linux 两列在下方 */}
<div className="grid grid-cols-1 gap-4 md:grid-cols-2">
{t.download.items.map((p) => {
const Icon = icons[p.id] ?? WindowsLogo;
const links = assets[p.id] ?? [];
const featured = p.id === "windows";
return (
<div key={p.id} className="card flex flex-col">
<div className="mb-3 flex items-center justify-between">
<div className="icon-chip">
<Icon className="h-5 w-5" weight="duotone" />
<div
key={p.id}
className={`card flex flex-col ${
featured
? "md:col-span-2 md:flex-row md:items-center md:justify-between md:gap-10"
: ""
}`}
>
<div className="min-w-0">
<div className="mb-3 flex items-center gap-3">
<div className="icon-chip shrink-0">
<Icon className="h-5 w-5" weight="duotone" />
</div>
<h3 className="text-lg font-semibold tracking-tight">{p.name}</h3>
<span className="ml-auto rounded-md border border-primary/20 bg-primary/10 px-2 py-0.5 text-[11px] font-medium tracking-wide text-primary">
{t.download.ready}
</span>
</div>
<span className="rounded-md border border-primary/20 bg-primary/10 px-2 py-0.5 text-[11px] font-medium tracking-wide text-primary">
{t.download.ready}
</span>
<p className={`text-sm text-muted-foreground ${featured ? "max-w-[65ch]" : ""}`}>
{p.note}
</p>
</div>
<h3 className="mb-2 text-lg font-semibold tracking-tight">{p.name}</h3>
<p className="text-sm text-muted-foreground">{p.note}</p>
<div className="mt-4 flex flex-wrap gap-2">
<div className="mt-4 flex shrink-0 flex-wrap items-start gap-2 md:mt-0">
{links.map((l) => (
<a
key={l.label}
@@ -74,7 +90,7 @@ export default function Download() {
})}
</div>
<p className="mt-6 flex items-center gap-2 text-sm text-muted-foreground">
<p className="mt-6 flex max-w-[65ch] items-center gap-2 text-sm text-muted-foreground">
<DownloadSimple className="h-4 w-4 text-primary" weight="duotone" />
{t.download.autoUpdate}
</p>