Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 115 additions & 57 deletions site/src/components/ChangelogPage.astro

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions site/src/components/SiteHeader.astro
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@ const items: Array<{
<button type="button" data-lang="en" class="active">EN</button>
<button type="button" data-lang="zh">中文</button>
</div>
<div class="theme-switch" role="group" aria-label="Theme">
<button type="button" data-theme="system" class="active" aria-label="System theme"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg></button>
<button type="button" data-theme="light" aria-label="Light theme"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><line x1="12" y1="1" x2="12" y2="4"/><line x1="12" y1="20" x2="12" y2="23"/><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"/><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"/><line x1="1" y1="12" x2="4" y2="12"/><line x1="20" y1="12" x2="23" y2="12"/><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"/><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"/></svg></button>
<button type="button" data-theme="dark" aria-label="Dark theme"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg></button>
</div>
{accountSlot ? (
<span class="nav-acct" data-account-slot></span>
) : (
Expand Down
8 changes: 5 additions & 3 deletions site/src/layouts/Base.astro
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
import '../styles/global.css';
const base = import.meta.env.BASE_URL.replace(/\/$/, '');
const { title, description, titleEn, titleZh } = Astro.props;
const canonical = new URL(Astro.url.pathname, Astro.site).href;
const { title, description, titleEn, titleZh, canonical: canonicalOverride } = Astro.props;
const canonical = canonicalOverride ?? new URL(Astro.url.pathname, Astro.site).href;
const ogImage = new URL(`${base}/og.png`, Astro.site).href;
---
<!doctype html>
Expand All @@ -16,6 +16,9 @@ const ogImage = new URL(`${base}/og.png`, Astro.site).href;
<link rel="icon" href={`${base}/favicon.svg`} type="image/svg+xml" />
<link rel="sitemap" href={`${base}/sitemap-index.xml`} />
<meta name="theme-color" content="#ffffff" />
<script is:inline>
(function(){try{var p=localStorage.getItem("reasonix-theme")||"system";var d=p==="dark"||(p==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches);document.documentElement.dataset.theme=d?"dark":"light";var m=document.querySelector('meta[name="theme-color"]');if(m)m.content=d?"#1f232b":"#ffffff";}catch(e){}})();
</script>
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Reasonix" />
<meta property="og:title" content={title} />
Expand All @@ -34,7 +37,6 @@ const ogImage = new URL(`${base}/og.png`, Astro.site).href;
<slot name="head" />
</head>
<body data-motion="rich" data-lang="en" data-title-en={titleEn ?? title} data-title-zh={titleZh ?? title}>
<div class="cursor-glow"></div>
<slot />
<script>
import '../scripts/site.js';
Expand Down
10 changes: 9 additions & 1 deletion site/src/layouts/Community.astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ const canonical = new URL(Astro.url.pathname, Astro.site).href;
<link rel="canonical" href={canonical} />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<meta name="theme-color" content="#ffffff" />
<script is:inline>
(function(){try{var p=localStorage.getItem("reasonix-theme")||"system";var d=p==="dark"||(p==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches);document.documentElement.dataset.theme=d?"dark":"light";var m=document.querySelector('meta[name="theme-color"]');if(m)m.content=d?"#1f232b":"#ffffff";}catch(e){}})();
</script>
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Reasonix Community" />
<meta property="og:title" content={title} />
Expand All @@ -21,7 +24,7 @@ const canonical = new URL(Astro.url.pathname, Astro.site).href;
<body data-lang="en">
<header class="nav">
<div class="nav-inner">
<a class="brand" href="/community/"><span class="mark">R</span>Reasonix<span class="ctag"><span class="l-en">Community</span><span class="l-zh">社区</span></span></a>
<a class="brand" href="/community/" aria-label="Reasonix Community"><span class="mark" aria-hidden="true">R</span><span class="brand-name">Reasonix</span><span class="ctag"><span class="l-en">Community</span><span class="l-zh">社区</span></span></a>
<nav class="nav-links">
<a class={active === "discussions" ? "here" : ""} href="/community/"><span class="l-en">Discussions</span><span class="l-zh">讨论</span></a>
<a href="/community/?category=skills"><span class="l-en">Skills</span><span class="l-zh">技能</span></a>
Expand All @@ -33,6 +36,11 @@ const canonical = new URL(Astro.url.pathname, Astro.site).href;
<button type="button" data-lang="en" class="active">EN</button>
<button type="button" data-lang="zh">中文</button>
</div>
<div class="theme-switch" role="group" aria-label="Theme">
<button type="button" data-theme="system" class="active" aria-label="System theme"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg></button>
<button type="button" data-theme="light" aria-label="Light theme"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><line x1="12" y1="1" x2="12" y2="4"/><line x1="12" y1="20" x2="12" y2="23"/><line x1="4.2" y1="4.2" x2="6.3" y2="6.3"/><line x1="17.7" y1="17.7" x2="19.8" y2="19.8"/><line x1="1" y1="12" x2="4" y2="12"/><line x1="20" y1="12" x2="23" y2="12"/><line x1="4.2" y1="19.8" x2="6.3" y2="17.7"/><line x1="17.7" y1="6.3" x2="19.8" y2="4.2"/></svg></button>
<button type="button" data-theme="dark" aria-label="Dark theme"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg></button>
</div>
<span id="nav-account"></span>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions site/src/pages/404.astro
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const base = import.meta.env.BASE_URL.replace(/\/$/, '');
<div class="eyebrow">404</div>
<h1><span class="l-en">This page went <span class="grad">cold.</span></span><span class="l-zh">这一页<span class="grad">冷掉了</span>。</span></h1>
<p class="sub"><span class="l-en">The page you're looking for doesn't exist — but the session is still warm.</span><span class="l-zh">你找的页面不存在——但会话还热着。</span></p>
<div class="cold-blocks" aria-hidden="true"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i class="new"></i></div>
<div class="hero-cta">
<a class="btn btn-dark" href={`${base}/`}><span class="l-en">Back to home</span><span class="l-zh">回到首页</span></a>
<a class="btn btn-ghost" href={`${base}/docs/`}><span class="l-en">Read the docs</span><span class="l-zh">查看文档</span></a>
Expand Down
8 changes: 6 additions & 2 deletions site/src/pages/changelog/index.astro
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
---
import ChangelogPage from '../../components/ChangelogPage.astro';
import { latestRelease, releases } from '../../data/releases';
import { latestRelease, releases, releasePath } from '../../data/releases';

/* /changelog/ renders the latest release but canonicalizes to its version URL
to avoid duplicate content with /changelog/vX.Y.Z/. */
const canonical = new URL(releasePath(latestRelease.version), Astro.site).href;
---

<ChangelogPage release={latestRelease} releases={releases} />
<ChangelogPage release={latestRelease} releases={releases} canonical={canonical} />
54 changes: 27 additions & 27 deletions site/src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ const ld = {
<div class="wrap">
<div class="eyebrow reveal"><span class="dot"></span><span class="l-en">DeepSeek-native · built for your terminal · MIT</span><span class="l-zh">DeepSeek 原生 · 为终端而生 · MIT</span></div>
<h1 class="reveal" style="--d:0.06s">
<span class="l-en">A <span class="grad">DeepSeek</span>-native agent<br />for your terminal.</span>
<span class="l-zh"><span class="grad">DeepSeek</span> 原生的<br />终端编码 Agent。</span>
<span class="l-en">A <span class="grad">DeepSeek</span>-native agent<br />for your <span class="tt">terminal</span>.</span>
<span class="l-zh"><span class="grad">DeepSeek</span> 原生的<br />终端编码 <span class="tt">Agent</span>。</span>
</h1>
<p class="sub reveal" style="--d:0.12s">
<span class="l-en">The loop is append-only, aligned to DeepSeek's byte-stable prefix cache — so long sessions hold <b>90%+ cache hit</b> and input-token cost collapses to <b>~1/5</b>. Use the same engine from the CLI/TUI, desktop app, or local browser UI.</span>
Expand Down Expand Up @@ -249,34 +249,12 @@ const ld = {

<div class="dl reveal" style="--d:0.14s">
<div class="dl-tabs" role="tablist">
<button class="dl-tab active" type="button" data-pane="npm" role="tab">npm</button>
<button class="dl-tab active" type="button" data-pane="desktop" role="tab"><span class="l-en">Desktop</span><span class="l-zh">桌面端</span></button>
<button class="dl-tab" type="button" data-pane="npm" role="tab">npm</button>
<button class="dl-tab" type="button" data-pane="brew" role="tab">Homebrew</button>
<button class="dl-tab" type="button" data-pane="desktop" role="tab"><span class="l-en">Desktop</span><span class="l-zh">桌面端</span></button>
</div>

<div class="dl-pane active" data-pane="npm">
<span class="install"><span class="ps1">$</span>npm i -g reasonix<button data-copy="npm i -g reasonix">Copy</button></span>
<div class="chan">
<div class="chan-row rec">
<code>npm i -g reasonix</code><span class="v">v<span class="rxv">{goVer}</span></span>
<span class="s"><span class="l-en">Stable 1.x · one binary · no Node · actively developed</span><span class="l-zh">稳定 1.x · 单二进制 · 无需 Node · 主力开发中</span></span>
<span class="chan-badge"><span class="l-en">recommended</span><span class="l-zh">推荐</span></span>
</div>
<div class="chan-row">
<code>npm i -g reasonix@0.53.2</code><span class="v">v0.53.2</span>
<span class="s"><span class="l-en">deprecated 0.x line · no longer maintained</span><span class="l-zh">已废弃的 0.x 线 · 不再维护</span></span>
<span class="chan-badge pre"><span class="l-en">deprecated</span><span class="l-zh">已废弃</span></span>
</div>
</div>
<div class="dl-note"><span class="l-en">macOS / Linux / Windows / WSL · npm <span class="mono">latest</span> tracks the current 1.x stable · <a class="rxnotes" href={`${base}/changelog/v${goVer}/`}>v<span class="rxv">{goVer}</span> release notes →</a></span><span class="l-zh">macOS / Linux / Windows / WSL · npm <span class="mono">latest</span> 指向当前 1.x 稳定版 · <a class="rxnotes" href={`${base}/changelog/v${goVer}/`}>v<span class="rxv">{goVer}</span> 更新说明 →</a></span></div>
</div>

<div class="dl-pane" data-pane="brew">
<span class="install"><span class="ps1">$</span>brew install esengine/reasonix/reasonix<button data-copy="brew install esengine/reasonix/reasonix">Copy</button></span>
<div class="dl-note"><span class="l-en">v<span class="rxv">{goVer}</span> (Go rewrite) · macOS &amp; Linux · update with <span class="mono">brew upgrade</span></span><span class="l-zh">v<span class="rxv">{goVer}</span>(Go 重写)· macOS 与 Linux · 通过 <span class="mono">brew upgrade</span> 更新</span></div>
</div>

<div class="dl-pane" data-pane="desktop">
<div class="dl-pane active" data-pane="desktop">
<div class="os-grid">
<div class="os-card" data-os="mac">
<h4>macOS</h4>
Expand Down Expand Up @@ -315,6 +293,28 @@ const ld = {
<a href={`${base}/docs/#macos-quarantine`}><span class="l-en">When to use this →</span><span class="l-zh">查看适用场景 →</span></a>
</div>
</div>

<div class="dl-pane" data-pane="npm">
<span class="install"><span class="ps1">$</span>npm i -g reasonix<button data-copy="npm i -g reasonix">Copy</button></span>
<div class="chan">
<div class="chan-row rec">
<code>npm i -g reasonix</code><span class="v">v<span class="rxv">{goVer}</span></span>
<span class="s"><span class="l-en">Stable 1.x · one binary · no Node · actively developed</span><span class="l-zh">稳定 1.x · 单二进制 · 无需 Node · 主力开发中</span></span>
<span class="chan-badge"><span class="l-en">recommended</span><span class="l-zh">推荐</span></span>
</div>
<div class="chan-row">
<code>npm i -g reasonix@0.53.2</code><span class="v">v0.53.2</span>
<span class="s"><span class="l-en">deprecated 0.x line · no longer maintained</span><span class="l-zh">已废弃的 0.x 线 · 不再维护</span></span>
<span class="chan-badge pre"><span class="l-en">deprecated</span><span class="l-zh">已废弃</span></span>
</div>
</div>
<div class="dl-note"><span class="l-en">macOS / Linux / Windows / WSL · npm <span class="mono">latest</span> tracks the current 1.x stable · <a class="rxnotes" href={`${base}/changelog/v${goVer}/`}>v<span class="rxv">{goVer}</span> release notes →</a></span><span class="l-zh">macOS / Linux / Windows / WSL · npm <span class="mono">latest</span> 指向当前 1.x 稳定版 · <a class="rxnotes" href={`${base}/changelog/v${goVer}/`}>v<span class="rxv">{goVer}</span> 更新说明 →</a></span></div>
</div>

<div class="dl-pane" data-pane="brew">
<span class="install"><span class="ps1">$</span>brew install esengine/reasonix/reasonix<button data-copy="brew install esengine/reasonix/reasonix">Copy</button></span>
<div class="dl-note"><span class="l-en">v<span class="rxv">{goVer}</span> (Go rewrite) · macOS &amp; Linux · update with <span class="mono">brew upgrade</span></span><span class="l-zh">v<span class="rxv">{goVer}</span>(Go 重写)· macOS 与 Linux · 通过 <span class="mono">brew upgrade</span> 更新</span></div>
</div>
</div>
</section>
</main>
Expand Down
Loading