Rabu, 04 November 2026
05:06 WIB
TERKINI
Bandar Lampung Senator Bustami Zainudin dan Staf DPD Lampung Ikuti Program Cek Kesehatan Gratis Bandar Lampung Padatnya Agenda Pemprov Lampung 2 November 2026: Dari Apel Hingga Forum Ekonomi Bandar Lampung Imigrasi Lampung Ungkap Modus Kawin Pesanan, Empat WNA China Diamankan di Pesawaran Lampung Barat Pesan Bupati Lambar: Patriotik, Gigih, dan Berempati Kunci Masa Depan Bangsa Bandar Lampung 343 Polisi Disiagakan Kawal Aksi Sumpah Pemuda 2026 di Bandar Lampung Lampung Selatan Jaringan Penyelundup Solar Subsidi Terbongkar di Lampung Selatan, Tiga Tersangka Diamankan Bandar Lampung Perpanjangan SIM A/C Kini Lebih Praktis: Cek Jadwal dan Syarat di Bandar Lampung Lampung Selatan Gunung Anak Krakatau: Asap Hitam Viral Bukan Erupsi, Status Tetap Siaga Lampung Selatan Jaringan Penyelundup Rokok Ilegal Senilai Rp14,85 Miliar Terbongkar di Bakauheni Bandar Lampung Harga Singkong Lampung Meroket, Petani Nikmati Keuntungan Rp45 Juta per Hektare Bandar Lampung Senator Bustami Zainudin dan Staf DPD Lampung Ikuti Program Cek Kesehatan Gratis Bandar Lampung Padatnya Agenda Pemprov Lampung 2 November 2026: Dari Apel Hingga Forum Ekonomi Bandar Lampung Imigrasi Lampung Ungkap Modus Kawin Pesanan, Empat WNA China Diamankan di Pesawaran Lampung Barat Pesan Bupati Lambar: Patriotik, Gigih, dan Berempati Kunci Masa Depan Bangsa Bandar Lampung 343 Polisi Disiagakan Kawal Aksi Sumpah Pemuda 2026 di Bandar Lampung Lampung Selatan Jaringan Penyelundup Solar Subsidi Terbongkar di Lampung Selatan, Tiga Tersangka Diamankan Bandar Lampung Perpanjangan SIM A/C Kini Lebih Praktis: Cek Jadwal dan Syarat di Bandar Lampung Lampung Selatan Gunung Anak Krakatau: Asap Hitam Viral Bukan Erupsi, Status Tetap Siaga Lampung Selatan Jaringan Penyelundup Rokok Ilegal Senilai Rp14,85 Miliar Terbongkar di Bakauheni Bandar Lampung Harga Singkong Lampung Meroket, Petani Nikmati Keuntungan Rp45 Juta per Hektare

Modul:Hatnote group

Wikimedia module

Bagikan:
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.
localmHatnote=require('Module:Hatnote')
localp={}
--Collates key-based table of classes into usable class list
functioncollateClassList(listTable)
locallist={}
fork,vinpairs(listTable)do
ifvandtype(k)=="string"thentable.insert(list,k)end
end
returntable.concat(list," ")
end
--Passes through single argument from parent frame
functionp.group(frame)
returnp._group(frame:getParent().args[1],frame:getParent().args.category)
end
functionp._group(inputText,category)
--If there's an error element, pass everything through unchanged for easier
--error resolution
ifstring.find(inputText,'<%a- class="error"',1,true)thenreturninputTextend
--Heavily reused hatnote data capture pattern
localdefaultClasses='hatnote navigation%-not%-searchable'
--string.gsub(mHatnote.defaultClasses(false), "%-", "%%-")
--TODO replace hardcoded classes with function call once available
localhatnotePattern=
'(<div role="note" class="'..
string.gsub(mHatnote.defaultClasses(false),"%-","%%-")..
'%s?(.-)">(.-)</div>)'
--Capture hatnote divs and "loose" categories; we'll ignore everything else
localrawDivs={}
locallooseCategories=''
forxinstring.gmatch(inputText,hatnotePattern)do
table.insert(rawDivs,x)
end
forxinstring.gmatch(inputText,'%[%[Category:.-%]%]')do
looseCategories=looseCategories..x
end
--if no inner hatnotes, return an error
ifnotrawDivs[1]then
returnmHatnote.makeWikitextError(
'no inner hatnotes detected',
'Template:Hatnote group',
category
)
end
--Preprocess divs into strings and classes
localinnerHatnotes={}
fork,vinpairs(rawDivs)do
row={}
row.text=string.gsub(v,hatnotePattern,'%3')
--Here we set class names as keys for easier intersection later
row.classes={}
form,winipairs(
mw.text.split(
string.gsub(v,hatnotePattern,'%2'),
' ',
true
)
)do
row.classes[mw.text.trim(w)]=true
end
table.insert(innerHatnotes,row)
end
--Identify any universal classes ("hatnote" ignored by omission earlier)
localuniversalClasses={}
--clone first classes table to force passing by value rather than reference
fork,vinpairs(innerHatnotes[1].classes)douniversalClasses[k]=vend
fork,vinipairs(innerHatnotes)do
form,winpairs(universalClasses)do
universalClasses[m]=(universalClasses[m]andv.classes[m])
end
end
--Remove universal classes from div items, then create class strings per row
fork,vinipairs(innerHatnotes)do
form,winpairs(v.classes)do
ifuniversalClasses[m]thenv.classes[m]=nilend
end
v.classString=collateClassList(v.classes)
end
--Process div items into classed span items
localinnerSpans={}
fork,vinipairs(innerHatnotes)do
table.insert(
innerSpans,
tostring(
mw.html.create("span")
:addClass(v.classString~=''andv.classStringornil)
:wikitext(v.text)
)
)
end
--Concatenate spans and categories, and return wrapped as a single hatnote
localoutputText=table.concat(innerSpans," ")..looseCategories
localhnOptions={extraclasses=collateClassList(universalClasses)}
returnmHatnote._hatnote(outputText,hnOptions)
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan