• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

用户:鬼影233/MW食用指北

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Redirect arrow without text.svg用户讨论:AnnAngela
本页面为软重定向。
Redirect arrow without text.svg用户讨论:萌娘百科·娜娜奇
本页面为软重定向。
Redirect arrow without text.svg用户讨论:机智的小鱼君
本页面为软重定向。
Redirect arrow without text.svg用户讨论:bhsd
本页面为软重定向。
Redirect arrow without text.svg用户讨论:屠麟傲血
本页面为软重定向。
Redirect arrow without text.svg用户讨论:BearBin
本页面为软重定向。
Redirect arrow without text.svg用户讨论:Lihaohong
本页面为软重定向。
Redirect arrow without text.svg用户讨论:Luoxuchan
本页面为软重定向。
Redirect arrow without text.svg用户讨论:東東君
本页面为软重定向。
Redirect arrow without text.svg用户讨论:胡祥又
本页面为软重定向。

0. 请不要阅读 Api文档;JS编写者特别不要阅读 MediaWiki 前端 API文档;Lua编写者特别不要阅读 Lua 参考手册

1. 不建议使用 zh 来在 Special:ApiSandbox 进行测试,这样可以让你更容易WAF;

2. 不要使用 mw.config.get() 来获取一些基本信息;

3. 浏览器级别的脚本不要使用 mw.Apimw.ForeignApi 进行请求,而是使用直接使用 XMLHttpRequestfetch 等进行请求;

4. 使用

{
	"action": "parse",
	"page": "H:沙盒",
	"prop": "text"
}

代替

{
	"action": "query",
	"prop": "revisions",
	"titles": "H:沙盒",
	"rvprop": "content"
}

来减慢你代码的速度同时增加开销且有几率获得正版萌娘百科认证;

5. 请不要使用没啥用的 wiki-saikou

6. 部分参数例如 redirects: 1 不要使用 redirects: true 进行代替;

7. 不要尝试使用 generator 来合并两个 query

8. 使用{{#ifexist:Media:Box-1.png|A|B}}而不是{{#if:{{filepath:Box-1.png}}|A|B}}来检查图片是否存在,以增加高开销解析器函数的使用。

9. 如果只有一段需要嵌入的内容,优先选用{{嵌入片段}}而非<onlyinclude></onlyinclude>

10. 使用H:魔术字而非U:鬼影233/魔术字以学习英语。

11. 使用 new mw.Api().get() 而非 new mw.Api().post() 以提升用户 WAF 几率并缩减请求的最大长度。

12. MW 的模板参数名中可以夹杂回车,请尽情使用。

13. 优先使用 Evil 的 {{#forargs:}} 而非 {{#fornumargs:}}

14. 搜索时碰到内部错误,不要尝试在搜索末尾增加 -insource:"",不然你就只能搜到标题但不能搜到内容了。

15. 使用 CodeMirror 的保存配置到子页面 代替以下 Special:MyPage/common.js,虽然这样每次加载页面都能少个请求,而且换浏览器等操作也不会丢失配置,但你可以通过 GUI 配置了。

/** CM6 配置 **/
Object.entries({
	addons: [
		"allowMultipleSelections",
		"autocompletion",
		"bracketMatching",
		"closeBrackets",
		"codeFolding",
		"colorPicker",
		"escape",
		"highlightActiveLine",
		"highlightSelectionMatches",
		"highlightSpecialChars",
		"highlightTrailingWhitespace",
		"highlightWhitespace",
		"hover",
		"inlayHints",
		"lint",
		"openLinks",
		"refHover",
		"scrollPastEnd",
		"signatureHelp",
		"tagMatching",
		"wikiEditor"
	],
	ESLint: {
		env: { browser: true, es2022: true, jquery: true },
		globals: {
			mw: "readonly",
			mediaWiki: "readonly",
			OO: "readonly",
			moment: "readonly",
			LocalObjectStorage: "readonly",
			insertToBottomRightCorner: "readonly",
			wgULS: "readonly",
			wgUVS: "readonly",
			oouiDialog: "readonly",
			MoeSkin: "readonly",
			MOE_SKIN_GLOBAL_DATA: "readonly",
			libCachedCode: "readonly",
			CodeMirror: "readonly",
		},
		rules: {
			"no-unused-vars": ["error", { varsIgnorePattern: "_addText" }],
		},
	},
	Stylelint: { rules: { "no-descending-specificity": null } },
}).forEach(function (c) {
	localStorage.setItem("codemirror-mediawiki-" + c[0], JSON.stringify(c[1]));
});