文档中心/🗺️ 路线图 ✏️ 编辑此页

开发方向备忘

记录已调研、尚未启动的功能方向。每项保留调研结论与待决策点,启动开发时不必重新摸底;一旦定案实现,具体用法移入 GUIDE / API / THEMES 等功能文档,本文件只留条目与状态;拍板「不做」的进文末不做清单,编号永久空缺不回收。

2026-10 对标 WordPress / emlog 等系统做过一轮全量能力盘点,方向按三档优先级管理:A = 一定要做(下一步就做,多数成本低、确定性强);B = 未来一定要做(重要,但有前置依赖或需先拍板);C = 加分项(可有可无,有富余再做)。

建议执行顺序(2026-10-07 重整):A 区(已收官,A8 随本日落进 AGENTS.md)。B 区建议下一批:B9 主题外观变量(主题生态破零的最短路径)→ B10 MCP 服务器(成本低、差异化明显)→ B3 通知渠道抽象(国内触达);再往后 B6 备份异地化 / B13 管理员安全包。B8 主题 / 插件市场 2026-10-08 立项(调研结论已入档),排期等「主题可安装形态」拍板后插入。C 区按富余随缘挑。

优先级总览(2026-10-07 更新)

A 区 · 一定要做

# 事项 说明
A1 ✅ 数据导出(2026-10 完成) Markdown + 图片打包 / WordPress WXR;后台「设置 → 数据导出」,用法见 GUIDE / API
A2 ✅ 独立页面系统 + 导航自定义(2026-10 完成) 自建页面渲染在 /page/:slug、导航跟随页面、「关于我」迁入(/about 短链不变);用法见 GUIDE / THEMES / API
A3 ✅ JSON-LD 文章结构化数据(2026-10 完成) 文章页自动输出 schema.org BlogPosting(北京时间口径、image 三级兜底、tags→keywords);零配置,render.ts articleJsonLd()
A4 ✅ WebP 自动转换(2026-10 完成) 上传超 150KB 或最长边超 2000px 优先转 WebP(质量 0.75),旧浏览器回退 JPEG/PNG,产物更大则保留原图
A5 ✅ 服务端插件钩子 + 官方示例(2026-10 完成) src/hooks.ts 总线 + 三个官方示例(TG 发布同步 / 评论 Webhook / 页脚自定义);后台启停,详见 PLUGINS.md
A6 ✅ 编辑器 Markdown 快捷输入(2026-10 完成) 富文本行首标记 + 空格自动转块级格式(引用 / 标题 / 列表 / 代码块 / 分割线)
A7 ✅ 一键部署(2026-10 完成) Deploy to Cloudflare 按钮:fork 副本 → 自动开通 D1/R2 → Workers Builds 接管,命令行部署降为方式二
A8 ✅ 复杂度预算原则写入 AGENTS.md(2026-10-07 完成) AGENTS.md 开头新增「复杂度预算」一节:新功能归宿三档排序(客户端 → 插件 → 内核自洽小文件)、进内核走「单文件模块 + Node 可测 + 防线登记」三件套、运行时依赖只有 hono 的依赖预算、无构建链同属预算;顺手把开头「约 20 个 TS 文件」修正为实际口径 30 余个
A9 ✅ 站点状态开关:一键灰度 + 一键闭站(2026-10 完成) 灰度 = <html> filter 去色;闭站 = 中间件全站 503 + Retry-After(保收录),逻辑在 src/closed.ts;用法见 GUIDE

B 区 · 未来一定要做

# 事项 说明
B2 ✅ 会员体系 P1(2026-10-07 完成) 注册登录 / 评论带会员身份 / 积分(含后台手动调整)/ /rank 榜单 / 付费墙 / 后台会员管理全量落地;拍板口径与契约见 DEVPLAN,用法见 GUIDE §15。后续 P2 / P3 见 B15 / B16
B3 通知渠道抽象 TG 之外加飞书 / 企业微信 / Bark / Server酱——国内用户装 TG 本身就是门槛;新留言 / 定时发布 / 备份告警复用同一渠道配置
B4 ✅ FTS5 中文搜索(2026-10 完成) /search 换 D1 原生 FTS5(trigram 适配中文),bm25 相关度排序,微博正文纳入搜索;机制见 src/fts.ts,防线见 AGENTS.md
B5 WordPress / emlog / Typecho 导入工具 数据导出(A1)的另一面,换博客用户的主要入口;scripts/ 已有 emlog 迁移脚本留档可复活
B6 备份异地化 D1 与备份 R2 同在一个 Cloudflare 账号,账号被盗一锅端;每晚备份额外推一份到 GitHub 私库或另一账号
B7 友链健康巡检 每周 cron 探活(HEAD 请求),失效标灰并后台提醒——友链在线申请开放后失效只会更多
B8 ✅ 主题 / 插件市场(2026-10-08 立项,未开工) 已拍板:市场独立于主仓库,另起分发仓库(市场目录站 + 主题 / 插件包托管 + 预览,形态可仿官网 bloghao.com 的 Pages 纯静态路子),主仓库 catalog.json 改为指向远程源或由市场仓库同步;未拍板:主题可安装形态——Workers 运行时不能加载 bundle 外代码,六主题是编译期 SSR 模块,「一键安装」只有两条路:① 降级 CSS 皮肤包(真·运行时安装,只解决换色换字体,解决不了布局差异)② 每用户触发重部署(否定「无构建链、部署即生效」体验,且与 docker-poc 的 Node 动态 import 分叉出两套安装语义);编辑器插件无此限制(public/plugins/ 本就运行时加载),市场安装通道 = 远程获取落 R2 + 路由下发,服务端 hooks 插件则与主题同受编译期限制;启动前还需定主题包版本字段(catalog 条目 minVersion)与主题作者安全规范(净化防线 esc/escAttr/外链包装是内核责任边界,第三方主题脱离类型体系手写难以保证),UX 参考 Halo 应用中心
B9 主题外观变量 颜色 / 圆角 / 字体后台可调、不动代码——主题生态数量为零时降低使用门槛的最短路径
B10 MCP 服务器 包装现有开放 API(Token 鉴权已备,见 GUIDE 8.1–8.2),AI 助手直接发文 / 查评论;成本低、差异化明显
B11 🔶 官网增长两件套(演示站半边已落地) 演示站引擎已建成(DEMO_MODE 种子 + 每 2 小时重置 + 独立体验站仓库,见 docs/DEMO.md);剩博客号目录深化:每站截图 + SEO 落地页,对标 WordPress showcase
B12 后台系统状态卡 D1 行数 / R2 用量(自记账累计即可)/ 最近备份状态一目了然——「成本可见」呼应零成本卖点
B13 管理员安全包 TOTP 两步验证 + 登录失败 TG 告警 + 活跃会话管理。安全是招牌卖点,招牌要焊牢
B14 多作者协作 与「个人博客」定位有张力,启动前先拍板要不要
B15 会员 P2:支付 / 收款闭环 从会员体系拆出的后续:收款方式待拍板(个人站长轻方案优先——卡密 / 爱发电类,避免重对账),打通后会员档位可自助购买
B16 会员 P3:升级机制与兑换码 依赖 B15;档位升级补差价、兑换码批量发放
B17 ✅ 广场系统(2026-10-10 立项并当日落地 V1) 官网上聚合展示各博客号的微博 + 文章,信息流按「权重 + 新文推荐 + 随机展示」混排。关键前置:官网(website/)是 Pages 纯静态、无后端,广场必须有一个 hub——候选:官网侧另起独立 Worker 做聚合与排序(与 Pages 同域反代即可)。数据流两条路待拍板:① pull——hub 定时抓各站公开 RSS / 开放 API(零改动,但触达慢、无发布时机的互动数据);② push——用户站走 src/hooks.ts 钩子总线的官方「广场同步」插件,发布时上报,是否同步由后台插件启停天然承载 opt-in(站长第 2 点即此路,A5 钩子体系正是留的口子),两路可并存(push 为主、pull 补漏)。排序要点:权重(互动量 / 更新活跃度)+ 新文时间加权 + 随机位混排,hub 侧需防刷(各站上报带签名 token)。防泄漏口径照搬 AGENTS.md 清单:加密文 / 会员锁文不进广场(push 路插件端按 hasPassword / locked 跳过,pull 路只取 RSS 试读段口径)。已落地(V1):hub 独立 Worker 在 plaza/(hono + core.ts 纯函数,push HMAC ingest + RSS pull 补漏 + 混排评分 feed),博客端官方「广场同步」插件入 src/hooks.ts 注册表(加密/锁文 locked 跳过),官网广场页 bloghao.com/plaza;协议与部署见 docs/PLAZA.md。与 B11 博客号目录的关系:目录是站点级收录、广场是内容级流,v1 共用同一人工审核信任模型;B18 认证已预留 sites.verified 徽标位
B18 博客号作者专属认证(蓝V式,立项待研究,2026-10-10 站长提出;B17 落地时已预留 sites.verified 徽标位与 feed 出参,官网展示「✔︎ 认证」,v1 手工开关) 所有基于 bloghao.com 部署的博客作者可申请专属认证标识。前置依赖:身份锚点——B17 广场 hub 是最自然的发证方:站点所有权验证(用户站按指引在设置页填入 hub 下发的校验 token,或 hub 探测站点上的验证文件)通过后,hub 签发「站名 + 作者」认证凭据。展示两端:广场信息流作者徽标(B17 内直接渲染)+ 用户站前台可选挂认证标(如关于我 / 评论作者旁)。凭据必须走签名 token 而非人工标注(站点可自行验证),要支持吊销与换主;冒用官方名义的站点要能在 hub 侧标记未认证。启动前先拍板:认证分级(个人 / 组织?)与收费与否

C 区 · 加分项(可有可无)

# 事项 说明
C1 博客圈文化件 随机友链跳转(/random 旁加一个)、页脚运行天数 / 本站信息卡、开往 / 十年之约入口
C2 🔶 部分完成(2026-10-07) QQ 评论头像已全量落地(会员中心绑定 + 游客评论选填 qq、评论四处展示 + /rank 榜单、隐私红线与同号头像复用,见 AGENTS.md 会员防线);剩:表情回应(emoji reactions,微信表情文本码已进站可复用)、WP 评论导入
C3 创作增强 代码块语法高亮、KaTeX 公式、mermaid 图表(按需加载,注意 CSP 与体积)、文章 TOC 目录——目前均不存在,按需再上
C4 🔶 主体完成(2026-10-07) 图片增强三件套之hash 去重(uploads 表 SHA-256 指纹)与 EXIF / GPS 隐私抹除(src/exif.ts 落库前统一剥离)已落地;可选水印未做待定:Workers 无服务端图像解码,客户端做需三端 canvas 叠字与样式 / 范围决策
C5 ✅ 单篇访问密码(2026-10-07 完成) 编辑器按篇加密(PBKDF2),输对后 30 天免重复输入;与会员付费墙可叠加(密码墙优先),机制见 src/protect.ts
C6 文章版本历史 编辑覆盖即丢,保存时留最近 N 版即可
C7 Turnstile 人机验证 现有蜜罐 + 限流 + 先审后展够用,垃圾评论变多再上
C8 HTML 边缘缓存 Cache API + 发布即 purge;SSR 已够快,收益 / 风险比一般
C9 AVIF / 多尺寸缩略图 依赖 CF Images 付费能力
C10 PWA / 离线阅读 manifest + 轻量 service worker
C11 阅读偏好 字号调节、手动夜间开关(当前仅跟随系统)、记忆
C12 JSON Feed RSS 之外的机器友好格式
C13 新站演示内容包 示例文章 + 微博 + 友链一键填充(部署者自己的新站,与官方演示站两码事)
C14 每篇文章浏览 / 来源轻统计页 参考 Bear Blog
C16 零碎打磨 404 自定义、无障碍(a11y)、CLI 发布、评论敏感词合规包(默认关闭,面向有需要的部署者)
C17 内容揭示卡(点开可见 / 会员分层可见,立项待研究,2026-10-09 站长提出) 正文里的一段文字 / 一张图 / 一大块内容按两种条件揭示:① 点击展开(剧透折叠,默认遮住),② 不同会员档位可见(与现有付费墙 min_tier 机制的关系要先理清——付费墙是整篇级,这是块级,安全边界必须同样做到服务端截断,渲染层遮挡不算数)。形态候选:块级容器标记(类似 <meta data-og-image> 的 data-* 白名单路子)或编辑器插件。先研究再动手,见本条不动代码

不做清单(拍板记录,编号不回收)

  • 邮件相关(原 B1 邮件服务、原 C15 邮件订阅),2026-10-07 拍板不做:第三方发信服务对接与发信域名 DNS(SPF/DKIM/DMARC)配置门槛高,免费档额度受限且说砍就砍(MailChannels 砍 Workers 免费集成是先例);下游的评论邮件通知、邮箱找回密码、注册验证、newsletter 一并冻结——会员密码找回已按「本站不提供密码找回」口径落地(render.ts 两处固定提醒,不再视作欠账)。当年调研结论已随之作废,若未来重启,从 git 历史本日期之前的本文件找回(Resend / 阿里云邮件推送免费档、provider 可切换抽象等)。