基于 qiaomu-blog-opensource 深度定制的个人博客系统,专注「自托管、可迁移、低成本」的内容创作闭环。
- 在线站点:https://note.aichanning.cn
- 上游仓库:https://github.com/joeseesun/qiaomu-blog-opensource
- 当前仓库:https://github.com/JavaArthur/chen-blog-opensource
平台账号可能被封,算法流量会波动,但自己的站点不会。这个 Fork 在上游基础上做了大量体验优化和工具链扩展,目标是打通「剪藏 / Obsidian / Claude Skill / 浏览器编辑器」整条内容生产链路,让写作的心智成本降到最低。
| 方向 | 改进内容 |
|---|---|
| 微信排版 | 内置排版引擎 + POST /api/v1/convert API,8 套主题一键转换,编辑器内嵌实时预览面板 |
| 交互体验 | 全站 55+ tooltip 从原生 title(延迟 500ms+)替换为自研快速 Tooltip 组件(100ms) |
| 编辑器增强 | 图片右键菜单、lightbox 大图预览、可拖拽侧边栏、外链图粘贴自动转存 R2 |
| 首页主题 | 5 套主题(含 Apple 风格 clarity),上游仅 1 套 |
| 数据稳定性 | 修复 D1 FTS5 SQLITE_CORRUPT_VTAB 导致的 autosave 500 错误,搜索降级 LIKE 兜底 |
| 部署健壮性 | schema.sql 幂等化,解决重复部署报 "table already exists" |
| 剪藏工具 | Chrome Clipper 支持 GFM 表格、剪藏后自动打开草稿编辑器 |
| 发布工具链 | Obsidian 一键发布插件、Claude Skill 发布工具 |
| 工程化 | 模块级 CLAUDE.md 文档树、完整的 AI 辅助开发指引 |
| 品牌定制 | 全站 rebrand 为「晨启AI」 |
- 前台、后台双编辑器,所见即所得,接近飞书 / Notion 的写作体验
- 五套首页主题(含 Apple 风格 clarity),移动端友好,开箱即用
- 微信排版引擎:8 套主题 + 3 档字号,编辑器内嵌实时预览,一键复制到公众号
POST /api/v1/convertAPI:Markdown 转微信 HTML,支持 Bearer Token 认证,程序化调用- Bubble Menu + Ask AI,选中文本就能改写、润色、扩写、翻译
- AI 自动处理摘要、标签、SEO slug、封面图
- AI 生图模型配置、历史记录、插入替换工作流
- 图片右键菜单:下载、复制、设为封面、对齐、裁剪、参考生图
- 发布状态:公开、草稿、密码访问、链接访问
- Cloudflare Workers + D1 + R2 全家桶,月费 $5 级别,不需要维护服务器
写作入口放在最顺手的地方,最终都回到同一个博客后台。
| 工具 | 说明 | 文档 |
|---|---|---|
| Chrome Clipper | 浏览器网页剪藏,直接进入草稿箱 | README |
| Obsidian Publisher | 从 Obsidian 一键发布到博客 | README |
| Claude Skill | 通过 Claude 命令工作流直接发布 | SKILL.md |
点击顶部的 Deploy to Cloudflare 按钮,Cloudflare 会自动创建 D1 / R2 绑定并部署。
部署时需要准备:
| 变量 | 说明 |
|---|---|
ADMIN_PASSWORD |
后台登录密码 |
ADMIN_TOKEN_SALT |
Token 加盐(openssl rand -hex 32) |
AI_CONFIG_ENCRYPTION_SECRET |
AI 配置加密密钥(openssl rand -hex 32) |
HERMES_SYNC_TOKEN |
Hermes 知识同步专用 Token(openssl rand -hex 32) |
NEXT_PUBLIC_SITE_URL |
站点域名 |
AI_API_KEY |
AI 模型 API Key(可选,后台也可配置) |
npm install
cp .env.example .env.local # 编辑填入上述变量
npx wrangler login
npm run cf:init -- --site-url=https://your-domain.com
npm run build
npm run deploygit clone https://github.com/JavaArthur/chen-blog-opensource.git
cd chen-blog-opensource
npm install
cp .env.example .env.local
npm run dev常用入口:
| 路径 | 说明 |
|---|---|
/ |
首页 |
/admin |
后台管理 |
/editor |
编辑器 |
POST /api/v1/convert — 将 Markdown 转为微信公众号兼容的富文本 HTML。
curl -X POST "https://note.aichanning.cn/api/v1/convert" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer qm_xxxxxxxxxxxxx" \
-d '{"markdown": "# 标题\n\n**加粗**文本", "theme": "apple"}'参数:
| 参数 | 必需 | 默认值 | 说明 |
|---|---|---|---|
markdown |
是 | - | Markdown 文本 |
theme |
否 | apple |
主题 ID |
fontSize |
否 | medium |
small / medium / large |
outputFormat |
否 | fragment |
fragment(粘贴用)/ standalone(独立页面) |
responseFormat |
否 | json |
json / html |
可用主题:
| 分组 | 主题 ID | 风格 |
|---|---|---|
| 经典 | apple / wechat / claude |
Mac 风格 / 微信原生 / Claude 风格 |
| 潮流 | notion / github / sspai |
Notion / GitHub / 少数派 |
| 更多 | solarized / ink |
Solarized / 水墨 |
完整文档见 docs/api/convert.md。
| 层 | 技术 |
|---|---|
| 框架 | Next.js 16 + React 19 + TypeScript |
| 编辑器 | Tiptap 3.x (Novel) |
| 部署 | OpenNext + Cloudflare Workers |
| 数据库 | Cloudflare D1 (SQLite) |
| 存储 | Cloudflare R2 |
| 样式 | Tailwind CSS v4 |
| 命令 | 说明 |
|---|---|
npm run dev |
本地开发(热重载) |
npm run preview |
Worker 运行时本地预览 |
npm run build |
构建应用 |
npm run deploy |
部署到 Cloudflare Workers |
npm run verify:quick |
lint + test + build 快速验证 |
npm run cf:init |
初始化 Cloudflare 资源 |
app/ # Next.js 路由层(API + 前台 + 后台)
lib/ # 业务逻辑与数据访问层
└── wechat-studio/ # 微信排版引擎(主题、Markdown 渲染、兼容层)
components/ # React UI 组件
db/ # D1 schema、seed、迁移脚本
scripts/ # Cloudflare 部署脚本
ecosystem/
├── chrome-clipper/ # 浏览器剪藏扩展
├── obsidian-publisher/# Obsidian 发布插件
└── channing-blog-publish-skill/ # Claude Skill
详细架构文档见 CLAUDE.md。
欢迎提 Issue 和 PR。通用修复和新功能会同步贡献回上游仓库。
- 上游项目:qiaomu-blog-opensource by joeseesun




