Selasa, 13 Oktober 2026
19:33 WIB
TERKINI
Bandar Lampung Bandar Lampung Siaga Banjir Rob: BPBD Fokus Pantau Empat Kecamatan Pesisir Bandar Lampung Lampung Perketat Pengawasan Solar Subsidi: STNK Truk Roda Enam Diperiksa Bandar Lampung TNI AL Gagalkan Ribuan Paket Kokain Cair, Selamatkan Ribuan Jiwa dan Anggaran Negara Cuaca Gunung Anak Krakatau Berstatus Siaga, Asap Kawah dan Sinar Api Terpantau Jelas Lampung Prakiraan Cuaca Lampung 13 Oktober 2026: Waspada Hujan dan Angin Kencang Lampung Ratusan Titik Panas Terdeteksi di Lampung, Tulang Bawang Terbanyak Bandar Lampung Pemprov Lampung Gencarkan Rapat Penting, Mulai Inflasi Hingga Eliminasi TBC Pringsewu Ribuan Warga Pringsewu Padati Jalan Sehat Kapal Api Tribun Lampung Bandar Lampung Pengungkapan 3 Ton BBM Ilegal di Tanjung Bintang, Polisi Lidik Jaringan Penyaluran Lampung Tugas Berat Kapolda Lampung Brigjen Yustan Alpiani: Atasi Narkoba, Konflik Lahan, dan Distribusi BBM Bandar Lampung Bandar Lampung Siaga Banjir Rob: BPBD Fokus Pantau Empat Kecamatan Pesisir Bandar Lampung Lampung Perketat Pengawasan Solar Subsidi: STNK Truk Roda Enam Diperiksa Bandar Lampung TNI AL Gagalkan Ribuan Paket Kokain Cair, Selamatkan Ribuan Jiwa dan Anggaran Negara Cuaca Gunung Anak Krakatau Berstatus Siaga, Asap Kawah dan Sinar Api Terpantau Jelas Lampung Prakiraan Cuaca Lampung 13 Oktober 2026: Waspada Hujan dan Angin Kencang Lampung Ratusan Titik Panas Terdeteksi di Lampung, Tulang Bawang Terbanyak Bandar Lampung Pemprov Lampung Gencarkan Rapat Penting, Mulai Inflasi Hingga Eliminasi TBC Pringsewu Ribuan Warga Pringsewu Padati Jalan Sehat Kapal Api Tribun Lampung Bandar Lampung Pengungkapan 3 Ton BBM Ilegal di Tanjung Bintang, Polisi Lidik Jaringan Penyaluran Lampung Tugas Berat Kapolda Lampung Brigjen Yustan Alpiani: Atasi Narkoba, Konflik Lahan, dan Distribusi BBM

Modul:Episode table

Wikimedia module

Bagikan:
Dokumentasi modullihatsuntingriwayatsegarkan
WarningModul Lua ini digunakan pada banyak halaman dan perubahannya kemungkinan memicu perubahan massal pada semua halaman yang menggunakannya. Uji cobalah di subhalaman /bak pasir atau /kasus uji Modul:Episode table, atau bak pasir modul Anda. Pertimbangkan untuk mendiskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya.
DiproteksiModul ini dilindungi. Modul ini sangat mencolok yang digunakan oleh banyak halaman, atau sangat sering disubstitusikan. Karena vandalisme atau kesalahan akan mempengaruhi banyak halaman, dan suntingan kecil dapat memberi beban besar pada server, modul ini dilindungi dari penyuntingan.
Modul ini menggunakan Lua:
CSSModul ini menggunakan TemplateStyles:

PenggunaanPenggunaan

Membuat salah satu dari tiga kegunaan yang terkait dengan {{Episode table}} dengan parameter yang didefinisikan dalam dokumentasi templat:

Sebuah standar tabel episode dengan

Sebuah baris untuk musim berbagian dengan

Latar belakang putih untuk referensi yang digunakan di baris header tabel episode dengan

Kategori pelacakKategori pelacak

Dokumentasi di atas ditransklusikan dari Modul:Episode table/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
-- This module implements {{Episode table}} and {{Episode table/part}}.
localHTMLcolor=mw.loadData('Modul:Color contrast/colors')
--------------------------------------------------------------------------------
-- EpisodeTable class
-- The main class.
--------------------------------------------------------------------------------
localcontrast_ratio=require('Modul:Color contrast')._ratio
localEpisodeTable={}
functionEpisodeTable.cell(background,width,text,reference,textColor)
localcell=mw.html.create('th')
-- Width
localcell_width
ifwidth=='auto'then
cell_width='auto'
elseiftonumber(width)~=nilthen
cell_width=width..'%'
else
cell_width=nil
end
-- Cell
cell:attr('scope','col')
:css('background',backgroundor'#CCCCFF')
:css('width',cell_width)
:css('color',textColor)
:wikitext(text)
-- Reference
ifreferenceandreference~=''then
cell:wikitext(" "..EpisodeTable.reference(reference,background))
end
returncell
end
functionEpisodeTable.reference(reference,background)
locallink1_cr=contrast_ratio{'#0645AD',backgroundor'#CCCCFF',['error']=0}
locallink2_cr=contrast_ratio{'#0B0080',backgroundor'#CCCCFF',['error']=0}
localrefspan=mw.html.create('span')
:wikitext(reference)
iflink1_cr<7orlink2_cr<7then
refspan
:css('background-color','white')
:css('padding','1px')
:css('display','inline-block')
:css('line-height','50%')
end
returntostring(refspan)
end
functionEpisodeTable.abbr(text,title)
localabbr=mw.html.create('abbr')
:attr('title',title)
:wikitext(text)
returntostring(abbr)
end
functionEpisodeTable.part(frame,args)
localrow=mw.html.create('tr')
if(args.c==nilorargs.c=='')thenargs.c='#CCCCFF'end
-- Add # to color if necessary
ifargs.c~=nilandHTMLcolor[args.c]==nilthen
args.c='#'..(mw.ustring.match(args.c,'^[%s#]*([a-fA-F0-9]*)[%s]*$')or'')
end
localblack_cr=contrast_ratio{args.cor'#CCCCFF','black',['error']=0}
localwhite_cr=contrast_ratio{'white',args.cor'#CCCCFF',['error']=0}
localpartTypes={
{'act','Adegan'},
{'chapter','Bab'},
{'part','Bagian'},
{'volume','Volume'},
{'week','Minggu'},
}
localdisplaytext=''
localisAnyPartSet=false
fork,vinpairs(partTypes)do
ifargs[v[1]]then
isAnyPartSet=true
displaytext=v[2]..' '..args[v[1]]
end
end
ifargs.subtitlethen
displaytext=displaytext..((isAnyPartSetand': 'or'')..args.subtitle)
end
localplainText=require('Modul:Plain text')._main
localdisplayTextAnchor=plainText(displaytext)
row:tag('td')
:attr('colspan',13)
:attr('id',args.idordisplayTextAnchor)
:css('text-align','center')
:css('background-color',args.cor'#CCCCFF')
:css('color',black_cr>white_crand'black'or'white')
:wikitext((args.noboldanddisplaytextor"'''"..displaytext.."'''")..(args.rand"&#8202;"..EpisodeTable.reference(args.r,args.c)or''))
returntostring(row)
end
functionEpisodeTable.new(frame,args)
args=argsor{}
localcategories=''
localbackground=(args.backgroundandargs.background~=''andargs.background~='#')andargs.backgroundornil
-- Add # to background if necessary
ifbackground~=nilandHTMLcolor[background]==nilthen
background='#'..(mw.ustring.match(background,'^[%s#]*([a-fA-F0-9]*)[%s]*$')or'')
end
-- Default widths noted by local consensus
localdefaultwidths={};
defaultwidths.overall=5;
defaultwidths.overall2=5;
defaultwidths.season=5;
defaultwidths.series=5;
defaultwidths.prodcode=7;
defaultwidths.viewers=10;
-- Create episode table
localroot=mw.html.create('table')
-- Table width
localtable_width=string.gsub(args.total_widthor'','%%','')
ifargs.total_width=='auto'orargs.total_width==''then
table_width='auto'
elseiftonumber(table_width)~=nilthen
table_width=table_width..'%'
else
table_width='100%'
end
root
:addClass('wikitable')
:addClass('plainrowheaders')
:addClass('wikiepisodetable')
:css('width',table_width)
-- Caption
ifargs.show_captionthen
-- Visible caption option, with a tracking category
root:tag('caption'):wikitext(args.caption)
categories=categories..'[[Kategori:Artikel yang menggunakan Templat:Episode table dengan keterangan yang terlihat]]'
elseifargs.captionthen
-- If a visible caption isn't defined, then default to the screenreader-only caption
root:tag('caption'):wikitext(frame:expandTemplate{title='Screen reader-only',args={args.caption}})
end
-- Colour contrast; add to category only if it's in the mainspace
localtitle=mw.title.getCurrentTitle()
localblack_cr=contrast_ratio{background,'black',['error']=0}
localwhite_cr=contrast_ratio{'white',background,['error']=0}
iftitle.namespace==0and(args.backgroundandargs.background~=''andargs.background~='#')andblack_cr<7andwhite_cr<7then
categories=categories..'[[Kategori:Artikel yang menggunakan Templat:Episode table dengan kombinasi warna yang tidak sah]]'
end
-- Main row
localtextColor=backgroundand(black_cr>white_crand'black'or'white')or'black'
localmainRow=root:tag('tr')
mainRow
:css('color',textColor)
:css('text-align','center')
-- Cells
do
localused_column=false
localused_season=false
localcountry=args.country~=''andargs.country~=nil
localviewers='Penonton'..(countryand(' '..args.country)or'')..
((notargs.viewers_typeorargs.viewers_type~='')and'<br />('..(args.viewers_typeor'juta')..')'or'')
localcellNames={
{'overall','EpisodeNumber',EpisodeTable.abbr('No.','Nomor episode dalam keseluruhan cerita')..
((args.seasonorargs.seriesorargs.EpisodeNumber2orargs.EpisodeNumber2Seriesorargs.forceoverall)and'<br />'..(args.overall_typeor'total')or'')},
{'overall2','*',''},
{'season','EpisodeNumber2',EpisodeTable.abbr('No.','Nomor episode dalam musim ini')..'<br />'..(args.season_typeor'musim')},
{'series','EpisodeNumber2Series',EpisodeTable.abbr('No.','Nomor episode dalam seri ini')..'<br />'..(args.series_typeor'seri')},
{'title','Title','Judul'},
{'aux1','Aux1',''},
{'director','DirectedBy','Sutradara'},
{'writer','WrittenBy','Penulis skenario'},
{'aux2','Aux2',''},
{'aux3','Aux3',''},
{'airdate','OriginalAirDate','Tanggal '..(args.releasedand'rilis'or'tayang')..' asli'},
{'altdate','AltDate',''},
{'guests','Guests','Bintang tamu'},
{'musicalguests','MusicalGuests','Bintang tamu musik/hiburan'},
{'prodcode','ProdCode',EpisodeTable.abbr('Prod.','Kode')..'<br />produksi'},
{'viewers','Viewers',viewers},
{'aux4','Aux4',''}
}
fork,vinpairs(cellNames)do
localthisCell=args[v[1]]orargs[v[2]]
ifthisCelland(v[1]~='series'or(v[1]=='series'andused_season==false))then
used_column=true
ifv[1]=='season'thenused_season=trueend
if(k<=3andthisCell=='')thenthisCell='5'end
if(thisCell==''anddefaultwidths[v[1]])thenthisCell=defaultwidths[v[1]]end
ifv[1]=='title'then
localthisCellT=args[v[1]..'T']orargs[v[2]..'T']
localthisCellR=args[v[1]..'R']orargs[v[2]..'R']
thisCellT=(thisCellTorv[3])..(thisCellRand("&#8202;"..EpisodeTable.reference(thisCellR,background))or'')
localaltTitle={"alttitle","AltTitle"}
ifargs[altTitle[1]..'T']orargs[altTitle[2]..'T']then
localaltCellT=args[altTitle[1]..'T']orargs[altTitle[2]..'T']
localaltCellR=args[altTitle[1]..'R']orargs[altTitle[2]..'R']
thisCellT=thisCellT.."<br /> "..altCellT..(altCellRand("&#8202;"..EpisodeTable.reference(altCellR,background))or'')
end
mainRow:node(EpisodeTable.cell(background,thisCell,thisCellT,false,textColor))
else
localthisCellT=args[v[1]..'T']orargs[v[2]..'T']
localthisCellR=args[v[1]..'R']orargs[v[2]..'R']
mainRow:node(EpisodeTable.cell(background,thisCell,thisCellTorv[3],thisCellR,textColor))
end
end
end
iftitle.namespace==0andused_column==falsethen
categories=categories..'[[Kategori:Artikel yang menggunakan Templat:Episode table dengan parameter kolom kosong]]'
end
-- Episodes
ifargs.episodesthen
ifargs.anchorthen
args.episodes=string.gsub(args.episodes,"(id=\")(ep%w+\")","%1"..args.anchor.."%2")
end
root:node(args.episodes)
end
end
localtemplateStyles=mw.getCurrentFrame():extensionTag{
name='templatestyles',args={src='Modul:Episode table/styles.css'}
}
return(((args.dontcloseor'')~='')andmw.ustring.gsub(tostring(root),"</table>","")ortostring(root))..categories..templateStyles
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
localp={}
functionp.main(frame)
localargs=require('Modul:Arguments').getArgs(frame,{
removeBlanks=false,
wrappers='Templat:Episode table'
})
localcheck=require('Modul:Check for unknown parameters')._check
localtracking=''
localtitle=mw.title.getCurrentTitle()
iftitle.namespace==0then
tracking=check({
['unknown']='[[Kategori:Halaman menggunakan episode table dengan parametere yang tidak diketahui|_VALUE_'..title.text..']]',
['preview']='Halaman menggunakan [[Templat:Episode table]] dengan parameter yang tidak diketahui "_VALUE_"',
['showblankpositional']='y',
['regexp1']='[%w_]+NULL',
'airdate','airdateR','airdateT','altdate','AltDate','altdateR','AltDateR',
'altdateT','AltDateT','alttitleT','alttitleR','AltTitleT','AltTitleR',
'anchor','aux1','Aux1','aux1R','Aux1R','aux1T',
'Aux1T','aux2','Aux2','aux2R','Aux2R','aux2T','Aux2T','aux3','Aux3',
'aux3R','Aux3R','aux3T','Aux3T','aux4','Aux4','aux4R','Aux4R','aux4T',
'Aux4T','b','background','c','caption','country','DirectedBy','DirectedByR',
'DirectedByT','director','directorR','directorT','dontclose','EpisodeNumber',
'EpisodeNumber2','EpisodeNumber2R','EpisodeNumber2Series','EpisodeNumber2SeriesR',
'EpisodeNumber2SeriesT','EpisodeNumber2T','EpisodeNumberR','EpisodeNumberT',
'episodes','forceoverall','guests','Guests','guestsR','GuestsR','guestsT',
'GuestsT','id','musicalguests','MusicalGuests','musicalguestsR','MusicalGuestsR',
'musicalguestsT','MusicalGuestsT','OriginalAirDate','OriginalAirDateR',
'OriginalAirDateT','overall','overall_type','overall2','overall2R',
'overall2T','overallR','overallT','prodcode','ProdCode','prodcodeR',
'ProdCodeR','prodcodeT','ProdCodeT','r','season','season_type','seasonR',
'seasonT','series','series_type','seriesR','seriesT','show_caption',
'subtitle','title','Title','titleR','TitleR','titleT','TitleT','total_width',
'viewers','Viewers','viewers_type','viewersR','ViewersR','viewersT',
'ViewersT','writer','writerR','writerT','WrittenBy','WrittenByR','WrittenByT'
},args)
end
returnEpisodeTable.new(frame,args)..tracking
end
functionp.part(frame)
localargs=require('Modul:Arguments').getArgs(frame,{
removeBlanks=false,
wrappers='Templat:Episode table/part'
})
returnEpisodeTable.part(frame,args)
end
functionp.ref(frame)
localargs=require('Modul:Arguments').getArgs(frame,{
removeBlanks=false,
})
returnEpisodeTable.reference(args.r,args.b)
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan