Jumat, 16 Oktober 2026
13:53 WIB
TERKINI
Bandar Lampung JNE Lampung Sukses Ubah Komplain Milea Cutting Jadi Kemitraan Strategis Bandar Lampung Jadwal Padat Pemprov Lampung 16 Oktober 2026: Pisah Sambut Kapolda dan Rapat Strategis Bandar Lampung Lampung Waspada: BMKG Deteksi 212 Titik Panas di Sepuluh Kabupaten Bandar Lampung Masyarakat Lampung Titip Harapan Besar untuk Kapolda Baru: Berantas Narkoba dan Begal Regional Gubernur Herman Deru Minta Polisi Usut Tuntas Pengeroyokan Jurnalis di Palembang Lampung Selatan Bau Menyengat dan Lalat Ungkap Kematian Pria di Natar, Diduga Sakit Kronis Hiburan Daftar Film Paling Dipuji di IMDb 2026: Dari Epik Kolosal hingga Aksi Pahlawan Super Lampung Gubernur Lampung Kembali Raih Grand Baznas Awards 2026, Diakui Dukungan Zakat Terbaik Bandar Lampung Transformasi Pengelolaan Sampah Bandar Lampung: PSEL Beroperasi, TPA Bakung Tutup Permanen Regional Polda Sumsel Buru Aktor Intelektual Penyerang Jurnalis dan Mahasiswa Saat Demo Bandar Lampung JNE Lampung Sukses Ubah Komplain Milea Cutting Jadi Kemitraan Strategis Bandar Lampung Jadwal Padat Pemprov Lampung 16 Oktober 2026: Pisah Sambut Kapolda dan Rapat Strategis Bandar Lampung Lampung Waspada: BMKG Deteksi 212 Titik Panas di Sepuluh Kabupaten Bandar Lampung Masyarakat Lampung Titip Harapan Besar untuk Kapolda Baru: Berantas Narkoba dan Begal Regional Gubernur Herman Deru Minta Polisi Usut Tuntas Pengeroyokan Jurnalis di Palembang Lampung Selatan Bau Menyengat dan Lalat Ungkap Kematian Pria di Natar, Diduga Sakit Kronis Hiburan Daftar Film Paling Dipuji di IMDb 2026: Dari Epik Kolosal hingga Aksi Pahlawan Super Lampung Gubernur Lampung Kembali Raih Grand Baznas Awards 2026, Diakui Dukungan Zakat Terbaik Bandar Lampung Transformasi Pengelolaan Sampah Bandar Lampung: PSEL Beroperasi, TPA Bakung Tutup Permanen Regional Polda Sumsel Buru Aktor Intelektual Penyerang Jurnalis dan Mahasiswa Saat Demo

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