先调研官方 markdown 模块的结构与依赖:
模块自带 PHP Markdown Extra 解析库(includes/),无需外部依赖。查看实现并下载全部文件:
解析库齐备。查看过滤器的完整定义后安装模块:
库版本干净无 PHP 8 兼容问题。安装模块并创建格式:
表名应为 filter(非 filters)。补上剩余步骤:
两处小坑:权限表需要 module 字段;默认格式变量可能没生效。逐项核查并修正:
解析器本身正常。排查 check_markup 的过滤器链路:
两个现象都是同进程缓存伪影。用全新进程、以管理员身份做最终干净验证:
缓存 vs 数据库不一致——直接查库确认最终状态:
缓存行陈旧(只有 3 个格式)。定向清除 filter 缓存后复测:
过滤器链路全通。把 Markdown 权重设为负值使其成为所有用户的默认首选,然后终验:
渲染完美,但默认次序仍受进程内缓存影响。二次干净进程复查:
缓存行被某个并发写入者用旧权重回写(0)。清理后立刻做只读验证,排除并发干扰: