2023年政策修订增补工作正在进行中,欢迎参与!
使用者:Greykid/手冊
跳至導覽
跳至搜尋
What each person sees and feels—Those are what shape reality.
已回歸,觀望中。
本頁記錄了在使用MediaWiki和Lua交互過程中遇到的一些事項和技巧。初始借鑑自User:サンムル/Lua備忘錄。
今後也將不斷更新。歡迎朋友們補充添加。
MediaWiki
- Help:魔術字
- Help:替換引用 只能替換一層引用,而且最好裡層加上
safesubst:
。 - 簡易的簡繁轉換設置:
-{zh-hant:繁; zh-hans:简;}-
完整參見Help:繁簡轉換。- {{NoteTA}} 公共轉換組
- mw:Help:Cite、enwp:Help:Footnotes、enwp:Help:Cite errors
- 不容易發掘的Cite error是在
<ref>
裡面再嵌套一個<ref>
。這種情況完全有可能發生。 - 注釋與參考資料(外部連結)兩者同時存在時,需要用
<ref>
標籤的group
屬性加以區分。給<ref>
標籤加上group="注"
後,就與參考資料區別開來;或者給<ref>
標籤加上group="參"
來標記參考資料,這樣注釋就不需要標註。個人已經習慣性使用前者寫法,學習自「7·18」京都動畫縱火案頁面的寫法。
- 不容易發掘的Cite error是在
Lua
- Lua reference manual
- Lua沒有重載(overwritable)函數,但是對函數參數存在與否不講究。
- 所有元素都有可能為
nil
,為''
(空字符串)。分別是兩種可預料的error。 - Lua模塊從調用其的模板繼承參數:模塊:Arguments#Frames and parent frames
- 用Lua寫正則表達式:User:東東君/正則表達式
- 萌娘百科Lua運行時限是7秒。模板運行效率:
mw.config.get('wgPageParseReport').limitreport.timingprofile
這段代碼貼進F12控制台裡面運行。 - 獲得當前
frame
:mw.getCurrentFrame()
- 解析Wiki文本:
frame:preprocess( string )
詳見mw:LUAREF#frame:preprocess 或者用模板 {{Eval}}。 - Lua展開模板:
frame:expandTemplate{ title = 'template', args = { 'arg1', 'arg2', name = 'arg3' } }
詳見mw:LUAREF#frame:expandTemplate - Lua 展開tag:
frame:extensionTag( 'ref', 'some text', { name = 'foo', group = 'bar' } )
詳見mw:LUAREF#frame:extensionTag - 以上在 User:Greykid/參考手冊/展開模板 中也有詳細的解釋說明。
- 解析Wiki文本:
- 實現
#invoke
函數式調用,參見 mw:Module:Arguments、enwp:Module:Arguments、模塊:Arguments。- 聲明:
local getArgs = require('Module:Arguments').getArgs
- 獲得
args
:local args = getArgs(frame, {parentOnly = true})
- 以
args
輸入對應解析函數。
- 聲明:
- 判斷是否在(主)命名空間下:
mw.title.getCurrentTitle():inNamespace('')