📘 管理后台使用手册
管理后台位于 admin.html,登录管理员账号后可用,含 6 个模块:文章管理、新闻管理、课程管理、邀请码管理、用户管理、自动入库。
① 文章管理
查看全部文章(含学习文章与新闻)。每行可编辑或删除。
可编辑字段
| 字段 | 说明 |
|---|---|
| 标题(越) / 中文标题 | 文章主标题 |
| 类型 | 学习文章新闻 |
| 等级 | A1 - C2 |
| 分类 / 来源 | 话题分类、来源媒体 |
| 摘要 | 列表页一行导读 |
| 封面图 URL | 列表/详情页顶部大图 |
| 原文链接 | 详情页「🔗 查看原文」 |
| Markdown 正文 | 详情页图文混排(可含图片) |
② 新闻管理
管理越南新闻的自动更新:
- 自动更新开关:开启后每天到点自动抓取翻译入库;关闭则定时任务暂停。
- 定时抓取时间:本地时区 0-23 点,每天执行一次。
- 立即同步一次:手动触发抓取 RSS 并逐篇翻译(需数分钟),实时反馈抓取/入库/失败数。
定时配置保存在服务端,保存后即时生效,无需重启。新闻来源 RSS 见 .env 的 NEWS_RSS_URL。
③ 自动入库接口(n8n / dify)
供 n8n/dify 等外部服务自动写入内容,用 API Key 鉴权(无需用户登录)。
文章入库
接口:POST /api/admin/ingest/article
请求头:x-admin-api-key: <ADMIN_API_KEY>
字段一览:
| 字段 | 必填 | 说明 |
|---|---|---|
| slug | 建议 | 唯一标识,建议 daily-YYYY-MM-DD,幂等不重复建 |
| title | 是 | 标题 |
| titleZh | 否 | 中文标题 |
| level | 否 | A1/A2/B1/B2,默认 A2 |
| category | 否 | 分类 |
| kind | 否 | article 学习文章 / news 新闻,默认 article |
| coverImage | 否 | 封面图 URL(图片字段放这里) |
| sourceUrl | 否 | 原文链接 |
| contentMd | 否 | Markdown 正文(可内含  插图) |
| sentences | 是 | 逐句翻译数组 [{vi, zh, gloss}] |
完整请求体示例:
{
"slug": "news-2026-08-21-demo",
"title": "Tiêu đề bài viết",
"titleZh": "中文标题",
"level": "B1",
"category": "新闻",
"kind": "news",
"coverImage": "https://example.com/images/cover.jpg",
"sourceUrl": "https://example.com/bai-viet-goc",
"contentMd": "## 正文\n\n段落文字……",
"sentences": [
{ "vi": "Đây là câu đầu tiên.", "zh": "这是第一句。", "gloss": "câu=句子" }
]
}
兼容大小写:coverImage 与 cover_image 都认,其它字段同理。
课程入库
接口:POST /api/admin/ingest/curriculum(同样带 x-admin-api-key)
请求体遵循 server/curriculum_schema.md,按 slug 幂等。
旧接口(兼容保留)
旧路径 POST /api/articles/upsert 仍可用,同样带 API Key,字段直接透传。
④ 其它模块
- 课程管理:新增/删除课程元数据(标题、等级、排序)。
- 邀请码管理:生成月度/季度/年度/永久邀请码,支持有效期、作废、复制。
- 用户管理:查看用户,撤销会员权益。
- 自动入库:可视化粘贴 JSON 调用入库接口(需填 API Key),便于手工测试。