Skip to content

Repository files navigation

DeepTalk Logo

DeepTalk 深言

Markdown 转 HTML 工具 + 微信公众号文章生成与发布系统

支持与 qoder CLI、opencode、claude、codex、gemini 等 AI CLI 工具配合使用。

功能特性

1. Markdown 编辑与管理

  • Web 界面编辑器 (/editor) 支持创建、编辑、保存 Markdown 文件
  • 文件自动保存到 markdowns/ 目录
  • 支持 Ctrl+S 快捷键保存
  • 文件列表侧边栏,快速切换编辑
  • 支持直接抓取微信公众号文章到编辑器

2. Markdown 转 HTML

  • 命令行一键转换,支持多种主题
  • 代码高亮、响应式设计
  • 实时预览

3. 公众号格式渲染

  • 内联 CSS 样式(公众号兼容)
  • 三种主题:科技风、商务风、简约风
  • 可直接复制到公众号编辑器

4. 公众号 API 发布

  • 一键发布到草稿箱
  • 支持封面图片上传
  • 草稿管理功能

5. 微信公众号文章抓取

  • 通过 URL 抓取公众号文章
  • 自动转换为 Markdown 格式
  • 提取标题、作者、发布日期等信息
  • 支持 CLI 和 Web 界面两种方式

6. 大模型文章生成

  • 通过 OpenAI/DeepSeek 生成专业文章
  • 支持技术、AI、投资三大领域

快速开始

安装

npm install

配置

cp .env.example .env
# 编辑 .env,配置必要的 API Key

基础使用

# Markdown 转 HTML
npm run md2html -- -i article.md

# 转换为公众号格式
npm run wechat -- -i article.md --copy

# 预览
npm run preview-md -- -i article.md

发布到公众号

# 发布到草稿箱
npm run publish -- -i article.md --title "文章标题"

# 查看草稿列表
npm run drafts

抓取公众号文章

# 抓取文章并保存为 Markdown
npm run fetch-wechat -- -u "https://mp.weixin.qq.com/s/xxx"

# 指定输出目录
npm run fetch-wechat -- -u "https://mp.weixin.qq.com/s/xxx" -o ./markdowns

# 同时保存原始 HTML
npm run fetch-wechat -- -u "https://mp.weixin.qq.com/s/xxx" --html

命令详解

md2html - Markdown 转 HTML

npm run md2html -- [options]
  -i, --input <file>     Markdown 文件路径
  -o, --output <dir>     输出目录
  -t, --theme <theme>    主题:standard (默认)
  --title <title>        文章标题
  --author <author>      作者名称
  --copy                 生成可复制片段(无 HTML/HEAD 标签)
  --open                 自动打开浏览器

publish - 发布到公众号

npm run publish -- [options]
  -i, --input <file>     Markdown 或 HTML 文件路径
  --title <title>        文章标题
  --author <author>      作者名称
  --digest <digest>      摘要
  --thumb <file>         封面图片路径
  --theme <theme>        主题
  --publish              直接发布(不保存为草稿)

drafts - 草稿管理

npm run drafts -- [options]
  --offset <offset>      偏移量
  --count <count>        数量

generate - 大模型文章生成

npm run generate -- [options]
  -t, --topic <topic>     主题(必需)
  -c, --category <cat>    领域:tech|ai|invest
  --contents              保存到 contents 目录

示例:

# 生成技术文章
npm run generate -- -t "React Hooks 最佳实践" -c tech

# 生成 AI 领域文章并保存到 contents
npm run generate -- -t "大模型推理优化" -c ai --contents

fetch-wechat - 抓取公众号文章

npm run fetch-wechat -- [options]
  -u, --url <url>        文章URL (必需)
  -o, --output <dir>     输出目录 (默认: ./markdowns)
  --html                 同时保存原始HTML

preview-md - Markdown 预览

npm run preview-md -- [options]
  -i, --input <file>     Markdown 文件路径
  -t, --theme <theme>    主题
  -p, --port <port>      端口号

preview-html - HTML 预览

npm run preview-html -- [options]
  -i, --input <dir>      HTML 文件目录 (默认: ./contents)
  -p, --port <port>      端口号

web - Web 管理界面

npm run web -- [options]
  -p, --port <port>      端口号
  -d, --dir <dir>        内容目录

Web 界面功能:

  • / - 文章列表页,展示 contents/ 目录下的所有文件,支持复制公众号格式
  • /editor - Markdown 编辑器,支持:
    • 创建、编辑、保存 Markdown 文件到 markdowns/ 目录
    • 侧边栏文件列表,点击切换编辑
    • 实时 HTML 预览(支持主题切换)
    • Ctrl+S 快捷键保存
    • 下载为 HTML 文件
    • 抓取微信公众号文章(直接粘贴 URL)

开发命令

# 开发模式(直接运行 TypeScript)
npm run dev -- [command]

# 构建项目
npm run build

# 代码检查
npm run lint

主题说明

支持 16 种精美主题,灵感来自全球知名科技公司设计系统:

主题 设计风格 主色调 适用场景
airbnb 旅行杂志风格 Rausch 珊瑚粉 #ff385c 旅行、生活方式、住宿推荐
apple 苹果极简风格 黑白 + Apple Blue #0071e3 产品介绍、科技评测
binance 币安金融风格 金色 #F0B90B 加密货币、金融分析
claude Anthropic 暖调风格 羊皮纸色 + 赤陶 #c96442 AI 文章、深度分析
coinbase Coinbase 风格 蓝色 #0052ff 加密货币、Web3
japanese-zen 日式禅意风格 纸质白 + 墨黑 #2a2a2a 生活美学、文化艺术
luxury-editorial 奢华编辑风格 深黑 + 香槟金 #c9a962 奢侈品牌、时尚杂志
mastercard 万事达暖调风格 奶油色 #F3F0EE 金融、商务服务
notion Notion 极简风格 白色 + 蓝 #0075de 效率工具、科技博客
neo-brutalist 新粗野主义 纯黑纯白 + 霓虹黄 #FFFF00 创意设计、潮流文化
opencode.ai 终端极客风格 暖黑色 #201d1d + 终端绿 开发者工具、编程教程
spacex SpaceX 电影风格 纯黑 + 幽灵白 #f0f0fa 航天科技、探索主题
standard 财经专业风格 绿色 #05c15f + 金色 #fdbb2d 投资理财、商业分析
stripe Stripe 精致风格 深海军蓝 + 紫 #533afd 支付金融、SaaS 产品
vercel Vercel 开发者风格 纯白 + 深灰 #171717 开发者文档、技术教程
vintage-newspaper 复古报纸风格 新闻纸色 #f4f1ea + 墨黑 时事新闻、深度报道

主题使用

# 使用指定主题转换为公众号格式
npm run wechat -- -i article.md --theme airbnb --copy

# 使用指定主题转换为 HTML
npm run md2html -- -i article.md -o ./contents -t stripe

主题定制

如需自定义主题,可将主题文件放置到 .agents/skills/wechat-article/design-system/references/ 目录下,参考现有主题的 DESIGN.md 规范格式编写。

获取更多主题:访问 https://getdesign.md/ 可下载更多精美主题,将主题文件放置到 .agents/skills/wechat-article/design-system/references/ 目录下即可使用。

Skills

本项目提供 5 个 Skills,用于与 AI CLI 工具协作:

wechat-article

生成符合微信公众号格式的 HTML 文章。

功能:

  • Markdown 转 HTML(内联 CSS)
  • 16 种精美主题(airbnb、apple、binance、claude、coinbase、japanese-zen、luxury-editorial、mastercard、notion、neo-brutalist、opencode.ai、spacex、standard、stripe、vercel、vintage-newspaper)
  • 智能配图(Unsplash API)
  • 多种文章模板(tutorial / analysis / news / story / listicle / review)

用法示例:

生成微信公众号文章,主题为 stripe,内容如下:
# React Hooks 入门指南
...

wechat-fetcher

抓取微信公众号文章并转换为 Markdown 格式。

功能:

  • 模拟微信客户端请求头绕过反爬
  • 自动重试机制(指数退避)
  • 提取标题、作者、发布时间
  • HTML 转 Markdown

wechat-publisher

将 HTML 文章发布到微信公众号草稿箱。

功能:

  • 自动处理封面图片上传
  • 多种封面图模式(extract / unsplash / generate / url / none)
  • 获取 media_id 并创建草稿

用法示例:

发布以下文章到微信公众号草稿箱:
标题:深入理解 React Hooks
HTML:<section>...</section>

humanizer-zh

去除文本中的 AI 生成痕迹,使文章更自然。

功能:

  • 检测并修复 AI 写作模式
  • 处理过度强调意义、宣传性语言、三段式法则等
  • 注入个性化表达

用法示例:

使用 humanizer-zh 处理以下文本,去除 AI 痕迹:
...

cloudinary-image-host

将本地图片上传到 Cloudinary,获取永久 HTTP 链接,用于替换文章中的本地图片引用。

功能:

  • 支持单张图片、文章提取、目录扫描三种模式
  • 自动替换 Markdown/HTML 中的本地图片引用为 Cloudinary 链接
  • 图片优化和压缩
  • 配额管理和错误处理

用法示例:

# 上传单张图片
使用 cloudinary-image-host 技能 --image "./contents/images/ev-battery.png"

# 从文章提取并替换图片
使用 cloudinary-image-host 技能 --article "./markdowns/春节后新能源汽车观察.md" --replace

# 扫描目录批量上传
使用 cloudinary-image-host 技能 --directory "./contents/images/" --max-uploads 5

环境变量

# LLM API(文章生成)
OPENAI_API_KEY=your-key
#
DEEPSEEK_API_KEY=your-key

# 微信公众号(发布功能)
WECHAT_APP_ID=wx...
WECHAT_APP_SECRET=...

# Unsplash 图片服务(预留功能)
# 获取:https://unsplash.com/developers
# 限制:免费版 50次/小时,5000次/天
UNSPLASH_ACCESS_KEY=your-key

# Cloudinary 图片托管(cloudinary-image-host 技能)
# 获取:https://cloudinary.com
# 限制:免费版每月 25 credits(约 25000 次转换或 25000 MB 存储/带宽)
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret

公众号 API 说明

前置条件

  1. 拥有微信公众号(订阅号或服务号)
  2. 在后台获取 AppID 和 AppSecret
  3. 将服务器 IP 添加到白名单

发布限制

  • 订阅号:每天可群发 1 次
  • 服务号:每月可群发 4 次
  • 草稿箱:无限制

项目结构

DeepTalk/
├── src/
│   ├── index.ts           # CLI 入口
│   ├── skills/            # 渲染器
│   │   ├── htmlGenerator.ts
│   │   └── wechatRenderer.ts
│   ├── wechat/            # 公众号 API
│   │   └── api.ts
│   ├── web/               # Web 服务
│   │   └── server.ts      # Express 服务器
│   ├── utils/             # 工具函数
│   │   └── fetcher.ts     # 公众号文章抓取
│   └── ...
├── .agents/skills/         # Skills 定义
│   ├── wechat-article/    # 公众号文章生成
│   ├── wechat-fetcher/    # 公众号文章抓取
│   ├── wechat-publisher/  # 公众号文章发布
│   ├── humanizer-zh/      # AI 痕迹去除
│   └── cloudinary-image-host/ # Cloudinary 图片托管
├── contents/              # HTML 内容存储
├── output/                # LLM 生成输出目录
└── markdowns/             # Markdown 源文件目录(可通过 /editor 编辑)

技术栈

  • TypeScript
  • Commander.js (CLI)
  • Express (Web 服务)
  • Marked (Markdown 解析)
  • Juice (CSS 内联化)
  • Axios (HTTP 客户端)

文章示例

使用 DeepTalk 生成的文章示例:

文章 描述
阿里巴巴"半条命"论 看空机会是否存在?一份严谨的基本面分析
群核科技明日上市:暗盘暴涨157%只是开始? 暗盘涨157%、市值破340亿,群核科技明天正式挂牌大概率继续冲高。

相关资源

支持作者

如果这个项目对你有帮助,欢迎请我喝杯咖啡 ☕

微信支付

License

ISC

About

Markdown 转 HTML 工具 + 微信公众号文章生成与发布系统

Topics

Resources

Stars

17 stars

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages