官网 1.8.0:后台新增文章分类、文章管理与自动发布接口

这次更新解决了什么事
以前网站上的内容要么写死在页面里,要么改一次要动代码。现在的流程是:
后台建栏目 → 写文章 → 上架,前台自己就有了。
一、文章分类
后台「内容 → 文章分类」:
- 栏目名 + 一句话简介
- 排序值(大的在前)
- 可以单独隐藏某个栏目
每个栏目会自动分配一个颜色斑点,列表页和前台分类栏都用同一套颜色。
二、文章管理
后台「内容 → 文章管理」,每页 15 条:
- 封面图:JPG / PNG / GIF / WEBP,≤5MB。上传时会校验文件头,改后缀的伪装图会被直接拒绝。
- Markdown 编辑器:带工具条,支持标题、列表、引用、代码、加粗斜体。Ctrl+B / Ctrl+I 快捷键,右下角实时字数。
- 状态胶囊:草稿 / 上架 / 下架,点一下就切。
- 定时发布:发布时间填未来时间点,到点自动上架。
- 置顶、排序、标签、作者、来源这几个字段都有。
封面建议用 16:9 的横图,列表缩略图和详情页顶部都用得上。
三、自动发布接口
这是这次最重要的部分。
后台「内容 → 发布接口」打开开关、生成密钥,然后就可以用脚本或者 AI 直接发稿:
POST https://www.aizitie.cn/api/article.php
X-API-Key: <密钥>
{
"act": "publish",
"title": "怎样背古诗更快",
"cat": "学习方法",
"body": "正文,支持 Markdown",
"tags": "古诗,背诵"
}
几个设计上的考虑:
- 幂等:带了 slug 并且库里已有同 slug 的文章,会自动改成「更新」那一条。定时脚本重复跑不会刷出一堆重复稿件。
- 密钥不进浏览器网址:走 POST + 请求头,也不会出现在日志里。
- 封面可以传 base64 或者远程图片地址:远程地址只接受公网,内网地址会被 SSRF 防护挡掉。
- 有调用日志:后台页能看到最近 30 次调用,谁、什么时候、成功了没有。
- 限流:同一 IP 每分钟 60 次。
密钥建议定期重置一次,点按钮就行,旧密钥立刻失效。
四、同时修掉的几个小问题
- 标签按全角逗号分割出错:左边是一个正则没加 /u,遇到中文符号会劈出半截汉字,导致接口返回空。
- 后台几处跳转少了一个
admin/前缀,点了开关会跳到 404。 - 安装说明里补了手机站的 Nginx 防护规则。手写规则的时候,手机站的
data/目录不能封,封了成语和数学模块会白屏。
接下来打算做
- 前台文章列表页的分类筛选。
- 文章配图的水印自动生成。
- 手机站同步提供阅读入口。
有想先在后台看到的功能,欢迎直接留言。
版本号在后台首页右下角,看到 1.8.0 就是最新版。