# plugin-wechat-official-sync **Repository Path**: hcjike/plugin-wechat-official-sync ## Basic Information - **Project Name**: plugin-wechat-official-sync - **Description**: 一款Halo插件:无需离开 Halo 控制台,即可把已写好的文章推送到微信公众号的草稿箱,封面与正文图片会自动转存到微信素材库,同步结果实时显示在文章列表。 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: https://www.halo.run/store/apps/app-nahksfoe - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-07 - **Last Updated**: 2026-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

微信公众号同步(plugin-wechat-official-sync)

Halo version releases license downloads commits

> 在 Halo 后台的文章列表中,一键将文章同步到微信公众号草稿箱。 一款 [Halo](https://docs.halo.run) 插件:无需离开 Halo 控制台,即可把已写好的文章推送到微信公众号的**草稿箱**,封面与正文图片会自动转存到微信素材库,同步结果实时显示在文章列表。 - **插件名称**:`plugin-wechat-official-sync`(微信公众号同步) - **适配版本**:Halo `>= 2.26.0` - **许可证**:[GPL-3.0](./LICENSE) - **作者**:宏尘极客 · - **仓库**: --- ## 功能特性 - **一键同步**:文章行的操作菜单中新增「同步到微信公众号」,先在弹窗中预览上传后的排版效果,并核对本次上传的作者、原文链接与留言设置,确认后即提交同步任务。 - **提交前预检**:点击「同步到微信公众号」时先自动校验微信配置(AppID / AppSecret)、封面图与文章同步状态等「提交前即可发现」的已知问题,有问题直接提示并中止、不进入预览与同步流程(预检只读:不调用微信接口、不写任何记录)。 - **自动创建草稿**:调用微信 `draft/add` 接口,把文章标题、作者、摘要、正文写入公众号草稿箱,并把「原文链接(阅读原文)」填为文章在站点上的地址。 - **封面处理**:将文章封面下载后上传为微信**永久图片素材**,作为草稿封面(`thumb_media_id`)。 - **正文图片转存**:解析正文 HTML,把其中的图片逐张转存到微信域名(`media/uploadimg`)并替换链接,避免微信过滤外部图片。 - **正文排版美化**:微信图文会剥离外部 CSS 与 `class`,只保留行内 `style`。插件在提交草稿前用 jsoup 按标签为标题、段落、引用、代码块、图片、列表、表格等注入微信友好的内联样式,让排版贴合公众号阅读体验(你在编辑器里已设置的行内样式优先保留)。代码块采用微信编辑器**原生代码块结构**:自带行号(删除代码行时行号自动减少)、内容不折行,行号与代码行严格对应,微信会按代码语言自动高亮;表格对齐**微信编辑器插入表格的原生观感**:1px 浅灰细边框、表头加粗无底色、单元格内容自动换行,表格**宽度模式可配**(默认「保持比例」):按文章表格的原始列宽比例渲染,列宽总和超出屏宽时由外层容器**横向滚动查看全貌**;「宽度铺满」则把列宽按比例压缩进屏宽、表格始终**铺满**。**任务列表**(待办清单)重建为 **Emoji 图标**呈现:微信会剥离 `` 复选框,已完成显示 `✅`、未完成显示 `⬜`,列表去掉默认圆点——编辑器输出的待办清单与 markdown 渲染输出的任务列表(如「Markdown 编辑块」的 `- [ ]` / `- [x]` 清单)均已适配;正文中以纯文本残留的 markdown 任务清单也会自动转为图标。Halo 编辑器的**折叠内容**(`
`)在微信中无法保留折叠交互,会重建为**静态展开的卡片**:加粗标题栏(`▸` 标记、底部细分隔线与内容区隔开)+ 内容区,内容照常排版;标题栏与内容区的背景色、边框颜色均可配置(默认浅灰标题栏 + 白色内容区)。**分栏卡片与画廊版式可分别配置**(各默认「表格」,也可选「独占一行」):Halo 编辑器用 `display:flex`/`display:grid` 排布分栏与画廊,而微信会过滤 `grid`、对 `flex` 支持不稳定,直接同步会让各列、各图纵向堆叠、各占一行;「表格」版式下分栏卡片按列宽 `flex` 比例换算为单元格百分比宽度,让各列并排;画廊重建为**一张整体表格、所有列等宽**——所有行合并进同一个表格、不按行拆表,行内图片用列合并(`colspan`)均分整行,末行不满时也铺满整行;行/列间距折算为单元格内边距。「独占一行」版式则不重建表格:分栏卡片每栏一行、画廊每张图片一行,图片与描述内容照常保留。引用块边框(可开关,默认显示)、引用块背景色、标题边框(可开关)、各级标题颜色、行内代码配色、折叠块配色(标题背景色/内容背景色/边框颜色)、视频/音频卡片配色(背景色/主行/引导语/标记符号)、表格宽度模式、分栏卡片版式、画廊版式均可在插件设置的 **正文美化** 标签中配置。 - **视频与音频提示卡片**:微信图文会过滤 `