目录
这个站的内容放在一台 2 核 2G 的小机器上,写文章却不需要登录服务器:网页后台改的是 Git 仓库里的 Markdown,服务器每分钟拉一次、重新构建、原子替换,所以「保存」按钮其实就是「发布」按钮。
打开后台
地址是 https://linlinyichu.site/cms/,登录用的是自建 Gitea 的账号。点「使用 Gitea / Forgejo 登录」会弹出授权页,第一次会看到「授权 blog-cms 访问您的帐户」,同意后浏览器会记住登录状态,下次直接进。
后端仓库是 linlin/blog,站点代码和文章在同一个仓库里,历史随时可查、可回滚。
新建一篇笔记
左侧「技术笔记 → 新建」,编辑器里必填五项:
- 标题 —— 文章标题,同时用于列表页、搜索结果和浏览器标签。
- 链接短名 —— 决定 URL(
/notes/<短名>/),只用英文、数字、连字符;留空会用标题生成。 - 发布日期 —— 点「现在」即可,格式必须是带秒的
YYYY-MM-DD HH:mm:ss,Hugo 才解析得了。 - 摘要 —— 一到两句,出现在列表页和搜索结果里。
- 分区 —— 嵌入式 / 边缘 AI / 智能家居 / 运维部署,四选一,决定列表页的小标题。
- 正文 —— 富文本编辑器,工具栏可以切 Markdown 源码。
「领域」「标签」「关键词」选填:标签会生成 /tags/<标签>/ 聚合页,关键词只进站内搜索索引。
填完点右上角「保存」,git 提交立刻产生(提交信息是「content: 更新 笔记「短名」」),最多一分钟后刷新线上页面就能看到。
传图片
正文里直接粘贴或拖拽图片,文件会进仓库的 assets/uploads/,插入的地址是 /uploads/xxx.png。构建时 Hugo 会把图片统一转成 WebP 并生成两档宽度(760 / 1520),带 loading="lazy";markdown 里给图片加 title 就会变成图注。
改错、删掉、回滚
- 改错:重新打开条目改完保存,会生成「更新」提交,同样一分钟内生效。
- 删除:编辑器右上角「⋮ → 删除」,确认后产生「删除」提交。
- 回滚:任何一次提交都能在 Gitea(
/git/)里回退;服务器还会在/opt/backups/留最近 14 天的仓库 bundle、Gitea 数据和站点快照。
几个容易踩的点
- 必填项没填:点保存没反应又没报错,是顶部的「有 N 个字段存在错误」提示被滚出了视口,检查分区和正文。
- 草稿弹窗:同一篇反复编辑会留本地草稿,打开时问「是否恢复」,选「放弃」看线上真实内容。
- 日期写成未来时间:Hugo 默认不构建未来日期的页面,文章会「提交成功但线上 404」,把日期改到当前时间之前即可。
- 不要在 1Panel 面板里重新保存这个站点,会覆盖手改过的 nginx 配置。