2023年政策修订增补工作正在进行中,欢迎参与!
User: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('')