一、缘起
岂能尽如人意,但求无愧我心。
搭一个自己的博客,记录生活感受、学习成长、岁月变迁——让消失的留下痕迹,让抵达的可以回望。 这是 NightFall 的初衷。
市面上的博客平台不少,但要么受制于平台的规则与边界,要么样式千篇一律没有个人色彩。最终决定从零搭建:选一个开源可控的框架,配上一个颜值在线的主题,一点一点打磨成自己喜欢的样子。
二、技术选型
选型时考虑了几个维度:开源、可定制、易维护、中文友好。
最终方案:
- Hexo 8.1.1:静态站点生成器,编译快、生态成熟、中文社区活跃
- Stellar 1.33.1:xaoxuu 出品的 Hexo 主题,模块化设计、文档详尽、颜值在线
- GitHub Pages:免费托管博客本体,自带 CDN + HTTPS
- 阿里云轻量服务器:跑后端服务(说说 + 评论),国内访问快
- 域名 nightfall7.top:阿里云万网注册,ICP 备案合规
Hexo 的好处是「本地写作 → 一键生成 → 推送部署」,所有内容都是 Markdown 源文件,版本可控、迁移方便。Stellar 主题提供了侧边栏 widget、容器标签、tag-plugins 等模块化组件,省去了大量前端开发成本。
三、整体架构
采用前后端分离的 split 架构:
- 前端(博客本体):走 apex 域
nightfall7.top,CNAME 到 GitHub Pages,享受 GitHub CDN - 后端(API + 管理后台):走子域
api.nightfall7.top,A 记录到阿里云服务器
这样分工的好处:前端静态文件白嫖 GitHub 资源(免费 + 全球 CDN + 自带 HTTPS),后端服务独立可扩(评论 / 说说 / 后台互不影响),域名干净(博客走 apex,后端走子域避免 DNS 冲突)。
四、模块设计
4.1 内容组织
四类内容各司其职:
- 文章:长文写作,技术笔记与生活记录
- 专栏:系列文章聚合,配 OKR 目标管理追踪进度
- 笔记本:碎片化笔记,按标签树组织
- 独立页面:关于 / 友链 / 生活 / 说说等独立模块
每类内容有独立的路由、模板、侧边栏配置,互不干扰。
4.2 侧边栏 widget
主页采用左右双栏布局,widget 各展所长:
- welcome 博客指南:左栏顶部,霞鹜文楷钢笔楷书风格的便签卡片,写博客宗旨
- calendar 万年历:右栏日历网格,每格显示农历 / 节气 / 节日,高亮今天,附当日宜忌 + 法定节假日倒计时
- recent_talks 近期说说:右栏从 ech0 API 动态拉取最新 5 条说说,点击跳详情
- recent 最近发布:左栏文章列表,sticky 文章带「置顶」渐变徽章
- related 相关文章:文章内页按专栏机制推荐同主题文章
所有 widget 都可按页面类型(首页 / 文章 / 笔记)灵活配置,不同场景侧边栏内容不同。
4.3 互动系统
- Artalk 评论:自托管评论系统,Go + SQLite 轻量级,支持 Markdown / 表情 / 图片上传 / 邮件通知。管理面板独立,可封禁 / 审计
- Ech0 说说:自托管微博客,两列瀑布流布局 + 渐变毛玻璃卡片 + 点赞 / 评论 / 分享三件套 + APlayer 音乐 / Bilibili 视频嵌入
两个服务都跑在阿里云服务器上,通过 Nginx 反代暴露 API,数据独立可迁移。
4.4 视觉设计
全站视觉语言统一:
- 背景图:山景照片 + 100px 模糊 + 300% 饱和度,整页 fixed 铺底,营造氛围感
- 卡片:indigo→purple→pink 135deg 紫粉渐变毛玻璃,全站统一(文章卡片 / 说说卡片 / 标签徽章复用同一配色)
- 字体:正文用思源宋体 Light 字重(笔画瘦劲,类似瘦金体的方正感),welcome 便签保留霞鹜文楷钢笔楷书做层次区分
- 置顶徽章:sticky 文章标题前渲染「置顶」渐变 badge,复用强调色
- 代码块:3D 立体阴影(右下偏移硬边阴影)+ 同色系淡渐变背景,呼应侧边栏蓝青绿渐变
视觉打磨的核心是「一致性」:所有强调元素复用同一套渐变配色,所有圆角遵循统一的尺寸阶梯,所有字号遵循同一套比例。
4.5 SEO
- Open Graph:自动生成 og:type / title / url / image 等社交分享标签
- Canonical:防备用站 / 盗站分散主站权重,非主站访问弹「备用站 / 盗站」提示并加 noindex / nofollow
五、部署上线
ICP 备案通过后,从 8443 临时端口切 443 标准端口,手机端访问不再被运营商拦截。阿里云 DNS 配 split 架构(apex CNAME GitHub,api A 记录服务器)。Nginx 反代后端容器,SSL 证书走 HTTP-01 自动续期,不用手动续。
部署流程:本地改 Markdown / 配置 → hexo clean && hexo deploy → GitHub Actions 自动构建 Pages → CDN 生效。整个流程不到 1 分钟。
六、回顾与展望
从 6 月底立项到 7 月底稳定运行,一个月迭代了七次(6-26 ~ 7-24)。每一版变更都留档在 Obsidian 笔记,包括变更记录(按日期追加历史)和项目文档(只反映最新状态),方便回溯与复盘。
博客是个长期项目,接下来打算:
- 丰富生活记录栏目(相册 / 旅行 / 美食)
- 启用 timeline 时间线标签,把 GitHub issues 当说说发
- 持续打磨视觉细节(暗色模式 / 移动端适配)
博客的意义不在于有多少人看,而在于有一块属于自己的地方,可以认真地写一些东西。技术框架可以复刻,但写下的字、记录的瞬间,是独一无二的。
让消失的留下痕迹,让抵达的可以回望。
