进行中 精选项目

Nekotail 技术空间

Kevin_2106 的个人技术网站 Nekotail,以 Astro 7 构建,覆盖博客、项目、知识库和交互实验,优先静态生成与内容可维护性。

  • Astro
  • TypeScript
  • 静态站点
  • SEO

技术栈

  • Astro 7
  • TypeScript
  • MDX
  • Pagefind
  • CSS Variables
  • Vanilla TS Motion

这个站点本身也是一个持续演进的项目。目标不是套用现成博客主题,而是建立一套内容、页面、组件和样式职责清晰、可以长期修改的静态网站。

当前状态

基础架构已经落地:Astro 静态构建、四类内容集合、博客/项目/知识库/Lab 路由、SEO metadata、JSON-LD、RSS、robots.txt 和 Pagefind 构建集成。视觉层已完成第四轮调整:当前启用 ELYSIUM 冰蓝白与钴蓝,SIGNAL 墨黑/信号黄保留为暂存 Token;用等高线、点云、十字准星、斜线填充的出血标题和工程图边框建立层次,卡片保留 4px 小圆角、标签与按钮使用胶囊,渐变只出现在主文卡和局部氛围层。博客列表改为内容 + sticky 标签双栏,文章正文使用带边线的阅读面板与 H2 档案铭牌。品牌字来自 src/assets/nekotail.svg,在 Header、Footer 与加载序列以 currentColor 内联使用;主文卡底图来自 public/media/ 的抽象工程环。加载、滚动 reveal、代码复制和移动导航均由原生 CSS 与 TypeScript 驱动,无前端框架;当前关闭主题切换,固定 Elysium。

本地已经验证 30 个页面的静态构建、28 个 Sitemap URL、RSS、robots.txt、JSON-LD、Pagefind 中文检索(9 页 / 5255 words)、Elysium 主题,以及 390px / 1440px 两档布局。站点已部署到 https://nekotail.moe:Cloudflare Workers 托管静态资源,nekotail.moe 与 www.nekotail.moe 用 Custom Domain 绑定,一个极薄的入口脚本把 http 与 www 统一 301 到 https://nekotail.moe;线上已验证首页、/about/、/blog/、/blog 的尾斜杠跳转、404 与两种跳转。GitLab CI 流水线已写好但还没跑通(新账号需完成身份验证,且 CLOUDFLARE_API_TOKEN 未配置),因此现在的线上版本由本地 Wrangler 部署;CDN/WAF 和搜索引擎收录仍待观察,验证记录见项目 README。

架构选择

  • 使用 Astro 的静态输出,正文直接出现在 HTML 中;
  • 四类内容各自使用 Zod Schema,不共享一个过度宽泛的模型;
  • 博客使用 Markdown,Lab 使用 MDX,交互组件只从 Lab 内容引入;
  • 搜索索引在构建后由 Pagefind 生成,不依赖数据库;
  • 颜色、字体、间距和宽度统一由 CSS Variables 控制;
  • 部署目标为 Cloudflare Workers 静态资源 + GitLab CI,不引入运行时后端。

下一步

  1. 把 GitLab CI 真正接上:完成账号身份验证、写入 CLOUDFLARE_API_TOKEN,让 git push 直接触发构建和部署;
  2. 在真实托管环境中继续验证缓存、404 与爬虫访问,观察 CDN/WAF 是否误拦合法爬虫;
  3. 继续补充实际文章与项目实现;
  4. 继续打磨项目与知识库页的内容密度,准备按文章区分的分享图。

相关阅读:从零搭建一个可长期维护的 Astro 技术网站、本站架构概览。

演进记录

  1. 上线 nekotail.moe

    接入 Cloudflare Workers 静态资源与两条 Custom Domain 接管 nekotail.moe / www;首页、博客、关于、404 与 www 301 已在正式域名验证。

  2. 完成 Nekotail 视觉重构

    改为 Elysium 蓝白工业档案视觉、Noto Sans SC;首页采用紧凑刊头、纸面主文卡、出血标题与纹理背景,并使用 Nekotail 手写 wordmark。

  3. 完成基础架构

    四类内容集合、全部模块路由、SEO 端点与基础视觉层落地。

  4. 补充首批内容结构

    加入站点架构文章、项目条目、知识库文档与 Lab MDX 模板。