User:WhitePhosphorus/failcodes

这些是白磷写的因种种原因无法投入使用的代码,留在这里备用。

AF检测Wikipedia:协作计划/消息订阅中添加不合法的用户名

(action == "edit")
& (article_prefixedtext == "Wikipedia:协作计划/消息订阅")
& (rmwhitespace(added_lines) !== "")
& (!("\"description\": " in added_lines) | count("\n", added_lines) > 1)
& !(added_lines irlike "\"title\":[ \t]*\"user([ _]*talk)?:")
  • 本来想用new_content_model == "MassMessageListContent"判断,这样普适性大一些。然而做了batch test好像只有改内容模型时才会有这个参数Orz。
  • 为什么失败呢?往MMS名单里加东西时,不会看到过滤器的提示,又能直接绕过警告。阻止倒是能拦下,但没有任何提示也看不到自己的编辑,这种效果与设置AF的目的背道而驰。

只在可视化编辑/源代码编辑模式下显示的内容

由于现时一些提示语只针对源代码编辑(例如这个过滤器警告),可能会给可视化编辑使用者带来困惑,现在此提案修改 MediaWiki:Common.jsMediaWiki:Common.css 引入两个 HTML 类,分别只在可视化编辑和源代码编辑下显示,命名为 visual-showsource-show,以方便过滤器警告语以及编辑提示等的制作。

具体编辑如下:MediaWiki:Common.js 增加

mw.hook( 've.activationComplete' ).add( function () {
	// 可视化编辑器已加载完成
	var surface = ve.init.target.getSurface();
	console.log(surface.getMode());
	if ( surface.getMode() === 'visual' ) {
		console.log('v');
        // 可视化模式
        $('.source-show').hide();
        $('.visual-show').show();
    } else if ( surface.getMode() === 'source' ) {
    	console.log('s');
        // 可视化编辑器的源代码模式
        $('.source-show').show();
        $('.visual-show').hide();
    }
});
mw.hook( 've.deactivationComplete' ).add( function () {
	console.log('d');
	// 可视化编辑器切换到源代码编辑
    $('.source-show').show();
    $('.visual-show').hide();
});

MediaWiki:Common.css 增加

/* 默认隐藏 visual-show 类,适用于没有开启 JavaScript 的情况,此时可视化编辑器不会加载 */
.visual-show {
    display: none;
}

以上。 --砜中嘌呤的白磷萃取 打谱 2020年2月14日 (五) 11:28 (UTC)

然而编辑提示之类的加载是在 ve.activationComplete 后头,所以没法用。 --砜中嘌呤的白磷萃取 打谱 2020年2月14日 (五) 11:28 (UTC)