如果有 {{季节}} 参数,它将添加 [[类别:第{{季}}]] . 如果 {{{季节}} 参数丢失,它将添加 [[类别:无季剧集]] 所以你可以很容易地找到它。
{{#if:{{季|}}|[[类别:季{{期}}]]|[类别:没有季的季]}}
如果有 {{{特殊}} 参数,它决定该集是特殊集还是常规集,它必须改为添加 [[类别:第{{season}}}季的特别集]] .
{{#if:{{season|}}|{{#if:{{special|}}|[[类别:第{{seaseon}}]]|[类别:第一季的特别集
Lua快速入门 [ ]
地方的 第页 = {}
功能 第页 . 主要的 ( 框架 )
--代码
结束
返回 第页
局部p 是一个变量,它存储一个空表 {} 。您需要它来将所有导出的函数捆绑在一起,以便 返回 -结尾处为ed。 其他模块和页面将能够使用导出表中的任何内容。 我们正在创建一个函数 主要的 在我们的桌子里 第页 . 框架 是从页面调用所有函数时收到的参数; 你可以阅读更多关于 框架对象 ,但现在我们只需要知道它允许您访问页面中使用的参数。 例如,在“ {{模板|第一个|第二个|hello=world}} “,它可以让您访问 第一个参数 , 第二个参数 和名为 你好 ,这是 世界 .
创建我们的模块 [ ]
地方的 第页 = {}
功能 第页 . 分类 ( 框架 )
地方的 参数 = 要求 ( “Dev:参数” ). 获取参数 ( 框架 )
地方的 季节 = 参数 . 季节
地方的 特殊的 = 参数 . 特殊的
如果 季节 然后
如果 特殊的 然后
返回 字符串格式 ( “[[类别:第%s季的特别集]]” , 季节 )
其他的
返回 字符串格式 ( '[[类别:第%s季的剧集]]' , 季节 )
结束
其他的
返回 “[[类别:无季剧集]]”
结束
结束
返回 第页
一步一步地 [ ]
访问参数 有其他方法可以访问从页面传递给模块的参数,但最推荐的方法是使用 论据 ,一个 全局Lua模块 在所有wiki中都可用。 它导出一个函数 获取参数 这将为您提供一个包含您的所有参数的表 框架 对象。 使用我们以前的模板调用,“ {{模板|第一个|第二个|hello=world}} ”,它将在一个表中为您提供所有参数,如:
{ “第一个” , “第二个” , 你好 = “世界” }
记住,Lua表从1开始索引! 因此,您可以访问所需的任何参数 参数[1] (第一), 参数[2] (第二)和 args.hello参数 (世界)。 访问任何不存在的密钥将返回 无 值,相当于JavaScript的 未定义 或Python的 无 .
实现您的逻辑 你应该已经熟悉了 如果 编程中的语句。 Lua的语法可能不同,但很容易理解。 就像之前使用解析器函数一样,我们首先检查 如果 季节 参数已设置 。如果不是这样,我们就会有一个 无 我们的价值 参数 表,其计算结果为 假 . 另一个让你疑惑的部分是 字符串格式 .Lua有不同的方法来“插入”字符串,而这只是其中之一。 此函数的第一个参数是模板字符串,其中的每个实例 %秒 将按顺序替换为以下参数(在这种情况下,存储在 季节 ). 如果 季节 已设置 ,检查 如果 特殊的 也已设置 . 如果 特殊的 已设置 ,添加类别 [[类别:第%s季的特别集]] ,其中 %秒 将替换为中的值 季节 . 其他 ,添加类别 [[类别:第%s季的剧集]] .
如果 季节 是 不 设置 ,添加类别 [[类别:无季剧集]] .
就像模板一样,从模块返回的值将被插入到文章中。
我该如何使用它? [ ]
总结 [ ]
您的模板有许多解析器函数,特别是如果它们是嵌套的。 您需要处理任意数量的参数。 而不是手动添加 {{{参数1}} , {{{参数2}}} , {{{参数3}} 等等,您可以使用Lua管理它们。 尽管 对wiki来说,集中数据被认为是一种糟糕的做法 ,有时它可能是满足您需求的最佳解决方案。 集中数据的最佳方法是通过Lua模块。