个人博客(本站)

基于 Hugo + Stack 主题的静态博客,腾讯云部署,全站 HTTPS 与自动续期,配套自研本地笔记工作台。

项目概述

你现在看到的这个网站,就是我的第一个完整独立部署的 Web 项目。

从域名备案、服务器采购,到站点搭建、HTTPS 证书、自动化部署,全流程独立完成。除了站点本身,还为它写了一套配套的本地工具:notes-ui 笔记工作台——把「写完的 Markdown 笔记 → 线上文章」的全流程做成了浏览器界面,拖拽上传、自动处理图片、分步构建部署。

架构

技术栈

组件选择说明
静态站点生成器Hugo单二进制,构建速度极快
主题Stack卡片式设计,简洁美观
Web 服务器NginxHTTP/2、gzip、静态资源缓存
HTTPSLet’s Encrypt免费证书,certbot 自动续期
部署自研脚本构建 → 打包 → 上传 → 原子替换
本地工具notes-ui(Flask)笔记上传 / 图片处理 / 分步发布 / 文章管理

配套工具:notes-ui 笔记工作台

写笔记在本地编辑器,发布却要手工做一堆机械活:建目录、拷图片、改路径、拼 front matter、构建、部署、提交。notes-ui 把这条链路做成了只监听本机的 Web 界面:

  • 导入:拖拽 .md 文件或整个笔记文件夹(图片自动带上),也可直接粘贴文本;自动剥离笔记自带的 front matter 并预填表单
  • 图片处理:按正文引用自动匹配、拷入页面包 images/、统一改写路径,缺失的图片列清单可补传
  • 发布流水线:生成页面包 → 构建验证 → 部署上线(二次确认、原子替换可回滚)→ 线上抽查(页面与图片 200 检查)→ git 提交,每步独立日志、可停在中途
  • 文章管理:列出全部文章,支持编辑元数据、草稿开关、改 slug、本地预览(托管 hugo server -D)、删除进回收站
  • 工程细节:零前端框架的原生单页界面;slug 实时查重;分类/标签全站自动补全;发布时间自动与最新文章错开

技术上是一个单文件 Flask 应用(Python 标准库风格,唯一的第三方依赖就是 Flask 本身),通过 subprocess 编排 hugo / 部署脚本 / git,前端为原生 HTML/JS/CSS 单页,无构建步骤。

项目状态

已上线并稳定运行,持续更新学习笔记中;笔记发布日常已通过 notes-ui 完成。

使用 Hugo 构建
主题 Stack 由 Jimmy 设计