模組討論:TemplateParameters
由Xiplus在話題編輯請求 2020-04-15上作出的最新留言:4 年前
有無 *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)