Skip to content

About

Personal website built with Astro and the Blank theme. 简体中文 / 日本語 / English.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Blank / 艾玛 / 终末地个人网站

简体中文 | 日本語 | English

基于 Yuimi-chaya 的 Blank 主题独立化的 Astro 静态站。保留 Blank 的黑白阅读界面,并提供艾玛「樱色档案」与「终末地工业风」主题。三套主题共用文章、个人资料、作品、收藏和公共功能。

网站:laozhej.github.io · 支持简体中文、台湾繁体中文、日本語、English,以及浅色 / 深色模式。

项目 Showcase:三套界面,一份内容 → · 真实截图、设计取舍、共享架构、源码导览与验证记录。

本地运行

需要 Node.js 22.12.0 或更新版本(推荐 Node.js 24)。

npm ci
npm run dev

打开终端显示的本地地址。构建与检查成品:

npm run build
npm run preview

构建输出为 dist/,可部署到支持静态网站的服务。

导入图片

运行 npm run images,打开终端中的本地地址,即可拖入图片并自动压缩、命名、记录来源,复制路径、Markdown 或 HTML 引用。也支持命令行 npm run image:import -- <图片路径> --original。使用方法见 图片导入工具。

修改内容

要修改的内容 文件
站名、导航路径 src/lib/site.ts
四种语言的界面文案、导航和分类名称 src/core/i18n/messages.ts
繁体中文、日语、英语的个人资料与收藏数据 src/core/i18n/content.ts
个人简介、近况、兴趣 src/core/data/profile.ts
项目列表 src/core/data/projects.ts
游戏架(各语言名称写在同一条目里) src/core/data/games.ts
游戏卡片图片及其来源清单 public/games/、public/games/ASSETS.json
喜欢的动画(从 Notion「动漫记录」勾选「允许网站展示」的条目同步) src/core/data/animes.ts、public/animes/ASSETS.json
樱色档案首页的每日便笺 src/core/data/notes.ts
GitHub / Steam 个人主页链接(所有语言和主题共用) src/core/data/social.ts
全主题共用的搜索、筛选、排序、阅读进度 src/core/features/
全主题共用的页面切换过渡与页面脚本生命周期 src/core/navigation/
全主题共用的深浅色偏好与首屏初始化 src/core/preferences/
文章 src/content/blog/*.md
首页结构与开场文案 src/themes/blank/pages/HomePage.astro
黑白主题、字体、间距、响应式 src/themes/blank/styles/theme.css
页面框架、导航、页脚 src/themes/blank/layouts/BlankLayout.astro
艾玛主题的页面、样式与交互 src/themes/ema/
终末地工业风主题的页面与样式 src/themes/endfield/
主题注册、切换和偏好 src/core/themes/
艾玛主题图片与来源记录 public/themes/ema/assets/、public/themes/ema/ASSETS.json
全主题共用的网站图标 src/core/components/SiteIcons.astro、assets/branding/
正式网址 astro.config.mjs 中的 site

Blank Space 是暂用站名。示例文章已删除,src/content/blog/ 目前为空,各页面显示空状态,等待第一篇正式文章。GitHub 和 Steam 个人主页链接已配置;其他个人简介可继续完善,页面没有虚构经历。

添加文章时,在 src/content/blog/ 新建 Markdown 文件,文件名即文章地址(如 first-post.md → /blog/first-post/),顶部写:

---
title: 文章标题
description: 一句话摘要
pubDate: 2026-10-29
category: life   # tech、anime 或 life
tags: [标签一, 标签二]
---

draft: true 的文章不会发布。

已包含

  • 首页、文字归档、文章详情、作品、游戏、关于、404。
  • 标题 / 摘要 / 标签搜索,分类筛选,日期排序,URL 筛选状态恢复。
  • 文章目录、当前章节高亮、阅读进度、返回顶部。
  • 右上角月亮 / 太阳按钮切换浅色与深色;未手动选择时跟随系统变化,手动选择会在当前浏览器中保存,并在页面、语言、接入公共模块的主题之间共用。
  • 简体中文 / 繁體中文(台湾)/ 日本語 / English 切换;文章译文放在 zh-TW/、ja/、en/ 子目录,语言和深浅色选择相互独立。
  • Blank / 艾玛 / 终末地工业风主题切换,保留当前语言、栏目、文章、查询参数和锚点。主题选择与深浅色选择相互独立。Blank 的切换器位于顶栏,其他主题使用右下角的调色板按钮(艾玛主题在较窄的窗口里把它收进顶栏)。
  • 关于页与页脚的 GitHub / Steam 链接,以及多语言致谢与许可页(/credits/)。
  • 站内页面切换不整页刷新:页头保持不动,正文淡出淡入;语言、主题和深浅色选择随之保留,浏览器前进 / 后退恢复原滚动位置。
  • 樱色档案(艾玛主题)以“Arataki.br’s Base”为站名,标题使用 Gloock。首页保留 B 构图、站长姓名与五幕切换的「艾玛的小剧场」,五张原图按站主要求从 76c9da5 原样恢复;其下为资料卡、章节导览、便笺与最近文章。樱色便笺只在点击后打开,舞台与交互映射见 参考说明。
  • 艾玛主题包含樱花飘落、宽屏侧边滚动标记和樱色电台。
  • 艾玛主题控制台(宽屏在左侧边缘,较窄的窗口在页脚)的「樱色电台」提供三首在浏览器中实时合成的原创八音盒小曲,不加载音频文件,在艾玛页面间切换时继续播放,切换到其他主题即停止。首页和游戏页的控制台还可以关闭跟随鼠标的光标光圈。
  • 终末地工业风主题使用纸色与墨色、黄色强调、切角控件、等高线背景和自托管的 Saira 字体;只借鉴界面结构,不使用游戏官方素材。
  • 艾玛主题各页面都有暂停 / 播放动效按钮;暂停后所有主题都跳过页面过渡。系统开启减少动态时同样跳过,并停用该按钮。
  • 桌面及移动端布局、键盘焦点、跳到正文、减少动画偏好支持。

全站语言与主题

简体中文使用 /,台湾繁体中文使用 /zh-TW/,日语使用 /ja/,英语使用 /en/。右上角切换器会保留当前栏目或文章,并保存全站统一的 site-locale 偏好。从不带语言前缀的入口访问时,会使用这个偏好;明确的 /zh-TW/、/ja/、/en/ 链接优先。没有 JavaScript 时,语言链接仍可使用。

文章的中文源放在 src/content/blog/;译文放在 zh-TW/、ja/、en/ 子目录,设置 locale 和与中文文件名对应的 translationKey。不要把语言前缀写进文章链接。没有译文时,会显示中文原文并附上说明;不会自动生成或伪造翻译。

语言层位于 src/core/i18n/,独立于 Blank。后续主题必须复用 getI18n()、getSiteContent()、LanguagePreference.astro 和 LanguageSwitcher.astro,并为四种语言生成页面。主题路径放在语言前缀之后,如 /ja/themes/new/blog/,切换主题时保留当前语言。项目的 AGENTS.md 已记录这项约束。

个人资料、项目、收藏与社交链接来自同一份公共数据;文章也只维护一组 Markdown 源文件。修改后重新部署,所有接入这些数据的主题都会呈现更新。同一语言的内容共用;中文内容的修改不会自动翻译成日语或英语,译文仍需维护。

搜索、分类筛选、日期排序、阅读进度和深浅色逻辑均位于公共核心。Blank 使用根路径,艾玛主题使用 /themes/ema/,终末地工业风主题使用 /themes/endfield/;繁体中文、日语和英语入口在主题路径前加 /zh-TW/、/ja/、/en/,如 /ja/themes/endfield/。主题菜单会保留当前栏目、文章、语言及适用的查询参数和锚点。选择保存在统一的 site-theme 偏好中;实际页面主题由 URL 决定,直接链接和浏览器历史不会被已保存的偏好强制改写。

各主题负责布局、颜色和交互呈现,通过统一标记接入同一套功能。新增主题时请按 主题接入说明 接入数据、功能、语言与路由,不要复制主题内的业务逻辑。

检查公共语言、偏好与功能接口:npm test(使用 Node.js 24 的 TypeScript 支持)。

GitHub Pages 部署

公开仓库为 laozhej/laozhej.github.io,使用 GitHub Actions 构建和部署。每次推送到 main,工作流会使用 Node.js 24 安装锁定依赖、运行公共模块测试、构建静态页面并发布 dist/。也可以在 Actions 中手动运行 Deploy to GitHub Pages。

仓库的 Settings → Pages → Build and deployment → Source 使用 GitHub Actions。部署状态与日志见仓库 Actions 页面。

这是用户名站点,正式地址位于域名根目录,因此 astro.config.mjs 只设置 site: "https://laozhej.github.io",不设置仓库名 base。后续更新可直接修改此仓库的文章、数据和主题源码,无需 ChatGPT Sites。

贡献者

来源与许可

Blank 主题的 CSS、组件与交互基于 Yuimi-chaya/Yuimi-chaya.github.io,以 MIT 许可复用,原始版权声明保留在 LICENSE。来源版本为 4007a9498600c137b3912483ccee2b78b489b1bd。适配包括独立路由、站点元数据、内容替换与移除上游跨主题菜单。

没有复制上游站长的文章、漫画、立绘、音乐或个人资料。界面图标由 @iconify-json/tabler / Tabler Icons 提供,许可为 MIT。所有主题共享确定性排版生成的 B. 网站图标;当前页面不加载此前的 AI 樱花图标,也不加载 AI 首页效果图或 AI 生成的角色图片。

2026-11-14 按站主要求,仅从 76c9da5 恢复五张艾玛首页图片并重命名为 ema-pose-01.webp 至 ema-pose-05.webp,文件字节、透明度和尺寸保持不变;其他已清理素材未恢复。历史来源记录、SHA-256 和恢复路径见 素材清单 与 第三方素材说明。来源和公开使用授权仍未确认,站主的恢复指令及哈希一致均不构成权利人授权;这些图片不随软件 MIT 许可授权。游戏卡片图另见 游戏素材清单。

完整来源、许可文件及使用边界见 第三方素材说明。

文章及其译文的许可范围见 内容许可说明。网站不从外部服务器加载字体;樱色档案的标题字体 Gloock(SIL OFL 1.1)和终末地工业风的拉丁字体 Saira(SIL OFL 1.1)随站点自托管,其余文字使用系统字体。

About

Personal website built with Astro and the Blank theme. 简体中文 / 日本語 / English.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages