Communityライティング&編集github.com

yzq2003-dotcom/wechat-mp-publish

微信公众平台文章草稿的创建、更新、审查和安全发布通用工作流(已登录编辑器会话)。

wechat-mp-publish とは?

此技能为开发者或AI代理提供一套标准化的流程,用于在已登录的微信公众平台编辑器会话中安全地创建、更新、审查和发布文章。它支持多种输入形式:本地Markdown文件、预构建的HTML内容或已有的草稿。技能通过精确的DOM操作直接调用编辑器的`replaceAllContent`方法完成正文导入,避免依赖常规粘贴行为。它还提供了详细的步骤,包括元数据填写、封面图设置(仅通过官方UI操作,不操作隐藏文件输入)、草稿保存、布局审查和部分更新策略。最终发布强制要求用户在当前轮次中显式确认,避免了误操作风险。该技能不支持特定的作者名、摘要风格或本地目录布局,但包含一个用于将Markdown转换为微信兼容HTML的脚本,并提醒用户注意表格、脚注等复杂结构的兼容性问题。

対応~Claude Code~Codex CLI~Cursor
npx skills add yzq2003-dotcom/wechat-mp-publish

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

WeChat MP Publish

概述

使用此技能,在已登录的编辑器会话中,以稳定且可重复的方式创建、更新、检查和发布微信公众号文章。

此技能不假设任何个人作者名、摘要风格、本地目录布局或私有媒体库工作流。

支持的输入

  • 本地 Markdown 文章文件。
  • 预构建的 HTML 正文内容。
  • 仅需部分更新的已有微信公众号草稿。
  • 可选的标题、作者、摘要和封面图。

前置条件

  • 使用已登录微信公众号后台的持久浏览器会话。
  • 确认文章正文来源,以及是否提供了标题、作者、摘要和封面图等可选字段。
  • 最终发布是外部操作。未经用户在当前轮次中显式确认,不得点击最终发布按钮。

标准工作流

1. 填写基本元数据

  • 标题是必填项,应明确写入或更新以匹配用户预期的标题。
  • 仅当用户提供了作者名时才填写作者字段。否则保留现有值或留空。
  • 仅当用户提供或明确确认了摘要时才编写摘要。不要将其重写为推广性平台文案。

2. 导入文章正文

  • 优先使用 scripts/markdown_to_wechat_html.py 将本地 Markdown 转换为适合编辑器导入的 HTML。
  • 如果正文已经是有效的 HTML,则跳过转换,直接写入编辑器。
  • 不要依赖常规粘贴行为。直接调用编辑器实例的 replaceAllContent 方法。
  • 要定位编辑器实例,从 .view.rich_media_content.autoTypeSetting24psection 开始,向上遍历 Vue 父级,直到找到含有 replaceAllContent 的对象。

可复用的浏览器代码段:

const editorRoot = document.querySelector('.view.rich_media_content.autoTypeSetting24psection');
let vm = editorRoot && editorRoot.__vue__;
for (let i = 0; i < 6 && vm && !vm.replaceAllContent; i++) vm = vm.$parent;
if (!vm || !vm.replaceAllContent) throw new Error('WeChat editor instance not found');
vm.replaceAllContent(html);

3. 设置封面图

  • 仅当用户提供封面图或明确要求替换时,才处理封面图。
  • 仅使用可见的官方 UI 入口点:点击封面区域,然后从媒体库或其他可见平台选项中选择。
  • 不要暴露或操作隐藏的 input[type=file] 元素。这可能会破坏页面状态,导致重复封面或临时上传控件。
  • 上传并裁剪确认后,返回编辑器并确认左侧文章卡片显示正确的封面。

4. 保存草稿

  • 在每个主要步骤之后保存。大多数情况下,至少保存两次。
  • 在首次完整完成正文内容和封面图后保存一次。
  • 在布局审查和任何修复后再次保存。
  • 保存后,检查历史记录面板,确认出现新的手动保存记录。

5. 检查布局

至少检查三个区域:

  • 顶部:标题、作者、副标题、开头段落和封面卡片。
  • 中部:段落密度、标题可见性,以及任何意外的加粗、缩进或编辑器残留。
  • 底部:参考文献、列表、尾随空行、重复封面、重复图片或多余的上传控件。

必要时截图。不要仅依赖 DOM 文本。

6. 谨慎进行部分更新

  • 如果用户只要求更改标题、摘要、作者、封面图或少数段落,不要覆盖完整文章正文。
  • 在编辑现有草稿的一部分之前,检查其当前状态,判断完整替换还是编辑器内修补更安全。
  • 如果现有草稿已包含手动排列的图片、引用块、分隔线或其他手动调整的格式,在替换全文前评估丢失这些工作的风险。

7. 仅在显式确认后发布

  • 仅在用户明确说要现在发布后,才进入发布对话框。
  • 如果发布流程显示二次确认,验证常规选项,但不要改变用户的意图。
  • 如果平台发出警告、阻止内容或显示格式问题,停止操作,不要强制发布。

约束与故障排除

  • 如果在页面顶部附近出现临时的“选择文件”式控件,可能是之前操作了隐藏的上传控件。在再次保存前清理掉它。
  • 生成的封面预览节点并不保证封面已被实际应用。以编辑器卡片和封面区域的真实显示为准。
  • 如果参考文献部分完全加粗、列表项折叠在一起或空行意外扩展,在发布前修复正文。
  • 不要假设任何固定的作者名、默认摘要模板、私有目录布局或之前的会话状态。

正文转换脚本

用法:

python3 scripts/markdown_to_wechat_html.py /path/to/article.md > /tmp/wechat_article_body.html
cat /path/to/article.md | python3 scripts/markdown_to_wechat_html.py - > /tmp/wechat_article_body.html

此脚本生成适用于 replaceAllContent 的简化 HTML,保留以下内容:

  • 标题级别
  • 普通段落
  • 无序和有序列表
  • 粗体、斜体、链接和内联代码

它不追求完全的富文本保真度。如果文章包含表格、脚注或深层嵌套结构,请手动检查导入的输出。

関連スキル