Senin, 28 September 2026
18:37 WIB
TERKINI
Berita Fenomena Unik 'Hujan Salju' di Lapangan Sempur Bogor, Warga Sambut Riang Internasional Profesor Biao Xiang: Idola Gen Z China yang Berani Bahas Kecemasan Hidup Berita Pelaku Injak Al-Qur'an di Lebak Divonis Penjara, Wajib Minta Maaf Publik Berita Dilema Ganjil Genap Jakarta: Evaluasi Setelah 1 Dekade, Relaksasi Jadi Perdebatan Berita Evakuasi Buaya Peliharaan di Bandar Lampung Penuh Haru, Pemilik Sempat Pingsan Berita Polemik Buku 'Memburu Muhammad': Penulis dan Tokoh Islam Jelaskan Niat Baik Regional Flyover Ciroyom Bandung Rampung, Solusi Baru Atasi Kemacetan Kota Regional Informasi Persiapan Vihara Jelang Imlek Belum Tersedia Regional Wujudkan Rumah Impian: Pendaftaran KPR Kini dalam Genggaman dengan BTN Mobile Prelude Mengungkap Akal-akalan Aturan Pemilu Melalui Lensa Pareto Berita Fenomena Unik 'Hujan Salju' di Lapangan Sempur Bogor, Warga Sambut Riang Internasional Profesor Biao Xiang: Idola Gen Z China yang Berani Bahas Kecemasan Hidup Berita Pelaku Injak Al-Qur'an di Lebak Divonis Penjara, Wajib Minta Maaf Publik Berita Dilema Ganjil Genap Jakarta: Evaluasi Setelah 1 Dekade, Relaksasi Jadi Perdebatan Berita Evakuasi Buaya Peliharaan di Bandar Lampung Penuh Haru, Pemilik Sempat Pingsan Berita Polemik Buku 'Memburu Muhammad': Penulis dan Tokoh Islam Jelaskan Niat Baik Regional Flyover Ciroyom Bandung Rampung, Solusi Baru Atasi Kemacetan Kota Regional Informasi Persiapan Vihara Jelang Imlek Belum Tersedia Regional Wujudkan Rumah Impian: Pendaftaran KPR Kini dalam Genggaman dengan BTN Mobile Prelude Mengungkap Akal-akalan Aturan Pemilu Melalui Lensa Pareto

Modul:Unsubst-infobox

Wikimedia module

Dokumentasi modulbuatsegarkan
Anda dapat membuat halaman dokumentasi untuk buat pada modul Scribunto ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
localp={}
localspecialParams={
['$params']='all parameters',
['$extra']='extra parameters',
['$set1']='parameter set 1',
['$set2']='parameter set 2',
['$set3']='parameter set 3',
['$aliases']='parameter aliases',
['$indent']='indent',
['$flags']='flags',
['$B']='template content'
}
p['']=function(frame)
ifnotframe:getParent()then
error('{{#invoke:Unsubst-infobox|}} makes no sense without a parent frame')
end
ifnotframe.args['$B']then
error('{{#invoke:Unsubst-infobox|}} requires parameter $B (template content)')
end
ifnotframe.args['$params']then
error('{{#invoke:Unsubst-infobox|}} requires parameter $params (parameter list)')
end
ifmw.isSubsting()then
---- substing
-- Combine passed args with passed defaults
localargs={}
ifstring.find(','..(frame.args['$flags']or'')..',',',%s*override%s*,')then
fork,vinpairs(frame:getParent().args)do
args[k]=v
end
fork,vinpairs(frame.args)do
ifnotspecialParams[k]then
ifv=='__DATE__'then
v=mw.getContentLanguage():formatDate('F Y')
end
args[k]=v
end
end
else
fork,vinpairs(frame.args)do
ifnotspecialParams[k]then
ifv=='__DATE__'then
v=mw.getContentLanguage():formatDate('F Y')
end
args[k]=v
end
end
fork,vinpairs(frame:getParent().args)do
args[k]=v
end
end
-- Build an equivalent template invocation
-- First, find the title to use
localtitleobj=mw.title.new(frame:getParent():getTitle())
localtitle
iftitleobj.namespace==10then-- NS_TEMPLATE
title=titleobj.text
elseiftitleobj.namespace==0then-- NS_MAIN
title=':'..titleobj.text
else
title=titleobj.prefixedText
end
-- Remove empty fields
fork,vinpairs(args)do
ifv==''thenargs[k]=nilend
end
-- Pull information from parameter aliases
localaliases={}
ifframe.args['$aliases']then
locallist=mw.text.split(frame.args['$aliases'],'%s*,%s*')
fork,vinipairs(list)do
localtmp=mw.text.split(v,'%s*>%s*')
aliases[(tonumber(mw.ustring.match(tmp[1],'^[1-9][0-9]*$')))ortmp[1]]=((tonumber(mw.ustring.match(tmp[2],'^[1-9][0-9]*$')))ortmp[2])
end
end
fork,vinpairs(aliases)do
ifargs[k]andnotargs[v]thenargs[v],args[k]=args[k],nilend
end
-- Build the invocation body with numbered args first, then named
localret='{{'..title
fork,vinipairs(args)do
ifmw.ustring.find(v,'=',1,true)then
-- likely something like 1=foo=bar, we need to do it as a named arg
break
end
ifnotaliases[k]then
ret=ret..'|'..v
args[k]=nil
end
end
-- Pull lists from special parameters
localparams=mw.text.split(frame.args['$params'],'%s*,%s*')
fork,vinipairs(params)do
params[k]=(tonumber(mw.ustring.match(v,'^[1-9][0-9]*$')))orv
end
localsets,setparams,extra={{},{},{}},{},{}
fork=1,3do
localv=frame.args['$set'..k]
ifvthen
setparams[k]=mw.text.split(v,'%s*,%s*')
forx,yinipairs(setparams[k])do
setparams[k][x]=(tonumber(mw.ustring.match(y,'^[1-9][0-9]*$')))ory
sets[k][setparams[k][x]]=true
end
end
end
ifframe.args['$extra']then
localtmp=mw.text.split(frame.args['$extra'],'%s*,%s*')
fork,vinipairs(tmp)doextra[(tonumber(mw.ustring.match(v,'^[1-9][0-9]*$')))orv]=trueend
end
-- Replace parameter list with short version if full version not necessary
localtmp={}
fork,vinipairs(sets)do
ifnext(v)then-- if table v is not empty
for_,xinipairs(params)do
ifargs[x]andnotv[x]then
tmp[k]=true
break
end
end
ifnottmp[k]thenparams=setparams[k]end
end
end
-- Align parameters correctly and remove extra ones
localmaxlength=0
localdiscard={}
fork,vinipairs(params)do
if(notextra[v])orargs[v]then
localtmp=mw.ustring.len(tostring(v))
iftmp>maxlengththenmaxlength=tmpend
else
table.insert(discard,1,k)
end
end
fork,vinipairs(discard)dotable.remove(params,v)end
localindent=string.rep(' ',(tonumber(frame.args['$indent'])or0))
localspace,newline=' ','\n'
ifnotnext(params)thenspace,newline='',''end
fork,vinipairs(params)do
localtmp=space
ifmw.ustring.match(mw.ustring.sub((args[v]or'')..' ',1,1),'[%*:;#]')thentmp='\n'end
ret=ret..newline..indent..'|'..space..v..string.rep(' ',(maxlength-mw.ustring.len(v)))..space..'='..tmp..(args[v]or'')
end
ret=ret..newline..'}}'
ret=mw.ustring.gsub(ret,'%s+\n','\n')
returnret
else
-- Not substing
-- Just return the "body"
returnframe.args['$B']
end
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan