Jumat, 06 November 2026
16:21 WIB
TERKINI
Bandar Lampung Agenda Strategis Pemprov Lampung 6 November 2026: Revitalisasi Stadion Jadi Prioritas Bandar Lampung Harga Beras di Pasar Pasir Gintung Bandar Lampung Merangkak Naik, Stok Aman Bandar Lampung Disdag Bandar Lampung Jamin Pasokan Beras Aman hingga Akhir 2026 Insight Komitmen Pembangunan Negeri, PTBA Sabet Penghargaan Kepatuhan PNBP ESDM 2026 Pemprov Lampung Gubernur Mirza Canangkan Mulang Maya Jadi Magnet Wisata Budaya Unggulan Lampung Tuba Barat Mewujudkan Haji: Pemkab Tubaba dan BSI Ajak Masyarakat Menabung Sejak Dini Lampung Timur Bupati Ela Dekatkan Diri dengan Siswa, Pastikan Kualitas Pendidikan dan Gizi di Lampung Timur Tuba Barat Kemitraan Strategis Pemkab Tubaba dan Kejari: Wujudkan Tata Kelola Pemerintahan Akuntabel Bandar Lampung Mantan Ketua DPRD Lampung Bersaksi dalam Sidang Arinal Djunaidi Bandar Lampung Senator Bustami Zainudin dan Staf DPD Lampung Ikuti Program Cek Kesehatan Gratis Bandar Lampung Agenda Strategis Pemprov Lampung 6 November 2026: Revitalisasi Stadion Jadi Prioritas Bandar Lampung Harga Beras di Pasar Pasir Gintung Bandar Lampung Merangkak Naik, Stok Aman Bandar Lampung Disdag Bandar Lampung Jamin Pasokan Beras Aman hingga Akhir 2026 Insight Komitmen Pembangunan Negeri, PTBA Sabet Penghargaan Kepatuhan PNBP ESDM 2026 Pemprov Lampung Gubernur Mirza Canangkan Mulang Maya Jadi Magnet Wisata Budaya Unggulan Lampung Tuba Barat Mewujudkan Haji: Pemkab Tubaba dan BSI Ajak Masyarakat Menabung Sejak Dini Lampung Timur Bupati Ela Dekatkan Diri dengan Siswa, Pastikan Kualitas Pendidikan dan Gizi di Lampung Timur Tuba Barat Kemitraan Strategis Pemkab Tubaba dan Kejari: Wujudkan Tata Kelola Pemerintahan Akuntabel Bandar Lampung Mantan Ketua DPRD Lampung Bersaksi dalam Sidang Arinal Djunaidi Bandar Lampung Senator Bustami Zainudin dan Staf DPD Lampung Ikuti Program Cek Kesehatan Gratis

Modul:Sidebar

Wikimedia module

Bagikan:
Dokumentasi modullihatsuntingriwayatsegarkan
WarningModul Lua ini digunakan pada sekitar 14.000 halaman dan perubahannya kemungkinan memicu perubahan massal pada semua halaman yang menggunakannya. Uji cobalah di subhalaman /bak pasir atau /kasus uji Modul:Sidebar, 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:

Modul ini mengimplementasikan templat {{sidebar}} dan {{sidebar with collapsible lists}}. lihat masing-masing templat untuk halaman dokumentasi.

Dokumentasi di atas ditransklusikan dari Modul:Sidebar/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 {{Sidebar}}
--
require('strict')
localcfg=mw.loadData('Module:Sidebar/configuration')
localp={}
localgetArgs=require('Module:Arguments').getArgs
--[[
Categorizes calling templates and modules with a 'style' parameter of any sort
for tracking to convert to TemplateStyles.
TODO after a long cleanup: Catch sidebars in other namespaces than Template and Module.
TODO would probably want to remove /log and /archive as CS1 does
]]
localfunctioncategorizeTemplatesWithInlineStyles(args)
localtitle=mw.title.getCurrentTitle()
iftitle.namespace~=10andtitle.namespace~=828thenreturn''end
for_,patterninipairs(cfg.i18n.pattern.uncategorized_conversion_titles)do
iftitle.text:match(pattern)thenreturn''end
end
forkey,_inpairs(args)do
ifmw.ustring.find(key,cfg.i18n.pattern.style_conversion)orkey=='width'then
returncfg.i18n.category.conversion
end
end
end
--[[
For compatibility with the original {{sidebar with collapsible lists}}
implementation, which passed some parameters through {{#if}} to trim their
whitespace. This also triggered the automatic newline behavior.
]]
-- See ([[meta:Help:Newlines and spaces#Automatic newline]])
localfunctiontrimAndAddAutomaticNewline(s)
s=mw.ustring.gsub(s,"^%s*(.-)%s*$","%1")
ifmw.ustring.find(s,'^[#*:;]')ormw.ustring.find(s,'^{|')then
return'\n'..s
else
returns
end
end
--[[
Finds whether a sidebar has a subgroup sidebar.
]]
localfunctionhasSubgroup(s)
ifmw.ustring.find(s,cfg.i18n.pattern.subgroup)then
returntrue
else
returnfalse
end
end
--[[
Main sidebar function. Takes the frame, args, and an optional collapsibleClass.
The collapsibleClass is and should be used only for sidebars with collapsible
lists, as in p.collapsible.
]]
functionp.sidebar(frame,args,collapsibleClass)
ifnotargsthen
args=getArgs(frame)
end
localroot=mw.html.create()
localchild=args.childandmw.text.trim(args.child)==cfg.i18n.child_yes
root=root:tag('table')
ifnotchildthen
root
:addClass(cfg.i18n.class.sidebar)
-- force collapsibleclass to be sidebar-collapse otherwise output nothing
:addClass(collapsibleClass==cfg.i18n.class.collapseandcfg.i18n.class.collapseornil)
:addClass('')
:addClass(args.float==cfg.i18n.float_noneandcfg.i18n.class.float_noneornil)
:addClass(args.float==cfg.i18n.float_leftandcfg.i18n.class.float_leftornil)
:addClass(args.wraplinks==cfg.i18n.wrap_trueandcfg.i18n.class.wraplinksornil)
:addClass(args.bodyclassorargs.class)
:css('width',args.widthornil)
:cssText(args.bodystyleorargs.style)
ifargs.outertitlethen
root
:tag('caption')
:addClass(cfg.i18n.class.outer_title)
:addClass(args.outertitleclass)
:cssText(args.outertitlestyle)
:wikitext(args.outertitle)
end
ifargs.topimagethen
localimageCell=root:tag('tr'):tag('td')
imageCell
:addClass(cfg.i18n.class.top_image)
:addClass(args.topimageclass)
:cssText(args.topimagestyle)
:wikitext(args.topimage)
ifargs.topcaptionthen
imageCell
:tag('div')
:addClass(cfg.i18n.class.top_caption)
:cssText(args.topcaptionstyle)
:wikitext(args.topcaption)
end
end
ifargs.pretitlethen
root
:tag('tr')
:tag('td')
:addClass(args.topimageandcfg.i18n.class.pretitle_with_top_image
orcfg.i18n.class.pretitle)
:addClass(args.pretitleclass)
:cssText(args.basestyle)
:cssText(args.pretitlestyle)
:wikitext(args.pretitle)
end
else
root
:addClass(cfg.i18n.class.subgroup)
:addClass(args.bodyclassorargs.class)
:cssText(args.bodystyleorargs.style)
end
ifargs.titlethen
ifchildthen
root
:wikitext(args.title)
else
root
:tag('tr')
:tag('th')
:addClass(args.pretitleandcfg.i18n.class.title_with_pretitle
orcfg.i18n.class.title)
:addClass(args.titleclass)
:cssText(args.basestyle)
:cssText(args.titlestyle)
:wikitext(args.title)
end
end
ifargs.imagethen
localimageCell=root:tag('tr'):tag('td')
imageCell
:addClass(cfg.i18n.class.image)
:addClass(args.imageclass)
:cssText(args.imagestyle)
:wikitext(args.image)
ifargs.captionthen
imageCell
:tag('div')
:addClass(cfg.i18n.class.caption)
:cssText(args.captionstyle)
:wikitext(args.caption)
end
end
ifargs.abovethen
root
:tag('tr')
:tag('td')
:addClass(cfg.i18n.class.above)
:addClass(args.aboveclass)
:cssText(args.abovestyle)
:newline()-- newline required for bullet-points to work
:wikitext(args.above)
end
localrowNums={}
fork,vinpairs(args)do
k=''..k
localnum=k:match('^heading(%d+)$')ork:match('^content(%d+)$')
ifnumthentable.insert(rowNums,tonumber(num))end
end
table.sort(rowNums)
-- remove duplicates from the list (e.g. 3 will be duplicated if both heading3
-- and content3 are specified)
fori=#rowNums,1,-1do
ifrowNums[i]==rowNums[i-1]then
table.remove(rowNums,i)
end
end
fori,numinipairs(rowNums)do
localheading=args['heading'..num]
ifheadingthen
root
:tag('tr')
:tag('th')
:addClass(cfg.i18n.class.heading)
:addClass(args.headingclass)
:addClass(args['heading'..num..'class'])
:cssText(args.basestyle)
:cssText(args.headingstyle)
:cssText(args['heading'..num..'style'])
:newline()
:wikitext(heading)
end
localcontent=args['content'..num]
ifcontentthen
root
:tag('tr')
:tag('td')
:addClass(hasSubgroup(content)andcfg.i18n.class.content_with_subgroup
orcfg.i18n.class.content)
:addClass(args.contentclass)
:addClass(args['content'..num..'class'])
:cssText(args.contentstyle)
:cssText(args['content'..num..'style'])
:newline()
:wikitext(content)
:done()
-- Without a linebreak after the </td>, a nested list like
-- "* {{hlist| ...}}" doesn't parse correctly.
:newline()
end
end
ifargs.belowthen
root
:tag('tr')
:tag('td')
:addClass(cfg.i18n.class.below)
:addClass(args.belowclass)
:cssText(args.belowstyle)
:newline()
:wikitext(args.below)
end
ifnotchildthen
ifargs.navbar~=cfg.i18n.navbar_noneandargs.navbar~=cfg.i18n.navbar_offand
(args.nameorframe:getParent():getTitle():gsub(cfg.i18n.pattern.sandbox,'')~=
cfg.i18n.title_not_to_add_navbar)then
root
:tag('tr')
:tag('td')
:addClass(cfg.i18n.class.navbar)
:cssText(args.navbarstyle)
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini=1,
fontstyle=args.navbarfontstyle
})
end
end
localbase_templatestyles=frame:extensionTag{
name='templatestyles',args={src=cfg.i18n.templatestyles}
}
localtemplatestyles=''
ifargs['templatestyles']andargs['templatestyles']~=''then
templatestyles=frame:extensionTag{
name='templatestyles',args={src=args['templatestyles']}
}
end
localchild_templatestyles=''
ifargs['child templatestyles']andargs['child templatestyles']~=''then
child_templatestyles=frame:extensionTag{
name='templatestyles',args={src=args['child templatestyles']}
}
end
localgrandchild_templatestyles=''
ifargs['grandchild templatestyles']andargs['grandchild templatestyles']~=''then
grandchild_templatestyles=frame:extensionTag{
name='templatestyles',args={src=args['grandchild templatestyles']}
}
end
returntable.concat({
base_templatestyles,
templatestyles,
child_templatestyles,
grandchild_templatestyles,
tostring(root),
(childandcfg.i18n.category.childor''),
categorizeTemplatesWithInlineStyles(args)
})
end
localfunctionlist_title(args,is_centered_list_titles,num)
localtitle_text=trimAndAddAutomaticNewline(args['list'..num..'title']
orcfg.i18n.default_list_title)
localtitle
ifis_centered_list_titlesthen
-- collapsible can be finicky, so provide some CSS/HTML to support
title=mw.html.create('div')
:addClass(cfg.i18n.class.list_title_centered)
:wikitext(title_text)
else
title=mw.html.create()
:wikitext(title_text)
end
localtitle_container=mw.html.create('div')
:addClass(cfg.i18n.class.list_title)
-- don't /need/ a listnumtitleclass because you can do
-- .templateclass .listnumclass .sidebar-list-title
:addClass(args.listtitleclass)
:cssText(args.basestyle)
:cssText(args.listtitlestyle)
:cssText(args['list'..num..'titlestyle'])
:node(title)
:done()
returntitle_container
end
--[[
Main entry point for sidebar with collapsible lists.
Does the work of creating the collapsible lists themselves and including them
into the args.
]]
functionp.collapsible(frame)
localargs=getArgs(frame)
ifnotargs.nameand
frame:getParent():getTitle():gsub(cfg.i18n.pattern.collapse_sandbox,'')==
cfg.i18n.collapse_title_not_to_add_navbarthen
args.navbar=cfg.i18n.navbar_none
end
localcontentArgs={}
localis_centered_list_titles
ifargs['centered list titles']andargs['centered list titles']~=''then
is_centered_list_titles=true
else
is_centered_list_titles=false
end
fork,vinpairs(args)do
localnum=string.match(k,'^list(%d+)$')
ifnumthen
localexpand=args.expandedand
(args.expanded=='all'orargs.expanded==args['list'..num..'name'])
localrow=mw.html.create('div')
row
:addClass(cfg.i18n.class.list)
:addClass('mw-collapsible')
:addClass((notexpand)and'mw-collapsed'ornil)
:addClass(args['list'..num..'class'])
:cssText(args.listframestyle)
:cssText(args['list'..num..'framestyle'])
:node(list_title(args,is_centered_list_titles,num))
:tag('div')
:addClass(cfg.i18n.class.list_content)
:addClass('mw-collapsible-content')
-- don't /need/ a listnumstyleclass because you can do
-- .templatename .listnumclass .sidebar-list
:addClass(args.listclass)
:cssText(args.liststyle)
:cssText(args['list'..num..'style'])
:wikitext(trimAndAddAutomaticNewline(args['list'..num]))
contentArgs['content'..num]=tostring(row)
end
end
fork,vinpairs(contentArgs)do
args[k]=v
end
returnp.sidebar(frame,args,cfg.i18n.class.collapse)
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan