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。它不会影响解析器函数的卫生。
我正在编写一个 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。它不会影响解析器函数的卫生。