使用者:ACGPlanck/UsefulTools
萌娘百科無畏契約編輯組在此為所有參與專題維護的用戶提供幾個可用於提升工作效率的小工具,供各位編輯者依需求選用。
地圖池生成模板
根據無畏契約專題編輯指南所述之原則:
在多個地圖並列時(例如賽制介紹),應按照地圖的發布時間進行排列,儘可能不要按照首字母進行排列。
地圖並列排序格式:[[源工重镇]]、[[隐世修所]]、[[霓虹町]]、[[亚海悬城]]、[[森寒冬港]]、[[微风岛屿]]、[[裂变峡谷]]、[[深海明珠]]、[[莲华古城]]、[[日落之城]]、[[幽邃地窟]]
然而,以上排列順序並不容易記憶,且大多數時候地圖池總是七張地圖一同出現,這給編寫條目帶來了很大的不便。
因此,GuoPC[更多]基於Lua語言開發了一整套地圖池自動生成方案,並封裝在{{無畏契約地圖池}}模板中,供編輯者使用。致敬瓦組傳奇技術總監GuoPC
例如:首爾冠軍賽的地圖池為:源工重鎮、隱世修所、亞海懸城、森寒冬港、蓮華古城、日落之城、幽邃地窟。其中,霓虹町、微風島嶼、裂變峽谷、深海明珠四張地圖不在地圖池中。此時,我們就可以使用該模板,在條目中寫入:
{{subst:无畏契约地图池|out=霓虹町、微风岛屿、裂变峡谷、深海明珠|sep=、}}以上內容就會在保存時被自動轉換為:
[[源工重镇]]、[[隐世修所]]、[[亚海悬城]]、[[森寒冬港]]、[[莲华古城]]、[[日落之城]]、[[幽邃地窟]]
可以看出,此時地圖池已經按照正確順序排列完成。顯然相比於按順序逐個輸入,單純填入不在圖池中的地圖且不需要考慮順序的方法要更為省時省力。
該模板的詳細用法,請參見模板文檔:Template:無畏契約地圖池/doc。
使用正則表達式一鍵插入隊標
目前,無畏契約專題旗下各項賽事條目經常出現需要使用隊伍圖標的情形。然而在編寫條目時,逐個填寫隊標的文件名是非常耗時的,複製文件名又需要從戰隊標準名稱及LOGO頁面逐個複製,極為麻煩。
好在,目前無畏契約專題旗下的所有隊伍LOGO文件名都已按照統一格式進行了規範化。這使得我們使用正則表達式進行批量替換成為了可能。
例如,某場EDG對陣FPX的比賽,我們希望在行文時達到「
vs
」的效果。此時我們可以在撰寫條目時直接填寫:
EDG vs FPX
隨後將所有「EDG」和「FPX」替換為[[file:VCTCNEDG.png|20px|link=]]和[[file:VCTCNFPX.png|20px|link=]]。
但很顯然,這種做法會誤傷到行文中正常出現的隊名,且在隊伍增多時仍然顯得過於繁瑣。因此我們可以用某種特定的方法標記出希望被替換成隊標的位置,隨後使用正則表達式一鍵替換。
例如,我們可以使用「+」將希望被替換成隊標的位置包裹:
+EDG+ vs +FPX+
注意到用於命名隊標文件的隊伍縮寫中只會出現大寫字母A-Z和數字0-9,因此我們可以使用正則表達式,匹配以符號「+」開頭和結尾,且中間是數個大寫字母或阿拉伯數字的字符串,這樣就可以精準定位到希望被替換的位置。
需要注意的是,字符「+」本身在正則表達式中是具有特殊含義的元字符,因此在使用時需要使用轉義符「\」(反斜線)將其轉義為「+」字符本身。
這樣,我們就有了下面的正則表達式:
\+([A-Z0-9]+)\+
此時,我們已經匹配到了所有需要替換的位置,且其中的隊名縮寫都已進入匿名捕獲組#1。隨後,我們將以上內容替換為:
[[file:VCTCN$1.png|20px|link=]]
這樣就實現了將隊名批量替換為隊標的目的。
此外,這一方法還可以衍生出更多用法,例如使用不同的字符包裹隊名以標記不同賽區的隊伍等。此類進階用法留作練習,讀者可自行嘗試。
關於正則表達式的更多用法,請參閱萌百的幫助文檔:Help:正則表達式。