萌娘百科:魔改
跳到导航
跳到搜索
一些需要魔改的地方:
- MW自带的
Sanitizer/StylePropertySanitizer.php
需要允许transform
属性中使用perspective(...)
。Template:Hovers/hover.css和Template:原神/style.css会用到。完成 - ContributionScores插件的ContributionScores.php的第79行的
$parser->mStripState
改成$parser->getStripState()
。出错原因是MW的parser的mStripState变成私有变量了,要用getter获取。 - 高版本MW中,部分HTML源代码的
<div>
标签改为<nav>
,这导致了一部分萌百的全站CSS和小工具失效:- 短连接小工具出现样式错误,原因在于Vector皮肤左侧的工具栏应用了此更改,子项目标题也从
<h3></h3>
改为了<label><span></span></label>
。调整方法见Special:差异/217678/217682。 - Vector皮肤右上角用户菜单背景颜色失效、且用户名左侧会出现一个“”图标,调整方法见Special:差异/200996/217766。
- 清除缓存按钮小工具无法使用,原因是右上角用户菜单的HTML源代码中多嵌套了一级<div>,调整方法见Special:差异/150175/217742。
- 短连接小工具出现样式错误,原因在于Vector皮肤左侧的工具栏应用了此更改,子项目标题也从
- 1.38下小工具新增actions参数,可以判断当前页面的操作决定是否加载小工具。目前已经给5个小工具实装了actions参数,MediaWiki:Gadget-edit.js由于对编辑摘要快速插入增加了新功能,action相关if判断已经去除。
- Widget如果同时依赖jQuery和mw的库,可以搬运至Gadget用
(大力出奇迹)。- 把script标签内的代码转移至MediaWiki:Gadget-xxx.js。但是Gadget只支持ES5,你可以在Widget里看见Promise异步和const、let,所以代码需要经过以下处理:
- 修改MediaWiki:Gadgets-definition。添加新的小工具。默认开启并隐藏。此外,之前的依赖要填进ResourceLoader。
如果js代码包含$,说明jQuery也是一个依赖。 - 在Special:小工具中查看并创建对应的系统信息(“添加说明”)。
- style标签无需迁移。如果想,也可以放进css。
- 无法关闭评论区。这是因为Flowthread和高版本MW不适配。见这个issue。
- 从mediawiki1.32开始,ResourceLoader.php中Widget常用的RLQ接口新增了一个方法,来调用需要在代码执行前加载的js库:
public static function makeInlineCodeWithModule( $modules, $script ) {
// Adds an array to lazy-created RLQ
return '(RLQ=window.RLQ||[]).push(['
. self::encodeJsonForScript( $modules ) . ','
. 'function(){' . trim( $script ) . '}'
. ']);';
}
对应的Widget代码可以是:
window.RLQ = window.RLQ || [];
window.RLQ.push([module||["module1","module2",……"moduleN"],function(){
……
}]);
从1.34+开始,jQuery因为加载顺序原因需要这种方法进行调用,使用mw.loader.using调用的不少模块也需要写入此处。