模块讨论:TemplateParameters
有无 *args
的维基语法?
- 下列讨论已经关闭,请勿修改。如有任何意见,请至合适的讨论页进行,并不要再次编辑本讨论。
在下在查阅模板 (Template) {{Not}} 时发现,该模板堆叠了较多if,且因此只支持最多15个参数。
那么,有无传递多个参数 (*args
)的维基语法?
--KumaTea 来喝茶! 2019年6月8日 (六) 16:14 (UTC)
- 只能使用module。Viztor(留言) 2019年6月8日 (六) 16:44 (UTC)
- 嗯嗯谢谢~(module果然还是太难了_(:з」∠)_) --KumaTea 来喝茶! 2019年6月17日 (一) 13:22 (UTC)
- @Oudoubleyang:我做了个给模板 (Template)语法的API,Special:PermaLink/54937636,看是不是你要的功能,输入格式化字串,
- 例如
{{#if:{{{isFirst}}}||{{#if:{{{isLast}}}|或|、}} }}'''[[{{{1}}}]]''
(见Special:PermaLink/54915229另一个范例,要用 \ 字元 和魔术字防止被转义)然后实现传递多个参数 (*args
)的维基语法,看是不是你要的功能。--宇帆(留言·欢迎签到R₁R₂NKC) 2019年6月19日 (三) 10:20 (UTC)- (~)补充参考模块:TemplateParameters/doc -- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月19日 (三) 21:41 (UTC)
- @A2569875:那意思说可以改成这样:沙盒修改差异,模板与沙盒差异-- Sunny00217 - 2019年6月22日 (六) 02:51 (UTC)
- (:)回应@Sunny00217:可以,(节删)[理由:抱歉,看错]但是你冒号放的位置错了,我先移除,要这样才对,并根据说明加入text的参数支持。参阅User:A2569875/沙盒多参数测试结果--娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月22日 (六) 07:06 (UTC)
- (:)回应如果您觉得可以,我认为可以编辑请求改上去。--娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月22日 (六) 08:00 (UTC)
- @A2569875:只要可行其实都可以啊... 囧rz...(+)同意(最后差异:Special:Diff/51409053/54919018)-- Sunny00217 - 2019年6月22日 (六) 11:54 (UTC)
- (:)回应@Sunny00217:用这个吧Special:Diff/51409053/54927393,要尽可能确保Template:Distinguish/testcases一致。 -- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月23日 (日) 16:04 (UTC)
- @A2569875:只要可行其实都可以啊... 囧rz...(+)同意(最后差异:Special:Diff/51409053/54919018)-- Sunny00217 - 2019年6月22日 (六) 11:54 (UTC)
- (:)回应如果您觉得可以,我认为可以编辑请求改上去。--娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月22日 (六) 08:00 (UTC)
- (:)回应@Sunny00217:可以,(节删)[理由:抱歉,看错]但是你冒号放的位置错了,我先移除,要这样才对,并根据说明加入text的参数支持。参阅User:A2569875/沙盒多参数测试结果--娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月22日 (六) 07:06 (UTC)
- (+)同意 哇,感谢各位大佬~同意升级模板到这个版本。
- 刚刚在下去英文维基百科的{{Distinguish}}看了下,是使用已有的module: {{#invoke:Distinguish|distinguish}}完成的,且似乎也没有数量限制,不知上面是否就是其中的代码了呢 囧rz... --KumaTea 来喝茶! 2019年6月23日 (日) 17:16 (UTC)
- (:)回应@Oudoubleyang:“不知上面是否就是其中的代码了呢”不是,这是考量到许多人不太会使用LUA因此提供了对维基语法的直接支持。而且我认为能让一些不熟Lua但熟wikitext的维基人能够更方便地编辑。-- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月23日 (日) 17:24 (UTC)
哈啰,您好,想了解一下您对#有无_*args_的维基语法?后续讨论是否感兴趣。 感谢,祝编安。-- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月23日 (日) 16:18 (UTC)
- @A2569875:您好,感谢您的提醒!
前几日在下于互助客栈回复后,由于未设置监视列表,刚刚才知道您和User:Sunny00217已经实现了这个功能。非常感谢! --KumaTea 来喝茶! 2019年6月23日 (日) 17:00 (UTC)- (:)回应您好,关于您提到的module: {{#invoke:Distinguish|distinguish}}其实功能比较狭窄,只能适用于页顶消歧义,也不能像层叠几百个
{{#if:...
那个高度客制化,因此实作了Module:TemplateParameters,其他理由已在#有无_*args_的维基语法?中再次描述,- 您可以参考另外一个使用例Template:港岛巴士简单列表,从模板修订差异Special:Diff/50964780/54938457可以看出,重复的内容减少了,维护也方便(之前的写法要修改的话 会有100多个相同的文字需要修改 囧rz...),也不会像module: {{#invoke:Distinguish|distinguish}}每次需要传递多个参数 (
*args
)都还要再另外撰写新模组(module),实在麻烦,因此认为直接建立一个有高度弹性的模组(module)更能解决问题,考量到您会发问需要传递多个参数 (*args
)的维基语法代表有需求,因此也希望这个连接wikitext与lua的API能对阁下有帮助,感谢。 祝编安。 -- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月23日 (日) 17:58 (UTC)- @A2569875: {{#invoke:TemplateParameters}}的泛用性比{{#invoke:Distinguish}}高了很多~这个API应该能用在很多页面上。十分感谢~ --KumaTea 来喝茶! 2019年6月23日 (日) 19:18 (UTC)
- 您可以参考另外一个使用例Template:港岛巴士简单列表,从模板修订差异Special:Diff/50964780/54938457可以看出,重复的内容减少了,维护也方便(之前的写法要修改的话 会有100多个相同的文字需要修改 囧rz...),也不会像module: {{#invoke:Distinguish|distinguish}}每次需要传递多个参数 (
- (:)回应您好,关于您提到的module: {{#invoke:Distinguish|distinguish}}其实功能比较狭窄,只能适用于页顶消歧义,也不能像层叠几百个
- (?)疑问我可以把这串讨论 弄副本存档到互助客栈吗? 因为考量到您可能比较少前往互助客栈,而此话题也是有与该议题相关,弄副本存档到互助客栈可以给未来有疑问的维基人参考这些意见。-- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月25日 (二) 14:20 (UTC)
- @A2569875:可以可以~十分乐意。祝编安~ --KumaTea 来喝茶! 2019年6月25日 (二) 15:38 (UTC)
- 另外,关于Template_talk:Distinguish的编辑请求,已由User:Xiplus部属。副知@Oudoubleyang、Sunny00217:。-- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年6月30日 (日) 08:42 (UTC)
已解决并套用相关功能至{{Not}}与{{港岛巴士简单列表}}等模板。-- 娜娜奇🐰鲜果茶☕(☎️·☘️) 2019年7月7日 (日) 06:14 (UTC)
- 本讨论已经关闭,请勿修改。如有任何意见,请至合适的讨论页进行,并不要再次编辑本讨论。
编辑请求 2020-04-15
请求已拒绝--Xiplus#Talk 2020年5月5日 (二) 03:15 (UTC)
第629行应该改成,否则在模组间接调用时会生成错误 --Sun00217(SPA for Sunny00217) 2020年4月15日 (三) 12:12 (UTC)
local working_frame = mw.getCurrentFrame()
- 请说明出错的页面。--Xiplus#Talk 2020年4月15日 (三) 12:28 (UTC)
- (-)反对会影响frame参数的传递。-- 娜娜奇🐰枫香花茶☕(宇帆·☎️·☘️) 2020年4月15日 (三) 12:30 (UTC)
- @A2569875:Special:Permanentlink/59058220 + Special:Permanentlink/59059315,也就是
{ 傳入參數 }:newChild{ xxxx }
,会报错--Sun00217(SPA for Sunny00217) 2020年4月18日 (六) 16:11 (UTC)- (※)注意上方见解有误,“Lua错误:Collision for array key 1 when passing data from Lua to PHP。”明显是因为你在newChild的title部分传了一个mw.title物件所导致的型态错误,那个参数必须是字串。-- 娜娜奇🐰枫香花茶☕(宇帆·☎️·☘️) 2020年4月18日 (六) 17:15 (UTC)
- 你完全弄错他的逻辑了。 要改也是从上面if...else下手,而不是将working_frame直接用固定的值或物件覆盖。否则使用者将无法从参数控制Frame或使用自定义的frame物件。-- 娜娜奇🐰枫香花茶☕(宇帆·☎️·☘️) 2020年4月18日 (六) 16:53 (UTC)
- 你的诉求我反对,在TG上跟Xiplus讨论的结果(你又不肯来TG说明)倾向否决,Xiplus表示对阁下的提案质疑。 我分析阁下的诉求,如需满足阁下诉求,应是要加上对frame物件型态的判断,Case by case处理,而非不分青红皂白地使用mw.getCurrentFrame()覆盖之。 正确应为:如果参数frame继承自mw.frame类别则working_frame = frame;如果参数frame是一个阵列则working_frame = mw.getCurrentFrame();其他情况则throw参数错误。 -- 娜娜奇🐰枫香花茶☕(宇帆·☎️·☘️) 2020年4月18日 (六) 17:05 (UTC)
- 另外极度不建议诸如Special:Permanentlink/59058220的做法,因为该函数本来就是设计给Template呼叫用的,要加Code以符合阁下的特利用法显然只会让执行效能降低,还请@Xiplus:复核我的看法。-- 娜娜奇🐰枫香花茶☕(宇帆·☎️·☘️) 2020年4月18日 (六) 17:30 (UTC)
if frame == mw.getCurrentFrame() then xxxxxx end
不就是用来应付这种需求吗?如果不是,那在下觉得其实写这些也没意义了。另请求以更新--Sun00217(SPA for Sunny00217) 2020年4月19日 (日) 02:20 (UTC) 不认为这样的用法算特殊,
- 同A2569875。--Temp3600(留言) 2020年4月21日 (二) 18:29 (UTC)