首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >公众号排版太痛苦?AI Agent 来救你

公众号排版太痛苦?AI Agent 来救你

作者头像
阿特拉斯
发布2026-06-15 18:20:26
发布2026-06-15 18:20:26
1050
举报

从 Markdown 到精美排版,一键生成、多主题切换、零维护成本——这是 AI Agent 给公众号运营者的礼物。


你写公众号是不是也这样?

文章写完了,排版又要半小时。

打开微信编辑器,调字体、调颜色、调间距。好不容易调好了,下一篇又要重来。想换个风格?之前的样式全废了。代码块复制过去格式乱了,表格没有边框,引用块看起来像普通文字。

更惨的是,你攒了几十篇文章,想统一换一套主题色——每一篇都要手动改一遍。

如果有这样一个 Agent:

• 输入:Markdown 原文

• 输出:可直接粘贴微信编辑器的 HTML

• 支持 6 种主题一键切换

• 全流程自动化,无需维护 CSS

这篇文章,我们就来实现它。


一、为什么这个场景适合 AI Agent?

在说实现之前,先聊聊为什么用 AI Agent 的思路来解决这个问题。

传统方案 vs Agent 方案

对比维度

传统脚本/模板

AI Agent

样式调整

改 CSS 代码,调半天

描述需求,自动生成

内容适配

硬编码规则,总有漏网之鱼

理解语义,智能处理

主题切换

维护多套模板,改一个要改 N 个

一行参数搞定

异常处理

预设规则覆盖不全,手动补丁

AI 自动适配,持续优化

维护成本

样式变了要改代码

改配置即可

Agent 的三阶段能力

AI Agent 的核心能力可以概括为三个阶段:

AI Agent 三阶段能力
AI Agent 三阶段能力

感知:读取 Markdown 原文,识别标题层级、代码块、列表、引用、表格等结构。

决策:根据用户选择的主题,分析每个元素应该应用什么样式。比如代码块用什么背景色、引用块用什么边框、标题用什么字号。

行动:生成最终的 HTML,确保样式内联(微信编辑器的要求),处理图片尺寸、表格边框等兼容性问题。

核心流程

整个流程可以抽象为四个阶段:

公众号排版 Agent 核心流程
公众号排版 Agent 核心流程

二、核心实现思路

下面展示关键代码片段,帮助你理解核心逻辑。完整工具已封装好,可直接使用。

2.1 Markdown 结构解析

第一步是将 Markdown 转为结构化的 HTML:

import markdown

from bs4 import BeautifulSoup

def parse_markdown(md_content: str) -> str:

"""将 Markdown 转为 HTML 结构"""

extensions = [

'fenced_code', # 代码块

'tables', # 表格

'toc', # 目录

'nl2br', # 换行转 <br>

'sane_lists' # 更智能的列表处理

]

html = markdown.markdown(md_content, extensions=extensions)

return html

这一步的关键是选对扩展。微信编辑器对 HTML 的支持有限,所以要用 sane_lists 避免列表嵌套问题,用 nl2br 保证换行正确。

2.2 主题样式注入

第二步是注入主题样式。核心思路是将 CSS class 转为内联 style:

def apply_theme(html: str, theme: str = "mist-blue") -> str:

"""注入主题样式"""

css_content = load_theme_css(f"templates/{theme}-theme.css")

style_map = parse_css_to_style_map(css_content)

soup = BeautifulSoup(html, 'html.parser')

for element in soup.find_all(True):

classes = element.get('class', [])

inline_styles = []

for cls in classes:

if cls in style_map:

inline_styles.append(style_map[cls])

if inline_styles:

existing_style = element.get('style', '')

element['style'] = existing_style + ';' + ';'.join(inline_styles)

return str(soup)

为什么要内联?

微信编辑器会过滤掉 <style> 标签和外部 CSS 文件,只保留元素上的 style 属性。所以必须把所有样式"内联"到每个元素上。

2.3 微信适配处理

第三步是处理微信编辑器的兼容性问题:

def adapt_for_wechat(html: str) -> str:

"""微信编辑器兼容性处理"""

soup = BeautifulSoup(html, 'html.parser')

for img in soup.find_all('img'):

existing_style = img.get('style', '')

img['style'] = f'max-width: 100%; height: auto; {existing_style}'

for pre in soup.find_all('pre'):

existing_style = pre.get('style', '')

pre['style'] = (

f'background: #f6f8fa; '

f'padding: 16px; '

f'border-radius: 6px; '

f'overflow-x: auto; '

f'{existing_style}'

)

for table in soup.find_all('table'):

existing_style = table.get('style', '')

table['style'] = f'border-collapse: collapse; width: 100%; {existing_style}'

for td in table.find_all(['td', 'th']):

existing_style = td.get('style', '')

td['style'] = f'border: 1px solid #ddd; padding: 8px; {existing_style}'

for blockquote in soup.find_all('blockquote'):

existing_style = blockquote.get('style', '')

blockquote['style'] = (

f'border-left: 4px solid #dfe2e5; '

f'padding-left: 16px; '

f'color: #636e72; '

f'margin: 16px 0; '

f'{existing_style}'

)

return str(soup)

2.4 完整流程组合

将以上模块组合起来:

def format_article(input_path: str, theme: str = "mist-blue") -> str:

"""主函数:Markdown → 微信 HTML"""

md_content = read_file(input_path)

html = parse_markdown(md_content)

styled_html = apply_theme(html, theme)

wechat_html = adapt_for_wechat(styled_html)

final_html = wrap_with_container(wechat_html, theme)

return final_html


三、6 套主题,一键切换

我们预设了 6 套主题,覆盖常见的内容风格:

主题

配色

适用场景

mist-blue

蓝灰雾霾蓝

技术长文、仓库解读、工程实践

ai-tech

AI 科技感

产品展示、模型介绍、AI 主题

forest

清新森林绿

环保、健康、成长类内容

sunset

温暖日落橙

创意、设计、生活方式

slate

中性石板灰

企业、商业、技术文档

midnight

深邃午夜蓝

深度分析、夜间阅读

切换主题只需一个参数:

python scripts/markdown_to_html.py \

--input article.md \

--theme sunset


四、实际效果对比

原始 Markdown

## 为什么需要自动化?

手动排版太耗时,每次都要调样式...

### 核心优势

- 一键生成,零维护

- 多主题切换

- 微信完美适配

\`\`\`python

def format_article(md: str, theme: str) -> str:

return apply_theme(parse_markdown(md), theme)

\`\`\`

> AI Agent 让排版不再是苦力活。

生成的微信 HTML 效果

直接粘贴到微信编辑器,无需任何调整:

• 标题层级清晰,间距舒适

• 代码块有背景色和圆角

• 引用块有左侧边框

• 列表对齐整齐

• 表格自带边框


五、如何使用?

方式一:命令行工具

cd wechat-article-formatter

python3 -m venv .venv

.venv/bin/pip install -r requirements.txt

.venv/bin/python scripts/markdown_to_html.py \

--input /path/to/article.md \

--theme mist-blue \

--output /path/to/article.html \

--preview # 自动打开浏览器预览

方式二:集成到写作流程

如果你用 Obsidian、Typora 等 Markdown 编辑器,可以配置一个快捷键:

on_save: python scripts/markdown_to_html.py --input {file} --theme mist-blue

方式三:GitHub Actions 自动化

每次推送 Markdown 文件到仓库,自动生成 HTML:

name: Format WeChat Article

on:

push:

paths: ['articles/*.md']

jobs:

format:

runs-on: ubuntu-latest

steps:

- uses: actions/checkout@v4

- name: Format Article

run: |

pip install markdown beautifulsoup4

python scripts/markdown_to_html.py \

--input articles/${{ github.event.head_commit.message }}.md \

--theme mist-blue


六、进阶:打造完整的公众号发布 Agent

排版只是第一步,一个完整的公众号发布 Agent 还可以包含:

6.1 封面图生成

根据文章标题和主题,自动生成封面图:

def generate_cover(title: str, theme: str) -> str:

"""调用图片生成 API,创建封面图"""

prompt = f"微信公众号封面图,主题:{theme},标题:{title}"

return image_generation_api.generate(prompt)

6.2 文章摘要生成

自动提取文章核心观点,生成 120 字以内的摘要:

def generate_summary(content: str) -> str:

"""调用 AI 生成文章摘要"""

prompt = f"请为以下文章生成 120 字以内的摘要:\n\n{content[:2000]}"

return ai_api.generate(prompt)

6.3 一键发布

调用微信公众号 API,实现从 Markdown 到发布的全流程:

def publish_to_wechat(article_path: str, theme: str):

"""完整发布流程"""

md_content = read_file(article_path)

title = extract_title(md_content)

html = format_article(article_path, theme)

cover = generate_cover(title, theme)

summary = generate_summary(md_content)

wechat_api.create_draft(

title=title,

content=html,

thumb_media_id=cover,

digest=summary

)


七、AI Agent vs 传统排版工具

对比维度

传统排版工具

AI Agent 方案

使用方式

复制粘贴,手动调整

命令行一键生成

主题切换

每次重新排版

参数切换,秒级生效

样式维护

修改模板,逐篇调整

改 CSS 文件,全局生效

代码块处理

格式经常错乱

自动美化,语法高亮

批量处理

不支持

脚本批量转换

自动化程度

手动操作

可集成 CI/CD


八、总结

这篇文章展示了如何用 AI Agent 思路解决公众号排版问题:

核心价值:

1. 效率提升:从半小时手动排版 → 1 秒自动生成

2. 一致性保证:主题统一切换,风格稳定

3. 零维护成本:改配置文件,不用改代码

4. 可扩展性:集成封面生成、摘要生成、自动发布

Agent 能力体现:

感知:读取 Markdown,识别结构

决策:根据主题选择样式策略

行动:生成兼容微信的 HTML

AI Agent 的魅力在于:你只需告诉它要做什么,它会自己想办法做到


下一步

如果你想在自己的公众号工作流中使用这个工具:

1. 获取工具:关注公众号回复「排版Agent」获取完整代码

2. 选择主题:根据你的内容风格选择合适的主题

3. 集成流程:配置到你的写作工具或 CI/CD 中

有问题欢迎留言讨论!


本文工具已开源,完整代码可在 GitHub 仓库获取。

参考资料: - Python Markdown 文档:https://python-markdown.github.io - BeautifulSoup 文档:https://www.crummy.com/software/BeautifulSoup - 微信公众号编辑器 HTML 支持规范

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 超级AI技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你写公众号是不是也这样?
  • 一、为什么这个场景适合 AI Agent?
    • 传统方案 vs Agent 方案
    • Agent 的三阶段能力
    • 核心流程
  • 二、核心实现思路
    • 2.1 Markdown 结构解析
    • 2.2 主题样式注入
    • 2.3 微信适配处理
    • 2.4 完整流程组合
  • 三、6 套主题,一键切换
  • 四、实际效果对比
    • 原始 Markdown
    • 生成的微信 HTML 效果
  • 五、如何使用?
    • 方式一:命令行工具
    • 方式二:集成到写作流程
    • 方式三:GitHub Actions 自动化
  • 六、进阶:打造完整的公众号发布 Agent
    • 6.1 封面图生成
    • 6.2 文章摘要生成
    • 6.3 一键发布
  • 七、AI Agent vs 传统排版工具
  • 八、总结
  • 下一步
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档