你是不是也遇到过这些折磨人的场景: * 在本地用 Markdown 写好了文章,复制到微信后台,格式全乱了? * 微信编辑器把你的 <style> 标签全过滤了,排版样式瞬间失效? * 代码块在手机上排版挤成一团,毫无美感,根本没法看? * 正文里插了十几张图,得一张张手动上传到微信后台替换,效率低下?作为技术博主或文字创作者,排版的时间甚至比写作本身还要长!
为了彻底终结这个痛点,今天给大家推荐一个开源的 Python 神器——Autogzh。它能让你在本地敲完 Markdown 的瞬间,自动完成样式行内化、代码高亮、图片托管、草稿创建,实现“一键直达微信草稿箱”!
🚀 为什么它是排版神仙工具?
1. 样式 100% 还原:CSS 智能行内化(Inlining)
微信公众号后台有一个“流氓”机制:过滤所有 <style> 标签和外部样式表。 本工具基于强大的 premailer 引擎,在发布前自动解析 CSS 规则,并将它们 100% 转化为行内样式(Inline Style) 注入到每一个 HTML 标签中。无论是精美的标题边框、引用块的背景色,还是复杂的表格,在微信上都能完美还原!
2. 服务端代码高亮:开发者的福音
对于技术博主来说,代码块的排版是天敌。微信不支持 JS 运行,导致像 Prism.js 等前端高亮库全部失效。 本工具直接在服务端使用 Pygments 对代码进行语法解析,并将配色样式(支持 Monokai, Dracula, Github 等主流主题)同样转化为行内样式。最终生成的代码块,在手机端微信上阅读体验极佳,甚至支持精美的横向滚动!
3. 正文插图/封面图:自动上传与 CDN 替换
再也不用一张张手动上传图片了! 工具会自动扫描 Markdown 中的所有本地图片路径,调用微信接口自动将封面图上传为永久素材,正文插图上传到微信 CDN,并将 HTML 中原有的本地路径无缝替换为微信 CDN URL。你只需要专注于写作,剩下的交给脚本!
4. 智能摘要与安全防报错机制
你可能遇到过微信接口返回的 45004 (description size out of limit) 错误。这是因为微信限制草稿摘要最多只能有 120个字节(大约40个汉字)。 本工具在自动生成摘要时,引入了基于 UTF-8 字节长度的安全截断机制,确保截断多字节汉字时不会产生乱码,且永远不会触发微信的接口报错。
🛠️ 三步上手,一键同步
这个工具的部署和使用极其简单:
第一步:安装依赖
在项目根目录运行命令:
pip install -r requirements.txt
第二步:配置微信凭证
复制项目中的 config.yaml.example 模版,并重命名为 config.yaml,填入你公众号的 appid 和 secret 即可:
wechat:appid:"您的公众号AppID"secret:"您的公众号AppSecret"
💡 贴心提示:如果首次运行提示 40164 (IP白名单错误),终端会自动抓取并输出你当前的公网 IP,复制它并在公众号后台「基本配置 -> IP白名单」中添加即可!
第三步:一键发布
在控制台输入以下命令,见证奇迹的时刻:
python main.py --mdtest.md --cover cover.png
看到终端输出 微信图文草稿同步成功! 后,打开微信公众平台草稿箱,你写好的文章已经带着完美的排版躺在那里等待群发了!
🧪 附加彩蛋:本地预览沙箱
在正式同步到微信前,想预览排版效果? 工具内建了本地预览脚本:
python test_render.py
它会在本地瞬间编译出 output_test.html,无需连接微信网络、无需 Key,双击即可在浏览器预览排版。如果你修改了 styles/default.css 样式,刷新浏览器即可实时预览。
🎨 极简雅致的主题样式
项目默认附带了一套专为微信阅读调校的 Elegant Teal(优雅青) 主题: * 字号与行高:16px 字号,1.8 倍行高,5% 字间距,带来最舒适的手机端屏读体验。 * 二级标题:深黛色字体搭配青色精致左边框。 * 代码块:Dracula 暗色系背景,圆角设计,高亮分明。 * 引用与表格:低饱和度轻量配色,段落过渡自然。
🌟 结语
排版不应该是创作的绊脚石。通过这套 Python 自动化工具,你可以将排版时间缩短到 0 秒! 如果你觉得这个工具有用,欢迎去 GitHub 给项目点个 Star,也欢迎转发给身边饱受公众号排版折磨的创作者朋友们!
源码地址:https://github.com/achaobc/autogzh