i2kai

我的自动化发布系统:从Markdown到多平台一键生成

2026/3/18
自动化Node.js内容创作

问题:发布比写文章更花时间

在”50个应用”计划中,我发现一个被低估的问题:

写文章花时间,但发布文章花的时间更多。

一篇文章写好后,我需要:

  • 处理图片(截图、调整尺寸、添加说明)
  • 生成小红书卡片(9张图 + 文案)
  • 生成公众号HTML(格式调整、图片上传)
  • 逐个平台发布(复制、粘贴、排版)

如果每篇文章都要重复这些流程,那时间成本太高了。

所以,我花了一个周末,搭建了一个自动化发布系统

系统架构

┌─────────────┐
│  Markdown   │  文章源文件
└──────┬──────┘


┌─────────────────────────────────────┐
│     publish-generator.js            │  核心处理器
├─────────────────────────────────────┤
│  Markdown 解析                      │
│  图片检查与生成                      │
│  HTML 渲染                          │
│  卡片生成                           │
└──────┬──────────────────────────────┘

       ├─────────────┬─────────────┐
       ▼             ▼             ▼
┌──────────┐  ┌──────────┐  ┌──────────┐
│小红书卡片│  │微信HTML  │  │  封面图  │
└──────────┘  └──────────┘  └──────────┘

技术栈

组件技术选型用途
运行环境Node.js + ES Modules现代化 JavaScript
Markdown 解析markdown-itMD → HTML 转换
HTML 渲染PuppeteerHTML → PNG 截图
图片生成阿里云 DashScope APIAI 自动生成配图
模板引擎原生 JavaScript Template Literals灵活的 HTML 模板

核心功能

1. 智能图片处理

系统需要解决三个问题:

本地图片文件不存在 — 之前清理仓库时删除了图片目录,文章中还有图片引用但文件已丢失。

解决方案:检查本地图片是否存在,缺失则调用 AI 自动生成。

如何区分项目截图 vs 概念图? — 项目界面必须真实截图,概念图可以用 AI 生成。

通过文件名关键词判断:包含”工作台""模板管理""编辑器”等为项目截图,其他为概念图。

微信 HTML 中的本地图片路径 — 微信公众号编辑器无法读取本地文件路径。

解决方案:统一使用 Base64 嵌入。

2. 小红书卡片生成

小红书的格式特殊:图片为主,文字为辅。

生成流程:

  1. 按 H2 标题分段,每段一张卡片
  2. 识别文字、图片、代码块、表格、列表类型
  3. 根据内容类型选择合适的布局

每张卡片是独立的 HTML 文件,使用 Puppeteer 渲染成 PNG。

3. 微信公众号 HTML

模板特点:

  • 响应式设计,最大宽度 677px(公众号标准)
  • 渐变背景,提升视觉层次
  • 代码高亮,深色背景 + 语法着色
  • 引用样式,带装饰的引用块
  • 统一的作者信息展示

4. AI 图片生成

使用阿里云 DashScope API(通义万相),根据文件名自动生成提示词。

效果对比

操作之前现在
手动截图10-15 分钟-
小红书排版20-30 分钟运行命令 1 分钟
微信公众号排版15-20 分钟-
复制粘贴到各平台-5 分钟
总计45-65 分钟8-10 分钟

效率提升约 80%

使用方法

# 生成小红书图片 + 微信 HTML
node publish-generator.js "文章.md"

# 只生成小红书
node publish-generator.js "文章.md" --xhs

# 只生成微信
node publish-generator.js "文章.md" --wechat

写在最后

这套系统不是什么黑科技,只是把重复的工作自动化了。

对于独立开发者来说,时间就是最宝贵的资源

花一点时间搭建工具,可以节省后续大量的重复劳动。