Skip to content

Repository files navigation

Sekai

一个基于 Astro 的双语(中文 / English)个人博客主题。

✨ 特性

  • 🌗 浅色 / 深色主题,跟随系统或手动切换
  • 🌍 中英双语(zh-cn / en),/en 前缀路由
  • 🏠 首页:随机背景图、打字机一言、社交图标、最新文章
  • 📝 博客:分类、更新日期、字数统计、封面图、目录(桌面侧栏 + 移动端抽屉)
  • 🔗 友链页:分组展示 + 申请友链说明(自定义 {copy} 复制、:tip 悬浮提示语法)
  • 💬 评论:内置 Twikoo 集成,留空 envId 即关闭
  • 📡 RSS 订阅(按语言独立输出)+ Sitemap
  • ⚡ 无框架依赖的轻量交互(anime.js 转场、View Transitions、CSS-only 动效)
  • 🔤 内置字体:Alimama FangYuanTi VF(标题)、JetBrains Mono(代码)、Atkinson(正文)、Douyin Sans(分组标题)

🚀 快速开始

pnpm install
pnpm dev          # http://localhost:4321
pnpm build        # 构建到 ./dist/
pnpm preview      # 本地预览构建产物

需要 Node.js ≥ 22.12。

🛠️ 个性化配置

文件 说明
src/config.ts 站点身份:作者名、站点标题/描述/关键词、社交链接、首页一言、Twikoo 评论配置
src/lib/feed.ts 友链数据(分组 + 条目),按语言提供,缺省回退 zh-cn
src/i18n/ui.ts 界面文案(导航、错误页、通用提示等)
src/content/link/apply-zh.md / apply-en.md 友链页"申请友链"要求
public/favicon.png / public/apple-touch-icon.png 站点图标
src/assets/avatar.jpg 头像(首页 hero 与导航栏共用)
public/bg/ 首页随机背景图(mobile/desktop/,支持 _light/_dark 命名对,来源署名写入 src/bg-credits.json
astro.config.mjs 站点 URL(site)、i18n、Markdown 处理、字体

文章

src/content/blog/ 下按语言创建 Markdown/MDX 文章:

src/content/blog/
└── zh-cn/
    └── 2026/08/01/my-first-post.md   # 中文文章

Frontmatter 字段:

---
title: 文章标题
description: 文章描述
pubDate: 2026-08-01
updatedDate: 2026-08-02 # 可选
category: 技术 # 可选,列表页展示
heroImage: ./images/cover.png # 可选,封面图(文章内 relative 路径)
license: true # 可选,默认 true,显示 CC 许可
---

🧩 Markdown 扩展

自定义语法(全站统一经过 src/remark/index.ts 处理):

  • `code`{copy} — 行内代码旁渲染复制按钮
  • :tip[文本]{tip="提示"} — CSS 悬浮提示

代码块自动包装为带语言头、行号、复制按钮的组件,无需额外标记。

📝 命令

命令 说明
pnpm dev 启动开发服务器 localhost:4321
pnpm check Astro 类型检查(astro check
pnpm lint ESLint 检查
pnpm build 构建生产产物到 ./dist/
pnpm preview 本地预览构建产物
pnpm astro ... 运行 Astro CLI 命令

☁️ 部署

主题同时内置 Cloudflare Pages 与 Vercel 部署配置,均可直接在对应 Dashboard 连接 Git 仓库后使用。

Cloudflare Pages

仓库内置 wrangler.tomlpublic/_headerspublic/_redirects

文件 说明
wrangler.toml Wrangler 部署配置(声明 pages_build_output_dir = "dist"
public/_headers 自定义响应头(/_astro/* 不可变长缓存、/bg/* 短缓存)
public/_redirects /en/* 未匹配路径回退到英文 404 页

Dashboard 部署

  1. 在 Cloudflare Dashboard 创建 Pages 项目并连接 Git 仓库
  2. 构建命令:pnpm build;构建输出目录:dist
  3. 添加环境变量 NODE_VERSION = "22"(项目要求 Node.js ≥ 22.12)

Wrangler CLI 部署

pnpm install
pnpm build
wrangler pages deploy # 读取 wrangler.toml 的 pages_build_output_dir

Vercel

仓库内置 vercel.json(构建命令 pnpm build、输出目录 dist/_astro/bg 缺失资源短缓存 404、/en/* 回退英文 404 页)。

Dashboard 部署

  1. 在 Vercel 导入 Git 仓库(框架预设自动识别 Astro)
  2. 构建命令与输出目录由 vercel.json 自动读取,无需额外配置

CLI 部署

pnpm install
pnpm build
vercel --prod

提示:astro.config.mjs 构建时会为文本资源生成 .gz/.br 预压缩副本, 这是为 nginx 等静态服务器准备的;Cloudflare Pages 与 Vercel 均在边缘自行压缩, 这些副本不会被使用但保留无副作用。

🤝 许可

主题代码采用 MIT License。内置字体遵循各自许可(见 src/assets/fonts/ 下对应 LICENSE 文件)。使用本主题发布的站点内容版权归作者本人所有。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages