• 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]));
});