请确认以下事项
OpenList 版本(必填)
v4.2.5
使用的存储驱动(必填)
本机存储(其它也是)
问题描述(必填)
仓库查清楚了:README 的 JavaScript 是从前端 v4.2.0 开始失效的。
原因不是官方专门提交了“禁止 README JS”,而是一次 Markdown 渲染器重构造成的:
-
v4.1.10 及以前使用 solid-markdown,Markdown 标签由 SolidJS 逐个创建为 DOM 元素。
-
2026-02-18 的提交 [ed932e4](https://github.com/OpenListTeam/OpenList-Frontend/commit/ed932e4490f7883102557c48b037fd584f769abc) 为了升级 Remark、重写 Markdown 渲染并“安全渲染 HTML”:
- 删除
solid-markdown
- 加入
rehype-sanitize
- 把 Markdown 转成 HTML 字符串
- 最后通过
innerHTML 插入页面
-
这个提交首次进入正式版 v4.2.0。从此 <script> 要么被净化器删除,要么成为不会执行的 innerHTML 脚本节点。
-
v4.2.2 的提交 [6583e11](https://github.com/OpenListTeam/OpenList-Frontend/commit/6583e11a2ac240783625596237fb2c0ed3c831a5) 修复了“过滤 README 脚本”开关未生效的问题,但只做到:
if (sanitize) {
processor.use(rehypeSanitize)
}
它没有恢复脚本执行。因此关闭开关只能保留 <script>,仍无法运行。
你现在的 v4.2.5 仍是这个实现:
<Box innerHTML={markdownHTML()} />
[查看 v4.2.5 当前源码](https://github.com/OpenListTeam/OpenList-Frontend/blob/v4.2.5/src/components/Markdown.tsx#L254-L313)
结论:这是 v4.2.0 Markdown 重构带来的行为回退;仓库提交记录没有说明“故意彻底取消 README JS”。v4.2.2 虽然恢复了过滤开关,但没有完整恢复旧版执行能力,属于没有补完整的兼容问题。
日志(必填)
不需要
配置文件内容(必填)
不需要
复现链接(可选)
No response
AI生成内容(可选)
No response
请确认以下事项
我已确认阅读并同意 AGPL-3.0 第15条 。
本程序不提供任何明示或暗示的担保,使用风险由您自行承担。
我已确认阅读并同意 AGPL-3.0 第16条 。
无论何种情况,版权持有人或其他分发者均不对使用本程序所造成的任何损失承担责任。
我确认我的描述清晰,语法礼貌,能帮助开发者快速定位问题,并符合社区规则。
我已确认阅读了OpenList文档。
我已确认没有重复的问题或讨论。
我已确认是
OpenList的问题,而不是其他原因(例如 网络 ,依赖或操作)。我认为此问题必须由
OpenList处理,而非第三方。我已确认这个问题在最新版本中没有被修复。
我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue 。
OpenList 版本(必填)
v4.2.5
使用的存储驱动(必填)
本机存储(其它也是)
问题描述(必填)
仓库查清楚了:README 的 JavaScript 是从前端
v4.2.0开始失效的。原因不是官方专门提交了“禁止 README JS”,而是一次 Markdown 渲染器重构造成的:
v4.1.10及以前使用solid-markdown,Markdown 标签由 SolidJS 逐个创建为 DOM 元素。2026-02-18 的提交
[ed932e4](https://github.com/OpenListTeam/OpenList-Frontend/commit/ed932e4490f7883102557c48b037fd584f769abc)为了升级 Remark、重写 Markdown 渲染并“安全渲染 HTML”:solid-markdownrehype-sanitizeinnerHTML插入页面这个提交首次进入正式版
v4.2.0。从此<script>要么被净化器删除,要么成为不会执行的innerHTML脚本节点。v4.2.2的提交[6583e11](https://github.com/OpenListTeam/OpenList-Frontend/commit/6583e11a2ac240783625596237fb2c0ed3c831a5)修复了“过滤 README 脚本”开关未生效的问题,但只做到:它没有恢复脚本执行。因此关闭开关只能保留
<script>,仍无法运行。你现在的
v4.2.5仍是这个实现:[查看 v4.2.5 当前源码](https://github.com/OpenListTeam/OpenList-Frontend/blob/v4.2.5/src/components/Markdown.tsx#L254-L313)
结论:这是
v4.2.0Markdown 重构带来的行为回退;仓库提交记录没有说明“故意彻底取消 README JS”。v4.2.2虽然恢复了过滤开关,但没有完整恢复旧版执行能力,属于没有补完整的兼容问题。日志(必填)
不需要
配置文件内容(必填)
不需要
复现链接(可选)
No response
AI生成内容(可选)
No response