Skip to content

Roloyty/wechatformatter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeChat Formatter · 通用微信公众号排版工作台

从 Word / PDF 稿件到微信公众号草稿与正式发布的一体化工作台:自动解析正文和配图、应用可复用模板、生成微信兼容的纯内联 HTML,并统一管理草稿箱、永久素材与发布状态。

由「谓无名」公众号专用排版工具升级而来,现已通用化:内置模板系统,既能用预设模板,也能从任意公众号文章 URL 提取样式复刻。

解决的痛点

  • 排版门槛高:公众号要求纯内联样式 HTML,手写几乎不可能。本工具用模板自动渲染,输出可直接粘贴。
  • 样式难复刻:看到别家公众号排版好看?粘贴文章 URL 即可提取其样式为可复用模板。
  • 文档转格式繁琐.doc/.docx/.pdf 直接解析为结构化 Markdown,再一键渲染。
  • 配图上传麻烦:内置免费图床上传(PicGo / imgbb),本地图自动换成公网 URL。
  • AI 内容创作:接入阿里云百炼 CLI(Qwen),可模仿既有文章风格仿写新稿。
  • 后台管理分散:统一管理草稿箱、永久素材与正式发布,既支持本机公网 IP 直连,也支持固定公网 IP 服务器中转。

功能一览

能力 说明 入口
环境诊断 一键检查依赖、旧 DOC 转换器、图床和公众号配置 scripts/doctor.py
文档解析 docling 免费离线(首选)/ 阿里云 DocMind(可选) scripts/parse_document.py
模板渲染 预设模板 + 自定义模板 → 微信内联 HTML scripts/render_universal.js
模板提取 从公众号文章 URL 提取样式为模板 scripts/extract_template.js
内容创作 百炼 CLI 调 Qwen 仿写/创作 scripts/create_content.py
图床上传 PicGo / imgbb 免费图床 scripts/upload_image.py
公众号管理 草稿 CRUD、素材管理、生成封面、正式发布、直连/中转 scripts/wechat_manager.py
简易草稿推送 单篇 HTML 直接推送到草稿箱(兼容旧流程) scripts/publish_wechat.py

用到的阿里云 / 百炼能力

  • 内容生成:阿里云百炼 CLI(bailian-cli)调用 Qwen 模型(默认 qwen3.7-max)进行公众号文章创作与风格仿写。
  • 文档智能解析:阿里云 DocMind(alibabacloud-docmind-api),作为 .doc/.docx/.pdf 结构化抽取与 OCR 的可选云端引擎(默认走免费离线的 IBM docling,用户可自配 AccessKey 切换)。

快速开始

# 1. 安装并检查环境
npm install                      # Windows PowerShell 若被拦截,使用 npm.cmd install
pip install docling              # DOCX/PDF/OCR 智能解析
python scripts/doctor.py 文章.doc

# 2. 文档 → Markdown(DOC/DOCX 图片自动输出到 article_assets/)
python scripts/parse_document.py 文章.doc -o article.md

# 3. Markdown → 微信 HTML(默认使用「商业通用模板」)
node scripts/render_universal.js article.md --preview

# 仍可显式使用「学术通用模板」
node scripts/render_universal.js article.md --preset weiwuming --preview

# 4.(可选)AI 仿写创作
npm install -g bailian-cli && bl auth login --api-key sk-xxx
python scripts/create_content.py --style 样本.md --topic "主题" -o article.md

# 5.(可选)管理公众号草稿、素材与发布
python scripts/wechat_manager.py check
python scripts/wechat_manager.py draft-create article.html --title "标题"
python scripts/wechat_manager.py draft-list

旧版 .doc 在 Windows 上自动依次调用本机已装的 Microsoft Word → WPS Office → LibreOffice 转换(三者装任一即可,无需专门安装 LibreOffice);配置了 DocMind 的用户 .doc 还可直接云端解析,本机零依赖。渲染器允许本地图片生成预览并给出提醒,发布前可上传图床,或交给 wechat_manager.py 自动转存;需要严格检查时添加 --strict-images

三项云配置(直达链接与流程)

三项都是可选的:不配 DocMind 就走本地 docling;不配图床就不上传图片;不配公众号就只导出 HTML 手动粘贴。 配置状态随时用 python scripts/doctor.py 自检(未配置的项会打印下面这些直链)。

① 阿里云 DocMind(云端文档解析,扫描件 OCR 精度更高)

步骤 直达链接
1. 开通「文档智能」服务(有免费额度) https://docmind.console.aliyun.com/
2. 创建 AccessKey(密钥只显示一次) https://ram.console.aliyun.com/manage/ak
3. RAM 子账号授权 AliyunDocMindFullAccess漏这步会报 NoPermission https://ram.console.aliyun.com/users
pip install alibabacloud-docmind-api20220711 alibabacloud-tea-openapi
# 凭证写入 ~/.docmind/config.json:
#   {"access_key_id": "...", "access_key_secret": "..."}
python scripts/parse_docmind.py 文章.docx --format md -o article.md

详见 references/docmind-setup.md(含实测踩坑排查表)。

② 免费图床(本地图换成公众号能抓取的公网 URL)

方案 直达链接 流程
PicGo(推荐) https://picgo.github.io/PicGo-Doc/ 安装 → 图床设置配好任一后端(GitHub/Gitee/COS 均免费)→「设置 → 设置 server」启动本地服务,脚本自动发现 127.0.0.1:36677
imgbb(最快上手) https://api.imgbb.com/ 注册免费拿 API Key → 写入 ~/.weiwuming/image-host.json{"imgbb":{"api_key":"..."}}
python scripts/upload_image.py --check          # 自检两个图床可用性
python scripts/upload_image.py images/*.jpg     # 批量上传(内容 hash 幂等 + 5xx 自动重试)

详见 references/image-host.md

③ 微信公众号(推送草稿箱 / 素材管理 / 正式发布)

要配什么 直达入口 位置与流程
AppID / AppSecret https://mp.weixin.qq.com/ 「设置与开发 → 基本配置」→ 开发信息;AppSecret 需管理员扫码生成、只显示一次
IP 白名单(漏配报 invalid ip https://mp.weixin.qq.com/ 同页「IP白名单」→ 添加本机公网 IP,一条命令查询:curl -4 -s https://checkip.amazonaws.com
# 凭证写入 ~/.weiwuming/wechat.json:
#   {"appid": "你的AppID", "appsecret": "你的AppSecret"}
python scripts/wechat_manager.py check          # 验证配置 + 实测 access_token(顺带确认白名单生效)
python scripts/wechat_manager.py draft-create article.html --title "标题"

家庭宽带 IP 会变,变更后需重新加白名单;IP 不固定可用固定公网 IP 服务器中转(references/wechat-relay.md)。 详见 references/wechat-publish.mdreferences/wechat-manager.md

各功能的配置与细节见 references/

仓库结构

.
├── SKILL.md                      # Skill 定义(工作流 A–F)
├── README.md                     # 本说明
├── package.json                  # Node 依赖
├── templates/
│   ├── schema.json               # 模板 JSON Schema
│   └── presets/
│       ├── moyu-green.json       # 默认:商业通用模板
│       └── weiwuming.json        # 学术通用模板
├── scripts/
│   ├── parse_document.py         # 通用文档解析(docling/DocMind)
│   ├── document_convert.py       # DOC → DOCX(Word/WPS/LibreOffice 自动回退)
│   ├── extract_docx.py           # 本地 Word 提取(标准库回退)
│   ├── doctor.py                 # 无网络、无密钥泄露的环境诊断
│   ├── extract_template.js       # 从 URL 提取模板
│   ├── render_universal.js       # 通用模板渲染器
│   ├── render_html.js            # 谓无名专用渲染器(原有)
│   ├── fetch_book.py             # 豆瓣书籍查询
│   ├── upload_image.py           # 免费图床上传(picgo/imgbb)
│   ├── create_content.py         # 百炼 CLI 内容创作(风格仿写)
│   ├── publish_wechat.py         # 简易草稿推送(兼容旧流程)
│   ├── wechat_api.py             # 微信直连/中转 API 与路由
│   ├── wechat_manager.py         # 草稿、素材与正式发布 CLI
│   └── generate_wechat_cover.py  # 生成 900×383 封面图
├── web/index.html                # 可视化工作台
├── tests/                        # 文档管线与微信 API 单元测试
└── references/                   # 各功能配置与说明文档

学术通用模板扩展语法速查

语法 用途
### 标题 / 作者 主标题(含作者名)
## 小标题 + ---[dot] 章节小标题 + 圆点分隔
>>><<< 编者按
> 原文 引用
---[notes]---[/notes] 注释区域
[book:封面|书名|作者|出版社|年份] 书籍卡片
---[bio-title:作者简介]---[/bio] 作者简介
[staff:姓名|职位] 工作人员署名
---[follow]---[/follow] 关注引导语

完整规则见 references/syntax_rules.md。使用 generic 模板时这些扩展语法会被自动降级为标准 Markdown。

依赖环境

  • Node.js ≥ 18(渲染;百炼 CLI 需 ≥ 22.12)
  • Python 3.10+(诊断、微信管理与基础能力)
  • docling(可选,离线文档解析)
  • Microsoft Word、WPS Office 或 LibreOffice 任一(仅旧版 .doc 本地转换需要;配置 DocMind 后可云端解析,零本地依赖)
  • bailian-cli(可选,AI 内容创作)
  • Pillow(可选,仅自动生成封面图需要)

链接

License

MIT

About

通用微信公众号排版工作台:多模板系统 + docling 文档解析 + 样式提取 + 通用渲染

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors