Halo 发布功能修复说明
问题描述
之前的 Halo 发布功能存在问题:文章发布成功后,在 Halo 中没有文章内容。
问题原因3
根据 Halo 社区讨论和 VSCode 扩展的实现,发现问题在于:
- 文章创建和内容上传的流程不正确
- 编辑器类型设置不当
- 发布流程缺少明确的步骤分离
修复方案
1. 修改发布流程3
将原来的一步发布改为三步流程:
- 第一步:创建草稿文章 (
createHaloPost
) - 第二步:上传文章内容 (
sendContentToHalo
) - 第三步:发布文章 (
publishHaloPost
)
2. 修复编辑器类型
// 修改前
annotations: {
'content.halo.run/preferred-editor': 'bytemd'
}
// 修改后
annotations: {
'content.halo.run/preferred-editor': 'default'
}
3. 修复文章创建逻辑
// 修改前:直接设置发布状态
publish: this.settings.haloAutoPublish
// 修改后:先创建为草稿,再单独发布
publish: false, // 先创建为草稿
4. 增强错误处理
- 为每个步骤添加独立的错误处理
- 改进重试机制
- 更详细的日志记录
主要代码变更
新增方法
createHaloPost()
: 专门用于创建文章publishHaloPost()
: 专门用于发布文章
修改的接口
HaloPost
: 添加annotations
支持- 添加
HaloApiResponse
类型别名
修改的流程
- 创建文章时设置
publish: false
- 上传内容后再根据设置决定是否发布
- 每个步骤都有独立的成功/失败处理
参考资料
测试建议4
- 创建一个测试文章
- 使用发布到 Halo 功能
- 检查 Halo 后台是否有内容
- 验证自动发布功能是否正常工作
注意事项
- 确保 Halo 配置正确(URL 和 Token)
- 检查网络连接
- 查看控制台日志以获取详细错误信息