• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

模組討論:PageTemplate

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋

有用的代碼抱走了

真的是每來看一次東東大佬的代碼就能學到新東西。

我在{{Sandbox/サンムル/VersionHistory/inline}}中希望將(支持wiki、模版等)的entry列表用{{#forargs}}合併成一個字符串傳入Lua模塊中。

{{Sandbox/サンムル/VersionHistory/inline|pagename=模块:PageTemplate
|entry1=version:2220458;time=2018年11月30日 (五) 22:54;summary:创建[[模块:PageTemplate]]{{黑幕|一段黑幕}}。
|entry2=version:2220562;time=2018年11月30日 (五) 23:36;summary:第二次编辑。
}}

但很快發現,模版會在合併成字符串的過程中展開,而我想傳入原字符串在Lua中處理後再展開模版。

後來嘗試在參數前後添加nowiki標籤,但在Lua模塊中獲取值時發現nowiki標籤內無法按字符串解析,反而是類似底層代碼一樣的「代號」。

折騰到後來出現了内部错误:解析器收到信号“24”而中止這個莫名其妙的bug,一直到現在還沒有修復。

巡查的時候看到東東大佬編輯的模塊,進來看了一眼,這兩句深受啟發。

t1 = mw.text.unstripNoWiki(tl)
t1 = mw.text.decode(tl)

這段代碼我抱走了,以後也會不定期前來「淘寶」(x

P.S. 原來or有這種用法。我還傻乎乎地寫了個函數iif……

--下方两句代码等价。
local x = nil or 13
local x = 13

local iif = function(value, valueWhenNil)
	if value == nil then return valueWhenNil
	else return value
	end
end

--サンムル討論) 2018年12月1日 (六) 03:23 (CST)

這個其實也是我前段時間瞎折騰發現的,當時還興奮了一陣子。--東東君討論) 2018年12月1日 (六) 09:42 (CST)