MediaWiki 扩展中的原始 HTML

Raw HTML in mediawiki extension

我正在编写一个 mediawiki 扩展,代码在独立模型中运行良好。目标是生成一个 HTML select 小部件,该小部件通过 onchange 事件触发一些 javascript。当我使用相同的代码并将其放入 mediawiki 时,它显示的是原始代码而不是解释它。

这是一个内部 wiki,我是唯一的编辑者,我的志愿者团队将是观众。也就是说,我不太担心在权限方面过于宽松,尤其是在测试时。

我开启了 $wgRawHtml = true; 在 LocalSettings.php

也尝试过 return [ $html , markerType => 'nowiki' ];

但我在 wiki 页面上找回了实际的 HTML

<html>
<select onchange='processSelect ( this.value )'><option value='0' >SWR MV1</option><option value='1' >SWR 2 NA</option><option value='2' >SWR MV2</option><option value='3' >SWR 4 NA</option></select>
</html>

您的返回 [$html, 'markerType' => 'nowiki'] 是正确的,但您还需要告诉 MediaWiki 返回的输出是 HTML。否则,MediaWiki Sanitizer 将清理您的解析器函数的输出:

return [$html, 'noparse' => true, 'isHTML' => true];

我建议您关闭 $wgRawHtml,因为这对于可公开编辑的网站来说非常危险,因为它允许您的用户在页面中插入任意 HTML。它不会影响解析器函数的卫生。