Skip to content

About

稿台 · 公众号 AI 创作台 —— 写两句想法,出一篇能直接粘进微信公众号的稿子。C6 Web Application 交付项目。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

稿台 · 公众号 AI 创作台

一句话进来,一篇能直接发公众号的稿子出去。

打开链接 → 写两句想讲什么 → 选标题 → 改大纲 → 拿成稿 → 点「复制到公众号」→ 在微信编辑器里 ⌘V。

线上地址: https://wechat-studio-57144.app.workbuddy.host/?sharecode=LOMYO4IMBO


它解决什么问题

写公众号的真实痛苦不是「不会写」,而是三件小事叠在一起:

  1. 空页面焦虑:知道要写,但不知道从哪个角度切入,标题也想不出来;
  2. 结构塌陷:写着写着变成流水账,读者在第二屏就划走了;
  3. 排版返工:正文写完还要在微信编辑器里一段段调样式,复制粘贴带不过去格式。

稿台把这三件事拆成一条流水线:选题 → 标题 → 大纲 → 正文 → 排版,每一步都能改、能重来、能只改一小段。

核心流程

输入:主题/素材 + 风格 + 读者 + 篇幅 + 必提要点
  ↓ ① 选题与标题     (一次调用 → JSON:切入角度 / 5 个标题 / 摘要 / 封面文案)
  ↓ ② 大纲           (可编辑,带每节字数预算)
  ↓ ③ 正文           (流式输出,边写边渲染成公众号版式)
  ↓ ④ 排版与发布     (4 套主题 / 中英间距 / 一键复制富文本 / 导出 md、html)
  ↺ 助手随时介入     (整篇改:更口语、加钩子、压缩 30%、补案例、换小标题;发前体检)

为什么它不只是一个「AI 写作框」

能力 做法
样式真的能粘进公众号 公众号编辑器会丢掉 <style> 和 class 规则,所以渲染器把每条样式都写成 inline style,并且不用 flex/grid、不用伪元素,只用最保守的标签结构
手机阅读节奏 提示词里把「一段 2–4 行」「小标题 3–5 个」「开头两句话内出现具体场景」写成硬约束,不是靠模型自觉
改稿不怕改坏 任何一次改写都返回整篇正文、整体替换,并保留上一版,一键撤销
生成过程可见 正文流式输出,每 140ms 重渲染一次排版预览,写到哪里看到哪里
可量化的体检 本地体检(字数、阅读时长、长段落、风险用词)+ AI 体检(钩子 / 清晰 / 信息密度 / 手机阅读 / 可信度 五维打分 + 三条具体改法)

技术栈

层 选择 理由
前端 原生 HTML + CSS + ES5 语法的 JS,无构建步骤 一个 index.html 就能跑,加载 < 1s;不需要 Node 环境也能本地打开
AI WorkBuddy 云服务 LLM API(免密钥,服务端持有供应商密钥) 密钥不进前端;模型列表运行时拉取,可切换
排版引擎 自研 assets/renderer.js(346 行) 公众号只认 inline style,现成的 Markdown 库全都输出 class
存储 localStorage(草稿箱,最多 12 篇) 不需要登录就能用,符合「打开就能体验」

没有 API Key 硬编码在前端:前端只有 publishableKey(只标识应用、本身无权限,服务端会校验来源域名)。

目录

wechat-studio/
├── index.html              单页应用骨架(三栏:输入 / 工作台 / 助手)  314 行
├── assets/
│   ├── app.css             设计系统与响应式布局                        779 行
│   ├── config.js           云服务公开配置
│   ├── wbcloud.sdk.js      自托管的云 SDK(避免 CDN 抖动影响首屏)
│   ├── ai.js               LLM 调用层:模型列表 / 流式 / JSON / 错误翻译  200 行
│   ├── prompts.js          五组提示词(选题、大纲、正文、改稿、体检)    170 行
│   ├── renderer.js         Markdown → 公众号行内样式 HTML + 体检        346 行
│   ├── sample.js           示例稿(不调模型也能看排版效果)
│   └── app.js              状态机与业务流程                            863 行
├── tests/
│   ├── renderer.test.cjs   15 项渲染引擎自测
│   ├── ai.test.cjs         10 项 AI 层自测(错误归类 / JSON 容错 / 重试判定)
│   └── llm.smoke.cjs       线上链路冒烟(需联网)
├── AI_LOG.md               开发过程与 8 类失败记录
├── ATTRIBUTION.md          借鉴来源与自研边界
└── LICENSE                 MIT

本地运行

# 方式一:直接开(只测界面与排版)
open index.html

# 方式二:起个静态服务(推荐,云服务 Origin 校验需要 http(s))
python3 -m http.server 8080
# 打开 http://localhost:8080

注意:本地 localhost 不在云服务白名单域名内,模型调用会返回 403;界面、排版、导出、草稿箱都能正常用。要测完整 AI 流程,请用线上链接。

自测

node tests/renderer.test.cjs   # 15 项通过,全绿
node tests/ai.test.cjs         # 10 项通过,全绿

零测试框架依赖,node 直接跑。

  • 渲染层 15 项:行内样式完整性、代码块换行保留、标题层级、引用/列表/表格/分隔线、Callout、中英间距(含全角标点不插空)、关闭间距、HTML 注入转义、四套主题、字数统计、风险词、长段落识别。
  • AI 层 10 项:错误归类(403 带 origin 才归因域名、纯 403/429 归因限流)、JSON 容错解析、可重试判定、失败文案不误导。

边界与已知限制

  • 公众号会过滤外部链接,正文里的 <a> 粘过去会变成不可点文字,建议改成「搜索公众号 xxx」这类说明;
  • 复制富文本依赖 Clipboard API,Safari 需要在用户手势内触发(本项目就是点击触发);不支持时自动退回到选中节点 execCommand('copy');
  • 草稿存在浏览器本地,换设备不同步;
  • 正文生成质量受所选模型影响,切换模型会明显不同。

许可

MIT(见 LICENSE)。提示词与排版引擎欢迎拿去改成自己的工具。


开发过程:AI_LOG.md(10 轮迭代,含 8 类真实失败与修复)| 借鉴来源:ATTRIBUTION.md

About

稿台 · 公众号 AI 创作台 —— 写两句想法,出一篇能直接粘进微信公众号的稿子。C6 Web Application 交付项目。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages