Install
openclaw skills install @jerryxn/zm-md2wechat-conversion-toolZM Markdown 转公众号格式工具。用于将 Markdown 转为微信公众号 HTML,检查主题、图片、样式、AI 痕迹处理和草稿创建能力;正式发布需配合 ZM 公众号草稿发布与核验 Skill。
openclaw skills install @jerryxn/zm-md2wechat-conversion-toolUse zm-md2wechat-conversion-tool when the user wants to:
Choose the command family before doing any publish action:
convert / inspect / preview when the user wants a standard WeChat article draft (news), HTML conversion, article metadata, article preview, or a draft that needs --cover.create_image_post when the user says 小绿书, 图文笔记, 图片消息, newspic, 多图帖子, or asks to publish an image-first post rather than an article HTML draft.小绿书 / 图文笔记 requests to convert --draft just because the user also has a Markdown article. A Markdown file can still be the image source for create_image_post -m article.md.convert --draft and create_image_post as different publish targets, not interchangeable command variants.zm-md2wechat-conversion-tool is already available on PATH.WECHAT_APPID and WECHAT_SECRET.~/.config/zm-md2wechat-conversion-tool/config.yaml.convert defaults to api mode unless the user explicitly asks for --mode ai.~/.config/zm-md2wechat-conversion-tool/config.yamlMD2WECHAT_BASE_URLzm-md2wechat-conversion-tool.yaml, zm-md2wechat-conversion-tool.yml, or zm-md2wechat-conversion-tool.jsonapi.zm-md2wechat-conversion-tool_base_url or MD2WECHAT_BASE_URL.Run these before selecting a provider, theme, or prompt:
zm-md2wechat-conversion-tool version --jsonzm-md2wechat-conversion-tool capabilities --jsonzm-md2wechat-conversion-tool providers list --jsonzm-md2wechat-conversion-tool themes list --jsonzm-md2wechat-conversion-tool prompts list --jsonzm-md2wechat-conversion-tool prompts list --kind image --jsonzm-md2wechat-conversion-tool prompts list --kind image --archetype cover --jsonInspect a specific resource before using it:
zm-md2wechat-conversion-tool providers show openrouter --jsonzm-md2wechat-conversion-tool providers show volcengine --jsonzm-md2wechat-conversion-tool themes show autumn-warm --jsonzm-md2wechat-conversion-tool prompts show cover-default --kind image --jsonzm-md2wechat-conversion-tool prompts show cover-hero --kind image --archetype cover --tag hero --jsonzm-md2wechat-conversion-tool prompts show infographic-victorian-engraving-banner --kind image --archetype infographic --tag victorian --jsonzm-md2wechat-conversion-tool prompts render cover-default --kind image --var article_title='Example' --jsonWhen choosing image presets, prefer the prompt metadata returned by prompts show --json, especially primary_use_case, compatible_use_cases, recommended_aspect_ratios, and default_aspect_ratio.
When choosing an image model, prefer providers show <name> --json and read supported_models before hard-coding --model.
Configuration:
zm-md2wechat-conversion-tool config initzm-md2wechat-conversion-tool config show --format jsonzm-md2wechat-conversion-tool config validateConversion:
zm-md2wechat-conversion-tool inspect article.mdzm-md2wechat-conversion-tool preview article.mdzm-md2wechat-conversion-tool convert article.md --previewzm-md2wechat-conversion-tool convert article.md -o output.htmlzm-md2wechat-conversion-tool convert article.md --draft --cover cover.jpgzm-md2wechat-conversion-tool convert article.md --mode ai --theme autumn-warm --previewzm-md2wechat-conversion-tool convert article.md --title "新标题" --author "作者名" --digest "摘要"Image handling:
zm-md2wechat-conversion-tool upload_image photo.jpgzm-md2wechat-conversion-tool download_and_upload https://example.com/image.jpgzm-md2wechat-conversion-tool generate_image "A cute cat sitting on a windowsill"zm-md2wechat-conversion-tool generate_image --preset cover-hero --article article.md --size 2560x1440zm-md2wechat-conversion-tool generate_cover --article article.mdzm-md2wechat-conversion-tool generate_infographic --article article.md --preset infographic-comparisonzm-md2wechat-conversion-tool generate_infographic --article article.md --preset infographic-dark-ticket-cn --aspect 21:9zm-md2wechat-conversion-tool generate_infographic --article article.md --preset infographic-handdrawn-sketchnoteDrafts and image posts:
zm-md2wechat-conversion-tool create_draft draft.jsonzm-md2wechat-conversion-tool test-draft article.html cover.jpg(only for smoke tests; not the formal publish path)zm-md2wechat-conversion-tool create_image_post --helpzm-md2wechat-conversion-tool create_image_post -t "Weekend Trip" --images photo1.jpg,photo2.jpgzm-md2wechat-conversion-tool create_image_post -t "Travel Diary" -m article.mdecho "Daily check-in" | zm-md2wechat-conversion-tool create_image_post -t "Daily" --images pic.jpgzm-md2wechat-conversion-tool create_image_post -t "Test" --images a.jpg,b.jpg --dry-runWriting and humanizing:
zm-md2wechat-conversion-tool write --listzm-md2wechat-conversion-tool write --style dan-koezm-md2wechat-conversion-tool write --style dan-koe --input-type fragment article.mdzm-md2wechat-conversion-tool write --style dan-koe --cover-onlyzm-md2wechat-conversion-tool write --style dan-koe --coverzm-md2wechat-conversion-tool write --style dan-koe --humanize --humanize-intensity aggressivezm-md2wechat-conversion-tool humanize article.mdzm-md2wechat-conversion-tool humanize article.md --intensity aggressivezm-md2wechat-conversion-tool humanize article.md --show-changeszm-md2wechat-conversion-tool humanize article.md -o output.mdFor convert, metadata resolution is:
--title -> frontmatter.title -> first Markdown heading -> 未命名文章--author -> frontmatter.author--digest -> frontmatter.digest -> frontmatter.summary -> frontmatter.descriptionLimits enforced by the CLI:
--title: max 32 characters--author: max 16 characters--digest: max 128 charactersDraft behavior:
upload_image -> draft.json -> create_draft -> draft/get verification chain.test-draft is for smoke tests only because it uses test metadata defaults unless wrapped externally.convert --draft remains a compatible shortcut, but do not treat it as the primary formal workflow when exact title/author/digest/content control is required.convert --draft requires either --cover or --cover-media-id.create_draft requires a JSON file with articles[].title and articles[].content; for formal WeChat drafts also provide author, digest, thumb_media_id, and show_cover_pic.--cover is a local image path contract for article drafts. --cover-media-id / thumb_media_id is for an existing WeChat permanent cover asset. Do not assume a WeChat URL or mmbiz.qpic.cn URL can be reused as thumb_media_id.inspect is the source-of-truth command for resolved metadata, readiness, and checks.preview v1 writes a standalone local HTML preview file. It does not start a workbench, write back to Markdown, upload images, or create drafts.convert --preview is still the convert-path preview flag; it is not the same thing as the standalone preview command.preview --mode ai is degraded confirmation only; it must not be treated as final AI-generated layout.--title / --author / --digest affect draft metadata, not necessarily visible body HTML.--upload or --draft, not during plain convert --preview.convert; image post / 小绿书 / newspic => create_image_post.inspect -> preview -> generate/confirm HTML -> upload_image -> create_draft -> draft/get verification.小绿书, 图文笔记, 图片消息, newspic, or asks for a multi-image post, prefer create_image_post even when the source content lives in Markdown.generate_cover or generate_infographic over a raw generate_image "prompt" call when a bundled preset fits the task.45004, check digest/summary/description before assuming the body content is too long.所有执行结果必须使用以下三种结论之一:
PASS:必要输入齐全,流程执行完成,审核项通过,可以进入下一阶段或交付。NEEDS_REVISION:可以继续推进,但存在必须返工项;必须列出返工范围、owner、复审标准。BLOCKED:缺关键素材、缺权限、缺确认、工具不可用或存在伪造风险;不得继续假装完成,必须说明阻塞原因和下一步。PASS / NEEDS_REVISION / BLOCKED。