Skip to content

关于 CommentSubject 发现/选择机制问题 #8298

@JayFans2000

Description

@JayFans2000

前置条件

  • 已经在 issues 列表中搜索了相关问题。
  • 这是 Halo 项目本身存在的问题,如果是非项目本身的问题(如:安装部署问题),建议在 Discussions 提交。
  • 已经尝试过停用所有的插件,排除是插件导致的问题。
  • 如果是插件和主题的问题,请在对应的插件和主题仓库提交。

系统信息

  • halo版本: 2.22.12
  • 已启动插件:plugin-links 及 plugin-comments
  • 插件版本:最新版

使用的哪种方式运行?

Docker Compose

发生了什么?

在对plugin-equipments进行前台评论功能适配后台获取评论来源开发时:

发现当多个插件都实现 CommentSubject<Plugin> 后,Halo 只能使用第一个supports()的实现来处理所有 Plugin 类型的评论。

状态 评论来源显示
只启用 plugin-equipment ✅ 正确显示"装备"
只启用 plugin-links ✅ 正确显示"链接"
两个都启用 ❌ 全部显示"链接"(冲突)

希望各方能修复:多个 CommentSubject 能够正确按 supports() 结果选择对应的处理器。

复现步骤

  1. 关闭 plugin-links 后,评论来源正确显示为"装备"

说明我插件里 CommentSubject 实现是正确的

  1. plugin-links 的评论显示为"未知"

因为我关闭了plugin-links插件,即CommentSubject 被禁用了

  1. 通过排查equipment插件的日志输出情况,日志中没有 getSubjectDisplay() 的调用,但评论来源正确显示了

也就说明问题是两个插件的 CommentSubject 实现存在冲突。当两个插件都启用时,Halo 可能只选择其中一个(如plugin-links 的)来处理所有 Plugin 类型的评论。

相关日志输出

附加信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions