茶馆周报/23w36a
欢迎来到茶馆周报。
9月来了?那一定是你的错觉,发版的这天明明是8月34日。
本周快照
Java版
本周发布了快照23w35a。停更一周等到的也只是个修复了一些漏洞的版本而已,最近总是准点蹲快照的你到底在期待些什么?
基岩版
本周发布了测试版1.20.30.25。和Java版的快照一样修复了几个不怎么值得说道的漏洞。
存档计划相关
排查jquery.ui
用例(续)
启用?debug=1
参数后,在浏览器的开发者工具中调用一次mw.inspect()
,然后执行方法mw.inspect.getDependencyGraph()["jquery.ui"]
后,就可以查出是哪些模块依赖的了。[1]
结果返回的是{requiredBy: ["ext.wikiEditor"], requires: []}
,而本地实例返回的是undefined
。这就很奇怪,说明一般情况下WikiEditor确实不应该在文章页面加载。
顺着“依赖地狱”的预期继续找,最终我们发现是本站的标记未签名的自动签名小工具导致的。我们将对该小工具进行分别按操作加载的措施(在小工具定义中增加参数actions=edit
,等于号后面的是逗号分隔的操作名,edit
自动包含submit
),这样就可以仅为编辑时加载这个小工具。
文件页面段落标题大替换
接用户TripleCamera报告,维基共享媒体上的文件页面的标题是使用魔术字显示的。站长查阅了MediaWiki相关代码,发现于includes/specials/SpecialUpload.php
下的getInitialPageText
方法中会判断'license-header'
、'filedesc'
、'filestatus'
、'filesource'
是否被包括于变量$wgForceUIMsgAsContentMsg
中,若在则会表现出用户所说的行为。
/* LocalSettings.php */
// Mimic the behavior upon file creation of Wikimedia Commons (using {{int:...}})
$wgForceUIMsgAsContentMsg[] = "license-header";
$wgForceUIMsgAsContentMsg[] = "filedesc";
$wgForceUIMsgAsContentMsg[] = "filestatus";
$wgForceUIMsgAsContentMsg[] = "filesource";
站长随后进行了大规模替换。
移动版差异问题修复(上)

移动版差异页面(Special:MobileDiff)有排版错误⸺这个问题困扰了大家很久。这是一个由MobileFrontend插件提供的特殊页面,它将传统的并列式比较差异替换为一种移动端友好的格式。维基百科和MCW上的移动版差异页面都是以内联的方式比较差异,而存档计划等站点的移动版差异页面与桌面版并没有什么变化,反而增加了排版错误。
TripleCamera曾尝试在MediaWiki.org发帖求助,无果。又通过MediaWiki非官方Discord频道询问,得知$wgMFUseDesktopDiffPage
可能有效。委托修改后,Special:MobileDiff中的内容没有改变,而在移动版视图下向index.php
中传入diff
参数时会强制使用桌面版差异。问题并没有解决。
终于,在9月1日(五),マジやばくね通过搜索PHP源代码,成功定位到wikidiff2⸺这是一个PHP扩展,可用作MediaWiki的差异比较引擎。该用户在Minecraft基岩版开发Wiki上编译并安装了该库,得到的效果完全符合预期,于是建议站长同样启用该库。
站长按照文档,安装了libthai-devel
之后,指定了phpize
及php-config
路径,进行了编译配置、实际编译、安装。修改php.ini
后,相关行为已达成用户预期。
而奇葩栖息地由于人手不足,暂时不会解决此问题。
值得一提的是移动版差异页面的排版错误:当差异比较引擎为php时,移动版差异页面与桌面版几乎相同,但样式错误导致左右两栏各占据整屏的宽度(而不是半屏)。相关样式规则在T171726中被添加,意在修复当差异比较引擎为wikidiff2时比较差异区域表格溢出的问题。但是影响到了php引擎的输出结果。TripleCamera会很快提交工单。
移动版差异问题修复(下)
在尝试解决上述问题的过程中,TripleCamera发现移动版差异页面中的“上一编辑”右侧多出了一个黑点。
经过短暂的排查,发现是MediaWiki:Gadget-site-styles.css中引入的.hlist
类样式涵盖范围过大包含了上述移动版差异的相关元素。
Minecraft Wiki上的.hlist
类样式来自英文维基百科[2],为{{SimpleNavbox}}
等模板提供水平列表样式。存档计划等站点的样式即是从MCW搬运而来的。另外英维上的.hlist
类样式也并入了MediaWiki核心,成为mediawiki.hlist
模块。[3]该模块被Minerva等皮肤所使用。
本次的样式冲突是命名不规范造成的:受限于Fandom没有安装TemplateStyles扩展,.hlist
类样式只能写入全局CSS,同时由于Minerva皮肤依赖mediawiki.hlist
模块,移动版视图下.hlist
类样式亦会全局启用。这个命名涵盖范围过大,MCW应该转而使用.navbox-hlist
等更合适的命名,而MediaWiki核心应该使用规范命名.mw-hlist
。
幸运的是,近年来该模块被提议删除。[4]这是好的。期待那一天的到来。
目前マジやばくね已为Minecraft基岩版开发Wiki和本站应用修复,为移动版差异页面添加了豁免规则。而奇葩栖息地由于人手不足,暂时不会解决此问题。
另外マジやばくね提醒,如果希望样式应用于文章内容,那么建议使用#mw-content-text
而不是#bodyContent
,后者依赖皮肤DOM结构。
修复短URL图标消失
本周周报发布后不久,用户Kissshot Acerolaorion Heartunderblade发现短URL小工具的按钮图标消失了。
站长通过Wayback Machine的对比,并搜索了MediaWiki官网,得知OOUI实际上是拆分图标的ResourceLoader模块的,位于oojs-ui.styles.icons-<组名>
中[5][6]。站长现已为该小工具额外指定了依赖oojs-ui.styles.icons-editing-core
(图标link
位于该组),问题应当已经得到修复。那么为什么会出现这个错误呢⸺下一期发布的时候你就知道了。
短URL小工具的原始版本由机智的小鱼君编写。基岩版开发Wiki和本站使用的版本有所修改,使用了OOUI,因此受到了依赖错误的影响。
MCW相关
中文MCW搬迁至RuneScape Wiki的提案顺利通过
经过了为期两周的讨论,8月31日(四),上述投票最终结束,投票结果为 支持42票、 中立2票、 反对1票。而这仅有的一票反对发表的也只是一些迷惑观点,完全可以忽略不计。
由于 支持的意见是压倒性的,中文Minecraft Wiki将启动搬迁至RuneScape Wiki的进程。
你知道吗
- 少林功夫体是方正字库为少林寺打造的首款定制字体。[7]
- “搭”的右半边不是“答”。
其他
- 2023年8月31日(四),任天堂官方举行了超级马力欧专属直面会,透露了即将发售的新作《超级马力欧兄弟 惊奇》的部分玩法,包括全新的大象变身形态、惊奇花和联机模式等内容。该作将于今年10月20日发售。
- 截至本周周报发版日(2023年9月3日),类银河战士恶魔城游戏《空洞骑士:丝之歌》的原定最迟发售日已过去83天,但该作的正式发售日期至今仍未公布。
等一下!
如果有人告诉您在这里要复制/粘贴一些东西,这条消息百分之一千是诈骗信息。
在这里,无论您粘贴了什么,都会给攻击者盗取您的 Discord 账号的可乘之机。
请关闭此窗口保证安全,除非您完全了解您在做什么。
如果您确实了解自己在做的事,那么您就应该来和我们一起工作https://discord.com/jobs
参考
- ↑ https://discord.com/channels/178359708581625856/1142480427899174952
- ↑ User talk:Majr/Archive 14§hlist CSS — 英文Minecraft Wiki
- ↑ T42062 Provide CSS class (hlist) to define horizontal lists in MediaWiki core — Wikimedia Phabricator
- ↑ T174399 Remove mediawiki.hlist from core, Collection and Minerva — Wikimedia Phabricator
- ↑ Icons - OOUI Demos的各个段落标题为组名
- ↑ MediaWiki.org官网的“OOUI/Using OOUI in MediaWiki”的“JavaScript”大标题下的“Using OOUI Widgets”小标题下有详细叙述。
- ↑ 少林寺的第一款字体,大气! — GrayDesign. 微信公众号平台.