用途:wewrite-publish 是 WeWrite 的排版与发布模块,负责把 Markdown 文章做成微信公众号本地预览,或在用户明确授权后推入公众号草稿箱,只处理微信公众号。
主要能力:排版与预览、草稿箱发布、主题画廊、图片帖。主题取自 style.yaml 的 theme,默认 professional-clean。用户指定文章时使用该文件,否则 wewrite run show;若 artifacts.illustrated_article 存在且非空则用它,否则用 artifacts.article,并读取标题、摘要、封面、预览路径、发布权限和降级标记。已完成文章可直接排版或发布,不恢复写作任务。
使用方式:始终先生成本地预览,有任务时保存到 artifacts.preview,任务外文章保存到原文件旁:wewrite preview {article} --theme {theme} --no-open -o {preview}。确认预览产物存在且通过兼容性校验;若无明确发布权限,流程到此结束。只有用户本轮明确要求草稿箱且预检全部通过时执行:wewrite publish {article} --cover {cover} --theme {theme} --title "{title}" --digest "{digest}"。有任务时先运行 wewrite run step publish in_progress,成功后再写 publish.media_id 并运行 wewrite run step publish completed。用户本轮明确要求发布时先运行 wewrite run permission publish allow,撤回时运行 wewrite run permission publish deny。看主题用 wewrite gallery;换主题重新 preview,只有再次明确要求才重新 publish;做图片帖先确认用户确实要推草稿箱,再执行 wewrite image-post;只排版则只 preview。
预检与限制:标题需存在且符合微信限制;摘要不超过 120 字节;正文 200-20000 字;正文图片不超过 10 张且实际可读;表格不超过 4 列;发布草稿必须有封面,没有封面不能假设微信会补默认图,改走本地预览。发布必须同时满足 permissions.publish=true、flags.skip_publish=false、用户本轮没有撤回。排版和发布不得自动调用 wewrite-visual,只有用户另行要求配图时才进入视觉模块。发布失败时保留预览,不自动重试产生外部动作。